Programming Languages - S

Sample Program

S - AT&T. Statistical analysis. "S: An Interactive Environment for Data Analysis and Graphics", Richard A. Becker, Wadsworth 1984. "The New S Language", R.A. Becker et al, Wadsworth & Brooks, 1988. ISBN 0-53-409193- 8. Version S-Plus available from StatSci <>.

S* - Dasgupta, Simon Fraser U, 1978. A microprogramming language schema, which instantiates to a complete language for any given micromachine. Has Pascal-like syntax, with pre- and post-conditions. "Towards a Microprogramming Language Schema", S. Dasgupta, Proc 11th Ann Workshop Microprogramming (MICRO-11), 1978, pp.144-153.

S*A - Dasgupta, 1981. A high-level architecture description language, designed to be used with S*.

S*M - A nonprocedural hardware description language. "S*M, An Axiomatic, Non-procedural Hardware Description Language for CLocked Architectures", P.A. Wilsey, MS Thesis, U Southwestern Louisiana, 1985.

S3 - ALGOL-like system language for the ICL 2900 computer.

SAAL - Used on the Univac 1005 in the 1960's by the US Army Material Command.

SAC - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

SAC-1 - G.E. Collins. Early symbolic math system, written in FORTRAN. Proc 2nd Symp Symb Alg Manip pp.144-152 (1971).

SAC2 - Symbolic math system, compiles to FORTRAN or Common LISP. <>

SAD SAM - Query language by Lindsay. Sammet 1969, p.669.

SAFARI - Online text editing system by MITRE. Sammet 1969, p.685.

Safe Ada - A subset of Ada for writing safety-critical software. "Safe Ada - Language Study", Systeam AG (Aug 1987).


1. Early system on Larc computer. Listed in CACM 2(5):16 (May 1959).

2. Stanford Artificial Intelligence Language. Dan Swinehart & Bob Sproull, Stanford AI Project, 1970. A large ALGOL-60-like language for the DEC-10 and DEC-20. Its main feature is a symbolic data system based upon an associative store (originally called LEAP). Items may be stored as unordered sets or as associations (triples). Processes, events and interrupts, contexts, backtracking and record garbage collection. Block- structured macros. "Recent Developments in SAIL - An ALGOL-based Language for Artificial Intelligence", J. Feldman et al, Proc FJCC 41(2), AFIPS (Fall 1972). (See MAINSAIL).

SAINT - Symbolic Automatic INTegrator. J. Slagle, MIT 1961. Written in LISP. Sammet 1969, p.410.


1. Single Assignment Language.

2. Simple Actor Language. A minimal actor language, used for pedagogical purposes in Actors, A Model of Concurrent Computation in Distributed Systems, G. Agha, MIT Press 1986.

3. SPARK Annotation Language. ICL, Ltd. Used in the verification of SPARK programs against Z specifications.

SALEM - "SALEM - A Programming System for the Simulation of Systems Described by Partial Differential Equations", S.M. Morris et al, Proc SJCC 33(1), 1968.

S-Algol - Orthogonal data structures on Algol-60. "S-Algol Language Reference Manual", R. Morrison, TR CS/79/1 U St Andrews, 1979. "An Introduction to Programming with S-Algol", A.J. Cole & R. Morrison, Cambridge U Press 1982.


1. Symbolic Assembly Language Trainer. Assembly-like language implemented in BASIC by Kevin Stock, now at Encore in France.

2. Sam And Lincoln Threaded language. A threaded extensible variant of BASIC. "SALT", S.D. Fenster et al, BYTE (Jun 1985) p.147.

SAM76 - Claude Kagan. Macro language, a descendant of TRAC. Version for CP/M. Dr Dobbs J ca 1977.

SAMeDL - SQL Ada Module Description Language. Used to interface Ada applications to SQL-based DBMS's. Compilers for various databases available from Intermetrics. "Rationale for SQL Ada Module Description Language SAMeDL", SEI-92-TR-016. info: Marc Graham <>* // //

Sandman - DoD requirements that led to APSE.

SAP - Symbolic Assembler Program. IBM 704 assembly language, late 50's.

SARG - Used on the Uvivac 1004 in the 1960's by the US Army Material Command.

SAS - Statistical Analysis System. Statistical and matrix language, PL/I-like syntax. "A User's Guide to SAS", A.J. Barr, SAS Inst 1976.

SASL - Saint Andrews Static Language. Turner, 1976. A derivative of ISWIM with infinite data structures. Fully lazy and weakly typed. Designed for teaching functional programming, with very simple syntax. A version of the expert system EMYCIN has been written in SASL. "A New Implementation Technique for Applicative Languages", D.A. Turner, Soft Prac & Exp 8:31-49 (1979).

SASL+LV - Unifies logic and functional programming. A more complete version of FGL+LV, in SASL syntax. "Combinator Evaluations of Functional Programs with Logical Variables", G. Bage et al, TR UUCS-87-027, U Utah, Oct 1987.

SASL-YACC - See yacc.

Sather - ("Say-ther", named for the Sather Tower at UCB, as opposed to the Eiffel Tower) Steve M. Omohundro, ICSI, Berkeley 1991. Interactive object-oriented language with simple syntax, similar to Eiffel, but non- proprietary and faster. Sather 0.2 was nearly a subset of Eiffel 2.0, but Sather 1.0 adds many distinctive features. Parameterized classes, multiple inheritance, statically-checked strong typing, garbage collection. Generates C as an intermediate language. Versions for most workstations. (See dpSather, pSather, Sather-K). info: list:

Sather-K - Karlsruhe Sather. A sublanguage of Sather used for introductory courses in object-oriented design and typesafe programming. info:

SCALLOP - Medium-level language for CDC computers, used to bootstrap the first Pascal compiler.


1. "A Parallel Implementation of the SCAN Language", N.G. Bourbakis, Comp Langs 14(4):239-254 (1989).

2. DEC. A real-time language. [same as 1?]

SCEPTRE - Designing and analyzing circuits. "SCEPTRE: A Computer Program for Circuit and Systems Analysis", J.C. Bowers et al, P-H 1971.

