Hyper Dictionary

English Dictionary Computer Dictionary Video Dictionary Thesaurus Dream Dictionary Medical Dictionary

Search Dictionary:  


Computing Dictionary

(S/SL) A specification language for recursive descent parsers by Rick C. Holt and Jim Cordy <cordy@cs.queensu.ca>. Rayan Zachariassen <rayan@cs.toronto.edu> 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].