Forum OpenACS Development: The SMC State Machine Compiler
The OpenACS Workflow has its own means of modeling and generating FSMs, but I'm not familiar with it either.
Among a bunch of other languages, SMC supports both C and IncrTcl, so presumably it wouldn't be too hard to add XOTcl support if someone wanted to.
According to the FAQ, the primary maintainer re-wrote the original CMC in Java because he thought Java was more cross-platform than C, LEX, and YACC. That sounds like a questionable decision at best, but, I think CMC is just a code generator, which (if correct) should mean you only need it present at run-time if you want to define new state machines at run-time.