CAESAR manual page
Table of Contents

Name

caesar - compilation & verification of LOTOS specifications

Synopsis

caesar [-aldebaran] [-analysis] [-bcg] [-cc options] [-comments] [-english] [-error] [-exec] [-exit] [-external] [-e7] [-e7old] [-force] [-french] [-functionality] [-gc] [-gradual] [-graph] [-indent] [-iso] [-map] [-monitor] [-more command] [-network] [-newstyle] [-oldstyle] [-open] [-root instantiation] [-safety] [-silent] [-simulator] [-trigger optimization] [-verbose] [-version] [-v3] [-v4] [-warning] filename[.lotos]

Description

Taking as input filename.lotos, which is a LOTOS program, and filename.h, which is the concrete implementation in C of the abstract data types defined in the LOTOS source text, caesar translates it to a C program and/or a finite state automaton. This allows to execute, simulate, and/or verify LOTOS programs.

Options

-aldebaran
Generate output file filename.aut, which contains the automaton in the AUT textual format. Not a default option.

-analysis
Analyze filename.lotos in order to detect errors and stop. The following phases are performed: syntactic analysis, static semantic analysis, restriction, expansion and generation. This option does not generate any output, except error diagnostics. Not a default option.

-bcg      
Generate output file filename.bcg, which contains automaton in the BCG (Binary-Coded Graphs) format. Default option unless one of the following options is set: -aldebaran, -graph, -exec, or -open.

-cc options
Pass options to the C compiler when it is invoked. options is a list of compiler options (enclosed in quotes or double quotes). These options are appended to the compiler options, if any, contained in the $CADP_CC environment variable (see ENVIRONMENT VARIABLES below). Not a default option.

-comments
Issue a warning message for each LOTOS sort or operation that is not properly labelled by a special comment of the form (*!...*). Not a default option.

-english
Print messages in English. Opposite of -french. This option overrides the $CADP_LANGUAGE environment variable (see ENVIRONMENT VARIABLES below).

-error      
A file, filename.err, is generated by caesar. It contains detailed error diagnostics. When it terminates, caesar displays the content of this file on the screen, using the $CADP/src/com/cadp_more command, unless -error option is set.

-exec      
Generate the kernel module filename.c to be used in the EXEC/CAESAR environment. Not a default option.

-exit      
Perform network reduction in order to replace all tau-transitions derived from a LOTOS enabling operator ">>" by epsilon-transitions, often leading to a smaller graph. This transformation preserves safety and trace equivalence, but neither strong, branching, nor observational equivalence. Not a default option.

-external     
Generate a file filename.c.proto containing skeletons for EXEC/CAESAR's gate functions, i.e., functions associated to all visible gates of the LOTOS specification. These functions are incomplete and have to be completed manually (at the places marked "...") with input/output operations so as to interface the LOTOS specification with its real environment. This option must be used together with the -exec option. Not a default option.

Note: if filename.c.proto already exists in the current directory, caesar will not overwrite it, because it might have been modified manually.

-e7      
Do not perform the new (BDD based) optimization E7, which removes dead transitions, still preserving strong equivalence. Not a default option.

-e7old      
Perform the old (explicit-state based) optimization E7 instead of the new (BDD based) optimization E7. Not a default option.

-force      
Force caesar to regenerate filename.c even if not necessary. This option is only meaningful if caesar is used with options -exec (EXEC/CAESAR mode), -open (OPEN/CAESAR mode), or -simulator. Not a default option. By default caesar will attempt not to regenerate filename.c if this file already exists in the current directory, and if it has been modified more recently than
(1) the corresponding LOTOS file (filename.lotos, filename.lot, or filename.l),
(2) than any LOTOS library transitively included (using the "library" clause) in this LOTOS file, and
(3) than any C file transitively included (using the "#include" clause) in filename.c itself.

-french
Print messages in French. Opposite of -english. This option overrides the $CADP_LANGUAGE environment variable (see ENVIRONMENT VARIABLES below).

