You are here: irt.org | FOLDOC | Syntax%2fSemantic Language
<language> (S/SL) A high level specification language for
recursive descent parsers developed by J.R. Cordy
<holt@uwaterloo.ca> and R.C. Holt 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)
Nearby terms: syntax « Syntax-Case « syntax directed translation « Syntax/Semantic Language » syntax tree » synthesis » Synthesizer Specification Language FOLDOC, Topics, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, ?, ALL