<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=S%2FSL_programming_language</id>
	<title>S/SL programming language - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=S%2FSL_programming_language"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=S/SL_programming_language&amp;action=history"/>
	<updated>2026-05-07T20:22:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=S/SL_programming_language&amp;diff=299795&amp;oldid=prev</id>
		<title>imported&gt;OAbot: Open access bot: doi updated in citation with #oabot.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=S/SL_programming_language&amp;diff=299795&amp;oldid=prev"/>
		<updated>2023-11-09T01:46:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/OABOT&quot; class=&quot;extiw&quot; title=&quot;wikipedia:OABOT&quot;&gt;Open access bot&lt;/a&gt;: doi updated in citation with #oabot.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Refimprove|date=December 2009}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Syntax/Semantic Language&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;S/SL&amp;#039;&amp;#039;&amp;#039;) is an executable [[high-level programming language|high level]] [[specification language]] for [[recursive descent parser]]s, semantic analyzers and code generators developed by [[James Cordy]], [[Ric Holt]] and [[David Wortman]] at the [[University of Toronto]] in 1980.&amp;lt;ref&amp;gt;J. R. Cordy, R. C. Holt and D. B. Wortman, &amp;quot;S/SL: Syntax/Semantic Language - Introduction and Specification&amp;quot;, Technical Report CSRG-118, Computer Systems Research Group, University of Toronto, Sept. 1980&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S/SL is a small [[programming language]] that supports cheap [[recursion]] and defines input, output, and error token names (&amp;amp;amp; values), semantic mechanisms (class interfaces whose methods are really escapes to routines in a host programming language but allow good abstraction in the [[pseudocode]]) and a pseudocode 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.&lt;br /&gt;
&lt;br /&gt;
The S/SL processor [[compiler|compiles]] this pseudocode into a table (byte-codes) that is interpreted by the S/SL table-walker ([[Interpreter (computing)|interpreter]]). The pseudocode language processes the input language in [[LL(1)]] [[recursive descent]] style but extensions allow it to process any [[LR parser|LR(k)]] language relatively easily.&amp;lt;ref&amp;gt;{{cite journal | last1 = Barnard | first1 = D.T. | last2 = Cordy | first2 = J.R. | year = 1988 | title = SL Parses the LR Languages | doi = 10.1016/0096-0551(88)90010-0 | journal = Computer Languages | volume = 13 | issue = 2| pages = 65–74 }}&amp;lt;/ref&amp;gt;  S/SL is designed to provide excellent syntax error recovery and repair. It is more powerful and transparent than [[Yacc]] but can be slower.&lt;br /&gt;
&lt;br /&gt;
S/SL&amp;#039;s &amp;quot;semantic mechanisms&amp;quot; extend its capabilities to all phases of compiling, and it has been used to implement all phases of compilation, including [[Lexical analysis|scanners]], [[parser]]s, [[Semantic analysis (compilers)|semantic analyzers]], [[Code generation (compiler)|code generators]] and [[virtual machine]] interpreters in multi-pass language processors.&amp;lt;ref&amp;gt;{{cite journal | last1 = Holt | first1 = Richard C. | last2 = Cordy | first2 = James R. | last3 = Wortman | first3 = David B. | year = 1982 | title = An Introduction to S/SL: Syntax/Semantic Language | journal = ACM Transactions on Programming Languages and Systems | volume = 4 | issue = 2| pages = 149–178| doi=10.1145/357162.357164| doi-access = free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
S/SL has been used to implement production commercial [[compiler]]s for languages such as [[PL/I]], [[Euclid (programming language)|Euclid]], [[Turing (programming language)|Turing]], [[Ada (programming language)|Ada]], and [[COBOL]], as well as interpreters, command processors, and domain specific languages of many kinds.  It is the primary technology used in [[IBM]]&amp;#039;s ILE/400 COBOL compiler,&amp;lt;ref&amp;gt;Ian H. Carmichael and Stephen Perelgut. &amp;quot;S/SL revisited&amp;quot;. Proc. CASCON&amp;#039;95, Conference of the Centre for Advanced Studies on Collaborative Research, Toronto, Canada, November 1995 http://portal.acm.org/citation.cfm?id=781915.781926&amp;lt;/ref&amp;gt; and the [[ZMailer]] [[mail transfer agent]] uses S/SL&amp;lt;ref&amp;gt;ZMailer the Manual, http://www.zmailer.org/zman/zmanual.shtml&amp;lt;/ref&amp;gt; for defining both its mail router processing language and its RFC 822 email address validation.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:S SL programming language}}&lt;br /&gt;
[[Category:Compiling tools]]&lt;br /&gt;
[[Category:Parser generators]]&lt;/div&gt;</summary>
		<author><name>imported&gt;OAbot</name></author>
	</entry>
</feed>