Functor Group AB with its subsidiaries, founded in 2011, is a research spinoff from University of Cambridge, Oxford University, Uppsala University, Stockholm University, Åbo Akademi and Royal Institute of Technology (KTH). It currently has its headquarters in Stockholm, Sweden.
The reader is advised to watch the following video presentation with soundtrack to quickly be introduced to Functor and its technology. By clicking on the following link starts, the presentation starts in your browser assuming your software is up to date (it almost assuredly is):
WE TURN NEXT GENERATION SOFTWARE TECHNOLOGY INTO GROWTH
Functor has developed a unique core technology for a new level of automation for testing, static code analysis, and even the first technological foundation for the commonly adopted approach to programming known as domain-driven design (DDD, domain engineering based on certain design patterns, widely used, referred to by Amazon etc as “the next agile”). The new technology is in fact based on an entire research field known as Martin-Löf type theory, type theory, meta languages, dependent types, and Functor is the very first company to bring a vast investment in an entire research field into the software industry. As a result, Functor’s products are extremely scalable, but even Functor’s most easily adopted tool, Functor Prevent™, with static analysis and new level of test automation, is ten times more effective in preventing security vulnerabilities and defects (bugs) in software. Functor Prevent™ production release R2 is licensed to customers and deployed just like any other tool in a continuous deployment environment, etc, alongside existing tools such as code review, version control, and so on. Any competent software developer can immediately become more productive with Functor Prevent™, and project leaders gathers important data points about the software under development. This automation tool has also, with significant success (see press release), be used for quality assurance and companies that provide testing services, for example, increase their profit margins by automating part of their labour-intensive costly testing activities, including regression testing and not only unit testing.
For example, Functor Prevent™ has secured an entire operating system for Internet of Things (IoT).
GO PREVENT. GO FUNCTOR.
Watch our short video and contact us at firstname.lastname@example.org for technical information and more:
Use Functor Prevent™ from Functor to automate your testing and prevent bugs before the code is ever accepted into the code base, let alone deployed, or to quality assure an existing codebase, or both. Our technology is ten times more powerful, and much more cost-effective, than previous generation static analysis tools (while we also step up test automation with advanced model checking algorithms automatically covering vast state spaces, and guding testing where manual test cases still must be, in part, be provided).
An investor (two days later) showed two years ago that even a pre-production release of Functor Prevent™ (now R2) was capable of preventing Heartbleed (www.heartbleed.com), commonly referred to as the worst bug in human history (see the link, it was not only all of Internet that was vulnerable for about two years, to untraceable attacks). The CTO of one giant in the gaming industry claimed in his POPL keynote that about 50% of the bugs in the UNREAL game engine would be prevented with even a pre-production version of Functor Prevent™, and made the case for Functor’s technology well before Functor now offers it globally to the software industry, addressing, in fact, the top two highest set priorities in the World Quality Report (both the 2017 and 2016 edition, by Gartners and others). One well-known market research firm refers to testing as “the invisible giant” in the software industry, but Functor’s unique core technology is unifying several markets, intersecting them to create a new market with one, in terms of adoption and use/automation, simple and elegant technology. This technology is fully exposed in the flagship product Functor Scalor™ which helps any company that uses domain engineering, including in particular domain-driven design (DDD), to scrap about 95% of its code. Obviously this has advantages, but these goes well beyond reducing the code base and Functor Group AB looks to scale up its business with products and services, and its accompanying methodologies (Functor Hybrid Testing™ and Functor Language-Driven Development, LDD™, augmenting DDD) for decades to come.
It does not stop with the products offered today, and not even with those yet to be announced from Functor. The technology is remarkably timely as progress in domain engineering and software engineering coincided with the dissemination of a research field in information technology that is arguably (one of) the most mathematical and profound ones given that is it originates form the most modern foundation of mathematics known as constructive mathematics. We expect to witness the impact in the years to come as it is no longer theory but actual technology used by the industry with value that Functor’s customers witness first hand (press release).
Renown experts in the software industry as well as academia foresee that the technology is in fact a paradigm shift, although Functor sells tools and services which are designed, including by an international expert on software testing and certification (research engineer at Functor, the professor who not only coined the term testability, but also defined this metric in his early research). In a research article form 2012, researchers, including a founder of Functor, made the case that the next programming paradigm is what was at that time named constructive programming (in reality, the term is arguably due to Per Martin-Löf, the Swedish professor (emeritus) from which this field originates, since the research moved from mathematics, logic into theoretical computer science with his pioneering paper titled “Constructive Mathematics and Computer Programming”). Research in type theory and dependent types has matured over the years to the extent that it is, indeed, available to the software industry at large, for a wide range of segments including IoT, FinTech, MedTech, automation, aerospace, gaming, etc, and embedded software at large (a giant segment where Functor Prevent™ is superbly useful in most projects as of today with its compliance to relevant standards such as Embedded C etc).
The new technology that is at the core of Functor is used in the new constructive programming paradigm with Functor Scalor™ but also in a new kind of very powerful static code analysis that is gives rise to what has been named Functor Hybrid Testing™ and statically prevents many more defects than other currently available technologies and without the dilemma of unsoundness and false positives in all the other tools on the market for static analysis. The approach is entirely unique and it scales to very large systems and advanced analyses of these, even supporting statically checked interfaces and protocols in Functor Prevent™ R2.
Functor Hybrid Testing™, which is partly automated testing compatible with CUNIT and other frameworks, and partly this new much more powerful static analysis, comes specifically from the software tool Functor Prevent™ and I am part of the team of developers for this latter project. I also contribute whenever i can to a second team working on Functor Scalor™, which is a meta-language platform based on the same research foundation.
The same core technology that gives scalable operational mathematical semantics foundations for the precision of Functor Prevent™ is also used inside Functor Scalor™. Functor Scalor™ takes so-called Martin-Löf type theory into a development platform where abstract high-level domain-specific modelling of problems is possible and a mathematical core system makes it possible to be sure that the model is correct while also making it possible to refine and transform a model to high performance code interoperating with low-level components including C code (compliant to several standards including for compilers typically used for embedded software and IoT software, etc, etc) through FFI and a layer of C-like syntax as well. Functor Scalor™ gives a development platform for the entirely new constructive programming paradigm.
Functor Scalor™ works hand-in-hand with Functor Prevent™, and developers can mix and match these two tools as they see fit for a project, possibly opting to use only ANSI C and Functor Prevent™ to start with, or else Functor Scalor™ where Functor helps creating EDSL’s for their various problem domains and improve safety, reliability and productivity in this way rather radically. For example, natural language embedded in Functor Scalor™ is even possible. This is quite useful, although not neccessarily taken to the extreme where it has been used in translating from one natural language to another. The requirements of a software can be expressed in a language in this platform.
THE SOURCE OF YOUR GREATEST CODE
We call Functor Scalor™ "the language of languages”, since that’s exactly what it is, with mathematical research to substantiate this claim, and proven expressivity up to embedded programming languages and natural languages. No matter what the problem domain is, Scalor™ admits the experts on the problem to express their problem in their own language and then check consistency with mathematical precision applied fully but not visibly (unless they wish to use proof-carrying code and the interactive theorem proving, which is available just as well). Uniquely there is pure mathematical logic inside this meta-language - a logical framework, a meta language based on Martin-Löf type theory which is a framework for constructive logic. If there are contradictions already in the requirements, Functor Scalor™ can tell you right away, and the savings of any such contradiction dealt with early at the high-level modelling level is immensely valuable. The approach is entirely unique, new to the software industry and indeed a new so-called programming paradigm although easily adopted, and gradually as needed per component even.
Functor Scalor™ has an emerging methodology associated with it is known as Language-Driven Development™, based on domain-driven development but in this case anchored in what is academically called a logical framework, a meta language of this particularly powerful type, that is Functor Scalor™ itself as uniquely supporting this emerging new methodology. Compared to DDD and language-based programming, LDD is firmly anchored in a very significant body of research now disseminated into the industry for the very first time with our Functor Scalor™ platform for higher precision, higher-level modelling, refinements, traceability, and extraordinary expressivity and simplicity for domain-specific languages, even supporting domain-specific logic and proof carrying code in very extreme projects. The latter highlights the powerful mathematical core of this new platform which is firmly in place but without turning programming to any sort of mathematical work, and instead having support for e.g. programmers versed in C or other languages to use Functor Scalor™ as well as of course domain experts as follows from the DSL-approach to software engineering that has been shown to be extremely valuable for quality and productivity with multi-level software reuse and with our unique Functor Scalor™ platform, so much more added compared to other tools and approaches for high-level modelling. Existing tools for high-level modelling include, somewhat arbitrarily chosen here, MathWorks SimuLink™, ANTLR, Intentional Language Workbench, JetBrains MPS, Scade, Scala, Haskell and other special-purpose engineered tools without anything comparable to the scalable research foundation we built our products on. Our tools are used in a wide range of applications and types of software development. They have great value in embedded software and even safety-critical software-based products, but they are general-purpose tools that can be used by “anyone that does testing”, citing the assessment of a renown expert affiliated to Functor. We are delivering a new paradigm for software development, nothing less than that.
WHEN TRUST IS A SCIENCE, SECURITY IS SIMPLY LOGICAL
This is just a small part of the exciting technology we pioneer for the industry with the products from Functor. I am a specialist developer and my knowledge and expertise in algorithm analysis and former results in programming competitions gave me this opportunity to work with such exciting new technology, and with an excellent team with incredible qualifications, as needed for the products in this case.
Functor Prevent™ has been wrapped into a cloud services, software testing as a service, which is gradually rolled up even prior to its first production release for early adopters. The subscription model offers an extremely cost-effective and effortless way to plug in Functor’s technology. After seeing the value, we expect customers of the forthcoming production release to almost immediately move over to a monthly plan from the one based on elastic computation units per defect complexity (pay-as-you-code quickly becomes far to valuable). Note that the return of investment (ROI) of static analysis tools based on earlier technologies, including the spinoffs Coverity and PolySpace (acquired by Synopsys and MathWorks, respectively, from Stanford in the first case and INRIA in the second case), is widely known in the industry. Every software developer are well aware of the labour if not cost and risk and lead time pressure most companies face because of the inherent problems with software, several of which Functor’s technology strikes at once, today, after virtually no training (for Functor Prevent™, value begins by running the tool on the codebase, as shown repeatedly already, the very first time, eg Erlang, MySQL in the Twitter branch, the Linux kernel, and so on, to name some random projects, see press release with a notable customer success story that is disclosed publicly by agreement with United Kingdom Atomic Energy Authority and the largest fusion reactor in the world).
BE THE CHANGE. ADJOIN FUNCTOR.
Presently most technical information is available only by contacting Functor, eg using the dedicated email address for such requests (email@example.com). We have demos, white-papers, data-sheets, and so on, and try to deliver the most relevant material for each request while also being able to point to, in many cases, concrete impact on a particular software project or type of project. Functor offers services on top of its products, but our products are elaborately designed to be easily adopted for a broad range of development environments, programming languages, compilers, toolchains, etc, even without any training at all (for Functor Prevent™ in particular, itself a giant leap in automation for testing and code analysis, with technology unleashed by Functor for the very first time from significant advances in research within type theory and coincidentally aligned advances in software engineering and domain engineering for Functor Scalor™ and DDD).
Behold the impact of a research field disseminated into an industry where disruption of software development means, literally, disruption of disruptors, since disruptive technologies is of course driven by software, since, as Forbes and others points out (but is probably not news to the reader), software is the driver of innovation today. To strike at productivity and quality of software itself at its very core, is therefore something that can have a rather remarkable and global impact for years to come as Functor expects to see its technology being adopted and the group transforming more and more to a leader from being the pioneer perfectly timed with the awareness of eg static analysis tools and DDD in the software industry itself.
Contact Functor at +46-8-55005500 or via firstname.lastname@example.org. Job applications are accepted (please read the instructions, www.functor.se/jobs) at email@example.com and at angel.co/functor/jobs in addition to this recommended platform.
WE TURN NEXT GENERATION SOFTWARE TECHNOLOGY INTO GROWTH
Brilliant functional programmer? Go here:
Let us know if you have any questions or if we can firstname.lastname@example.org!
TECHNOLOGY THAT DISRUPTS THE DISRUPTORS
PIONEERING THE NEXT PROGRAMMING PARADIGM
STATIC ANALYSIS MEETS DOMAIN-DRIVEN DESIGN
@Functor Group with subsidiaries,
@Functor Group with subsidiaries,
@Functor Group with subsidiaries,
@Functor Group with subsidiaries,