An Object-oriented framework for compiler construction

(Fellmayr Rainer)


Object-oriented frameworks are collections of (usually) abstract classes that are part of a common architecture designed for a particular application domain. Such frameworks have become a popular form of reusable software. In a research project investigating the design and documentation of frameworks, a framework supporting object-oriented scanning and parsing (i.e. string-to-object translation) has been constructed as a case study.

The aim of the thesis is to turn the example framework into a practical compiler construction tool. For this purpose at least the following tasks have to be carried out:

  1. The efficiency (speed) of framework-based scanning and parsing must bei analyzed, compared with traditional techniques (recursive descent), and, if possible, improved.
  2. Shortcomings and advantages of framework-based scanning and parsing should be analyzed and compared with traditional techniques.
  3. Automatic subclass generator must be implemented, so that extensions of the framework need not be written by hand but they can be generated by giving an appropriate specification for the new class (language structure) using EBNF-like notation.
  4. Support for context-sensitive analysis (symbol tables) should be added to the framework. Conventional scope rules should be supported by the framework, and variations of scope rules should be possible to implement as extensions of the framework.
  5. Support for target code generation should be discussed, and, if possible, implemented in the framework. In particular, the framework should support the generation of a high-level, possibly fixed target language.