This dissertation describes one module of a larger system that was supposed to be a complete set of development tools for Ada. The code generation module described here took the output of earlier compiler phases in the form of the DIANA intermediate language and generated low-level code for an abstract Ada machine. A major part of the works was the design of a language for a virtual machine for interpreting Ada programs. We took the P-Code designed with a similar purpose for Pascal (it was used in the UCSD p-System) and extended it into a language we called A-code.
The dissertation consists of 7 chapters. Chapter 1 presents motivation and describes the overall IIPS/Ada compiler system. Chapter 2 describes the DIANA intermediate language. The bulk of the text is in Chapter 3 that describes the A-Code language. The Turbo Pascal implementation of the code generator is described in Chapter 4. Chapter 5 is the user manual for the code generator and Chapter 6 describes which features of Ada have been implemented and which have been omitted. Conclusions are presented in Chapter 7. Appendix 1 contains the grammar of DIANA. Appendix 2 describes all new A-Code instructions (i.e. those that are not part of the P-Code language). Appendix 3 defines a compiler runtime library that is given in the form of A-Code procedures that can be called from the generated code. Appendix 4 gives the DIANA encoding of (parts of) the STANDARD package. Appendix 5 shows examples of test runs. The tests consist of small Ada procedures or packages manually translated into DIANA. These DIANA representations of the Ada source code were translated by the code generator and the genrated A-Code representation is included in the text.
Back to Michał's publications