Go to the previous, next section.

Glossary of Terms used in this Manual

.sm
See Environment File.

Environment File
When you start SM it looks in a file (by default called `.sm') to discover where to find files that it needs (such as the default macros, the help files, and the font files). You can access variables stored in the environment file yourself, although this is probably seldom done by non-gurus. For more details, @xref{Environment Variables}.

Expression
An SM expression is something that can appear on the right hand side of a SET command. More specifically, it is something that can appear as part of the right hand side of a SET command (this excludes implied do loops: SET x=1,10,2). Expressions may also appear in other contexts, such as in the ANGLE command, or in DEFINE name ( expression ). A formal definition of an expression is given by the YACC grammar in `control.y' as the non-terminal symbol expr.

Filecap
Binary files produced by different programmes (and languages, and even compilers) are not identical, Fortran `unformatted' files being a glaring example. A filecap file is a database used to describe the byte-by-byte format of binary files, to allow SM to read them (using the IMAGE command).

Graphcap
There are a very large range of graphics terminals (and laser printers and so forth) in this world, and each seems to have its own set of commands. A graphcap file is a database that is able to describe (almost) all of these dialects, allowing SM to plot on a wide range of devices

History
SM remembers commands as you type them, so that you can repeat them or modify them (which includes correcting mistakes). The set of remembered commands is referred to as the history buffer.

List
The word list is used in a few places in the manual in the specific sense defined by the YACC grammar in `control.y'. A list is simply a list of words or numbers, and its meaning depends on the context. For example, SET x=3*{1 2 32 will set the vector x to be 2 4 6, while MACRO hi { echo Hello2 will define the macro hi.

Macro
A macro is an abbreviation for a set of commands, so instead of typing a complicated sequence of commands you can simply type the macro's name. You can either think of macros as a new commands in their own right or as subroutines.

Mongo
Mongo is a plotting package written by John Tonry, and widely used in astronomy departments. SM's command language was based on Mongo's, and we have provided some support for an easy transition from Mongo to SM.

Stdgraph
SM uses the stdgraph device driver for most devices, using the information in the graphcap file (see section The Stdgraph Graphics Kernel).

String
A string to SM is a sequence of characters enclosed in single quotes: 'This is a string'. Strings are primarily used in vector expressions, but are also used in a few other places (e.g. to specify a format for a PRINT or READ command). Note that characters in double quotes are not strings to SM, merely characters protected from variable expansion.

Termcap
Terminals come in many, many, flavours and types. Their peculiarities are described by a termcap file, allowing SM's command editor to run on (almost) any terminal.

TeX
TeX is a typesetting language developed by Donald Knuth. We provide an emulation of certain parts of TeX's mathematics mode in SM's label commands.

Overload
A keyword (such as DEFINE or SET) is said to be overloaded if its meaning has been changed. Usually this will be by adding functionality, rather than by actually changing what it does.

Variable
A variable is an abbreviation for a sequence of characters, and may appear anywhere that the characters in question could appear. Even if the variable contains a number (e.g. 6.62559e-34) it is still just a characters, although SM may choose to treat them as a number in some contexts (e.g. the right-hand side of a SET command).

Vector
A set of one (actually, zero) or more elements. The elements can be either numerical (floating point) or strings. Vectors are SM's primary data type. Do not confuse a 1-element vector (a scalar) with a variable (see section String Variables).

YACC
The SM command language is written in a language called YACC (which is supported on Unix systems). We have provided an implementation of YACC called Bison in the SM distribution.

Go to the previous, next section.