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.

Tags Software Development Code Generators
Licenses GPL
Operating Systems Unix
Implementation C++ Java

Tweet this project Short link

Rss Recent releases

  • Rrelease-mid
  •  21 Oct 2007 13:07
  • Rrelease-after

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

  • Rrelease-mid
  •  03 Aug 2007 01:20
  • Rrelease-after

Changes: The "dominance" rule has been extended from parent/child transitions to sibling transitions. This allows "if-else" transitions to be done more efficiently.

  • Rrelease-mid
  •  13 Jun 2006 00:20
  • Rrelease-after

Changes: 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.

  • Rrelease-mid
  •  23 Jun 2005 12:09
  • Rrelease-after

Changes: 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.

  • Rrelease-mid
  •  20 Nov 2004 20:23
  • Rrelease-after

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

No-screenshot

Project Spotlight

mysql_auth

A basic authenticator for Squid proxy.

4336443080ce74b86bbe2ffe12760d2e_thumb

Project Spotlight

Necromancer's Dos Navigator

A Norton Commander clone.