© 1998 IRISA / INRIA - University of Rennes 1 Version 1.194

Tempo Specializer - Suif Environment



MAIN  TUTOR  USER  REF  INSTALL  FAQ  LIMIT  BUGS  SUPPORT  SML  SUIF  DEMO  CONTRIB

Use of Suif in Tempo

The front-end of Tempo relies on the Suif compiler, developed at Standford University. Tempo uses Suif only for parsing and doing simple source-to-source transformations.

Tempo currently relies on version 1.1.2 of Suif. A port on version 2.0 should occur at some point.


Commands

In practice, the user only needs to run the tempo command; all other Suif commands are run indirectly from the Tempo top-level.
porky
Assorted code transformations. In practice, the user does not have to invoke this command explicitly; it is run when needed through Tempo SML top-level commands.

See also:



scc
Suif compiler driver program. In practice, the user does not have to invoke this command explicitly; it is run when needed through Tempo SML top-level commands.

See also:



snoot
Translate pre-processed C to SUIF. In practice, the user does not have to invoke this command explicitly; it is run by the scc shell command.

See also:



s2c
Convert a SUIF file to C. This tool is used to translate the Suif abstract syntax tree (in spd format) into a C text representation. In practice, the user does not have to invoke this command explicitly; it is run when needed through Tempo SML top-level commands.

In ANSI C, an uninitialized variable is implicitly set to 0 (NULL). So, s2c removes the useless initialization to 0. In order to feed Tempo with the original source C file, we have patched the orginial, distributed s2c so that it keeps variable initializations to zero. Thus we can know that the variable is static as, by default, uninitialized variables are dynamic.

See also:



s2st
Suif abstract syntax printer. This tool is used to translate the Suif abstract syntax tree (in spd format) into a representation readable by Tempo (in st format). In practice, the user does not have to invoke this command explicitly; it is run when needed through Tempo SML top-level commands.

This commands is behaves exactly as s2c (in particular, it accepts the same options) except that it displays a textual tree representation of the Suif abstract syntax instead of C text.

In ANSI C, an uninitialized variable is implicitly set to 0 (NULL). So, s2c removes the useless initialization to 0. In order to feed Tempo with the original source C file, we have patched the orginial, distributed s2c so that it keeps variable initializations to zero. Thus we can know that the variable is static as, by default, uninitialized variables are dynamic.

As s2c, s2st keeps variable initializations to zero (see s2c entry above).

See also:




Variables

Below are shell variables used by Suif. Except TEMPOSUIFHOME, you do not have to set them explicitly as the Tempo top level run by the tempo shell-level command will set them automatically for you.

MACHINE
Target Architecture. This variable is set automatically to one of the following possible values: At the moment, we use to SunOS4-Solaris compatibility package. That is why a case like sparc-sun-sunos5 does not exist.

SUIFHOME
Suif main directory. This variable is set to $TEMPOHOME/suif where TEMPOHOME is the name of the installation directory of Tempo.

SUIFPATH
Path to binaries. This variable is set to $SUIFHOME/$MACHINE/bin.

TEMPOSUIFHOME
Tempo-Suif main directory. This variable can be used to override the default setting of Suif variable SUIFHOME (performed by the tempo shell-level command) in order to run Suif commands other than those provided with Tempo. Be careful though that s2st will not be found outside of the distribution of Tempo (see s2st above).


MAIN  TUTOR  USER  REF  INSTALL  FAQ  LIMIT  BUGS  SUPPORT  SML  SUIF  DEMO  CONTRIB


Last modified: Thu Apr 30 15:59:44 MET DST 1998