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