2.9 Project 1: Paper

Consult the paper policy for details of the turn-in and preparation process.
Choose one of the following options.

Parsing

Discuss the application of automata theory to the practical parsing of programming languages and/or human languages. A good place to start is to read about LALR parsers and follow the trail from there.

Verification

Discuss the application of automata theory to the verification of software. A good place to start is to read about model checking and logics like LTL.

Engineering

Discuss the practical application of automata theory and design to real-world engineering, including software engineering. You may want to start by learning about UML state charts. It is tempting to limit your discussion to regular expressions, because they are ubiquitous. If you do this, you will automatically be marked down, unless you go deep into how practical regular expression engines are implemented and differ from the theory.