John Hopcroft, Jeffrey Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979, pp.521

def Automata is the study of abstract computing devices - machine

A finite-state automaton

has a finite number of states to remember his history

  • Inputs cause the automa to change its state

automaton part of a lexer

Basic Concepts

Alphabets

a finite, nonempty set of symbols

powers of alphabets

with we express the set of strings in the alphabet with length

Strings

a finite sequence of symbols chosen from some alphabet - the empty string

Languages

a set of strings chosen from

Regular Languages

A language is regular if there is a DFA so that

Deterministic Finite Automata

An automata that is in a single state after reading any sequence of inputs The five-tuple describing a DFA:

The transition function can be extended:

The language is defined as

Nondeterministic Finite Automata

Can be in several states at once they accept the exact same regular languages that dfa do

  • they are easier to design
  • always possible to convert an NFA to a DFA
    • in the worst case a DFA can have states with being the number of states of the NFA
    • proof through subset construction

The language is defined as

Regular Expressions

denote the structure of data they describe exactly the same patterns as what can be described by finite automata

Complexity

Decidability

What can a computer do?

Intractability

What can a computer do efficiently?

def NPhard - intractable problems