Scheme - (originally "Schemer", by analogy with Planner and Conniver.) G.L. Steele & G.J. Sussman, 1975. A LISP dialect, small and uniform, with clean semantics. Scheme is applicative-order and lexically scoped, and treats both functions and continuations as first-class objects. RRS - "The Revised Report on Scheme", G.L. Steele et al, AI Memo 452, MIT, Jan 1978. R2RS - "The Revised Revised Report on the Algorithmic Language Scheme", W. Clinger, AI Memo 848, MIT Aug 1985. R3RS - "The Revised^3 Report on the Algorithmic Language Scheme", J. Rees et al, SIGPLAN Notices 21(12):37-79 (Dec 1986). R3.99RS - R4RS minus the macros R4RS - "The Revised^4 Report on the Algorithmic Language Scheme", W. Clinger et al, MIT (Nov 1991) (ftp from IEEE P1178-1990, "IEEE Standard for the Scheme Programming Language", ISBN 1-55937-125-0. Implementations: Scheme86 (Indiana U), MacScheme (Semantic Microsystems), PC Scheme (TI). (See T). "Orbit: An Optimizing Compiler for Scheme", D.A. Kranz et al, SIGPLAN Notices 21(7):281-292 (Jul 1986).* SCM interpreter in C, and Hobbit2 compiler (compiles to C), for Amiga, Atari-ST, Mac, MS-DOS, NOS/VE, VAX/VMS, Unix. Conforms to Revised^4 Report and IEEE P1178. //* (MIT-Scheme, Liar compiler) // (for Suns) // (compiler for 68K's) // (Gambit compiler for Amiga) // (Scheme In One Defun, George Carrette <>) list: repository:

Scheme-Linda - Ulf Dahlen, U Edinburgh, 1990. On the Computing Surface and the Symmetry. "Scheme-Linda", U. Dahlen et al, EPCC-TN-90-01 Edinburgh 1990.

School - Smalltalk-like but strongly typed, with separate inheritance hierarchies for types and classes. "Types in School", N. de la Rocque Rodriguez et al, SIGPLAN Notices 28(8):81-89 (Aug 1993)

Schoonschip - (Dutch for "beautiful ship") M. Veltman, CERN, 1964. Symbolic math, especially High Energy Physics. Algebra only, no derivatives. Originally implemented in CDC-6600 and 7600 assembly language, currently in 680x0 assembly language. Latest versions (Oct 1991) include Amiga, Atari ST, Sun 3/60, NeXT. info: David Williams <>


1. System Control Language. Command language for the VME/B operating system on the ICL2900. Block structured, strings, superstrings (lists of strings), int, bool, array types. Can trigger a block whenever a condition on a variable value occurs. Macros supported. Commands are treated like procedure calls. Default arguments. "VME/B SCL Syntax", Intl Computers Ltd 1980.

2. Symbolic Communication Language. Designed primarily for the manipulaiton of symbolic formulas. Featured pattern matching (which was partly the inspiration for SNOBOL), string operations in buffers, and automatic storage management. "A Language for Symbolic Communication", C.Y. Lee et al, Tech Mem 62-3344-4, Bell Labs, Sept 1962.

Scode - Internal representation used by the Liar compiler for MIT Scheme.

SCOOP - Structured Concurrent Object-Oriented Prolog. "SCOOP, Structured Concurrent Object-Oriented Prolog", J. Vaucher et al, in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988, pp.191-211.

SCOOPS - Scheme Object-Oriented Programming System. TI, 1986. Multiple inheritance, class variables.

SCRAP - CSIR, Pretoria, South Africa, late 1970's. Ran on Interdata and Perkin-Elmer computers. In use until the late 1980's.

Scratchpad I - Richard Jenks, Barry Trager, Stephen M. Watt & Robert S. Sutor, IBM Research, ca 1971. General-purpose language originally for interactive symbolic math. It features abstract parametrized datatypes, multiple inheritance and polymorphism. Implementations for VM/CMS and AIX. "Scratchpad User's Manual", RA 70, IBM (June 1975). Version: Scratchpad II. "Scratchpad II Programming Language Manual", R.D. Jenks et al, IBM, 1985. (See AXIOM.) Scratchpad II Newsletter: Computer Algebra Group, TJWRC, Box 218, Yorktown Hts, NY 10598.

Screamer - An extension of Common Lisp providing nondeterministic backtracking and constraint programming.

Screenwrite - Simple query language. Honeywell late 70's, Level 6 minis.

Scribe - Brian Reid. A text-formatting language.


1. Early system on IBM 702. Listed in CACM 2(5):16 (May 1959).

2. Real-time language. "A Communication Abstraction Mechanism and its Verification", N. Francez et al, Sci Comp Prog 6(1):35-88 (1986).

ScriptX - Kaleida Labs. Object-oriented, dynamic, time-based, multithreaded multiplatform language for interactive multimedia. Available soon for Windows and Macintosh. info:

SCROLL - String and Character Recording Oriented Logogrammatic Language. "SCROLL - A Pattern Recording Language", M. Sargent, Proc SJCC 36 (1970).

scsh - An extension language?

SDF - Syntax Definition Formalism. CWI. Language for lexical and syntactic specification. In Algebraic Specification, J.A. Bergstra et al eds, ACM Press 1989, Chap 6. "The Syntax Definition Formalism SDF - Reference Manual", J. Heering et al, Centre for Math & CS, Amsterdam, to appear.


1. System Software Development Language. System software for the B1700. "System Software Development Language Reference Manual", 1081346, Burroughs Corp (Dec 1974).

2. Specification and Description Language. CCITT. Specification language with both graphical and character-based syntaxes for defining interacting extended finite state machines. Used to specify discrete interactive systems such as industrial process control, traffic control, and telecommunication systems. Proc Plenary Assembly, Melbourne 14-25 Nov 1988, Fasc X.1, CCITT. "Telecommunications Systems Engineering Using SDL", R. Saracco et al, N-H 1989. Available from Verilog, MD. (See XDL).

3. Shared Dataspace Language. "A Shared Dataspace Language Supporting Large-Scale Concurrency", G. Roman et al, Proc 8th Intl Conf Distrib Comp Sys, IEEE 1988, pp.265-272.

4. Structure Definition Language. Used internally by DEC to define and generate the symbols used for VAX/VMS internal data structures in various languages.

5. System Description Language. language used by the Eiffel/S implementation of Eiffel to assemble clusters into a system. (see Lace).

SDL 92 - SDL[2] with object-orientation.

SDMS - Query language.

SEAL - Semantics-directed Environment Adaptation Language.

Sed - Stream editor. The input language used by the Unix stream editor.

SEESAW - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959).


1. Self-Extensible Language. "SEL - A Self-Extensible Programming Language", G. Molnar, Computer J 14(3):238-242 (Aug 1971).

2. Subset-Equational Language. Bharat Jayaraman. Declarative language combining sets and equational programming. Implemented in Quintus Prolog and C. "Towards a Broader Basis for Logic Programming", B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990. "Set Abstraction in Functional and Logic Programming", F.S.K. Silbermann <> et al, ACM Proc [?] 1989.

