S/SL(ID:1017/ssl001)

Syntax/Semantic Language 


Syntax/Semantic Language. R.C. Holt & J. Cordy. A specification language for recursive descent parsers.


People:
Related languages
S/SL => PT   Spec written in
S/SL => Sequence Pascal   Spec written in
S/SL => SL   Subsystem
S/SL => SPECKLE   Spec written in
S/SL => Toronto Euclid   Spec written in

References:
  • Cordy, J.R. and Holt, R.C. "Specification of S/SL: Syntax/Semantic Language" 1979, rev 1980 University of Toronto. view details Abstract: S/SL is a programming language developed at the Computer Systems Research Group, University of Toronto as a tool for constructing compilers. It has been used to implement scanners, parsers, semantic analyzers, storage allocators and machine code generators. S/SL has been used to implement compilers for Euclid, PT Pascal and Speckle, a PL/1 subset. External link: Online copy
  • Holt, R. C., J. R. Cordy, et al. "An Introduction to S/SL: Syntax/Semantic Language." view details Abstract:      S/SL (Syntax/Semantic Language) is a language that was developed for implementing compilers. A subset called SL (Syntax Language) has the same recognition power as do LR(k) parsers. Complete S/SL includes invocation of semantic operations implemented in another language such as PASCAL. S/SL implies a top-down programming methodology. First, a data-free algorithm is developed in S/SL. The algorithm invokes operations on "semantic mechanisms.'' A semantic mechanism is an abstract object, specified, from the point of view of the S/SL, only by the effect of operations upon the object. Later, the mechanisms are implemented apart from the S/SL program. The separation of the algorithm from the data and the division of data into mechanisms reduce the effort needed to understand and maintain the resulting software. S/SL has been used to construct compilers for SPECKLE (a PL/I subset), PT (a PASCAL subset), Toronto EUCLID, and Concurrent EUCLID. It has been used to implement scanners, parser, semantic analyzers, and code generators. S/SL programs are implemented by translating them into tables of integers. A "table walker'' program executes the S/SL program by interpreting this table. The translation of S/SL programs into tables is performed by a program called the S/SL processor. This processor serves a function analogous to that served by an LR(k) parser generator. The implementation of S/SL is simple and portable. It is available in a small subset of PASCAL that can be easily transliterated into other high-level languages.
          in TOPLAS 4(2) April 1982 view details
    Resources