Source : Free On-Line Dictionary of Computing
Syntax/Semantic Language
(S/SL) A specification language for {recursive descent
parser}s by Rick C. Holt and Jim Cordy .
Rayan Zachariassen produced the {C}
implementation.
Unlike most other languages, practicially the LEAST expensive
thing you can do in S/SL is recurse. A small language that
defines input, output, and error token names (& values),
semantic operations (which are really escapes to a programming
language but allow good abstraction in the pseudo-code) and a
pseudo-code program that defines a {grammar} by the {token}
stream the program accepts. {Alternation}, {control flow} and
1-symbol {lookahead} constructs are part of the language.
An S/SL implementation compiles this S/SL pseudo-code into a
table ({byte-codes}) that is interpreted by the S/SL
table-walker ({interpreter}). The pseudo-code language
probably has an {LR1 grammar} and the semantic mechanisms
probably turn it into an {LRn grammar} relatively easily. It
is more powerful and cleaner than yacc but slower.
{(ftp://ftp.cs.toronto.edu/pub/ssl.tar.Z)}.
["Specification of S/SL: Syntax/Semantic Language", Cordy,
J.R. and Holt, R.C., Computer Systems Research Institute,
University of Toronto, 1980].
["An Introduction to S/SL: Syntax/Semantic Language" by
R.C. Holt, J.R. Cordy, and D.B. Wortman, in ACM Transactions
on Programming Languages and Systems (TOPLAS), Vol 4, No. 2,
April 1982, Pages 149-178].
(1989-09-25)