Self - Small, dynamically-typed object-oriented language, based on prototypes and delegation. Objects may inherit state, and dynamically change their patterns of inheritance. Threads. "Self: The Power of Simplicity", David Ungar <> et al, SIGPLAN Notices 22(12):227-242 (OOPSLA '87) (Dec 1987). First implemented: Craig Chambers, 1991 ("Self-91"). Version: 3.0 ("Self-93") in C++ and Self* for Sparc

list: request:

SEM - Semantic specification language for COPS. "Metalanguages of the Compiler Production System COPS", J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed W. Henhapl, Tech Hochs Darmstadt 1978, pp.122-159.

Seneca - See Oberon-V

SEPIA - Standard ECRC Prolog Integrating Applications. Prolog with many extensions including attributed variables ("metaterms") and declarative coroutining. "SEPIA", Micha Meier <> et al, TR-LP-36 ECRC, March 1988. Version 3.1 available for Suns and VAX. (See ECRC-Prolog). info:

Seque - "Seque: A Programming Language for Manipulating Sequences", R.E. Griswold et al, Comp Langs 13(1):13-22 (1988).

Sequel -

1. Precursor to SQL. "System R: Relational Approach to Database Management", IBM Res Lab, San Jose, reprinted in Readings in Database Systems.

2. U Leeds. Theorem prover specification language. Pattern matching notation similar to Prolog. Compiled into Lisp. Proc ICJAI 13.*

SESL - State and Event Specification Language. [?]

SETL - SET Language. Courant Inst, early 70's. A very high level set-oriented language. Data types include sets (unordered collections), tuples (ordered collections) and maps (collections of ordered pairs). Expressions may include quantifiers ('for each' and 'exists'). The first Ada translator was written in SETL. "Programming With Sets - An Introduction to SETL", Jacob T. Schwartz et al, Springer 1986.

SETL2 - SETL with more conventional Ada-like syntax, lexical scoping, full block structure, first-class functions and a package and library system. Kirk Snyder <>. "The SETL2 Programming Language", W. Kirk Snyder, Courant Inst TR 490, Jan 1990., for MS-DOS, OS/2, Mac, Unix workstations

SETL/E - See ProSet.

SETS - Set Equation Transformation System. Symbolic manipulation of Boolean equations. "Efficient Ordering of Set Expressions for Symbolic Expansion", R.G. Worrell et al, J ACM 20(3):482-488 (Jul 1973).

SEUS - R. Weyrauch et al. Language allowing functions to return multiple values. Implemented but never published. Mentioned in "Evolution of Lisp", G.L. Steele et al, SIGPLAN Notices 28(3):231-270 (March 1993).

SEXI - String EXpression Interpreter. Early name of SNOBOL.

SFD-ALGOL - System Function Description-ALGOL. Extension of ALGOL for synchronous systems. Sammet 1969, p.625.

SFL - System Function Language. Assembly language for the ICL2900. "SFL Language Definition Manual", TR 6413, Intl Computers Ltd.

SFLV - Unifies logic and functional programming. SASL+LV with unification moved from actual/formal parameter matching to equational clauses. "Static Analysis of Functional Programs with Logical Variables", G. Lindstrom in Programming Languages Implementation and Logic Programming, P. Deransart et al eds, LNCS 348, Springer 1988.

SGML - Standard Generalized Markup Language. "SGML - The User's Guide to ISO 8879", J.M. Smith et al, Ellis Harwood, 1988. ISO/IEC 8879-1986. an SGML parser // another SGML parser // yet another SGML parser //* a general formatter for many ISO DTD's including SGML, can produce ASCII or Latex output

sh - (or "Shellish"). S.R. Bourne. Command shell interpreter and script language for Unix. "Unix Time-Sharing System: The Unix Shell", S.R. Bourne, Bell Sys Tech J 57(6):1971-1990 (Jul 1978).

SHACO - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959).

SHADOW - Barnett & Futrelle, 1962. Syntax-directed compiler. Predecessor to SNOBOL? Sammet 1969, p.448, 605.

Sharp APL - "A Dictionary of the APL Language", K. Iverson, Pub 0402, Sharp Assocs, Toronto, 1985.

SHEEP - Symbolic math, especially tensor analysis and General Relativity. Inge Frick, Stockholm, late 70's to early 80's. Implemented in DEC-10 assembly language, then in several LISPs. Current version for Sun-3, based on Portable Standard LISP. "Sheep, a Computer Algebra System for General Relativity", J.E.F. Skea et al in Proc First Brazilian School on Comp Alg, W. Roque et al eds, Oxford U Press 1993, v2.

SHELL - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

Short Code or SHORTCODE - John Mauchly, 1949. Pseudocode interpreter for math problems, on Eckert and Mauchly's BINAC, later on UNIVAC I and II. Possibly the first attempt at a higher level language. Sammet 1969, p.129.

Show-And-Tell - Visual dataflow language designed for use by elementary school children. "A Visual Language for Keyboardless Programming", T. Kimura et al, TR WUCS-86-6, CS Dept Washington U, Mar 1986. "Show and Tell: A Visual Language", T.D. Kimura et al in Visual Programming Environments: Paradigms and Systems, E.P. Glinert ed, IEEE Comp Sci Press, 1990, pp.397-404.

SICStus Prolog - SICS (Swedish Inst Comp Sci), Box 1263, S-164 28 Kista, Sweden. info: list:

SIFT - SHARE Internal FORTRAN Translator. Translation utility designed for converting FORTRAN II to FORTRAN IV. The word "sift" was often used as a verb to describe converting code from one language to another. Sammet 1969, p.153.

Sig - Signal Processing, Analysis, and Display program. This is an environment with an associated programming language. Jan Carter, Argonne Natl Lab, (312)972-7250.

SIGLA - SIGma LAnguage. Olivetti. Language for industrial robots. "SIGLA: The Olivetti Sigma Robot Programming Language", M. Salmon, Proc 8th Intl Symp on Industrial Robots, 1978, pp.358-363.

SIGNAL - Le Guernic et al, INRIA. Synchronous dataflow language. An application is a relation described as a set of equations. The compiler includes a formal calculus on sets of instants. "SIGNAL - A Data Flow-Oriented Language for Signal Processing," P. le Guernic, IEEE Trans Acoustics Speech & Signal Proc, ASSP-34(2):362-374 Apr 1986.


1. "SIL - A Simulation Language", N. Houbak, LNCS 426, Springer 1990.

2. SNOBOL Implementation Language. Intermediate language forming a virtual machine for the implementation of portable interpreters. "The Design of Transportable Interpreters", F. Druseikis, SNOBOL4 Project Document S4D49, U Arizona (Feb 1975). Version: SIL/2.

Silage - Synchronous DSP specification language. "Silage Reference Manual, Draft 1.0", D.R. Genin & P.N. Hilfinger, Silvar-Lisco, Leuven 1989.

SIMAN - SIMulation ANalysis. C. Dennis Pegden, 1983. Language for simulations, especially manufacturing systems. "Introduction to Simulation using SIMAN", C.D. Pegden et al, McGraw-Hill 1990.

SIMCMP - A simple bootstrap language and compiler, used to compile FLUB. Implementing Software for Non-Numeric Applications, W. M. Waite, P-H 1973. Implemented in Fortran.

SIML/I - Simulation language, descendant of ASPOL. "The Simulation Language SIML/I", M.H. MacDougall, Proc NCC 1979, pp.39-44.

Simone - A. Hoare et al. Simulation language based on Pascal. "Quasiparallel Programming", W.H. Kaubisch et al, Soft Prac & Exp 6:341-356 (1976).

