1.Introduction
C++ Programming
Implementation of generics in a compiler and implementing a generic object-oriented based compiler [1] are two very deferent aspects. Both however can be achieved by good design of a compiler framework. The former requires the design of the compiler to be able to manage generics (that is generic programming techniques). The second deals with the design of the compiler itself. The development of a compiler framework that can be used to generate a compiler for any language. This may be an impossible dream, but what would the design of
such a compiler be?
2.Instruction
For this assignment you will design a framework for a generic compiler. You do not have to write any code, just do the design.
Your framework should allow for the following:
1. coding in any programming language. You may assume the definition of the language exists and is defined in another language such as BNF, EBNF. ABNF...
2. development of software on any computer architecture
3. development of software on any operating system
4. software development in different development environments, for example, command line, using a GUI.
5. produce platform independent code.
6. be easily extendible to allow addition of a new programming language, architecture, and development
environment
7. be able to include software components written in different languages into one application.
The GUI environment should provide at least the following functionality:
_ pluggable look-and-feel
_ GUI environment should include an editor and syntax highlighting at least.
_ syntax highlighting of code
3. Submission
Submit a report wherein you provide class diagrams, describe the design patterns that you've used and motivate your choices. You have to show how these design patterns address the issues mentioned above.