CHSM is a language system for specifying concurrent, hierarchical, finite state machines (a realization of "statecharts") to model and control reactive systems. It 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 run-time library is small, efficient, and thread-safe. It has been used successfully in production environments such as CERN for controlling high-energy physics experiment equipment.
|Tags||Software Development Code Generators|
Release Notes: This release adds a port for the Groovy dynamic scripting language for Java.
Release Notes: The "dominance" rule has been extended from parent/child transitions to sibling transitions. This allows "if-else" transitions to be done more efficiently.
Release Notes: A new syntax and run-time library support for "computed target states" was added. The Java version now uses Java 1.5. A few compiler and algorithm bugs were fixed.
Release Notes: A typedef from what chsm2c++ emitted that was thought to have been unused and removed was actually needed. hsm2c++ user-event parameter emission has been fixed.
Release Notes: The C++ classes are now documented using Doxygen. On some platforms, an explicit #include <unistd.h> was needed for getopt().