SIMPAC - Early simulation language with fixed time steps. "Simpac User's Manual", R.P. Bennett et al, TM-602/000/000, Sys Devel Corp, Apr 1962.

SIMPAS - Event scheduling language, implemented as Pascal preprocessor. "SIMPAS - A Simulation Language Based on Pascal", R.M. Bryant in Proc 1980 Winter Sim Conf, T.I Oren et al eds, pp.559-572.


1. Simulation language, descendant of OPS-4, compiled into PL/I on Multics. "The SIMPL Primer", M.W. Jones et al, Oct 1971.

2. Single Identity Micro Programming Language. C. Ramamoorthy et al, UC Berkeley, 1974. An Algol 60-like microprogramming language, the first to allow sequential specification of horizontal microprograms. Compiler in SNOBOL4. C.V. Ramamoorthy et al, "A High Level Language for Horizontal Microprogramming", IEEE Trans Comput C-23(8):791-801 (Aug 1974).


1. Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

2. Simulation of Industrial Management Problems with Lots of Equations. R.K. Bennett, 1958. Predecessor to DYNAMO, for IBM 704.

SIMPL/I - Simulation language implemented as a PL/I preprocessor. "SIMPL/I (Simulation Language Based on PL/I). Program Reference Manual", IBM SH19- 5060-0 (June 1972).

SIMPL-T - Base language for a family of languages and compilers. "SIMPL-T, A Structured Programming Language", V.R. Basili, Paladin House 1976.

SIMSCRIPT - Harry Markowitz et al, Rand Corp 1963. Implemented as a Fortran preprocessor on IBM 7090. Large discrete simulations, influenced Simula. "SIMSCRIPT: A Simulation Programming Language", P.J. Kiviat et al, CACI 1973. Versions: SIMSCRIPT I.5 (CACI 1965 - produced assembly language), SIMSCRIPT II, SIMSCRIPT II.5. CACI, (619)457-9681.

SIMULA I - SIMUlation LAnguage. Kristen Nygaard & Ole-Johan Dahl, designed 1962, implemented 1964. Extension to ALGOL 60 for the Univac 1107, for discrete simulation. Coroutines.

SIMULA 67 - A general-purpose successor to SIMULA I, in which the simulation support is defined in object-oriented terms. Introduced the record class, leading the way to data abstraction and object-oriented programming. Garbage collection.

SIMULA - Current version of SIMULA 67. Used as the introductory programming language at Lund Inst Tech, Sweden and U Bergen, Norway. "Object-Oriented Programming with SIMULA", Bjorn Kirkerud, A-W 1989. "Data Processing - Programming Languages - SIMULA", Swedish Standard SS 63 61 14 (1987), ISBN 91-7162-234-9, available through ANSI. Association for SIMULA Users, Royal Inst of Tech, S-100 44 Stockholm, Sweden. Simula a.s., Postboks 4403 - Torshov, N-0402 Oslo 4, Norway, versions for almost every computer.* info: Henry Islo <>

Simulating Digital Systems - FORTRAN-like language for describing computer logic design. Sammet 1969, p.622.

SINA - "An Implementation of the Object-Oriented Concurrent Programming Language SINA", A. Tripathi et al, Soft Prac & Exp 19(3):235-256 (1989).

SIPLAN - SIte PLANning computer language. Interactive language for space planning. "Formal Languages for Site Planning", C.I. Yessios in Spatial Synthesis for Computer-Aided Design, C. Eastman ed, Applied Science Publ 1976.

Siprol - Signal Processing Language. A DSP language. "SIPROL: A High Level Language for Digital Signal Processing", H. Gethoffer, Proc ICASSP-80, 1980, pp.1056-1059.

SIR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).

Siri - Horn <>, CMU 1991. Object-oriented constraint language using a single abstraction mechanism. A conceptual blend of BETA and Bertrand. Similar to Kaleidoscope. "Constraint Patterns as a Basis for Object-Oriented Constraint Programming", B. Horn, OOPSLA '92 (Sept 1992).

SISAL - Streams and Iteration in a Single Assignment Language. James McGraw et al, U Manchester, Lawrence Livermore, DEC and CSU 1983. Single assignment language with strict semantics, automatic parallelization, efficient execution. Outputs a dataflow graph in IF1 (Intermediary Form 1). Derived from VAL, adds recursion and finite streams. Pascal-like syntax. Designed to be a common high-level language for numerical programs on a variety of multiprocessors. "A Report on the SISAL Language Project", J.T. Feo et al, J Parallel and Distrib Computing 10(4):349-366 (Dec 1990). Implementations exist for Cray X-MP, Y-MP, Cray-2, Sequent, Encore Alliant, dataflow architectures, transputers and systolic arrays. contact: David Cann <>, Rod Oldehoeft <>. info:

SISAL 90 - A SISAL extension with higher order functions, polymorphism.

Sketchpad - I. Sutherland, 1963. Computer-aided design. Constraints using value inference. Introduced the "ring" list structure. "Sketchpad: A Man- Machine Graphical Communication System", I.E. Sutherland, MIT Lincoln Lab, TR 296 (Jan 1963). Sammet 1969, p.678.

Skim - Alain Deutsch <> et al, France. Scheme implementation with packages and other enhancements.

SKOL - FORTRAN pre-processor for COS (Cray Operating System).

SL5 - String and list processing language with expression-oriented syntax. Coroutines. "An Overview of SL5", Ralph E. Griswold, SIGPLAN Notices 12(4):40-50 (Apr 1977).


1. Simulation Language for Alternative Modeling. Simulation language, descendant of GASP. Implemented as Fortran preprocessor.

2. Continuous simulation language. "SLAM - A New Continuous Simulation Languae", N.A. Wallington et al, in SCS Simulation Council Proc Series: Toward Real-Time Simulation (Languages, Models and Systems), R.E. Crosbie et al eds, 6(1):85-89 (Dec 1976).


1. R.A. Sibley. CACM 4(1):75-84 (Jan 1961).

2. Set LANGuage. Jastrzebowski, ca 1990. C extension with set-theoretic data types and garbage collection. "The SLANG Programming Language Reference Manual, Version 3.3", W. Jastrzebowski <>, 1990.

3. Structured LANGuage. Michael Kessler, IBM. A language based on structured programming macros for IBM 370 assembly language. "Project RMAG: SLANG (Structured Language) Compiler", R.A. Magnuson, NIH- DCRT-DMB-SSS-UG105, NIH, DHEW, Bethesda, MD 20205 (1980).

4. "SLANG: A Problem Solving Language for Continuous-Model Simulation and Optimization", J.M. Thames, Proc 24th ACM Natl Conf 1969.

S-Lang - Stack-based postfix language, used in the JED editor. info: John E. Davis <> ftp://amy/*

SLIM - A VLSI language for translating DFA's into circuits. J.L. Hennessy, "SLIM: A Simulation and Implementation Language for VLSI Microcode", Lambda, Apr 1981, pp.20-28.

