FSMs are trivial in languages with tail-call optimization (Lisp et. al., ML, Haskell .. even
Lua!). It is true, though, that most of these languages are not geared towards low-level bit
C--, perhaps. It's a C-like language used by the Haskell team as their intermediate language,
a sort of souped-up assembler.