| Objectives | Teaching fundamental concepts and results on the formal languages (especially those of type 2 and 3), finite automata and pushdown automata.
Building a lexical analyser using regular expressions and a scanner generator e.g. Lex
Building a sintactic analyser for an context free grammar using a parser generator e.g. Yacc
Using Lex - Yacc for designing a interpreter / compiler for a programming language |
| General thematics | Languages and grammars, grammars classification (Chomsky hierarchy), Regular grammars and languages, Finite automata and accepted languages, Equivalence of deterministic models with the nondeterministic ones and witth regular grammars, Context free grammars and languages, Derivations in context free grammars, Ambiguity, Recognition of context free languages, Removing epsilon rules, Removing rules of the form A->B, Chomsky normal form, Pushdown automata, Programming languages: design, implementation, Lexical analysis, Syntax analysis, Semantic analysis, Top down (predictive) syntax analysis, Bottom up (shift reduce) syntax analysis, Recursive descent syntax analysis, LL Syntax Analysis, LR Syntax Analysis, Translation to intermediate code. |
| Seminary / Laboratory thematics | Examples of languages and grammars, Deterministic finite automata, Nondeterministic automata, Epsilon-transition automata; example, Regular expressions, examples with reference to lexical units of programming languages, Context free grammars independent of, the derivation of trees, eliminating unnecessary symbols, eliminating rules of erasing , Redenumirilor, Chomsky normal form, with word recognition algorithm CYK, Automatic Pushdown; examples, lexical analyzer's manual, obtained with an analyzer tool-LEX, analyze using tools YACC type, Interpreter built with Lex and YACC. |
| Teaching methods | Slides with course items; seminar themes; projects’ issues; electronic version of the course; main readings will be find on the web page |