SLIP - Symmetric LIst Processsor. J. Weizenbaum, early-60's. Language for list processing using doubly-linked lists. Originally embedded in FORTRAN, later also embedded in MAD and ALGOL. "Symmetric List Processor", J. Weizenbaum CACM 6:524-544(1963). Sammet 1969, p.387.

SLIPS - "An Interpreter for SLIPS - An Applicative Language Based on Lambda-Calculus", V. Gehot et al, Comp Langs 11(1):1-14 (1986).

SLLIC - Intermediate language developed at HP. An infinite-register version of the Precision Architecture instruction set?

Sloop - "Parallel Programming in a Virtual Object Space", S. Lucco, SIGPLAN Notices 22(12):26-34 (OOPSLA '87) (Dec 1987).

SMALGOL - SMall ALGOL. Subset of ALGOL 60. "SMALGOL-61", G.A. Bachelor et al CACM 4(11):499-502 (Nov 1961). Sammet 1969.


1. Functional, lazy, untyped. "SMALL - A Small Interactive Functional System", L. Augustsson, TR 28, U Goteborg and Chalmers U, 1986.

2. A toy language used to illustrate denotational semantics. "The Denotational Description of Programming Languages", M.J.C. Gordon, Springer 1979.

Small-C - A subset of C. Compiler source in C producing 8080 code in Dr Dobb's J, May 1980 and Dec 1982. "The Small-C Handbook," James Hendrix, Reston 1984.

Smalltalk - Software Concepts Group, Xerox PARC, led by Alan Kay, early 70's. Took the concepts of class and message from Simula-67 and made them all-pervasive, the quintessential object-oriented language. Innovations included the bitmap display, windowing system and use of mouse. Early versions: Smalltalk-72, Smalltalk-74, Smalltalk-76 (inheritance taken from Simula, and concurrency), and Smalltalk-78. "The Smalltalk-76 Programming System Design and Implementation", D.H. Ingalls, 5th POPL, ACM 1978, pp.9- 16.

Smalltalk-80 - "Smalltalk-80: The Language and Its Implementation" ("The Blue Book"), Adele Goldberg et al, A-W 1983. BYTE 6(8) (Aug 1981). archive: GNU Smalltalk v1.1 archive: // mail server:

SmalltalkAgents - QKS. Smalltalk with closures. [?]

Smalltalk DB - Formerly OPAL. Language of the object-oriented database GemStone. "Making Smalltalk a Database System", G. Copeland et al, Proc SIGMOD'84, ACM 1984, pp.316-325.

Smalltalk/V - First widely available version of Smalltalk, for PC, Mac. Digitalk, 1986.

SmallVDM - "SmallVDM: An Environment for Formal Specification and Prototyping in Smalltalk", in Object Oriented Specification Case Studies, K. Lano et al eds, P-H 1993.

SmallWorld - Object-oriented language. "SW 2 - An Object-based Programming Environment", M.R. Laff et al, IBM TJWRC, 1985.


SMIL - Machine language for a Swedish computer.


1. Standard ML. R. Milner <> ca. 1984. Aimed to unify the dialects of ML, has evolved into a robust general-purpose language. Functional, with imperative features. Environment based, strict. Adds to ML the call-by-pattern of Hope, recursive data types, reference types, typed exceptions, and modules. (The "core" language excludes the modules.) "A Proposal for Standard ML", R. Milner, ACM Symp on LISP and Functional Prog 1984, pp.184-197. Implementations: SML/NJ - Standard ML of New Jersey, Version 0.75 and // Edinburgh SML - Core language only. Byte-code interpreter in C. Ported to Amiga, Atari, Archimedes and IBM PC. info: <> EdML V 0.44 Moscow SML - Sergei Romanenko <> Core language only. Based on CAML Light and the ML Kit. For Unix, MS-DOS, and MS Windows.* info:Peter Sestoft <> POPLOG ML - U Sussex. For the Poplog system. Poly/ML - Implemented in Poly[1], for MC68020 and SPARC. Abstract Hardware Ltd <>. ANU ML - Aust Natl U. For MC68020, VAX and Pyramid. Micro ML - U Umea, Sweden. Interpreter of an ML subset, for MS-DOS. list:, a lazy version sml2c - portable, written in SML. Language extensions include first- class continuations, asynchronous signal handling. info: <>

2. Small Machine Language. Barnes, ICI 1969. Real-time language, an ALGOL variant, and the predecessor of RTL. "SML User's Guide", J.G.P. Barnes, ICI, TR JGPB/69/35 (1969).

SML# - An extension of SML/NJ with polymorphic field selection and nondestructive field update. "A Compilation Method for ML-style Polymorphic Record Calculi", A. Ohori, POPL 1992.*

SML/NJ - Standard ML of New Jersey. An implementation of SML by Andrew Appel at Princeton <> and Dave MacQueen at AT&T <>. "Standard ML of New Jersey", A. Appel et al, "Proc Third Intl Symp on Prog Lang Impl and Logic Programming", LNCS Springer 1991. Versions for Unix, Mac* Version 0.93 list:

SMoLCS - Specification metalanguage used for a formal definition of Ada. "An Introduction to the SMoLCS Methodology", E. Astesiano, U Genova 1986.

SMP - Steven Wolfram's earlier symbol manipulation program, before he turned to Mathematica. "SMP Handbook", C. Cole, S. Wolfram et al, Caltech 1981.


1. Early interpreted text-processing language for beginners, close to basic English. "Computer Programming in English", M.P. Barnett, Harcourt Brace 1969. [For IBM 360?]

2. "Some Proposals for SNAP, A Language with Formal Macro Facilities", R.B. Napper, Computer J 10(3):231-243 (1967). [same as 1?]

SNOBOL - StriNg Oriented symBOlic Language. David Farber, Ralph Griswold & I. Polonsky, Bell Labs 1962-3. String processing language for text and formula manipulation. "SNOBOL, A String Manipulating Language", R. Griswold et al, J ACM 11(1):21 (Jan 1964).

SNOBOL2 - Brief existence, featured built-in functions, but not programmer- defined ones. "SNOBOL2", D.J. Farber, R.E. Griswold and I.P. Polonsky, TR Bell Labs, Apr 1964.

SNOBOL3 - 1965. SNOBOL with user-defined functions. SNOBOL 6.3 compiler for PDP-6 and PDP-10, written in SNOBOL. "The SNOBOL3 Programming Language", D.J. Farber et al, Bell Sys Tech J 45(6):895-944 (Jul 1966).

SNOBOL4 - Griswold et al, 1967. Quite distinct from its predecessors. Declarative with dynamic scope. Patterns are first-class data objects that can be constructed by concatenation and alternation. Success and failure used for flow control. Delayed (unevaluated) expressions can be used to implement recursion. Table data type. Strings generated at run-time can be treated as programs and executed. "The SNOBOL4 Programming Language", Ralph E. Griswold et al, P-H 1971. (See FASBOL, SPITBOL, SIL). //* Unix port of the original macro implementation

SITBOL - "SITBOL Version 3.0", J.F. Gimpel, TRS4D30b, Bell Labs 1973.

SNOOPS - Craske, 1988. An extension of SCOOPS with meta-objects that can redirect messages to other objects. "SNOOPS: An Object-Oriented language Enhancement Supporting Dynamic Program Reeconfiguration", N. Craske, SIGPLAN Notices 26(10): 53-62 (Oct 1991).

SO 2 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959).

