- Automata Theory Tutorial
- Automata Theory - Home
- Automata Theory Introduction
- Deterministic Finite Automaton
- Non-deterministic Finite Automaton
- NDFA to DFA Conversion
- DFA Minimization
- Moore & Mealy Machines

- Classification of Grammars
- Introduction to Grammars
- Language Generated by Grammars
- Chomsky Grammar Classification

- Regular Grammar
- Regular Expressions
- Regular Sets
- Arden's Theorem
- Constructing FA from RE
- Pumping Lemma for Regular Grammar
- DFA Complement

- Context-Free Grammars
- Context-Free Grammar Introduction
- Ambiguity in Grammar
- CFL Closure Properties
- CFG Simplification
- Chomsky Normal Form
- Greibach Normal Form
- Pumping Lemma for CFG

- Pushdown Automata
- Pushdown Automata Introduction
- Pushdown Automata Acceptance
- PDA & Context Free Grammar
- PDA & Parsing

- Turing Machine
- Turing Machine Introduction
- Accepted & Decided Language
- Multi-tape Turing Machine
- Multi-Track Turing Machine
- Non-Deterministic Turing Machine
- Semi-Infinite Tape Turing Machine
- Linear Bounded Automata

- Decidability
- Language Decidability
- Undecidable Language
- Turing Machine Halting Problem
- Rice Theorem
- Post Correspondence Problem

- Automata Theory Useful Resources
- Automata Theory - Quick Guide
- Automata Theory - Useful Resources
- Automata Theory - Discussion

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Automata Theory Introduction

## Automata – What is it?

The term "Automata" is derived from the Greek word "αὐτόματα" which means "self-acting". An automaton (Automata in plural) is an abstract self-propelled computing device which follows a predetermined sequence of operations automatically.

An automaton with a finite number of states is called a **Finite Automaton** (FA) or **Finite State Machine** (FSM).

### Formal definition of a Finite Automaton

An automaton can be represented by a 5-tuple (Q, ∑, δ, q_{0}, F), where −

**Q**is a finite set of states.**∑**is a finite set of symbols, called the**alphabet**of the automaton.**δ**is the transition function.**q**is the initial state from where any input is processed (q_{0}_{0}∈ Q).**F**is a set of final state/states of Q (F ⊆ Q).

## Related Terminologies

### Alphabet

**Definition**− An**alphabet**is any finite set of symbols.**Example**− ∑ = {a, b, c, d} is an**alphabet set**where ‘a’, ‘b’, ‘c’, and ‘d’ are**symbols**.

### String

**Definition**− A**string**is a finite sequence of symbols taken from ∑.**Example**− ‘cabcad’ is a valid string on the alphabet set ∑ = {a, b, c, d}

### Length of a String

**Definition**− It is the number of symbols present in a string. (Denoted by**|S|**).**Examples**−If S = ‘cabcad’, |S|= 6

If |S|= 0, it is called an

**empty string**(Denoted by**λ**or**ε**)

### Kleene Star

**Definition**− The Kleene star,**∑***, is a unary operator on a set of symbols or strings,**∑**, that gives the infinite set of all possible strings of all possible lengths over**∑**including**λ**.**Representation**− ∑* = ∑_{0}∪ ∑_{1}∪ ∑_{2}∪……. where ∑_{p}is the set of all possible strings of length p.**Example**− If ∑ = {a, b}, ∑* = {λ, a, b, aa, ab, ba, bb,………..}

### Kleene Closure / Plus

**Definition**− The set**∑**is the infinite set of all possible strings of all possible lengths over ∑ excluding λ.^{+}**Representation**− ∑^{+}= ∑_{1}∪ ∑_{2}∪ ∑_{3}∪…….∑

^{+}= ∑* − { λ }**Example**− If ∑ = { a, b } , ∑^{+}= { a, b, aa, ab, ba, bb,………..}

### Language

**Definition**− A language is a subset of ∑* for some alphabet ∑. It can be finite or infinite.**Example**− If the language takes all possible strings of length 2 over ∑ = {a, b}, then L = { ab, aa, ba, bb }