Syntax/Semantic Language
Syntax/Semantic Language
(language)S/SL is a small language that supports cheap recursion anddefines input, output, and error token names (& values),semantic mechanisms (class interfaces whose methods are reallyescapes to routines in a host programming language but allowgood abstraction in the pseudo-code) and a pseudo-code programthat defines the syntax of the input language by the tokenstream the program accepts. Alternation, control flow andone-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 inputlanguage in recursive descent LL1 style but extensions allowit to process any LRk language relatively easily. S/SL isdesigned to provide excellent syntax error recovery andrepair. It is more powerful and transparent than yacc butslower.
S/SL has been used to implement production commercialcompilers 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. Cordyand R.C. Holt, Computer Systems Research Institute, Universityof Toronto, 1980].
["An Introduction to S/SL: Syntax/Semantic Language",R.C. Holt, J.R. Cordy, and D.B. Wortman; ACM Transactions onProgramming 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.]