SwimBikeRun
SwimBikeRun

Reputation: 4460

What is the application of automata?

In other words, why should I learn about it? When am I going to say... oh I need to know about push down automata or turing machines for this.

I am not able to see the applications of the material. Thanks

Upvotes: 2

Views: 2018

Answers (4)

Saisujithreddy
Saisujithreddy

Reputation: 92

Learning about automata(which are nothing but machines) gives an idea about the limits of computation. When an automata does not accept a string, it mean a machine cannot take that string as an input. State diagrams generally gives the possible outcomes for an input which makes us build parsers/machines.

Good example would be checking the format of email-id. Softwares donot accept the email-ids while filling a form if the email format is not good. Here the software is accepting email-ids only in a specific format. We were able to build a software of such by basically sorting out this theoretically using automata and state machines.

Upvotes: 0

Patrick87
Patrick87

Reputation: 28302

First off, it's my position that there are things worth learning not because they're immediately useful, but because they are inherently valuable. A great failing of modern education is that it does nothing to convince students of this when they're still impressionable.

That being said, automata theory is both inherently valuable and incredibly useful. Parsing text, compiling programs, and the capabilities of computing devices can only really be understood using the kinds of things automata theory gives us... and getting the most out of computational systems requires deep understanding. Automata theory allows us to answer some of the most fundamental questions we can ask about computation: what resources do we need to do computation? with given resources, what can we solve? are there problems which can't be solved no matter how many resources we possess? Let alone the fact the complexity theory - which deals with the efficiency of computations - requires automata theory in order to be meaningfully defined.

Upvotes: 3

Slartibartfast
Slartibartfast

Reputation: 8805

There are problems that are nice fit to this kind of solutions, some of which are:

  • parsers
  • simulations of stateful systems
  • event-driven problems

There are probably many others. If you start writing code that has some ad-hoc state variable depending on which some functions can do this or that, you can probably benefit from proper FSA.

Upvotes: 3

ObscureRobot
ObscureRobot

Reputation: 7336

You should learn about automata theory because it will help you understand what is computationally possible in a given system. People who understand the difference between a push-down automata and a universal turing machine understand why trying to parse HTML with regular expressions is a bad idea. People who don't think it is just fine to try to parse HTML with REs.

Upvotes: 4

Related Questions