Aims/ Learning Outcomes

The aim of this module is to introduce the students to formal languages and compilers.

After completing this module, students will be expected to be able to:

1. Demonstrate an understanding of formal languages
2. Describe formal languages using BNF notation
3. Explain the link between finite state automata and regular expressions
4. Describe the syntax and semantics of basic programming language elements
5. Demonstrate an understanding of the structure of compilers and their main components
6. Implement key parts of a compiler for a simple language


Introduction to formal languages
-Regular and context-free grammars
-Backus-Naur Form notation (BNF)
-Finite state automata
-Introduction to compilers
-Syntax and semantics of basic programming languages elements
-Lexical analysis
-Static analysis
-Code Generation