S/SL(ID:1017/ssl001)
Syntax/Semantic Language
- Country: ca
- Began: 1975
- Published: 1979
- Type:Grammar and Syntax-oriented
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
|