ABSTRACT
We report on a significant new compiler technology for applications requiring the highest level of reliability. This work is partly funded by AWE plc and takes into account previous AWE work on a demonstrably correct compiler for a Pascal-like language. This work will be of interest to anyone developing safety-critical software.
Today's Ada compilers are based on 1980s' technology, when 4M Bytes of memory was considered sufficient for a project of 10 users. Using today's computers, when even a laptop computer has 512 M Bytes of memory; we can offer a much better compiler for a fraction of the cost. Initial estimates suggest a new technology compiler will be 1/50th the number of source lines, yet meet all our requirements for features and run-time performance.
We have already confirmed the feasibility of our approach in a prototype compiler. This handles a well-defined subset of Ada95 and employs algebraic simplifications in place of optimizations. By prohibiting recursion, we avoid costly run-time organization. Our prototype run-time system is just three instructions.
Our compiler is written in a notation much like ordinary mathematics, and is therefore amenable to mathematical techniques such as theorem proving. Later we intend to offer a proof of correctness. In the meantime, we will demonstrate correctness, both in the sense that a given program has been correctly compiled, and that all programs will be correctly compiled.
The prototype compiler performs well. It compiles at several thousand lines per second and generates code that compares well with that from our optimizing compiler.
- Stepney S: High Integrity Compilation, Prentice Hall, 1993. Google Scholar
Digital Library
- Cohn A: A proof of correctness of the VIPER microprocessor: The first level. In Graham Birtwistle and P. A. Subrahmanyam, editors, VLSI Specification, Verification and Synthesis Kluwer Academic Publishers, 1998.Google Scholar
- Barnes J: High Integrity Software: The SPARK Approach to Safety and Security, Addison Wesley, 2003. Google Scholar
Digital Library
- Spivey J.M: The Z Notation - a reference manual, 2nd edition, Prentice Hall, 1992. Google Scholar
Digital Library
- Stepney S, Nabney I.T: The DeCCo Project Papers I: Z Specification of Pasp Technical Report YCS-2003-358, University of York, June 2003.Google Scholar
- Stepney S, Nabney I.T: The DeCCo Project Papers II: Z Specification of Asp Technical Report YCS-2003--359, University of York, June 2003.Google Scholar
- Stepney S: The DeCCo Project Papers IV: Z Specification of Linker and Hexer Technical Report YCS-2003-361, University of York, June 2003.Google Scholar
- Stepney S, Nabney I.T: The DeCCo Project Papers III: Z Specification of Compiler Templates Technical Report YCS-2003-360, University of York, June 2003.Google Scholar
- Stepney S: The DeCCo Project Papers V: Compiler Correctness Proofs Technical Report YCS-2003-362, University of York, June 2003.Google Scholar
- Stepney S: The DeCCo Project Papers VI: Z to Prolog DCTG translation guidelines, Technical Report YCS-2003-363, University of York, June 2003.Google Scholar
- G.T. Goos et al: DIANA - An Intermediate Language for Ada, LNCS 161, Springer 1983. Google Scholar
Digital Library
- Bird R, Walder P., Introduction to Functional Programming, Prentice Hall, 1998, ISBN 0-13-484189-1 Google Scholar
Digital Library
- Aho, Sethi, Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, 1986. ISBN 0-201-10088-6 Google Scholar
Digital Library
- Military Standard Sixteen-Bit Computer Instruction Set Architecture, USAF, 2 Jul 1980, with updated Notice 1, 21 May 1982,, MIL-STD-1750AGoogle Scholar
- ISO/IEC 13211: Information technology -- Programming languages -- Prolog. International Organization for Standardization, Geneva.Google Scholar
Index Terms
Towards a demonstrably-correct ada compiler
Recommendations
Towards a demonstrably-correct ada compiler
SIGAda '07We report on a significant new compiler technology for applications requiring the highest level of reliability. This work is partly funded by AWE plc and takes into account previous AWE work on a demonstrably correct compiler for a Pascal-like language. ...
Towards a compiler front-end for Ada
SIGPLAN '80: Proceedings of the ACM-SIGPLAN symposium on The ADA programming languageThis paper discusses the current development of a compiler front-end for Ada at the University of Karlsruhe. The front-end is independent of the target-machine and will compile Ada into an intermediate language AIDA, essentially an attributed structure ...
Towards a compiler front-end for Ada
SIGPLAN '80: Proceedings of the ACM-SIGPLAN symposium on Ada programming languageThis paper discusses the current development of a compiler front-end for Ada at the University of Karlsruhe. The front-end is independent of the target-machine and will compile Ada into an intermediate language AIDA, essentially an attributed structure ...







Comments