Martin

John C. Martin · Fourth edition

Regular Expressions, Nondeterminism, and Kleene’s Theorem

A simple way of describing a language is to describe a finite automaton that accepts it. As with the models of computation we will study later, an alternative approach is to use some appropriate notation to describe how the strings of the language can be generated. Languages that can be accepted by finite automata are the same as regular languages, which can be represented by formulas called regular expressions involving the operations of union, concatenation, and Kleene star. In the case of finite automata, demonstrating this equivalence (by proving the two parts of Kleene’s theorem) is simplified considerably by introducing nondeterminism, which will also play a part in the computational models we will study later. Here, although allowing nondeterminism seems at first to enhance the accepting power of these devices, we will see that it can be eliminated.

  1. 3.1

    Regular Languages and Regular Expressions

  2. 3.2

    Nondeterministic Finite Automata

  3. 3.3

    The Nondeterminism in an NFA Can Be Eliminated

  4. 3.4

    Kleene’s Theorem, Part 1

  5. 3.5

    Kleene’s Theorem, Part 2

  6. Exercises