|
|
This unit provides an introduction to compilers and their construction. The lecture covers the required theory as well as several elegant compiling techniques that are beneficial to software engineers. Topics covered include grammars, lexical analysis, syntactic analysis, intermediate code generation, code optimisation, object code generation, symbol tables and error handling.
A brief introduction on compiler generators LEX and YACC is also
included, highlighting the modern emphasis on tools.
A cohesive implementation project is an important part of this
unit and thus the lectures have a strong practical orientation to
support such a project. A recursive descent compiler for a very
simple programming language, called Tiny is presented and
discussed in the Lecture Notes. In a compiler project, you will
construct a working compiler for an extension of Tiny, called
Micro, which includes more programming features.
Knowledge and insight you will gain
from this project will both enhance the general understanding of
the art of programming in terms of high-level languages and make it
easier for you to develop your own systems appropriate for specific
purposes and areas of application.