SCOPE Overview License Downloads Andrzej Wąsowski's Home

SCOPE - A Statechart Compiler

If you really need an explanation for name, SCOPE comes from Statechart COmPilEr.

Overview

SCOPE is a statechart compiler I develop along with my phd project. SCOPE compiles statecharts as supported by IAR visualSTATE tool (or rather a sublanguage of visualSTATE statecharts). Thus you will probably only be interested in SCOPE if you are a visualSTATE user already, or you are also a researcher working on statecharts. Also note that SCOPE is a code generation tool, not a development environment. You still need visualSTATE Designer to create and modify your models.

The visualSTATE statecharts are subset of Harel's statecharts (Harel,1987) incorporating most of the original language including concurrents states, history and deep history states, internal signals, multiple target transitions and other elements.These statecharts are very similar to UML statecharts too.

SCOPE compiles vsp (project) and vsr (independent single system) files. Currently only projects containing a single system are supported. The target language is C (ISO C99 standard). Other target languages might be considered in future. The objective is to get a reactor code which is compact, fast or/and has some desirable properties (for instance easily estimateable worst case execution time).

SCOPE compiles vsp and vsr files of single system models with some other restrictions. The target language is C (ISO C99 standard). Other target languages might be considered in future. The objective is to get a reactor code which is compact, fast or/and has some desirable properties (for instance easily estimateable worst case execution time).

As from version 0.10 SCOPE generates code which is comparable or even competes with code generated by visualSTATE. For small, simple models visualSTATE usually wins, by a small factor. For bigger models SCOPE gets an advantage, sometimes very clear. The programs are usually smaller and less likely faster (but this also happens).

The rule of thumb is that visualSTATE is efficient for sparse flat models, while SCOPE is more efficient for models with high density of various statecharts elements. If your modelling style is very intensive and you tend to produce terse designs by means of using what statechart offer (entry/exit actions, history, hierarchy, concurrency, etc) then SCOPE will do better.

In addition to normal functionality, SCOPE may also be used as a general purpose anonymizer for visualSTATE models. This may be useful for communicating the models to third parties without revealing the behaviour (one purpose would be debugging tools and filing bug reports for vendors).

Further Information

Licence

SCOPE is available free of charge under GPL licence (enclosed in the packages). Currently this prevents you from using it for development of commercial software, but I will soon relicense runtime library files under LGPL, which should solve the problem.

Download

The binary package was compiled on GNU/Linux system, Red Hat 7.3 distribution. It was then confirmed to work properly also on Debian 3.0 systems. Unfortunately the Windows distribution is not yet available (but this should happen eventually).

To compile source packages you will need a GNU based system (any system with MoscowML and Muddy will do). It should even compile on Windows provided that you have GNU make (preferably Cygwin) and above mentioned packages installed.

Recent Releases of SCOPE

Release Date Download Release notes
scope-0.16 13/05/2004 source tarball see in txt file
scope-0-15 06/05/2004 source tarball see in txt file
scope-0-10 16/11/2002 source tgz, linux binary tgz see in txt file
scope-0-09-2 27/10/2002   see in txt file