The Argos Compiler
Argos is a automaton language, similar to StateCharts, but with synchronous
semantics. We developed Larissa, an extension to Argos for aspect-oriented
programming. This compiler is a proof-of-concept implementation
for Argos and Larissa.
The compiler reads programs in Argos and Larissa, and transforms them into flat
Argos programs (i.e. simple automata) or into Lustre programs.
See
here for a brief documentation of
the compiler.
You can download the compiler
here (290KB).
The jar file contains the executable code. To invoke the compiler, use
java -classpath argosCompiler.jar backends.ArgosCompiler argosFile
where
argosFile
is a textual Argos program. This will transform
the program in a flat program, i.e. an equivalent program where all operators
(including aspects) have been removed. The transformed program is emitted on
the standard output.
To transform an automaton into a Lustre program, use
java -classpath argosCompiler.jar backends.LustrePrinter argosFile
.
The Lustre code will also be printed on the standard output.
There is also a pretty printer which will output the Argos program with
operators. Use
java -classpath argosCompiler.jar backends.ArgosPrinter argosFile
to invoke it.
Test files for the compiler in the textual Argos format can be found
here.
Please
contact me if you have any further
question or if you are interested in the source code.