Projects / Concurrent Hierarchical State Machine

Concurrent Hierarchical State Machine

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.

Operating Systems

Recent releases

  •  21 Oct 2007 20:07

    Release Notes: This release adds a port for the Groovy dynamic scripting language for Java.

    •  03 Aug 2007 08:20

      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.

      •  13 Jun 2006 07:20

        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.

        •  23 Jun 2005 19:09

          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.

          •  21 Nov 2004 04:23

            Release Notes: The C++ classes are now documented using Doxygen. On some platforms, an explicit #include <unistd.h> was needed for getopt().


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.