SugarCubes v3 distribution
The package inria.meije.rc.sugarcubes contains the programming
interface of the SugarCubes framework. The user founds in it Java
interfaces and classes needed for building and executing reactive
programms. The inner package
inria.meije.rc.sugarcubes.implementation contains classes
implementing reactive primitives of the SugarCubes and classes
implementing reactive machines and execution environment.
The package inria.meije.rc.sugarcubes.implementation.io
contains implementation of helper classes to access standard output (aka PrintAtom).
Just add SugarCubesv3.0.3.jar to your CLASSPATH and have fun
New features in v3.0
Some modifications have been made since the previous distribution:
- Major reorganisation of the overall package and new implementation of about all the classes:
- inria.meije.rc.sugarcubes: contains the user interface;
- inria.meije.rc.sugarcubes.implementation: contains the actual implementation of the SugarCubes;
- inria.meije.rc.sugarcubes.implementation.io: helper class to trace reactive programms.
- Definition of a programming interface (user interface) which separate the way one describes a reactive program and the actual implementation of the SugarCubes primitives:
- Reactive programs are now manipulated by the programmer
through the Program interface. The user must not implement this iterface.
- The user builds its program by calling static methods of the class SC rather than writting direct calls to the constructors of each primitives.
- SC class also contains syntaxic facilities, for example, to construct sequences up to 8 components (automatically translated in binary sequence operators), etc ...
- New interfaces to be implemented by the SugarCubes programmer for atomic actions and atomic expressions.
- Reactive machines are manipulated through the Machine interface.
- Valued occurences of event have been introduced as well
as a new primitive called Callback. Which is the way of
choice to allow valued communications between Cubes.
- Copy of programs are added in a reactive machine. This
alows reactive machines to do some manipulations over a program in
order to release memory of terminated components and to
reconfigure the instruction tree to get full gain of the new
algorithm of execution called Storm. It also prevents
external manipulations of the program. This can be safer in a
- Local variables dynamicaly bound (at this time) has
been also introduced. The scope of these local variables is
structurally defined as for local event declarations. But nested
Link operators (and by that way Cubes and Machines)
restrict the scope of these variables.
- It is now possible to declare Behavior Models
(Behavior primitive) and to instanciate them (with a
Run operator). At this time, Behaviors use the same model as in reactive
script (cf. rsi-tk)