#### RGPV 2010

**Q. Write short note on automata ?**

**Ans.**An automaton is an abstract model of a digital computer.

Some types of automata :

- Finite-state machine.
- Pushdown automata.
- Turing machine

**A finite automaton (FA)**is a simple idealized machine used to recognize patterns within input taken from some character set (or alphabet) C. The job of an FA is to accept or reject an input depending on whether the pattern defined by the FA occurs in the input.

Finite automata are used in text processing, compilers, and hardware design. Context-free grammar (CFGs) are used in programming languages and artificial intelligence.

Finite automata are very useful for communication protocols and for matching strings against regular expressions.

**Pushdown Automata**is a finite automata with extra memory called stack which helps Pushdown automata to recognize Context Free Languages.

A pushdown automaton is a way to implement a context-free grammar in a similar way we design DFA for a regular grammar. A DFA can remember a finite amount of information, but a PDA can remember an infinite amount of information.

A pushdown automaton reads a given input string from left to right. In each step, it chooses a transition by indexing a table by input symbol, current state, and the symbol at the top of the stack.

A PDA is more powerful than FA. Any language which can be acceptable by FA can also be acceptable by PDA. PDA also accepts a class of language which even cannot be accepted by FA. Thus PDA is much more superior to FA.

**A Turing machine**is a system of rules, states and transitions rather than a real machine.

The example a Turing machine handles a string of 0s and 1s, with 0 represented by the blank symbol. Its task is to double any series of 1s encountered on the tape by writing a 0 between them. For example, when the head reads “11111”, it will write a 0, then “11111”. The output will be “11111011111”.