-functionality
Do not check functionality constraints (``exit'' and ``noexit''). Not a default option.

-gc      
Invoke the Boehm-Demers garbage collector to reuse the (potentially large) amounts of memory that have been allocated for abstract data types and that are no longer used. This option is especially suitable for LOTOS descriptions involving dynamic data structures, such as: lists, queues, stacks, etc. Not a default option.

-gradual
Apply the optimizations gradually when generating the network. By default, the optimizations are applied only after the network is fully generated. Using this option, the optimizations are applied to each sub-network generated from each operand of a parallel composition operator. This option is slower, but it can be useful for dealing with larger LOTOS descriptions and/or for generating smaller networks. Not a default option.

-graph      
Generate output file filename.gph, which contains the automaton in an undocumented, disk space expensive format. Not a default option.

-indent
Do not format using the shell-script located in $CADP/src/com/cadp_indent the file filename.c.proto generated by option -external. Not a default option.

-iso      
Use the standard LOTOS semantics defined in ISO 8807, disabling several non-standard language enhancements implemented in caesar. Namely, this option: (1) considers "i" and "I" as reserved keywords, thus preventing to declare any identifier named "i" or "I"; (2) enforces the standard (and seemingly questionable) semantics for flattening parameterized types, instead of the modified semantics proposed in the document "$CADP/doc/*/Garavel-Sighireanu-95.*". Not a default option.

-map      
Generate filename.map, which gives correspondence between sort and operation names occuring in filename.lotos and C type and function names occuring in filename.h. Not a default option.

-monitor
Open a window for monitoring in real-time the generation of a BCG graph (see option "-bcg" above). Not a default option.

-more command
Use command to display the error messages, instead of "$CADP/src/com/cadp_more", which is the default. command is a shell command (preferably enclosed in quotes or double quotes) containing the pathname of the chosen pager, possibly followed by a list of options. Not a default option.

-network
Generate output file filename.net, which contains the Petri net in an undocumented format. Not a default option.

-newstyle
When generating skeletons for EXEC/CAESAR's gate functions (see -external option above), use the new-style function declarations (i.e., with prototypes) introduced in ANSI/ISO Standard C. This option must be used together with the -external option. Default option when option -external is selected.

-oldstyle
When generating skeletons for EXEC/CAESAR's gate functions (see -external option above), use the old-style function declarations (i.e., without prototypes) available in Kerninghan and Ritchie C. This option is only applicable when gate functions are not overloaded, i.e., when each gate is always used with the same number of offers, and with offers of the same sorts and same directions (input or output). This option must be used together with the -external option. Not a default option.

-open      
Generate the graph module filename.c to be used in the OPEN/CAESAR environement. Not a default option.

