« new GUI paradigm | Main | Fortress »

November 19, 2005

State Machine Compiler

The Ragel State Machine Compiler looks like a nice way to write a state machine and then get all the tedious things out of it, like code and a graphical respresentation.

This also confirms my impression that I have had for a long time that a state machine is not a ``specification'' but rather a program. My contention there is that if from a source X, any tool-chain T such that applying T to X produces executable code, then X must be written in a programming language. The term executable specification to me is an oxymoron. Google for the phrase and you'll find lots of hits. The current excuse I have heard is that the languages underlying such executable specifications are indeed programming languages, but

Well, as most people know, I am all for higher levels of abstraction in a programming language! Why do those language in question execute slowly? Because they generally are interpreted. Well duh. If some effort was spent on writing a decent compiler, it would not have to be slow.

So what's going on? A sordid tale of two communities: programming language people (who know how to write compilers, and how to make languages that are fast enough) and specification language people (who know how to make expressive languages). And they essentially don't talk to each other. Certainly they barely seem to be aware of each other's work! Of course those specification languages are really hard to compile, which is why programming language people don't design such languages. And of course compilers are hard to write, which is why specification language people don't bother. But still, this seems like a very stupid situation to be in.

Posted by Carette at November 19, 2005 10:21 AM

Comments

Post a comment

¡Comment registration is required but no TypeKey token has been given in weblog configuration!