CHSM is a language system for specifying concurrent, hierarchical, finite state machines (an implementation of ‘‘statecharts’’) to model and control reactive systems.
CHSM uses its own statechart specification langauge annotated with either C++ or Java code fragments in the tradition of yacc grammars with C code fragments. The generated code is fully object oriented allowing multiple state machines to exist concurrently. The CHSM run-time library is small, efficient, and thread-safe.
When using CHSM with Java, you can alternatively specify a statechart using Groovy instead of using CHSM's specification language.
CHSM has been used successfullly in production environments such as CERN, Philips, Qualcomm, and for the ANTARES neutrino telescope project.
Although the current implementation has evolved over time, the original description is also available.
The git repository contains only the necessary source code.
Things like configure
are derived sources and
should not be included in repositories.
If you have autoconf
, automake
, and m4
installed,
you can generate configure
yourself by doing:
autoreconf -fiv
You will also need flex
and bison
(lex
and yacc
won't do).
In either case,
then follow the generic installation instructions given in INSTALL
.
Paul J. Lucas
San Francisco, California, USA
25 January 2018