LARA

Official Course Description

The course aims to teach the fundamental aspects of analyzing computer languages and mapping them into executable form. At the end of the course, the student should
 - be able to define the formal syntax of computer languages,
 - be able to define the meaning of computer languages through interpreters,
 - know the internal structure and implementation of simple compilers
 - be able to write a compiler that maps a simple programming language into the code of a virtual machine,
 - know common frameworks and design patterns used in compiler construction, 
 - know run-time representations of important programming constructs.

Some less tangible, but nevertheless important goals are: 

 - Improving the understanding of programming languages, 
 - Understanding trade-offs between expressiveness, simplicity, and performance of programming languages,  
 - Experience the design and implementation of a sizable software
   project where theory is essential for success.

CONTENTS

1. Overview, source languages and run-time models
2. Review of formal languages
3. Lexical analysis
4. Syntactic analysis
5. Abstract syntax
6. Semantic analysis
7. Run-time organisation
8. Code generation
9. Garbage collection