Formal Language and Automata Theory
Automata and Languages
1. Regular Languages
- Finite Automata
- Formal Definition
- Examples
- Formal Definition of Computation
- Designing Finite Automaton
- The regular operations
- Nondeterminism
- Formal Definition
- Equivalance of NFAs and DFAs
- Closure under regular operations
- Regular Expressions
- Formal Definition
- Equivalence with finite automata
- Nonregular Languages
- The pumping lemma for regular languages
2. Context Free Languages
- Context-Free Grammars
- Formal Definition of context-free grammar
- Examples
- Designing context-free grammars
- Ambiguity
- Chomsky Normal Form
- Pushdown Automata
- Formal Definition
- Examples of pushdown automata
- Equivalence with context-free grammars
- Non-Context-Free Languages
- The pumping lemma for context-free languages
- Deterministic Context-Free Languages
- Properties of DCFLs
- Deterministic context-free grammars
- Relationship of DPDAs and DCFGs
- Parsing and LR(k) Grammars
Computability Theory
- Turing Machines
- Formal Definition
- Examples
- Variants of Turing Machines
- Multitape Turing Machines
- Nondeterministic Turing Machines
- Enumerators
- Equivalence with other models
- The definition of Algorithm
- Hilbert’s Problem
- Terminology for describing Turing Machines
- Decidable Languages
- Decidable problems concerning regular languages
- Decidable problemes concering context-free languages
- Undecidability
- The diagnolization method
- An undecidable language
- A Turing unrecognizable language
- Undecidable Problems from Language Theory
- Reductions via computation histories
- A simple undecidable problem
- Mapping reducibility
- Computable reducibility
- Formal definition fo mapping reducibility