from
The Free On-line Dictionary of Computing (8 July 2008)
Syntax/Semantic Language
S/SL
<language> (S/SL) A high level {specification language} for
{recursive descent parsers} developed by J.R. Cordy
<[email protected]> and R.C. Holt <[email protected]> at the
University of Toronto in 1980.
S/SL is a small language that supports cheap recursion and
defines input, output, and error token names (& values),
semantic mechanisms (class interfaces whose methods are really
escapes to routines in a host programming language but allow
good abstraction in the pseudo-code) and a pseudo-code program
that defines the syntax of the input language by the token
stream the program accepts. Alternation, control flow and
one-symbol look-ahead constructs are part of the language.
The S/SL processor compiles this pseudo-code into a table
(byte-codes) that is interpreted by the S/SL table-walker
(interpreter). The pseudo-code language processes the input
language in recursive descent LL1 style but extensions allow
it to process any LRk language relatively easily. S/SL is
designed to provide excellent syntax error recovery and
repair. It is more powerful and transparent than yacc but
slower.
S/SL has been used to implement production commercial
compilers for languages such as {PL/I}, {Euclid}, {Turing},
{Ada}, and {COBOL}, as well as {interpreters}, {command
processors}, and domain specific languages of many kinds.
(ftp://ftp.cs.queensu.ca/pub/cordy/ssl).
["Specification of S/SL: Syntax/Semantic Language", J.R. Cordy
and R.C. Holt, Computer Systems Research Institute, University
of Toronto, 1980].
["An Introduction to S/SL: Syntax/Semantic Language",
R.C. Holt, J.R. Cordy, and D.B. Wortman; ACM Transactions on
Programming Languages and Systems (TOPLAS), Vol 4, No. 2,
April 1982, pp 149-178].
["Hierarchic Syntax Error Repair", D.T. Barnard and R.C. Holt,
International Journal of Computing and Information Sciences,
Vol. 11, No. 4, August 1982, Pages 231-258.]
(2003-10-30)