[ANN] hlafsm - using an extensible language to specify finite state machines - feedback appreciated

Chris Brody chris.brody at gmail.com
Tue Apr 8 03:56:05 CEST 2008

I would like to announce the beginning of a rapid-development project
to use an extensible language to solve what is classically one of the
ugliest programming tasks: coding finite state machines (FSMs). The
project is posted at the following location:
http://repo.or.cz/w/hlafsm.git and is inspired in part by the CFSM

The High Level Assembler (HLA) language introduces an extensive macro
construction language that makes this project possible. The HLA
currently targets the x86 but is expected to target some other
architectures in the future. Despite the current limitation of
targeting only the x86 CPUs, I found HLA to be an excellent
alternative to using a domain specific language for this kind of task.

The test scenario is an SMTP listener, with some limitations of
course. The main program is written in C++ and is completely dependent
on eventxx and libevent with some patches. The state machine is
implemented with the HLA macro, and there is a pointer to a CFSM test
as well.

I have a list of future plans as well. I think top priority should be
documentation, examples, and generating multiple targets from the FSM

I would like to ask for any feedback you can offer. I am sending this
initial announcement to a relatively limited set of experts and
mentors, and am including the relatively-limited libev mailing list. I
plan to make a Freshmeat announcement in the near future and will
setup a mailing list if there is enough interest.

Many thanks,
Chris Brody

More information about the libev mailing list