SCOC(L)

NAME
scoc - Esterel finite state machine generator v5_92

SYNOPSIS
scoc [options] [file1 [file2 [...]]]

DESCRIPTION
The scoc compiler takes as input a circuit described in sc format (version 8 and linked, namely in main mode) and translates it into a finite state machine described in oc format (version 5). It replaces previous combination of scssc (or sccausal for cyclical circuits) and sscoc.
scoc reads one or more sc input files and produces a single oc output file. If no input file is specified, the standard input stream is read. If no output file is specified (using the -o option), the standard output stream is used.

EXAMPLES
scoc is usually invoked by the Esterel compiler when the user specifies -A on the command-line; in this case, additional options can be transmitted to scoc with the -scoc: option (multiple options must be within double-quotes). See the Esterel reference manual for more informations.
For a standalone use of scoc, if foo.sc is generated from an Esterel program, the commands:
    scoc foo.sc -o foo.oc
and
    scoc < foo.sc > foo.oc
produce the file foo.oc.

OPTIONS
The following options are common to all processors of the Esterel compiler:

-info
    Displays various informations about the processor compilation on the standard error stream and terminates, ignoring all other arguments.

-v  Turns verbose mode on: additional information concerning the compilation process are printed on the standard error stream. This option implies -show.

-version
    Displays the version name of the compiler on the standard error stream and terminates, ignoring all other arguments.

-w  Supresses all warning messages.

-W  Prints all warning messages (by default, only potentially harmful warnings are output).

The following options control how automata are computed:

-keepalltests
    When the internal hash-caching of transition trees is not disabled (namely if -nocache is not specified), useless tests of kind if a then b else b are detected and removed on the fly, but a posteriori: both branches were built, but only one was kept. Specifying this option prevents this removal, and aims to estimate the size of the automaton once built before being reduced.

-nocache
    Disables internal hash-caching of transition trees, then preventing the removal of useless tests (see -keepalltests) and optional output of shared transition trees (see -dags).

-noinputsort
    By default, inputs are sorted upon the number of registers they are likely to set, which avoid (unless -strongconstructiveness is specified) to test inputs which cannot have any influence for the state being built. This options disables this feature and can dramatically reduce compilation speed and increase the size of produced automata.

-strongconstructiveness
    By default, the propagation algorithm stops as soon as all required nets are evaluated, in order to improve compilation speed and avoid computing nets that cannot have have any influence on the produced automaton: according to the Esterel Constructive Semantics, scoc implements by default its weakest form. This option enforces the control of strong constructiveness, by making sure that each net stabilizes, although it can noticeably reduce compilation speed.

The following options control how automata are output:

-dags
    Outputs shared transition trees in the DAG table; this option does not make sense if -nocache is specified. Although this option can reduce the memory footprint of the produced automata, some old oc parser may hang on the DAG table.

-o  filename
    Outputs the result to the specified file filename, instead of the standard output stream.

-nofromfiletag
    By default, the name of the circuit file from which the automaton was produced is specified right after the module: keyword. This option disables this feature, which can be usefull when performing a syntactical comparison of automata.

-noversiontag
    By default, the version of the scoc compiler used to generate automata is specified right after the oc5: keyword. This option disables this feature, which can be usefull when performing a syntactical comparison of automata.

-simul
    Outputs additional information used by simulators, like emitted internal signals and state halt sets. Maintaining such information may reduce capabilities to share transition trees and increase the size of produced automata.

The remaining options provide interesting information on the standard error stream:

-dumpnets
    Performs a dump of the net table on several internal errors.

-show
    Dynamically displays the race between the number of generated states and the number of discovered states so far.

-size
    Displays statistics concerning the produced automaton size: the number of states, the number of actions and the number of action calls.

-stat
    Displays timing information at different stages of the compilation process.

KNOWN ISSUES
At this time, the format in which shared dags are output when -dags is specified is not compliant with occ.

SEE ALSO
The Esterel v5_92 Documentation.
esterel(1), occ(1), scssc(1), sccausal(1), sscoc(1).

IDENTIFICATION
Ecole des Mines de Paris (CMA) and INRIA.
Author: Yannis.BRES@cma.inria.fr.