SOAP - Symbolic Optimal Assembly Program. IBM 650 assembly language. "Optimal" refers to rearranging instructions on slowly rotating drum memory. Listed in CACM 2(5):16 (May 1959). Versions: SOAP I, SOAP II, CASE SOAP III.

SOAR - State, Operator And Result. A. Newell, early 80's. A general problem-solving production system architecture, intended as a model of human intelligence. Originally implemented in LISP and OPS5, currently in Common Lisp. "The SOAR Papers", P.S. Rosenbloom et al eds, MIT Press 1993. Version: Soar6 info: doc:

SOCRATIC - [Not a language?] Bolt, Beranek & Newman. Early interactive learning system. Sammet 1969, p.702.

SODA - Symbolic Optimum DEUCE Assembly Program. Symbolic assembler for a one-level storage virtual machine for the English ELectric DEUCE. "SODA Manual of Operation", R. C> Brigham & C. G. Bell, School of Elec Eng, U New S Wales, Sydney, NSW (1958).

SODAS - D.L. Parnas & J.A. Darringer. Proc FJCC 31:449-474, AFIPS (Fall 1967).

SOHIO - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959).


1. Simulation Oriented Language. Knuth & McNeley. ALGOL extension for discrete simulation. "SOL - A Symbolic Language for General Purpose System Simulation", D.E. Knuth et al, IEEE Trans Elec Comp, EC-13(4):401-408 (Aug 1964). Sammet 1969, p.656.

2. Second-Order Lambda calculus. A typed lambda calculus. "Abstract Types have Existential Type", J. Mitchell et al, 12th POPL, ACM 1985, pp.37-51.

3. Semantic Operating Language. Language for manipulating semantic networks for building cognitive models, particularly for natural language understanding. "Explorations in Cognition", D.A. Norman et al, W.H. Freeman 1974.

SOLO - Name inspired by SOL[3] + LOGO. A variant of LOGO with primitives for dealing with semantic networks and pattern matching rather than lists. "A User-Friendly Software Environemnt for the Novice Programmer", M. Eisenstadt <>, CACM 27(12):1056-1064 (1983).

Solve - Parallel object-oriented language. "Message Pattern Specifications: A New Technique for Handling Errors in Parallel Object- Oriented Systems", J.A. Purchase et al, SIGPLAN Notices 25(10):116-125 (OOPSLA/ECOOP '90) (Oct 1990).

SP - Simplicity and Power. Prolog-like. "Simplicity and Power - Simplifying Ideas in Computing", J.G. Wolff, Computer J 33(6):518-534 (Dec 1990).

SPADE - Specification Processing And Dependency Extraction. Specification language. G.S. Boddy, ICL Mainframes Div, FLAG/UD/3DR.003

SPAR - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

SPARK - Southampton U and Program Validation, Ltd. An annotated subset of Ada for formal verification. Eliminates derived types, anonymous types, access types, variant records, recursion, generics, tasking and exceptions. "SPARK - An Annotated Ada Subset for Safety-Critical Programming", Tri-Ada '90. info:

SPARKS - FORTRAN superset, used in Fundamentals of Data Structures, E. Horowitz & S. Sahni, Computer Science Press 1976.

Speakeasy - Simple array-oriented language with numerical integration and differentiation, graphical output, aimed at statistical analysis. "Speakeasy", S. Cohen, SIGPLAN Notices 9(4), (Apr 1974). "Speakeasy-3 Reference Manual", S. Cohen et al. 1976.

Spec - Specification language. Expresses black-box interface specifications for large distributed systems with real-time constraints. It incorporates conceptual models, inheritance and the event model. A descendant of MSG.84. "An Introduction to the Specification Language Spec", V. Berzins et al, IEEE Software 7(2):74-84 (Mar 1990).

SPECIAL - SRI specification language. [HDM?] "SPECIAL - A Specification and Assertion Language", L. Robinson et al, TR CSL-46, SRI, Jan 1987.

SPECOL - "SPECOL - A Computer Enquiry Language for the Non-Programmer", B.T. Smith, Computer J 11:121 (1968).

SPEED - Early system on LGP-30. Listed in CACM 2(5):16 (May 1959).

Speedcoding - John Backus, 1953. A pseudocode interpreter for math on IBM 701, IBM 650. Sammet 1969, p.130.

Speedcoding 3 - Listed in CACM 2(5):16 (May 1959).

SPEEDEX - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959).

SP/k - Subset PL/I, k=1..8. A series of PL/I subsets, simplified for student use. "SP/k: A System for Teaching Computer Programming", R.C. Holt et al, CACM 20(5):301-309 (May 1977).

SPG - System Program Generator. A compiler-writing language. "A System Program Generator", D. Morris et al, Computer J 13(3) (1970).

SPIT - Language for IBM 650. (See IT).

SPITBOL - SPeedy ImplemenTation of snoBOL. "Macro SPITBOL - A SNOBOL4 Compiler", R.B.K. Dewar et al, Soft Prac & Exp 7:95-113, 1971. Current versions: SPITBOL-68000, Sparc SPITBOL from Catspaw Inc, (719)539-3884.


1. Synchronous Programming Language. A DSP language. "Introduction to the SPL Compiler", Computalker Consultants, 1986.

2. Space Programming Language. Realtime language used by the US Air Force for aerospace software. Aka SPL/J6. Similar to JOVIAL. "Space Programming Language Development", SAMSO TP 70-325, System Development Corp (Se 1970). (See CLASP).

3. System Programming Language. HP, 1977. An ALGOL-like language for the HP3000 computer allowing inline assembly code. MPE, the OS for the HP3000 was written in SPL. Pub.No.30000-90024, HP.

4. Systems Programming Language. PRIME Computer, 80's. A variant of PL/I used on PRIME computers. PL/I subset G, less I/O plus a few extensions. SPL User's Reference Guide, Prime. (See PL/P.)

5. Systems Programming Language. D.B. Wortman, U Toronto. Philips Data Sys, Netherlands, 1971. PL/I subset/extension for the P1000. Symbolic constants, pointer arithmetic, inline assembly code. Used to implement compilers, operating systems, and database. "Experiences With SPL", J. Klunder in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp.385-393. [can 4 and 5 possibly be the same?]

6. Student Programming Language. A translator-interpreter for a dialect of PL/I. SPLash! -

1. Software Research Northwest, 1987. Compiler for SPL[3].

