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), into Lustre programs, or
into Fast automata
for a brief documentation of
the syntax of textual Argos.
You can download the compiler here
The jar file contains the executable code.
To execute it, you need Java 1.5
on the classpath.
Here is a brief documentation of the compiler options:
Usage: java backends.ArgosCompiler [OPTIONS] FILE
Compiles the Argos program FILE. Either pretty prints FILE, or translates it
into a flat Argos program, a Lustre program, or a FAST automaton.
Options must be separated by a space.
target language options:
-flatten (default) creates a flat program, displays it on the standard output
and writes it in file FILE.flat .
-pp pretty prints to the standard output.
-Lustre flatens the program, and translates the flat program into a Lustre
program, which is written to FILE.lus.
-FAST flatens the program, and translates the flat program into a FAST
automaton, which is written to FILE.fst.
-nd does not display the flat program on the standard output.
-nondet FILE is nondeterministic. Otherwise, the compiler rejects
-contract FILE is a contract. Checks if the flat program has a transition
which emits "fail", and if so, prints a path to this transition
on the standard output. Otherwise, prints "contract verified".
-debug prints information about the size of the resulting program and
Test files for the compiler in the textual Argos format can be found
Please contact me
if you have any further
question, found a bug, or if you are interested in the source code.
A short note on using Argos and Larissa
Back to my home page