tool: ssl
-
Language:
|
S/SL (Syntax Semantic Language)
|
|---|
-
Version:
|
?
|
|---|
-
Parts:
|
parser bytecode compiler, runtime
|
|---|
-
Author:
|
Rick Holt, Jim Cordy <cordy@qucis.queensu.ca> (language),
Rayan Zachariassen <rayan@cs.toronto.edu> (C implementation)
|
|---|
-
Location:
|
ftp://neat.cs.toronto.edu/pub/ssl.tar.Z
|
|---|
-
Description:
|
A better characterization is that S/SL is a language
explicitly designed for making efficient recusive-descent
parsers. Unlike most other languages, practicially the
LEAST expensive thing you can do in S/SL is recur. A
small language that defines input/output/error token
names (& values), semantic operations (which are really
escapes to a programming language but allow good
abstration 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. What I call an S/SL "implementation", is a
program that compiles this S/SL pseudo-code into a
table (think byte-codes) that is interpreted by the
S/SL table-walker (interpreter). I think the pseudo-code
language is LR(1), and that the semantic mechanisms turn it
into LR(N) relatively easily.
- +
more powerful and cleaner than yac
- -
slower than yacc
|
|---|
-
Reference:
|
Cordy, J.R. and Holt, R.C. [1980] Specification of S/SL:
Syntax/Semantic Language, Computer Systems Research
Institute, University of Toronto.
"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.
|
|---|
-
Updated:
|
September 25th, 1989
|
|---|
category: compiler generators and related tools
summary, or
expanded.
category: text manipulation
summary, or
expanded.
|
|