2. Systems Programming LAnguage for Software Hackers. Mentioned in TeX for the Impatient, Paul W. Abrahams, A-W 1990.

SPL/I - Signal Processing Language I. Intermetrics. General language designed for acoustic signal processing. Graphics and multiprocessing features. "SPL/I Language Reference Manual", M.S. Kosinski, Intermetrics Report 172-1 (July 1976).

SPLINTER - PL/I interpreter with debugging features. Sammet 1969, p.600.

Split-C - Parallel extension of C for distributed memory multiprocessors. Aims to provide efficient low-level access to the underlying machine. (for the CM5) info:

SPLX - Specification Language for Parallel cross-product of processes and sequential modules. "Parallel Module Specification on SPLX", C.F. Nourani, SIGPLAN Notices 27(1):114-115 (Jan 1992).

SPM - Sequential Parlog Machine. Language of a virtual machine for Parlog implementation.

Spool - Object-oriented logic. "An Experience with a Prolog Based Language", K. Fukunaga et al, SIGPLAN Notices 21(11):224-231 (Nov 1986) (OOPSLA '86).

SPRING - String PRocessING language. "From SPRING to SUMMER: Design, Definition and Implementation of Programming Languages for String Manipulation and Pattern Matching", Paul Klint, Math Centre, Amsterdam 1982.

SPRINT - List processing language involving stack operations. "SPRINT - A Direct Approach to List Processing Languages", C.A. Kapps, Proc SJCC 30 (1967). Sammet 1969, p 462.

SPS - Symbolic Programming System. Assembly language for IBM 1620.

SPSS - Statistical Programs for the Social Sciences. "SPSS X User's Guide", SPSS Inc. 1986.

SPUR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).

Squiggol - See BMF.

SQL - Structured Query Language. IBM, 1970's, for use in System R. The de facto standard relational database interface language, often embedded in other programming languages. "A Guide to the SQL Standard," C.J. Date, A-W 1987.

SQL Module Language. Used to interface other languages (Ada, C, COBOL, etc) to SQL-based DBMS's. ANSI standard. Version: Ada/SAME by Informix (SAME=Standard ANSI Module language with Extensions.)

Square - Query language, precursor to SQL. "Specifying Queries as Relational Expressions: The SQUARE Data Sublanguage", R.E. Boyce et al, CACM 18(11):621-628 (Nov 1975).

Squeak - "Squeak: A Language for Communicating with Mice", L. Cardelli et al, Comp Graphics 19(3):199-204 (July 1985) (See Newsqueak).

SR - Synchronizing Resources. A language for concurrent programming. A 'resource' is the encapsulation of a process and its variables, and can be separately compiled. Supports local and remote procedure call, rendezvous, message passing, multicast, dynamic process creation, semaphores, and shared memory. "An Overview of the SR Language and Implementation", G. Andrews, ACM TOPLAS 10:51-86 (Jan 1988). "The SR Programming Language: Concurrency in Practice", G.R. Andrews et al, Benjamin/Cummings 1993, ISBN 0-8053-0088-0. Version: 2.3 info:

SRC Modula-3 - From DEC/SRC, Palo Alto, CA. "Modula-3 Report (revised)" Luca Cardelli et al.

SRDL - Small algebraic specification language, allows distfix operators. "A Constructive Method for Abstract Algebraic Software Specification", H. Klaeren, Theor Computer Sci 30, pp.134-204, 1984.

Srl -

1. Bharat Jayaraman. "Towards a Broader Basis for Logic Programming", B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990.

2. Schema Representation language. "SRL/2 Users Manual", J.M. Wright et al, Robotics Inst, CMU, 1984.

3. Structured Robot Language. C. Blume & W. Jacob, U Karlsruhe.


1. Synthesizer Specification Language. Specification language based on term algebra and attribute grammar. Used by the Synthesizer Generator, a generator for language-based editors such as the Cornell Program Synthesizer. "Generating Language Based Environments", T. Reps, MIT Press 1984.

2. Syntax Semantic Language. R.C. Holt & J. Cordy. A specification language for recursive descent parsers. "An Introduction to S/SL: Syntax/Semantic Language", R.C. Holt et al, ACM TOPLAS 4(2):149-178 (Apr 1982).

STAB-11 - "The Translation and Interpretation of STAB-11", A.J.T. Colin et al, Soft Prac & Exp 5(2):123-138 (Apr 1975).

STAC - Storage Allocation and Coding Program. Symbolic macro-assembler for the English Electric DEUCE. "DEUCE STAC Programming Manual", DEUCE News No. 38, Report K/AA y 1 DEUCE Library Service, Data Processing and COntrol Systems DIvision, English Electric Company, Kidsgrove, June.

STAGE2 - A macro language. "The Mobile Programming System: STAGE2", W. M. Waite, CACM 13:415 (1970). Implemented in FLUB.

Standard Lisp - A. Hearn. Subset of Lisp 1.5 developed primarily for implementing REDUCE. Replaced by Portable Sandard LISP. "Standard LISP Report", J. Marti et al, SIGPLAN Notices 14(10):48-58 (Oct 1979).

Standard ML - See SML.

STAR 0 - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959).

StarLISP - See *LISP.

StarMOD - See *MOD.

Starset - Portable storage/retrieval language for distributed databases. "Starset programming Language", M.M. Gilula et al, Nauka, Moscow 1991, ISBN 5-02-006831-4.

Statemate - Language for building finite state machines. [?]

Steelman - DoD, June 1978. Fifth and last of the series of DoD requirements that led to Ada. "Steelman Requirements for High Order Programming Languages", AD-A059 444, US Dept of Defense, June 1978. (See Strawman, Woodenman, Tinman, Ironman).

STENSOR - L. Hornfeldt, Stockholm, mid-80's. Symbolic math, especially General Relativity. Implemented on top of SHEEP and MACSYMA.

Sticks&Stones - Hardware description language. Functional, polymorphic, loosely based on ML. "An Algebraic Approach to Hardware Description and Verification", L. Cardelli, Thesis, Edinburgh U, 1982. "Sticks&Stones II: A Functional Language VLSI Layout Generation Tool", Andrew Butterfield <>, Thesis, Trinity College, 1990.

STIL - STatistical Interpretive Language. "STIL User's Manual", C.F. Donaghey et al, Indust Eng Dept, U Houston (Aug 1969).

STING - A parallel dialect of Scheme intended to serve as a high-level operating system for symbolic programming languages. First-class threads, and processors, and customizable scheduling policies. "A Customizable Substrate for Concurrent Languages", S. Jagannathan et al, ACM SIGPLAN Notices, 1992. info:

STOIC - STring Oriented Interactive Compiler. Smithsonian Astrophysical Observatory. Similar to FORTH for strings, includes many VAX-specific items.

Stoneman - HOLWG, DoD, Feb 1980. DoD requirements that led to APSE. "Requirements for Ada Programming Support Environments: STONEMAN", US Dept of Defense, Feb 1980.

