# Lectures A.Y. 2007/2008

## Teaching material

[M1] Introduction to Automata Theory, Languages, and Computation (3rd edition). J.E. Hopcroft, R. Motwani, J.D. Ullman. Addison Wesley, 2007.

[M2] Lecture Notes for Formal Languages. Diego Calvanese. 2007. Available as scanned pages in pdf.

[M3] Exercises on Formal Languages. Available as scanned pages in pdf.

## Lectures

• Topics [M2: Part 1]
• course presentation
• What you should know after the lecture
• the basic notions about relations

• Topics [M2: Part 1]
• What you should know after the lecture
• the basic notions about relations and functions, and their properties
• the formal meaning of alphabet, string, language

• Topics [M2: Part 2]
• finite state machines
• deterministic finite automata (DFA)
• extended transition function for a DFA
• What you should know after the lecture
• how a finite-state machine works (informally)
• the formal definitions of a DFA and of an NFA, and of the language they accept
• construct a DFA for a given language

• Topics [M2: Part 2]
• nondeterministic finite automata (NFA)
• different views of nondeterminism
• relationship between DFAs and NFAs (subset construction)
• What you should know after the lecture
• construct an NFA for a given language
• how to prove that DFAs and NFAs accept the same class of languages
• how to contstruct a DFA from a given NFA

• Exercises on deterministic and nondeterministic finite automata [M3: Exercise 1,2]

• Topics [M2: Part 2]
• finite automata with epsilon-transitions
• eliminating epsilon-transitions
• What you should know after the lecture
• how to prove that epsilon-NFAs and NFAs accept the same class of languages
• how to construct an NFA from a given epsilon-NFA

• Exercises on finite automata with epsilon transitions and on regular languages [M3: Exercise 3]

• Topics [M2: Part 3]
• regular expressions
• algebraic laws for regular expressions
• What you should know after the lecture
• what the language generated by a regular expression is
• what algebraic laws hold for regular expressions

• Exercises on finite automata and regular expressions [M3: Exercise 4]

• Topics [M2: Part 3]
• converting a regular expression to a finite automaton
• converting a finite automaton to a regular expression
• What you should know after the lecture
• how to prove that finite automata accept exactly the regular languages
• how to construct a finite automaton from a given R.E.
• how to construct a R.E. from a given automaton

• Exercises on finite automata and regular expressions [M3: Exercise 5]

• Topics [M2: Part 4]
• closure properties of regular expressions
• pumping lemma for regular languages
• proving languages not to be regular
• What you should know after the lecture
• that regular languages are closed under regular and boolean operations
• how to prove that a languages is not regular
• what properties can be decided about regular languages

• Topics [M2: Part 4]
• decision problems for regular languages
• minimization of finite automata
• What you should know after the lecture
• what properties about regular languages can be decided, and what is the computational cost
• how to minimize a finite automaton

• Exercises on properties of regular languages and pumping lemma [M3: Exercise 6]

• Topics [M2: Part 5]
• Chomsky formal grammars
• derivation
• What you should know after the lecture
• what a Chomsky formal grammar is
• how the language generated by a formal grammar is defined

• Topics [M2: Part 5]
• classification of formal grammars
• grammars of type 0, type 1 (or context-sensitive), type 2 (or context-free), type 3 (or regular)
• context free grammars
• parse-trees for context-free grammars
• What you should know after the lecture
• how formal grammars are classified
• recognize what the type of a grammar is
• how context-free grammars are defined
• how to construct the parse-tree corresponding to a derivation

• Topics [M2: Part 5]
• simplifying context free grammars (eliminating useless symbols, eliminating epsilon-transitions, eliminating unit-productions)
• Chomsky normal form for a CFG
• What you should know after the lecture
• how to eliminate useless symbols from a CFG
• how to eliminate epsilon-productions from a CFG
• how to eliminate unit-productions from a CFG
• how to convert a CFG into Chomsky normal form

• Exercises on context-free grammars and normal forms for grammars [M3: Exercise 11,12]