views:

398

answers:

9

I loved the course I took in Automata Theory and Formal Languages, so naturally I started looking around the interwebs to learn what happened since the time the books on which the course was based were written.

What I discovered was that the list of stuff I wasn't familiar with seemed to be very short. For example, from the list of automatons in the Wikipedia entry for the subject, half were covered by the course, and the other half were mostly related to the one language not covered by the course.

Further, when researching about the applications of the theory, I got mostly the same results: programming language syntax, compilers, text search, and.... that's about it.

So is it really that dead? Or does it continues to evolve? Are there new applications for the theory?

+1  A: 

I think as new areas of computing, such as quantum computing and hypercomputation open up then there will be new applications requirements, requirements and theoretical bredth from automata theory and things like evolutionary automata and computation, cellular automata and whatnot.

I don't think it is dead, just a bit cold for the time being.

Aiden Bell
+1  A: 

I think Automata Theory is involved in a lot of areas without people realising. For example, I can see it's application in cryptography and cryptanalysis.

Duracell
it is. But that wasn't the question. Lots of mathematics is used indirectly...
Mitch Wheat
Yeah, so Automata Theory is not dead at all! It's used all the time!
Duracell
A: 

a lot of process control stuff is heavily based on the theory. Especially in terms of proving the robustness of control systems.

Keith Nicholas
Examples, please.
Hamish Grubijan
A: 

Take a look at workflow processes and see how automata theory could be put to use there in formalizing the concepts and patterns described: Workflow Patterns

Khorkrak
+8  A: 

Automatons are really useful. I completed my degree in software engineering and computer science nearly 20 years ago. One of the first courses was Models of Machines, which covered FSAs, and ventured a bit into turning machines, computability, halting problem etc.

Everyone thought the course was either boring, irrelevant, too difficult or pointless. The circles and arcs made little sense to anyone, and what's the point of a tape with just ones on it? What's wrong with a hard disk? At the end of the course, the lecturer gave out a questionnaire - how useful do you think this course will be in one month, in one year, in ten years. Then, I answered not useful for all of them. Now it would be increasing usefullness with time, ending with "very useful"

I've used automata lots in my day job, and they are the right tool for certain classes of problems, with little else to compete with it. I've used them for compressing multi-million word lists+category data (ok, quite banal), and also implemented an extension where the symbols are complex objects and the state transitions are predicates. This allowed a complex set of rules to be compiled to a deterministic FST and all rules evaluated simultaneously and deterministically with no redundant computation.

My vote is for still relevant!

mdma
A: 

One of the new techniques I came across a few years ago is called Parsing Expression Grammars, aka PEGs aka Packrat Parsing. Bryan Ford has done some work on it which can be viewed at http://pdos.csail.mit.edu/~baford/packrat/.

This is basically a top-down recursive descent parser, and one of the advantages of it is that lexical analysis and semantic analysis can be performed in one step.

PEGs compare with CFGs in that PEGs are more suited to parsing a context-free language, whereas CFGs are more suited to generating a context-free language.

Umar Farooq Khawaja
I'm not entirely sure how this relates to automata, save for the fact that PEGs don't fit neatly into any formal theory. They're really a nasty, nasty construction from a mathematical point of view. Useful, but nasty.It's also worth noting two other points. First, PEGs are *not* the same as Packrat parsers (Packrat parsers are memoized, PEGs are not). Second, the one-line evaluation of CFGs against PEGs is quite subjective and a little incoherent (PEG is a parsing algorithm, CFG is a mathematical formalism).
Daniel Spiewak
"Nasty" is subjective. You should specify why they are "nasty". Packrat parsers are indeed memoized, but that is an optimization, i.e., an implementation detail.As for classifying PEGs into a bucket of some sort, if you wouldn't put them into Automata and Formal Languages, where would you put them? PEG is not an algorithm. It is a grammar, much like CFG. You are probably confusing CFGs with CFLs, which is the mathematical formalism.CFL = Context Free LanguageCFG = Context Free GrammarPEG = Parsing Expression Grammar
Umar Farooq Khawaja
I strongly disagree with Daniel. PEGs are a formalism. A limited and limiting, as any other formalism, but perfectly a formalism. Actually, you'd hardly find an algorithm which is not a formalism.
SK-logic
And yes, there is a well defined mapping from PEG onto an automaton. Infinite lookahead does not make it too difficult.
SK-logic
@SK-logic I'm going to call `[citation needed]` on the claimed well-defined mapping from PEG into automata theory. Clearly you can define a Turing Recognizer for the PEG acceptance problem, but to my knowledge, theorists have so far been unsuccessful to cleanly define the class of languages accepted by PEGs. As one of these aforementioned theorists, I would certainly be interested in any progress along those lines.
Daniel Spiewak
@Umar Packrat parsers accept a larger class of languages than PEGs. The leading example of this is left-recursion. Vanilla PEGs can handle some very specific forms of left-recursion. Vanilla Packrat parsers are capable of handling a much larger set of left-recursive rules, and with a little bit of trickery, they can handle any form of non-hidden left-recursion. This alone implies that memoized PEGs (Packrat parsers) are at least (and probably strictly) more powerful than vanilla PEGs.
Daniel Spiewak
@Umar And no, I'm not confusing CFGs with CFLs; I'm well aware of the differences in terms. Context-free grammars are a way of specifying context-free languages. By definition, every CFL has a corresponding CFG and vice versa. CFGs do *not* imply anything related to the algorithmic parsing of said language. Though, most parser generators will allow specification of parsers using a limited subset of context-free grammars.
Daniel Spiewak
A: 

Rather than looking at the theory as dead, instead consider that it has become so practical for applications that we've moved beyond the theory. An excellent book to consider that bridges between the theory and application is Miro Samek's "Practical Statecharts in C/C++". There is now a second edition available, which I've not read. But I found nothing lacking in the first edition; to this day I find it one of the most valuable texts I have ever read.

Brent Arias
+1  A: 

It's not dead, more 'put out to stud' - it's a simple formalism which is used more as the basis for others, rather than being a particularly active research topic.

Henry Thompson's work on XML schemata uses and extends automata theory.

Many embedded software projects make heavy use of finite state machines, which are related to automata, and some of the techniques to work with them draw on or extend automata theory.

Pi-calculus extends automata theory with the concept of bisimulation and adds capabilities for analysing concurrent processes. It's the closest bit of recent research to the automata theory I learnt at university.

Pete Kirkham
+3  A: 

Automata and formal languages are foundation of regular expressions, parsers, compilers, virtual machines, etc. which improve regularly.

There are also required in the domain of theorem prover for program checking, which aims to prove that a program or a protocol achieves what it pretends to do. This domain is critical (vote machine software, banking transaction, security systems in vehicle, etc.) and still under development.

So no, the automata theory and formal languages are not dead!

kabado