STP4 - Statistical language.

Strand -

1. AND-parallel logic programming language. Essentially flat Parlog83 with sequential-and and sequential-or eliminated. "Strand: New Concepts on Parallel Programming", Ian Foster et al, P-H 1990. Strand88, available commercially from Strand Software, Beaverton, OR. info: strand88@sstl.uucp

2. Query language, implemented on top of INGRES (an RDBMS). "Modelling Summary Data", R. Johnson, Proc ACM SIGMOD Conf 1981.

Strawman - HOLWG, DoD, Apr 1975. The first of the series of DoD requirements that led to Ada. (See Woodenman, Tinman, Ironman, Steelman).

STREAM - "STREAM: A Scheme Language for Formally Describing Digital Circuits", C.D. Kloos in PARLE: Parallel Architectures and Languages Europe, LNCS 259, Springer 1987.

STRESS - STRuctual Engineering Systems Solver. Structural analysis problems in Civil Engineering. Superceded by STRUDL. "STRESS: A User's Manual", S.J. Fenves et al, MIT Press 1964. Sammet 1969, p.612.

STROBES - Shared Time Repair of Big Electronic Systems. Computer testing. Sammet 1969, p.699.

STRUDL - STRUctured Design Language. Dynamic and finite-element analysis, steel and concrete structures. Subsystem of ICES. "ICES STRUDL-II Engineering User's Manual", R68-91, CE Dept MIT (Nov 1968) Sammet 1969, p.613.

STRUM - Algol-like microprogramming language for the Burroughs D Machine. "STRUM: A Structured Microprogram Development System for Correct Firmware", D.A. Patterson, IEEE Trans Comput C25(10):974-985 (1976).

STRUM2 - A variant of STRUM used in the V-compiler.

STSC APL - Implementation of APL by Scientific Time-Sharing Corp.

STUDENT - D.G. Bobrow 1964. Early query system. Sammet 1969, p.664.

Student PL/I - A translator-intepreter for a PL/I subset derived from SPL[6]. "Student PL/I Compiler, R.A. Vowels, RMIT, Melbourne, 1971.

STUDIO - "STUDIO - A Modular, Compiled, Actor-Oriented Language, Based Upon a Multitask Runtime System", A. Hadjadji et al, Joint Modular Languages Conference, U Ulm, Sept 1994.

SuccessoR - Language for distributed computing derived from SR. "SuccessoR: Refinements to SR", R.A. Olsson et al, TR 84-3, U Arizona 1984.

Sue - System language, used to write an OS for the IBM 360. Cross between Pascal and XPL. Allows type checked separate compilation of internal procedures using a program library. "The System Language for Project Sue", B.L. Clark e al, SIGPLAN Notices 6(9):79-88 (Oct 1971).

SUGAR - Westfield College, U London. Simple lazy functional language used in Principles of Functional Programming, Hugh Glaser et al, P-H 1984.

SUIF - Stanford University Intermediate Format. Register-oriented intermediate language.

SUILVEN - A microprogramming language. "Towards Machine-Independent Microprogramming", J.F. Sommerville, Euromicro J 5(4):219-224 (1979).

SUMMER - Klint & Sint, CWI late 70's. String manipulation and pattern matching. Recently used as the input and implementation language for the Dataflow Compiler Project at CWI. "An Overview of the SUMMER Programming Language", Paul Klint, 7th POPL, ACM 1980, pp.47-55.

SUMMER SESSION - Early system on MIT's Whirlwind. Listed in CACM 2(5):16 (May 1959).

SUPER - Successor to LOGLISP, based on LNF. "New Generation Knowledge Processing: Final Report on the SUPER System", J Alan Robinson et al, CASE Center TR 8707, Syracuse U, 1987.

SUPERMAC - General-purpose macro language, embeddable in existing languages as a run-time library. "SUPERMAC - A Macro Facility That can be Added to Existing Compilers", P.J. Brown, Soft Prac & Exp 10(6):431-434.

Super Pascal - Pascal variant used in Data Structures and Algorithms, A. Aho, Hopcroft & Ullman, A-W 1983. Adds nonnumeric labels, return statement, expressions as names of types.

SuperTalk - Silicon Beach Software. A superset of HyperTalk used in SuperCard.

Sure - Bharat Jayaraman. "Towards a Broader Basis for Logic Programming", B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990.

SURGE - Sorter, Updater, Report Generator, Etc. IBM 704, 1959. Sammet 1969, p.8.

SweetLambda - Sugared lambda-calculus?

SYDEL - Jan Garwick, ca 1974. System language, fully typed, with inline assembly code.

SYGMA - Novosibirsk. For the BESM-6, M-220 and Minsk-22. "SYGMA, A Symbolic Generator and Macroassembler", A.P. Ershov et al, in Symbol Manipulation Languages and Techniques, D.G. Bobrow ed, N-H 1968, pp.226- 246.

Sylvan - [Distributed language?]

SYMBAL - SYMbolic ALgebra. Max Engeli, late 60's. Symbolic math language with ALGOL-like syntax. Implemented for CDC6600. "User's Manual for the Formula Manipulation Language SYMBAL", M. Engeli, TRM-8.00, Comp Ctr UT Austin, June 1968.

SymbMath - Small symbolic math package for MS-DOS. Has the ability to learn new facts. Version 2.1.1 ftp://simtel20//calculator/

SYMBOLANG - Lapidus & Goldstein, 1965. Symbol manipulating FORTRAN subroutine package for IBM 7094, later CDC6600. "Some Experiments in Algebraic Manipulation", CACM 8:501-508 (1965).

SYMBOLIC ASSEMBLY - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959).

Symbolic Mathematical Laboratory - On-line system under CTSS for symbolic math. Used display screen and light pen. Sammet 1969, p.514.

Symmetric LISP - A parallel LISP in which environments are first-class objects. Implemented in Common LISP. "Parallelism, Persistence and Meta- Cleanliness in the Symmetric Lisp Processor", D. Gelernter et al, SIGPLAN Notices 22(7):274-282 (July 1987). "A Programming Language Supporting First-Class Parallel Environments", S. Jagannathan, MIT-LCS/TR 434, 1989. info: Suresh Jagannathan <>

SYMPL - SYsteMs Programming Language. CDC. A derivative of Jovial. Non-reentrant block structured language with extensive bit manipulation facilities and linkable with FORTRAN. Major parts of CDC systems during the 70's were written in SYMPL.

SYN - Syntactic specification language for COPS. "Metalanguages of the Compiler Production System COPS", J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed W. Henhapl, Tech Hochs Darmstadt 1978, pp.122-159.

Synchronous C++ - Ecole Polytechnic Federale de Lausanne.

SYSLISP - System language used in the implementation of Portable Standard Lisp. Mentioned in "The Evolution of Lisp", G.L. Steele et al, SIGPLAN Notices 28(3):231-270 (Mar 1993).