Erroneous and buggy software dramatically increases the cost of software developement cycles, the maintenance phase, and even minor bugs often spoil the confidence in a software system. Software testing is one method to improve software reliability but especially the correctness of safety and security critical software crucially depends on the correctness of the underlying software engineering tools.
Adequate software engineering methods, especially formal methods, are used to support the correct construction of programs in high level programming languages. Compilers are used to transform these programs into binary executable code on concrete hardware processors. Thus, compilers themselves are used as tools in the process of correct construction and implementation of software. The correctness of the entire process crucially depends on compiler correctness.
The aim of the VERIFIX project is the construction of mathematically correct compilers, which includes both the development of formal methods for specification and implementation of a compiler, and also the implementation of concrete compilers and development tools. The VERIFIX approach is relevant for industrial purposes, because our constraints are very practical: To deal with practically relevant imperative languages and to push usability and efficiency to the foreground.