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.