The main objective is to introduce the fundamental notions about formal languages (Chomsky classification of Languages, Regular Languages, Automata, Context Free Grammars) and understand the mechanisms governing the analysis and synthesis of programming languages. Students will learn the most important techniques for the representation and generation of Languages (in particular, regular and context-free languages).

 

Those techniques will be applied to the construction of a compiler for a programming language. In particular, during this course the student will learn how to build the different parts of a Compiler with a particular emphasis on Lexical Analysers, Parsers and a basic form of code generation.