# Applications of various Automata

Automata is a machine that can accept the Strings of a *Language L* over an *input alphabet *.

So far we are familiar with the Types of Automata . Now, let us discuss the expressive power of Automata and further understand its Applications.

__Expressive Power of various Automata__:

The Expressive Power of any machine can be determined from the class or set of Languages accepted by that particular type of Machine. Here is the increasing sequence of expressive power of machines :

As we can observe that FA is less powerful than any other machine. It is important to note that DFA and NFA are of same power because every NFA can be converted into DFA and every DFA can be converted into NFA .

The Turing Machine i.e. TM is more powerful than any other machine.

(i) Finite Automata (FA) equivalence:

Finite Automata ≡ PDA with finite Stack ≡ TM with finite tape ≡ TM with unidirectional tape ≡ TM with read only tape

(ii) Pushdown Automata (PDA) equivalence:

PDA ≡ Finite Automata with Stack

(iii) Turing Machine (TM) equivalence:

Turing Machine ≡ PDA with additional Stack ≡ FA with 2 Stacks

The **Applications** of these Automata are given as follows:

**1. Finite Automata (FA) –**

- For the designing of lexical analysis of a compiler.
- For recognizing the pattern using regular expressions.
- For the designing of the combination and sequential circuits using Mealy and Moore Machines.
- Used in text editors.
- For the implementation of spell checkers.

- For designing the parsing phase of a compiler (Syntax Analysis).
- For implementation of stack applications.
- For evaluating the arithmetic expressions.
- For solving the Tower of Hanoi Problem.

**3. Linear Bounded Automata (LBA) –**

- For implementation of genetic programming.
- For constructing syntactic parse trees for semantic analysis of the compiler.

**4. Turing Machine (TM) –**

- For solving any recursively enumerable problem.
- For understanding complexity theory.
- For implementation of neural networks.
- For implementation of Robotics Applications.
- For implementation of artificial intelligence.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

## Recommended Posts:

- Difference between Pushdown Automata and Finite Automata
- Automata Theory | Set 7
- Automata Theory | Set 9
- Automata Theory | Set 10
- Automata Theory | Set 8
- Automata Theory | Set 3
- Automata Theory | Set 5
- Automata Theory | Set 2
- Automata Theory | Set 1
- Automata Theory | Set 4
- Compound Finite Automata (FA)
- Finite Automata with Output (Set 11)
- Construct Pushdown automata for L = {0
^{n}1^{m}2^{m}3^{n}| m,n ≥ 0} - Construct Pushdown automata for L = {a
^{(2*m)}c^{(4*n)}d^{n}b^{m}| m,n ≥ 0} - Construct Pushdown automata for L = {0
^{m}1^{(n+m)}2^{n}| m,n ≥ 0} - Construct Pushdown automata for L = {0
^{n}1^{m}2^{(n+m)}| m,n ≥ 0} - Introduction of Pushdown Automata
- Introduction of Finite Automata
- Finite Automata with Output (Set 5)
- Finite Automata with Output (Set 6)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.