Saturday, October 15, 2005

A-Code: code generation for Ada

During my last trip to Poland, I have been going through my old papers. One of the things I found was a copy of my MSc thesis from the Silesian University of Technology. Unfortunately, I couldn't find the electronic copy of the dissertation but I scanned parts of it and created a pdf file. The thesis is entirely in Polish but I have just created a short abstract in English. The title can be translated into English as Code Generation in the IIPS/Ada Compiler (original Polish title is: Opracowanie i wykonanie modułu kompilatora języka Ada systemu IIPS/Ada generującego kod wynikowy w postaci P-kodu). Unfortunately, as far as I know the IIPS/Ada system was never finished. I guess there were not enough graduating students who wanted to write parts of an Ada compiler system. For the curious, IIPS stands for Instytut Informatyki Politechniki Śląskiej (which means the Computer Science Institute of the Silesian University of Technology). I haven't really stayed in touch with anyone from my alma mater but I can see that my advisor, dr inż. Przemysław Szmal is still there and apparently he is still teaching compilers.
Here is the text of the English abstract of my thesis I just wrote:

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 generated A-Code representation is included in the text.

Comments: Post a Comment

Subscribe to Post Comments [Atom]





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]