-root instantiation
Restrict the behaviour of the specification to the specified instantiation, meaning that the behaviour-expression occurring after the behaviour keyword is actually replaced by instantiation. instantiation is a character string (preferably enclosed in single quotes) denoting a LOTOS process instantiation. It can have either the form 'P' or the form 'P [G1, ..., Gn]', where P is a process-identifier defined in filename.lotos, and where G1, ..., Gn are gate-identifiers. If '[G1, ..., Gn]' is omitted, it will be replaced by the formal gate-parameters list of process P. There should be at most one process named P in filename.lotos. This process P should have no value-parameters (an instantiation to process P' with value-parameters should be encapsulated in the definition of another process P without value parameters, to which the -root is applicable). Not a default option.

-safety      
Perform network reduction in order to replace all tau-transitions by epsilon-transitions, often leading to a smaller graph. This transformation preserves safety and trace equivalence, but neither strong, branching, nor observational equivalence. Not a default option.

-silent      
Execute silently. Opposite of -verbose. Default option is -verbose.

-simulator
Generate the simulator program filename.c and stop, neither compiling nor removing this file. This option is useful when the simulator program is so large that it breaks the C compiler, or when it compiles and executes too slowly. In such case, filename.c can be compiled and run on a more efficient machine. Not a default option.

-trigger optimization
Print statistics about which optimizations cause a given optimization to become effective. This option is only useful for CAESAR's development. Not a default option.

-verbose
Report activities and progress, including errors, to the user's screen. Opposite of -silent. Default option is -verbose.

-version
Display the current version number of the software and stop. Not a default option.

-v3      
Do not perform optimization V3, which discovers variables whose values remain constant during the simulation phase, and replaces them by constants. Not a default option.

-v4      
Do not perform optimization V4, which evaluates statically guards whose value is constant and removes transitions whose guard is false. Not a default option.

-warning
Suppress all warning diagnostics, at the risk of leaving actual issues in the LOTOS specification undetected. Not a default option.

Environment Variables

$CADP_LANGUAGE
If this variable is set, its value determines the language in which diagnostic messages will be reported. Possible values are 'french' and 'english'. Incorrect values will be ignored silently. If this variable is unset, it is given the default value 'french'.

$CADP_CC
If this variable is set, its value determines the name of the C compiler that will be invoked by caesar. See file $CADP/INSTALLATION for detailed information about this variable. If this variable is unset, the script-shell $CADP/src/com/cadp_cc will automatically determine the C compiler to be used by default.

$CADP_TMP
If this variable is set, its value determines the directory in which temporary files are created. If this variable is unset, it is given the default value '/tmp'.

$PAGER
If this variable is set, its value will be used by the script-shell $CADP/src/com/cadp_more to display any error messages or warnings.

Exit Status

When the source is erroneous, error messages are issued. Exit status is 0 if everything is alright, 1 otherwise.

Authors

Hubert Garavel and Wendelin Serwe (INRIA Rhone-Alpes)

Operands

filename.lotos
LOTOS specification (input)

filename.h
implementation in C of data types (input)

filename.c
C code of the simulator (output of -simulator)

filename.c
C code of the graph module (output of -open)

filename.c
C code of the kernel module (output of -exec)

filename.c.proto
skeleton for gate functions (output of -external)

filename.aut
automaton for ALDEBARAN (output)

filename.net
default Petri net format (output)

filename.gph
debugging automaton for debugging (output)

filename.err
detailed error messages (output)

filename.map
ADT correspondence table (output)

libname.lib
user ADT library (input)

Files

$CADP/lib/libname.lib
predefined ADT library (input)

$CADP/src/com/cadp_cc
C compiler shell

$CADP/src/com/cadp_more
pager shell

$CADP/gc
Boehm-Demers garbage collector (input)

$CADP/LICENSE
license file

$CADP_TMP/*.c
C code generated during type survey (temporary)

$CADP_TMP/*.c
C code generated during optimization (temporary)

$CADP_TMP/*.x
binary code for type survey (temporary)

$CADP_TMP/*.x
binary code for optimization (temporary)

$CADP_TMP/*.x
binary code of simulator program (temporary)

$CADP_TMP/*.inf
results of information phase (temporary)

$CADP_TMP/*.tsv
results of type survey (temporary)

$CADP_TMP/*.bpn
Basic Petri Net for optimization (temporary)

$CADP_TMP/*.oe7
results of old optimization E7 (temporary)

$CADP_TMP/*.ov3
results of optimization V3 (temporary)

$CADP_TMP/*.ov4
results of optimization V4 (temporary)

$CADP_TMP/*.ov7
results of optimization V7 (temporary)

See Also

CAESAR Reference Manual, OPEN/CAESAR Reference Manual, aldebaran , bcg , caesar.adt , caesar.bdd

Additional information is available from the CADP Web page located at http://cadp.inria.fr

Directives for installation are given in file $CADP/INSTALLATION.

Recent changes and improvements to this software are reported and commented in file $CADP/HISTORY.

Bugs

Known bugs are described in the Reference Manual of CAESAR. Please report new bugs to Hubert.Garavel@inria.fr


Table of Contents