C++ Machine Objects
Details
| Size: | 49K |
| Last Update: | 2008-05-08 21:50:40 |
| Version: | 0.9.4 |
| OS Support: | Linux |
| License/Program Type: | MIT/X Consortium License |
| Publisher: | Eduard Hiti |
| Price: | $0.00 |
Description:
C++ Machine Objects 0.9.4 is libraries software developed by Eduard Hiti.
C++ Machine Objects class library supports a subset of the UML statechart notation for implementing hierarchical state machines in straight C++, similar in spirit to the GoF "State" design pattern.
The currently supported features are hierarchical states, entry and exit actions, state histories, and state variables.
Installation:
The class library as such does not need to be installed. Just include the header file Macho.hpp to make use of it. Prerequisite however is a C++ compiler with sane support for templates.
Included are the example state machines HelloWorld, Example, Microwave and Test. To make the examples run just compile them in the directory they are in, for example:
GCC
g++ -o microwave Microwave.cpp
MSVC7
cl /EHsc Microwave.cpp
I like the GoF "State" design pattern. It enables implementing the important concept of state machines with common programming language features. By utilising only basic language mechanisms it is easy to apply in real-life software development.
Another important property that stems from this simplicity is orthogonality, meaning that the pattern can be combined with other design elements, patterns and idioms in arbitrary ways.
In contrast stand the tool supported approaches to state machine creation (of which there is no shortage). Based on code generators and graphical editors, they tend to generate incomprehensible code and forfeit orthogonality by necessarily being outside the domain of the programming language.
Unfortunately the "State" pattern is limited in scope because it does not allow for hierarchical state machines. This is regrettable because flat state machines tend to become unwieldy when getting bigger, for the sheer number of states they produce.
Hierarchical state machines as defined by the statechart notation alleviate this problem by giving an additional structural element through grouping states into hierarchies.
The "State" pattern in its original form is not capable of modeling state hierarchies. The Macho class library extends the concept with this possibility, while keeping the properties of simplicity (there possible) and tool independence from its inspiration.
What's New in This Release:
This release adds the feature of backtracking to previous states by using "Snapshots".
C++ Machine Objects 0.9.4 supports english interface languages and works with Linux.
Downloading C++ Machine Objects 0.9.4 will take several seconds if you use fast ADSL connection.
0 comments
Add to
C++ Machine Objects Version History
Related Software
|
|
From category: Version-Control |
| Etcsvn 0.2.1 is version control software developed by Joseph Rawson. Etcsvn is a command line program for managing system configurations in subversion. Etcsvn doesn\'t make a working copy out of yo... |
|
|
From category: Libraries |
| CGI::Cache 1.4200 is libraries software developed by Broc Seib. CGI::Cache is a Perl extension to help cache output of time-intensive CGI scripts. WARNING The interface as of version... |
|
|
From category: Libraries |
| Class::CGI 0.20 is libraries software developed by Curtis Poe. Class::CGI is a Perl module to fetch objects from your CGI object. SYNOPSIS use Class::CGI handlers => {\... |
|
|
From category: Debuggers |
| DIOTA 0.91 is debuggers software developed by Michiel Ronsse. DIOTA (Dynamic Instrumentation, Optimisation and Transformation of Applications) is a novel method for instrumenting binaries. T... |
|
|
From category: Libraries |
| Audio::TagLib::MPC::File 1.42 is libraries software developed by Dongxu Ma. Audio::TagLib::MPC::File is an implementation of Audio::TagLib::File with MPC specific methods. SYNOPSIS... |
|
|
From category: Libraries |
| ExtUtils::ModuleMaker 0.47 is libraries software developed by R. Geoffrey Avery. ExtUtils::ModuleMaker is a Perl module better than h2xs for creating modules. SYNOPSIS At the command... |
|
|
From category: Libraries |
| jXLS is small and easy-to-use Java library for generating Excel files using XLS templates.... |
|
|
From category: Code-Generators |
| OpenXava is a framework to develop easily business applications with XML and Java.... |
|
|
From category: Libraries |
| Algorithm::C3 0.05 is libraries software developed by Stevan Little and Brandon L. Black. Algorithm::C3 is a module for merging hierarchies using the C3 algorithm. SYNOPSIS use Algo... |
|
|
From category: Libraries |
| Atom Publishing Protocol framework for Ruby 0.5.0 is libraries software developed by Jani Soila. Atom Publishing Protocol framework for Ruby\'s goal is to make adopting Atom Publishing Protocol(APP... |
|
|
From category: Libraries |
| AxKit::App::Gallery::stylesheets 0.5 is libraries software developed by Nik Clayton. AxKit::App::Gallery works by generating XML, and then passing the generated XML through a collection of styleshe... |
|
|
From category: Libraries |
| libgnomeprint is a Gnome printing library.... |
|
|
From category: Libraries |
| bit 0.3.0 is libraries software developed by Rick L Vinyard, Jr. bit is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned. Binary data formats c... |
|
|
From category: Version-Control |
| ArchWay 0.2.1 is version control software developed by Clint Adams. ArchWay is a full-featured graphical user interface for the GNU Arch revision control system. It includes a set of special... |
|
|
From category: Libraries |
| Apache::ImageMagick 2.0b7 is libraries software developed by G.Richter. Apache::ImageMagick is a Perl module that can convert and manipulate images on the fly. SYNOPSIS In httpd.conf... |
Leave a comment