| Definition: | | (S/SL) A specification language for recursive descent parsers by Rick C. Holt and Jim Cordy <[email protected]>. Rayan Zachariassen <[email protected]> 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. ["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) |