basics : Class, Object, inheritance, Interfaces,..

Through this unit, the student must know and master the concepts derived from the theory of languages, specifically algebraic languages, grammar, and pushdown automata. These are the foundation of all syntax analysis algorithms (used by programming language compilers).

This module comprises eight chapters on language-generating systems (grammars) and language-recognizing systems (automata). The corresponding automaton for most languages derived from Chomsky's classification will be described in detail.


Students are offered a set of exercises for each type of automata (finite state automata (FSA), pushdown automata (PDA), linear bounded automata (LBA), or Turing machines (TM)), allowing them to understand its operation thoroughly. Particular attention will be given to finite states automata used by lexical analyzers and pushdown automata used by syntax analyzers (two phases of a compiler).

 

All the acquired knowledge will be used to thoroughly understand the different phases of implementing programming language compilers. Indeed, the practical works will primarily focus on finite-state machines and grammars. These will be the basis for implementing the two phases of a compiler, namely the lexical analyzer and the syntax analyzer.