Jump to content

S/SL programming language

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Neilc (talk | contribs) at 18:05, 20 April 2006 (rv). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The Syntax/Semantic Language (S/SL) is a high level specification language for recursive descent parsers developed by James Cordy and Ric Holt at the University of Toronto in 1980.

S/SL is a small programming 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.