Newsgroups: comp.lang.misc
Subject: The Language List V1.9
From: (Bill Kinnersley)
Date: Wed, 13 Jan 1993 19:38:08 GMT
Organization: University of Kansas Computer Science Dept
Lines: 975

[This contains all 9 parts, concatenated.]

The Language List - Version 1.9, January 13, 1993

Collected information on about 2000 computer languages, past and present.

Currently maintained by:

  Bill Kinnersley
  Computer Science Department
  University of Kansas
  Lawrence, KS 66045

Version 1.8:  Sept 1, 1992
Version 1.7:  Apr  6, 1992
Version 1.6:  Jan 15, 1992
Version 1.5:  Nov 10, 1991
Version 1.4:  Sept 8, 1991
Version 1.3:  July 8, 1991
Version 1.2:  May 30, 1991
Version 1.1:  May  1, 1991
Version 1.0:  Mar  7, 1991

Started by:

  Tom Rombouts
  Ashton-Tate Product Development
  20101 Hamilton Avenue, Torrance, CA 90277
  Work: (213)538-7108

  535 Esplanade, #502
  Redondo Beach, CA  90277
  Ans Svc: (213)543-3811


  This document is intended to become one of the longest lists of computer
programming languages ever assembled (or compiled).  Its purpose is not to
be a definitive scholarly work, but rather to collect and provide the best
information that we can in a timely fashion.  Its accuracy and completeness
depends on the readers of Usenet, so if you know about something that
should be added, please help us out.  Over 100 netters have already
contributed to this effort.  We hope that this list will continue to evolve
as a useful resource available to everyone on the net with an interest in
programming languages.


   If you have information about a language that is not on this list,
please e-mail the relevant details to the current maintainer, as shown
above.  If you can cite a published reference to the language, that will
help in determining authenticity.

What Languages Should Be Included

   The "Published" Rule - A language should be "published" to be included
in this list.  There is no precise criterion here, but for example a
language devised solely for the compiler course you're taking doesn't
count.  Even a language that is the topic of a PhD thesis might not
necessarily be included.  But if material on that language was published in
a technical journal or report, or if it formed the basis for additional
research, the language belongs in this list.  A language does NOT have to
be implemented (actually running on at least one computer) to be included. 
Many languages appearing in the ACM SIGPLAN Notices fall into this

   In general when there's any doubt, an entry will be included.  Making
the list as complete as possible necessarily means there will be a large
number of obscure entries.  To compensate for this "clutter" effect, more
widespread languages such as C or FORTRAN should have longer entries.

   For historical completeness roughly 200 early pre-1959 "automatic
programming systems" were included, based on a list from CACM 2(5):16, May
1959.  It can be argued that many of these are not really programming
languages as the term is used today.  We've also included some formalisms
which are clearly not meant to be used as a source language for writing
programs: metalanguages such as BNF, intermediate languages such as P-Code,
and computational models such as Linda.

Dialects, Variants, Versions and Implementations

   Computer languages evolve, and are related to one another in rather
complex ways.  Almost every language can be regarded as an improved version
of something else.  Sometimes it's hard to know where to draw the line and
say "this is a separate language".  Taking LISP as an example, what started
out as a single language has evolved into a large family.  Dialects (such
as Scheme and Common LISP) have major differences and are certainly
considered by their users to be distinct languages.  Variants (such as
Kyoto Common LISP and Allegro CL) are primarily intended to be the same,
but have certain features which make them incompatible.  Implementations
are designed to run on particular machines or operating systems and will
usually have special features added.  Inevitably a series of revisions will
be issued, causing further small changes in the language.  It has even been
suggested that if command line options are present, each choice of options
could be considered a distinct language!

   A language's name by itself is not always an accurate guide to its
identity.  Sometimes a language will undergo significant evolution without
any official change in name (e.g. SETL2 has done this).  Sometimes just the
name will change (IAL to ALGOL to ALGOL 58).  And occasionally a name has
been used for several distinct languages (e.g. Vulcan).

   It may also be debatable what is "in" a language and what is not.  For
example SML is defined in stages: a "core syntax" surrounded by a standard
set of extensions.  Technically that makes it two separate languages, but
the SML core syntax would be frustrating to write programs in.  Other
languages have purposely omitted essential features like I/O from their
definition because they were never intended to be used without a standard
library (C) or interface (Smalltalk-80), or because they constitute the
command language for a particular product or system.  Still other languages
are by their very nature extensible, and the number of macro packages built
on TeX for example could be called an endless list of separate "languages".

   Brand names - You might wonder why we do include a number of commercial
products such as Turbo Pascal.  Usually these items offer non-standard
extensions to the base language.  This has been particularly true in the
varieties of BASIC and Prolog.  But also one could argue that in a strict
sense Microsoft C and Turbo C for example are distinct languages.
   Another reason for including entries of this type is that many languages
are proprietary, appearing only in a certain product.  Such languages may
be distinctive and interesting and deserve to be here.  On the other hand
we don't want the list to become a catalog of commercial programming

What Each Entry Should Contain

Name:  An explanation of the language name, which in perhaps 80% of the
cases is some form of acronym or abbreviation.

Date of origin:  The year when a language first appeared.  Since the
design, implementation and distribution of a language can take place over a
period of several years, such dates are often approximate.  Any language
that has an ANSI, ISO or BSI standard should include the date approved. 
For specific brands such as Turbo Pascal the release dates of each version
can be listed.

Reference:  At least one reference work on the language, as definitive or
as official as possible.

Availability:  ftp site, commercial source or publisher, contacts for
further information.

"See also:"  Related languages or terms that may also be of interest.

   Any material marked with brackets "[]" is doubtful and may be considered
a request for further information.

   Editorial Comments -  What constitutes a good language has often become
the subject of intense debate.  We've tried to avoid adding to this by
making any remarks that are clearly subjective, such as calling a language
"powerful".  Nevertheless some comments might still be construed this way. 
For instance saying that Pascal is "ALGOL-like" could offend both some
ALGOL and some Pascal users.  Also, some questions of historical origin are
not universally agreed upon.

   Classification - It's been suggested that the languages in this list
should be arranged into categories, but to do so would be extremely
difficult.  For every classification scheme there wlll be a large
proportion of languages that do not fit.  The languages are therefore
listed alphabetically, and in fact we think that this is the most useful
organization.  You'll find that the following categories have been referred
to in the list, but we must emphasize that most languages are not purely
one or the other, and we are really categorizing language features.

Imperative language

	A language which operates by a sequence of commands that change the
value of data elements.  Typified by assignments and iteration.

Declarative language

	A language which operates by making descriptive statements about data
and relations between data.  The algorithm is hidden in the semantics of
the language.  This category encompasses both applicative and logic
languages.  Examples of declarative features are set comprehensions and
pattern-matching statements.

Procedural language

	A language which states how to compute the result of a given problem. 
Encompasses both imperative and functional languages.

Applicative language

	A language that operates by application of functions to values, with no
side effects.  A functional language in the broad sense.

Functional language

	In the narrow sense, a functional language is one that operates by use
of higher-order functions, building operators that manipulate functions
directly without ever appearing to manipulate data.  Example: FP.

Definitional language

	An applicative language containing assignments interpreted as
definitions.  Example: Lucid.

Single Assignment language

	An applicative language using assignments with the convention that a
variable may appear on the left side of an assignment only once within the
portion of the program in which it is active.

Dataflow language

	A language suitable for use on a dataflow architecture.  Necessary
properties include freedom from side effects, and the equivalence of
scheduling constraints with data dependencies.  Examples: Val, Id, SISAL,

Logic language

	A logic language deals with predicates or relationships p(X,Y).  A
program consists of a set of Horn clauses which may be:
	facts - p(X,Y) is true
	rules - p is true if q1 and q2 and ...qn are true
	queries - is g1 and g2 and true?  (gi's are the goals.)
	Further clauses are inferred using resolution.  One clause is selected
containing p as an assumption, another containing p as a consequence, and p
is eliminated between them.  If the two p's have different arguments they
must be unified, using the subsitution with the fewest constraints that
makes them the same.
    Logic languages try alternative resolutions for each goal in
succession, backtracking in a search for a common solution.  OR-parallel
languages try alternative resolutions in parallel, while AND-parallel
languages try to satisfy several goals in parallel.

Constraint language

	A language in which a problem is specified and solved by a series of
constraining relationships.

Object-Oriented language

	A language in which data and the functions which access it are treated
as a unit.

Concurrent language

	A concurrent language describes programs that may be executed in
parallel.  This may be either
	multiprogramming: sharing one processor
	multiprocessing: separate processors sharing one memory

Concurrent languages differ in the way that processes are created:
	coroutines - control is explicitly transferred - Simula I, SL5, BLISS,
	fork/join - PL/I, Mesa
	cobegin/coend - ALGOL 68, CSP, Edison, Argus
	process declarations - DP, SR, Concurrent Pascal, Modula, PLITS, Ada

and the ways in which processes interact:
	semaphores - ALGOL 68
	conditional critical regions - Edison, DP, Argus
	monitors - Concurrent Pascal, Modula
	message passing - CSP, PLITS, Gypsy, Actors
	remote procedure calls - DP, *Mod
		rendezvous - Ada, SR
		atomic transactions - Argus

Fourth generation language (4GL's)

	A very high-level language.  May use natural English or visual

Query language

	An interface to a database.

Specification language

	A formalism for expressing a hardware or software design.

Assembly language

	A symbolic representation of the machine language of a specific

Intermediate language

	A language used as an intermediate stage in compilation.  May be either
text or binary.


	A language used for formal description of another language.

                           * * * * * * *

2.PAK - AI language with coroutines.  "The 2.PAK Language: Goals and
Description", L.F. Melli, Proc IJCAI 1975.

473L Query - English-like query language for Air Force 473L system.  Sammet
1969, p.665.

9PAC - 709 PACkage.  1959.  Report generator for IBM 7090.  Sammet 1969,

*LISP - ("StarLISP")  Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking
Machines Corp.  A data-parallel extension of Common LISP for the Connection
Machine.  "The Essential *LISP Manual", TM Corp 1986.
ftp:, a *LISP simulator.

*MOD - ("StarMOD")  Concurrent language combining the modules of Modula and
the communications of Distributed Processes.  "*MOD - A Language for
Distributed Programming", R.P. Cook, IEEE Trans Soft Eng SE-6(6):563-571
(Nov 1980).

A0 or A-0 - Possibly the first compiler ever.  Grace Hopper's team at
Remington Rand, 1952, for the UNIVAC I or II.   Later internal versions: A-
1, A-2, A-3, AT-3.  AT-3 was released as MATH-MATIC.  Sammet 1969, p.12.

AADL - Axiomatic Architecture Description Language.  "AADL: A Net-Based
Specification Method for Computer Architecture Design", W. Damm et al in
Languages for Parallel Architectures, J.W. deBakker ed, Wiley 1989.

ABC - 

  1. Leo Geurts, Lambert Meertens, Steven Pemberton.  Simple interactive
language designed for quick easy programming.  Includes a programming
environment with syntax-directed editing, suggestions, persistent variables
and multiple workspaces and infinite precision arithmetic.  "An Alternative
Simple Language and Environment or PC's", S. Pemberton, IEEE Software
4(1):56-64 (Jan 1987).  "The ABC Programmer's Manual", Leo Geurts et al, P-
H 1989.
ftp: and  Unix source, MS-DOS, Mac and Atari ST
list: maintained by Steven Pemberton .

  2. (A="argument",B="basic value",C=?).  Intermediate code for the ABC
abstract machine for implementation of functional languages.  P. Koopman,
"Functional Programs as Executable Specifications", 1990. [?] 

ABCL/1 - An Object-Based Concurrent Language.  Yonezawa, U Tokyo 1986. 
Language for the ABCL concurrent (MIMD) system.  Asynchronous message
passing to objects.  Implementations in KCL and Symbolics LISP available
from the author.  "ABCL: An Object-Oriented Concurrent System", A. Yonezawa
ed, MIT Press 1990.

ABCL/c+ - Concurrent object-oriented language, an extension of ABCL/1 based
on C.  "An Implementation of An Operating System Kernel using Concurrent
Object Oriented Language ABCL/c+", N. Doi et al in ECOOP '88, S. Gjessing
et al eds, LNCS 322, Springer 1988.

ABCL/R - Yonezawa, Tokyo Inst Tech 1988.  Reflective concurrent object-
oriented language.  "Reflection in an Object-Oriented Concurrent Language",
T. Watanabe et al, SIGPLAN Notices 23(11):306-315 (Nov 1988).

ABLE - Simple language for accountants.  "ABLE, The Accounting Language,
Programming and Reference Manual," Evansville Data Proc Center, Evansville,
IN, Mar 1975.  Listed in SIGPLAN Notices 13(11):56 (Nov 1978).

ABSET - U Aberdeen.  Early declarative language.  "ABSET: A Programming
Language Based on Sets", E.W. Elcock et al, Mach Intell 4, Edinburgh U
Press, 1969, pp.467-492.

ABSYS - U Aberdeen.  Early declarative language, anticipated a number of
features of Prolog.  "ABSYS: An Incremental Compiler for Assertions", J.M.
Foster et al, Mach Intell 4, Edinburgh U Press, 1969, pp.423-429.

Accent - Very high level interpreted language with strings, tables, etc. 
Strongly typed, remote function calls.  CaseWare Inc.

Access - English-like query language used in the Pick OS.

ACL - A Coroutine Language.  A Pascal-based implementation of coroutines. 
"Coroutines", C.D. Marlin, LNCS 95, Springer 1980.

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

ACP - Algebra of Communicating Processes.  "Algebra of Communicating
Processes with Abstraction", J.A. Bergstra & J.W. Klop, Theor Comp Sci
37(1):77-121 (1985).  (compare CCS).

ACT++ - Concurrent extension of C++ based on actors.  "ACT++: Building a
Concurrent C++ With Actors", D.G. Kafura TR89-18, VPI, 1989.

ACT ONE - Specification language.  "An Algebraic Specification Language
with Two Levels of Semantics", H. Ehrig et al, Tech U Berlin 83-03 Feb

Act1 - An actor language, descendant of Plasma.  "Concurrent Object
Oriented Programming in Act1", H. Lieberman in Object Oriented Concurrent
Programming, A. Yonezawa et al eds, MIT Press 1987.

Act2 - An actor language.  "Issues in the Design of Act2", D. Theriault,
TR728, MIT AI Lab, June 1983.

Act3 - High-level actor language, descendant of Act2.  Provides support for
automatic generation of customers and for delegation and inheritance. 
"Linguistic Support of Receptionists for Shared Resources", C. Hewitt et al
in Seminar on Concurrency, S.D. Brookes et al eds, LNCS 197, Springer 1985,
pp. 330-359.

Actalk - Briot, 1989.  Smalltalk-based actor language.  "Actalk: A Testbed
for Classifying and Designing Actor Languages in the Smalltalk-80
Environment", J-P. Briot, Proc ECOOP '89, pp.109-129.

Active Language I - Early interactive math, for XDS 930 at UC Berkeley. 
"Active Language I", R. de Vogelaere in Interactive Systems for
Experimental Applied Mathematics, A-P 1968.

Actor - Charles Duff, Whitewater Group ca 1986.  Object-oriented language
for Microsoft Windows.  Pascal/C-like syntax.  Uses a token-threaded
interpreter.  Early binding is an option.  "Actor Does More than Windows",
E.R. Tello, Dr Dobb's J 13(1):114-125 (Jan 1988).

Actors - C. Hewitt.  A model for concurrency.  "Laws for Communicating
Parallel Processes", C. Hewitt et al, IFIP 77, pp. 987-992, N-H 1977. 
"ACTORS: A Model of Concurrent Computation in Distributed Systems", Gul A.
Agha, Cambridge Press, MA, 1986.

Actra - An exemplar-based Smalltalk.  LaLonde et al, OOPSLA '86.

Actus - Pascal with parallel extensions, similar to the earlier Glypnir. 
Parallel constants, index sets.  Descendants include Parallel Pascal,
Vector C, and CMU's recent language PIE.  "A Language for Array and Vector
Processors," R.H. Perrott, ACM TOPLAS 1(2):177-195 (Oct 1979).

Ada - (named for Ada Lovelace (1811-1852), arguably the world's first
computer programmer.)  Jean Ichbiah's team at CII Honeywell, for the U.S.
Department of Defense, 1980.  Ada is a large, complex block-structured
language aimed primarily at embedded computer applications.  It has
facilities for real-time response, concurrency, hardware access, and
reliable run-time error handling.  In support of large-scale software
engineering, it emphasizes strong typing, data abstraction and
encapsulation.  The type system uses name equivalence and includes both
subtypes and derived types.  Both fixed and floating point numerical types
are supported.
    Control flow is fully bracketed: if-then-elsif-end if, case-is-when-end
case, loop-exit-end loop, goto.  Subprogram parameters are in, out, or
inout.  Variables imported from other packages may be hidden or directly
visible.  Operators may be overloaded, and so may enumeration literals. 
There are user-defined exceptions and exception handlers.
    An Ada program consists of a set of packages encapsulating data objects
and their related operations.  A package has a separately compilable body
and interface.  Ada permits generic packages and subroutines, possibly
    Ada programming places a heavy emphasis on multitasking.  Tasks are
synchronized by the rendezvous, in which a task waits for one of its
subroutines to be executed by another.  The conditional entry makes it
possible for a task to test whether an entry is ready.  The selective wait
waits for either of two entries or waits for a limited time.
    "Reference Manual for the Ada Programming Language", ANSI/MIL STD
1815A, U.S. DoD (Jan 1983).
ftp repository:
ftp info:
ftp interpreters:, for SunOS
AdaEd compiler/interpreter for Unix, MS-DOS, Atari ST, Amiga for Amiga

Ada 83 - The original Ada, as opposed to Ada 9X.

Ada 9X - Revision of Ada currently under development.
mailing list: Chris Anderson  (Ada 9X Project

Ada++ - Object-oriented extension to Ada, implemented as a preprocessor.

ADAM - A DAta Management system.

Adaplex - An extension of Ada for functional databases.  "Adaplex:
Rationale and Reference Manual 2nd ed", J.M. Smith et al, Computer Corp
America, Cambridge MA, 1983.

ADAPT - Subset of APT.  Sammet 1969, p.606.

ADD 1 TO COBOL GIVING COBOL - Bruce Clement.  Tongue-in-cheek suggestion
for an object-oriented COBOL.  SIGPLAN Notices 27(4):90-91 (Apr 1992).

ADES - Early system on IBM 704.  Listed in CACM 2(5):16 (May 1959). 
Version: ADES II.


  1. Adventure Definition Language.  Ross Cunniff  & Tim
Brengle, 1987.  An adventure language, semi-object-oriented with LISP-like
syntax.  A superset of DDL.  Available for Unix, MS-DOS, Amiga and Acorn.
ftp: pub/games/ /systems/amiga/fish/fish/f0/ff091

  2. Ada Development Language.  R.A. Lees, 1989.

AdLog - Adds a Prolog layer to Ada.  "AdLog, An Ada Components Set to Add
Logic to Ada", G. Pitette, Proc Ada-Europe Intl Conf Munich, June 1988.

ADM - Picture query language, extension of Sequel2.  "An Image-Oriented
Database System", Y. Takao et al, in Database Techniques for Pictorial
Applications, A. Blaser ed, pp.527-538.

ADS - Expert system.

ADVSYS - David Betz, 1986.  An adventure language, object-oriented and

AE - Application Executive.  Brian Bliss   An
embeddable language, written as a C interpreter.

AED - Automated Engineering Design (aka ALGOL Extended for Design).  MIT ca
1965 by Doug Ross (now at Softech).  Systems language for IBM 7090 and 360,
an extension of ALGOL-60 with records, pointers, and dynamic allocation. 
DYNAMO II was written in AED.  "The Automated Engineering Design (AED)
Approach to Generalized Computer-Aided Design", D.T. Ross, Proc ACM 22nd
Natl Conf, 1967.  Sammet 1969 and 1978.  Versions: AED-0, AED-1, AED-JR.

Aeolus - Concurrent language with atomic transactions.  "Rationale for the
Design of Aeolus", C. Wilkes et al, Proc IEEE 1986 Intl Conf Comp Lang,
IEEE 1986, pp.107-122.

AESOP - An Evolutionary System for On-line Programming.  Early interactive
query system with light pen for IBM 1800.  "AESOP: A Final Report: A
Prototype Interactive Information Control System", J.K. Summers et al, in
Information System Science and Technology, D. Walker ed, 1967.  Sammet
1969, p.703.

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

AGORA - Distributed object-oriented language.[?]

AHPL - A Hardware Programming Language.  Hill & Peterson.  A register-level
language, some of whose operators resemble APL.  "Digital Systems: Hardware
Organization and Design", F. Hill et al, Wiley 1987.  HPSIM2: a function-
level simulator, available from Engrg Expt Sta, U Arizona.


  1. M. Gfeller.  A functional dialect of Dictionary APL.  "APL Arrays and
Their Editor", M. Gfeller, SIGPLAN Notices 21(6):18-27 (June 1986) and
SIGAPL Conf Proc [?]

  2. Karlsruhe, 1980.  An intermediate representation language for Ada, was
merged with TCOL.Ada to form Diana.

AIMACO - AIr MAterial COmmand compiler.  Modification of FLOW-MATIC. 
Supplanted by COBOL.  Sammet 1969, p.378.

AKCL - Austin Kyoto Common LISP.  Bill Schelter.  Improvements to KCL.

AKL - Andorra Kernel Language.  Successor of KAP.  "Programming Paradigms
of the Andorra Kernel Language", S. Janson  et al in Logic
Programming: Proc 1991 Intl Symp, MIT Press 1991.  Prototype implementation
available from the author.

AL - Assembly Language.  Stanford U, 1970's.  Language for industrial
robots.  "The AL Language for an Intelligent Robot", T. Binford in Langages
et Methods de Programation des Robots Industriels, pp.73-88, IRIA Press
1979.  "AL User's Manual", M.S. Mujtaba et al, Stanford AI Lab, Memo
AIM-323 (Jan 1979).


  1. A Language for Attributed DefINitions.  A language for formal
specification of attributed grammars.  Input language for the GAG compiler
generator.  Applicative, strongly typed.  "GAG: A Practical Compiler
Generator", U. Kastens et al, LNCS 141, Springer 1982.

  2. Interactive math for IBM 360.  "A Conversational System for
Engineering Assistance: ALADIN", Y. Siret, Proc Second Symp Symb Algebraic
Math, ACM Mar 1971.

ALAM - Symbolic math, especially for General Relativity.  "ALAM
Programmer's Manual", Ray D'Inverno, 1970.  (See CLAM).

ALC - Assembly Language Compiler.  Alternative name for IBM 360 assembly
language.  (cf. BAL).

ALCOR - Subset of ALGOL.  Sammet 1969, p.180.

Aldat - Database language, based on extended algebra.  Listed by M.P.
Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989. [?]

ALDES - ALgorithm DEScription.  "The Algorithm Description Language ALDES",
R.G.K. Loos, SIGSAM Bull 14(1):15-39 (Jan 1976).

ALDiSP - Applicative Language for Digital Signal Processing.  1989, TU
Berlin.  Functional language with special features for real-time I/O and
numerical processing.  "An Applicative Real-Time Language for DSP-
Programming Supporting Asynchronous Data-Flow Concepts", M. Freericks
 in Microprocessing and Microprogramming 32, N-H 1991.

ALEC - A Language with an Extensible Compiler.  Implemented using RCC on an
ICL 1906A.  "ALEC - A User Extensible Scientific Programming Language",
R.B.E. Napper et al, Computer J 19(1):25-31.


  1. A Language Encouraging Program Hierarchy.  ca 1975.  "On the Design of
ALEPH", D. Grune, CWI, Netherlands 1986.

  2. Peter Henderson ca. 1970.  Formal semantics.  CACM 15(11):967-973 (Nov

Alex -

  1. Stephen Crawley , Defence Science & Tech Org,
Australia.  Under development.  Polymorphic with ADT's, type inference,

  2. ISWIM-like language with exception handling.  "An Exception Handling
Construct for Functional Languages", M. Brez et al, in Proc ESOP88, LNCS
300, Springer 1988.

Alexis - Alex Input Specification.  Input language for the scanner
generator Alex.  "Alex: A Simple and Efficient Scanner Generator", H.
Mossenbock, SIGPLAN Notices 21(5), May 1986.

ALF - Algebraic Logic Functional language.  WAM-based language with
narrowing/rewriting.  Horn clauses with equality.  Any functional
expression can be used in a goal.
info: Rudolf Opalla 

Alfl - Paul Hudak , Yale 1983.  Functional, weakly
typed, lazy.  Implemented as a preprocessor to the Orbit Scheme compiler,
by transforming laziness into force-and-delay.  "Alfl Reference Manual and
Programmer's Guide", P. Hudak, YALEU/DCS/RR322, Yale U, Oct 1984.  (See

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

ALGOL 58 - See IAL.

ALGOL 60 - ALGOrithmic Language.  Designed for scientific computations,
ALGOL 60 was small and elegant.  It was the first language to be described
in BNF.  There were three lexical representations: reference, hardware and
    Only three basic types: integer, real and boolean.  Arrays had lower
bounds.  Dynamic arrays.  Strong typing.  Data hiding with 'own' variables. 
No user-defined types.
    ALGOL 60 was the first block-structured language, with nested
procedures and blocks, nested syntax, compound statement with begin-end. 
Keywords.  Conditional expression.  Introduced :=, if-then-else, very
general 'for' loops.  Switch declaration (an array of statement labels)
generalizing FORTRAN's computed goto. Procedures were recursive, and
parameters were pass-by-value and pass-by-name.
"Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM
3(5):299-314 (May 1960).

ALGOL 60 Modified - "A Supplement to the ALGOL 60 Revised Report", R.M.
DeMorgan et al, Computer J 19(4):364 and SIGPLAN Notices 12(1) 1977.  
Erratum in Computer J 21(3):282 (Aug 1978) applies to both.

ALGOL 60 Revised - "Revised Report on the Algorithmic Language ALGOL 60",
Peter Naur ed, CACM 6(1):1-17 (Jan 1963).

ALGOL 68 - Adriaan van Wijngaarden et al.  The communication and efficient
execution of algorithms.  By contrast with ALGOL 60, ALGOL 68 was large and
complex, and posed difficulties for both implementors and users.
    Structural equivalence.  Automatic type conversion.  Flexible arrays. 
No abstract data types.
    if-then-elif-fi, for-from-by-to-while-do-od, integer case statement
with 'out' clause, skip statement, generalized loops, goto.
    Blocks, procedures and user-defined operators.  Procedure parameters. 
No separate compilation.  Concurrent execution (cobegin/coend) and
semaphores.  Generators heap and loc for dynamic allocation.

ALGOL 68 Revised - "Revised Report on the Algorithmic Language ALGOL 68,"
A. Van Wijngaarden et al, Acta Informatica 5:1-236 (1975), also Springer
1976, and SIGPLAN Notices 12(5):1-70 (May 1977).

ALGOL 68C - Variant of ALGOL 68 developed at Cambridge U Computing Lab in
the 70's.  Used to implementation language for the CHAOS OS for the CAP
capability computer.

ALGOL 68RS - An extension of ALGOL 68 which supports function closures. 
Royal Signals Research Establishment, Malvern UK.

ALGOL 68S - ALGOL 68 Subset.  "A Sublanguage of ALGOL 68", P.G. Hibbard,
SIGPLAN Notices 12(5) (May 1977).  Shareware compiler from Charles Lindsey
, Version 2.3 for Sun3's under OS4.x and Atari under
GEMDOS (or potentially other machines supported by the Amsterdam Compiler

ALGOL C - Clive Feather, Cambridge U, ca. 1981.  Variant of ALGOL 60; added
structures and exception handling.  Designed for beginning students.

ALGOL W - Derivative of ALGOL 60.  "A Contribution to the Development of
Algol", N. Wirth, CACM 9(6):413-431 (June 1966).

ALGOL X - Generic term for the successor to ALGOL 60.  The three designs
proposed were by Wirth, Seegmuller and van Wijngaarden.  Sammet 1969,

ALGY - Early language for symbolic math.  Sammet 1969, p.520.

ALJABR - An implementation of MACSYMA for the Mac.  Fort Pond Research.

ALLOY - Combines functional, object-oriented and logic programming ideas,
suitable for massively parallel systems.  "The Design and Implementation of
ALLOY, a Parallel Higher Level Programming Language", Thanasis Mitsolides
, PhD Thesis NYU 1990.  Version: ALLOY 2.0

ALM - Assembly Language for Multics.  Language on the GE645.  Critical
portions of the Multics kernel were written in ALM.

ALP - List-processing extension of Mercury Autocode.  "ALP, An Autocode
List-Processing Language", D.C. Cooper et al, Computer J 5:28-31 (1962).

ALPAK - Subroutine package used by ALTRAN.  "The ALPAK System for
Nonnumerical Algebra on a Digital Computer", W.S. Brown, Bell Sys Tech J
42:2081 (1963).  Sammet 1969, p.502.

Alphard - Pascal-like.  Introduced the notion of forms.  "Abstraction and
Verification in Alphard: Defining and Specifying Iteration and Generators",
Mary Shaw, CACM 20(8):553-563 (Aug 1977).


  1. Richard V. Andree, U Oklahoma.  Early interpreted algebraic language
for Bendix G15, said to have preceded and influenced development of BASIC.

  2. Parallel logic language.  "Synchronization and Scheduling in ALPS
Objects", P. Vishnubhotia, Proc 8th Intl Conf Distrib Com Sys, IEEE 1988,

ALTAC - An extended FORTRAN II for Philco 2000, built on TAC.  Sammet 1969,

ALTRAN - W.S. Brown, Bell Labs, ca. 1968.  A FORTRAN extension for rational
algebra.  "The ALTRAN System for Rational Function Manipulation - A
Survey", A.D. Hall, CACM 14(8):517-521 (Aug 1971).

Amber -

  1. Adds CSP-like concurrency to ML.  Similar to Galileo.  Concurrency,
multiple inheritance, persistence.  Programs must be written in two type
faces, roman and italics!  Both static and dynamic types.  "Amber", L.
Cardelli, TR Bell Labs 1984.  Implementation for Mac.

  2. U Washington, late 80's.  An object-oriented distributed language
based on a subset of C++.

AMBIT - Algebraic Manipulation by Identity Translation (also claimed:
"Acronym May Be Ignored Totally").  C. Christensen, Massachusetts Computer
Assocs, 1964.  An early pattern-matching language aimed at algebraic
manipulation.  Sammet 1969, pp.454-457.

AMBIT/G - (G for graphs).  "An Example of the Manipulation of Directed
Graphs in the AMBIT/G Programming Language", C. Christensen, in Interactive
Systems for Experimental Applied Mathematics, M. Klerer et al, eds,
Academic Press 1968, pp.423-435.

AMBIT/L - (L for lists).  List handling, allows pattern matching rules
based on two-dimensional diagrams.  "An Introduction to AMBIT/L, A
Diagrammatic Language for List Processing", Carlos Christensen, Proc 2nd
ACM Symp Symb and Alg Manip (Mar 1971).

AMBIT/S - (S for strings). 

AMBUSH - Language for linear programming problems in a materials-
processing/transportation network.  "AMBUSH - An Advanced Model Builder for
Linear Programming", T.R. White et al, National Petroleum Refiners Assoc
Comp Conf (Nov 1971).

AML - IBM, 1980's.  High-level language for industrial robots.  "AML: A
Manufacturing Language", R.H. Taylor et al, Inst J Robot Res 1(3):19-43.

AML/E - AML Entry.  Simple version of AML, implemented on PC, with graphic
display of the robot position.

AMP - Algebraic Manipulation Package.  Symbolic math, written in Modula-2,
seen on CompuServe.

AMPL - "AMPL: Design, Implementation and Evaluation of a Multiprocessing
Language", R. Dannenberg, CMU 1981.  "Loglan Implementation of the AMPL
Message Passing System", J. Milewski SIGPLAN Notices 19(9):21-29 (Sept

AMPPL-II - Associative Memory Parallel Processing Language.  Early 70's.

AMTRAN - Automatic Mathematical TRANslation.  NASA Huntsville, 1966.  For
IBM 1620, based on Culler-Fried System, requires special terminal. 
"AMTRAN: An Interactive Computing System", J. Reinfelds, Proc FJCC 37:537-
542, AFIPS (Fall 1970).

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

ANDF - Architecture Neutral Distribution Format.  OSF's request for a
universal intermediate language, allowing software to be developed and
distributed in a single version, then installed on a variety of hardware. 
"Architecture Neutral Distribution Format: A White Paper", Open Software
Foundation, Nov 1990.  (See UNCOL).

Andorra-I - The OR parallelism of Aurora plus the AND parallelism of
Parlog.  "Andorra-I: A Parallel Prolog System that Transparently Exploits
both And- and Or-Parallelism", V.S Costa et al, SIGPLAN Notices 26(7):83-93
(July 1991).

Andorra-Prolog - "Andorra-Prolog: An Integration of Prolog and Committed
Choice Languages", S. Haridi et al, Intl Conf Fifth Gen Comp Sys 1988, ICOT

Animus - "Constraint-Based Animation: The Implementation of Temporal
Constraints in the Animus System", R. Duisberg, PhD Thesis U Washington

Anna - ANNotated Ada.  ca. 1980.  Adds semantic assertions in the form of
Ada comments.  "ANNA - A Language for Annotating Ada Programs", David
Luckham et al, Springer 1987.

ANSI C - Revision of C, adding function prototypes, structure passing and
assignment, and a standard set of library functions.  ANSI X3.159-1989.

ANSI C++ - X3J16 committee.  (They're workin' on it.)

ANSI FORTH - Soon-to-be-adopted standard.

APAL - Array Processor Assembly Language.  For the DAP parallel machine.

APAREL - A PArse REquest Language.  PL/I extension to provide BNF parsing
routines, for IBM 360.  "APAREL: A Parse Request Language", R.W. Balzer et
al, CACM 12(11) (Nov 1969).

APDL - Algorithmic Processor Description Language.  ALGOL-60-like language
for describing computer design, for CDC G-21.  "The Description,
Simulation, and Automatic Implementation of Digital Computer Processors",
J.A. Darringer, Ph.D Thesis EE Dept, CMU May 1969.

APL - A Programming Language.  Ken Iverson Harvard U 1957-1960.  Designed
originally as a notation for the concise expression of mathematical
algorithms.  Went unnamed and unimplemented for many years.  Finally a
subset APL\360 was implemented in 1964.  APL is an interactive
array-oriented language with many innovative features, written using a non-
standard character set.  It is dynamically typed with dynamic scope.  All
operations are either dyadic infix or monadic prefix, and all expressions
are evaluated from right to left.  The only control structure is branch. 
APL introduced several functional forms but is not purely functional.  "A
Programming Language", Kenneth E. Iverson, Wiley, 1962.  Versions: APL\360,
II, MCM APL, Honeyapple, and DEC APL.
(See Iverson's Language).

APL2 - IBM.  An APL extension with nested arrays.  "APL2 Programming:
Language Reference", IBM Aug 1984.  Order No. SH20-9227-0.

APLGOL - H-P?  An APL with ALGOL-like control structure.

APPLE - Revision of APL for the Illiac IV.

Applesoft BASIC - Version of BASIC on Apple computers.

APPLOG - Unifies logic and functional programming.  "The APPLOG Language",
S. Cohen in Logic Programming, deGroot et al eds, P-H 1986, pp.39-276.

APT - Automatically Programmed Tools.  For numerically controlled machine
tools.  "APT Part Programming", McGraw-Hill.  Versions: APT II (IBM 704,
1958), APT III (IBM 7090, 1961).  Sammet 1969, p.605.

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

AQL - Picture query language, extension of APL.  "AQL: A Relational
Database Management System and Its Geographical Applications", F. Antonacci
et al, in Database Techniques for Pictorial Applications, A. Blaser ed,

Arctic - Real-time functional language, used for music synthesis.  "Arctic:
A Functional Language for Real-Time Control", R.B. Dannenberg, Conf Record
1984 ACM Symp on LISP and Functional Prog, ACM.

ARES - Pictorial query language.  "A Query Manipulation System for Image
Data Retrieval", T. Ichikawa et al, Proc IEEE Workshop Picture Data
Description and Management, Aug 1980, pp.61-67.

Ariel - Array-oriented language for CDC 6400.  "Ariel Reference Manual", P.
Devel, TR 22, CC UC Berkeley, Apr 1968.

Argus - LCS, MIT.  A successor to CLU.  Supports distributed programming
through guardians (like monitors, but can be dynamically created) and
atomic actions (indivisible activity).  cobegin/coend.  "Argus Reference
Manual", B. Liskov et al., TR-400, MIT/LCS, 1987.  "Guardians and Actions:
Linguistic Support for Robust, Distributed Programs", B. Liskov
 et al, TOPLAS 5(3):381-404 (1983).

Ariel - An array-oriented language.  "A New Survey of the Ariel Programming
Language", P. Deuel, TR 4, Ariel Consortium, UC Berkeley (June 1972).

ARITH-MATIC - Alternate name for A-3.

ART - Real-time functional language, timestamps each data value when it was
created.  "Applicative Real-Time Programming", M. Broy, PROC IFIP 1983, N-

ARTSPEAK - Early simple language for plotter graphics.  "The Art of
Programming, ARTSPEAK", Henry Mullish, Courant Inst (Nov 1974).

ASF - An algebraic specification language.  "Algebraic Specification", J.A.
Bergstra et al, A-W 1989.

Ashmedai - Michael Levine   Symbolic math package. 
Had an influence on SMP and FORM.  Versions for Univac 1108 and VAX VMS.

ASIS - Ada Semanic Interface Specification.  An intermediate representation
for Ada.  (See Diana.)

ASL - Algebraic Specification Language.  "Structured Algebraic
Specifications: A Kernel Language", M. Wirsing, Theor Comput Sci 42,
pp.123-249, Elsevier 1986.

ASM - Assembly language on CP/M machines (and a lot of others).

ASN-1 - Abstract Syntax Notation.  Data description language used by the
Natl Center for Biotechnology Information.

ASP - Query language?  Sammet 1969, p.702.

ASPOL - A Simulation Process-Oriented Language.  An ALGOL-like language for
computer simulation.  "Process and Event Control in ASPOL", M.H.
MacDougall, Proc Symp on Simulation of Computer Systems, NBS (Aug 1975).

ASPEN - Toy language for teaching compiler construction.  "ASPEN Language
Specifications", T.R. Wilcox, SIGPLAN Notices 12(11):70-87 (Nov 1977).

ASPIK - Multiple-style specification language.  "Algebraic Specifications
in an Integrated Software Development and Verification System", A. Voss,
Diss, U Kaiserslautern, 1985.

Aspirin - MITRE Corp.  A language for the description of neural networks. 
For use with the MIGRAINES neural network simulator.  Version: 6.0

ASPLE - Toy language.  "A Sampler of Formal Definitions", M. Marcotty et
al, Computing Surveys 8(2):191-276 (Feb 1976).

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

ASTAP - Advanced STatistical Analysis Program.  Analyzing electronic
circuits and other networks.  "Advanced Statistical Analysis Program
(ASTAP) Program Reference Manual", SH-20-1118, IBM, 1973.

Astral - Based on Pascal, never implemented.  "ASTRAL: A Structured and
Unified Approach to Database Design and Manipulation", T. Amble et al, in
Proc of the Database Architecure Conf, Venice, June 1979.

AT-3 - Original name of MATH-MATIC.  Sammet 1969, p.135.

ATLAS - Abbreviated Test Language for Avionics Systems.  _THE_ mil-spec
language for automatic testing of avionics equipment.  Replaced/upgraded
Gaelic and several other test languages.  "IEEE Standard ATLAS Test
Language", IEEE Std 416-1976.

Atlas Autocode - Autocode for the Ferranti Atlas, which may have been the
first commercial machine with hardware-paged virtual memory.  (See

Atlas Commercial Language - 

ATOLL - Acceptance, Test Or Launch Language.  Language used for automating
the checkout and launch of Saturn rockets.  "SLCC ATOLL User's Manual", IBM
70-F11-0001, Huntsville AL Dec 1970.

A'UM - K. Yoshida and T. Chikayama .  Built on top of KL1. 
"A'UM - A Stream-based Concurrent Logic Object-Oriented Language", K.
Yoshida et al, Proc 3rd Intl Conf Fifth Gen Comp Sys, Springer 1988,

Aurora - "The Aurora Or-Parallel Prolog System", E. Lusk et al, Proc 3rd
Intl Conf on Fifth Generation Comp Systems, pp. 819-830, ICOT, A-W 1988.

AUTOCODER - Alick E. Glennie, 1952.  Possibly the first primitive compiler,
it translated symbolic statements into machine language for the Manchester
Mark I computer.  Autocoding came to be a generic term for symbolic
assembly language programming, and versions of Autocode were developed for
many machines: Ferranti Atlas, Titan, Mercury and Pegasus, and IBM 702 and

AUTOGRAF - Describing bar charts.  "User's Manual for AUTOGRAF", Cambridge
Computer Assoc (Dec 1972).

AUTOGRP - AUTOmated GRouPing system.  Interactive statistical analysis.  An
extension of CML.  "AUTOGRP: An Interactive Computer System for the
Analysis of Health Care Data", R.E. Mills et al, Medical Care 14(7) (Jul

Autolisp - Dialect of LISP used by the Autocad CAD package, Autodesk,
Sausalito, CA.

AUTOMATH - Eindhoven, Netherlands.  A very high level language for writing
proofs.  "The Mathematical Language AUTOMATH, Its Usage and Some of its
Extensions", N.G. deBruijn, in Symp on Automatic Demonstration, LNM 125,
Springer 1970.

Autopass - "Autopass: An Automatic Programming System for Computer-
Controlled Mechanical Assembly", L.I. Lieberman et al, IBM J Res Dev
21(4):321-333 (1979).

AUTO-PROMPT - Numerical control language from IBM for 3-D milling.  Sammet
1969, p.606.

Autostat - "Autostat: A Language for Statistical Programming", A.S. Douglas
et al, Computer J 3:61 (1960).

Avalon/C++ - 1986.  Fault-tolerant distributed systems, influenced by
Argus.  A concurrent extension of C++ with servers and transactions. 
"Camelot and Avalon: A Distributed Transaction Facility", J.L. Eppinger et
al, Morgan Kaufmann 1990.

Avalon/Common LISP - Prototype only.  "Reliable Distributed Computing with
Avalon/Common LISP", S.M. Clamen et al, CMU-CS-89-186 and Proc Intl Conf on
Computer Languages, Mar 1990.

AXIOM - IBM.  Commercially available subset of Scratchpad.

AXLE - An early string processing language.  Program consists of an
assertion table which specifies patterns, and an imperative table which
specifies replacements.  "AXLE: An Axiomatic Language for String
Transformations", K. Cohen et al, CACM 8(11):657-661 (Nov 1965).

AWK - Aho Weinberger Kernighan.  1978.  Text processing/macro language. 
"The AWK Programming Language" A. Aho, B. Kernighan, P. Weinberger, A-W
1988.  (See Bawk, Gawk, Mawk, Nawk, Tawk.)

B - 

  1. Thompson, 1970.  A systems language written for Unix on the PDP-11. 
Derived from BCPL, and very similar to it except for syntax.  B was the
predecessor of C.  "The Programming Language B", S.C. Johnson & B.W.
Kernighan, CS TR 8, Bell Labs (Jan 1973).

  2. L. Meertens & S. Pemberton.  Simple interactive programming language,
the predecessor of ABC[1].  "Draft Proposal for the B Language", Lambert
Meertens, CWI, Amsterdam, 1981.

B-0 - Original name of FLOW-MATIC, Remington Rand.  UNIVAC I or II ca.


  1. Mentioned in The Psychology of Computer Programming, G.M. Weinberg,
Van Nostrand 1971, p.241.

  2. Higher-order functional plus first-order logic language.  "Graph-Based
Implementation of a Functional Logic Language", H. Kuchen et al, Proc ESOP
90, LNCS 432, Springer 1990, pp.271-290.  "Logic Programming with Functions
and Predicates: The Language BABEL", Moreno-Navarro et al, J Logic Prog
12(3) (Feb 1992).

BACAIC - Boeing Airplane Company Algebraic Interpreter Coding system. 
Pre-FORTRAN system on the IBM 701, IBM 650.

BAL - Basic Assembly Language.  What most people called IBM 360 assembly
language.  (See ALC).

BALGOL - ALGOL on Burroughs 220.  Sammet 1969, p.174.

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

BALM - Block and List Manipulation.  Harrison, 1970.  Extensible language
with LISP-like features and ALGOL-like syntax, for CDC 6600.  "The Balm
Programming Language", Malcolm Harrison, Courant Inst (May 1973).

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

Baroque - Boyer & Moore, 1972.  Early logic programming language. 
"Computational Logic: Structure Sharing and Proof of program Properties",
J. Moore, DCL Memo 67, U Edinburgh 1974.

bash - Bourne Again SHell.  GNU's command shell for Unix.

BASIC - Beginner's All-purpose Symbolic Instruction Code.  John G. Kemeny &
Thomas E. Kurtz, Dartmouth College, designed 1963, first ran on an IBM 704
on May 1, 1964.  Quick and easy programming by students and beginners. 
BASIC exists in many dialects, and is popular on microcomputers with sound
and graphics support.  Most micro versions are interactive and interpreted,
but the original Dartmouth BASIC was compiled.  ANSI Minimal BASIC, ANS

BASIC AUTOCODER - Early system on IBM 7070.  Listed in CACM 2(5):16 (May

Basic COBOL - Subset of COBOL from COBOL-60 standards.  Sammet 1969, p.339.

Basic FORTRAN - Subset of FORTRAN.  Sammet 1969, p.150.

Basic JOVIAL - Subset of JOVIAL, ca. 1965.  Sammet 1969, p.529.

bawk - Bob Brodt.  AWK-like pattern-matching language, distributed with

BC NELIAC - Version of NELIAC, post 1962.  Sammet 1969, p.197.

BCL - Successor to Atlas Commercial Language.  "The Provisional BCL
Manual", D. Hendry, U London 1966.

BCPL - Basic CPL.  Richards 1969.  British systems language, a descendant
of CPL and the inspiration for B and C.  BCPL is low-level,
block-structured and typeless, and provides only one-dimensional arrays. 
Case is not significant, but conventionally reserved words begin with a
    Flow control: If-Then, Test-Then-Else, Unless-Do, While-Do, Until-Do,
Repeat, Repeatwhile, Repeatuntil, For-to-By-Do, Loop, Break and
Switchon-Into-Case-Default-Endcase.  BCPL has conditional expressions,
pointers, and manifest constants.  'Valof' or 'Resultis' cause a compound
statement to produce a value.  Parameters are call-by-value.
    Program segments communicate via the global vector where system and
user variables are stored in fixed numerical locations in a single array. 
BCPL was used to implement the TRIPOS OS.  "BCPL - The Language and its
Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979.

BDL - Block Diagram Compiler.  A block-diagram simulation tool, with
associated language.  "A Software Environment for Digital Signal-Processing
Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal
Processing 6(1):31-43, (1987).

BEGL - Back End Generator Language.  A code generator description language. 
The input language for the back end generator BEG.  "BEG - A Generator for
Rfficient Back Ends", H. Emmelmann et al, SIGPLAN Notices 24(7):227-237
(Jul 1989).  "BEG  - A Back End Generator - User Manual", H. Emmelmann
, GMD, U Karlsruhe 1990.

BELL - Early system on IBM 650 and Datatron 200 series. [Is Datatron
version the same?]  Listed in CACM 2(5):16 (May 1959).  Versions: BELL L2,

Bertrand - (named for the British mathematician Bertrand Russell (1872-
1970)).  Wm. Leler.  Rule-based specification language based on augmented
term rewriting.  Used to implement constraint languages.  The user must
explicitly specify the tree-search and the constraint propagation. 
"Constraint Programming Languages - Their Specification and Generation", W.
Leler, A-W 1988, ISBN 0-201-06243-7.  

BETA - Kristensen, Madsen, Moller-Pedersen &
Nygaard, 1983.  Object-oriented language with block structure, coroutines,
concurrency, strong typing, part objects, separate objects and classless
objects.  Central feature is a single abstrction mechanism called
"patterns", a generalization of classes, providing instantiation and
hierarchical inheritance for all objects including procedures and
processes.  "The BETA Programming Language", B.B. Kristensen et al, in
Research Directions in Object-Oriented Programming, B.D. Shriver et al eds,
MIT Press, 1987.  Mjolner Informatics ApS, implementations for Mac, Sun,
HP, Apollo.

BIOR - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May 1959).

BLAZE - Single assignment language for parallel processing.  "The BLAZE
Language: A Parallel Language for Scientific Programming", P. Mehrotra et
al, J Parallel Comp 5(3):339-361 (Nov 1987).

BLAZE 2 - Object-oriented successor to BLAZE.  "Concurrent Object Access in
BLAZE 2", P. Mehrotra et al, SIGPLAN Notices 24(4):40-42 (Apr 1989).

B-LINE - Early CAD language.  "B-LINE, Bell Line Drawing Language", A.J.
Frank, Proc Fall JCC 33 1968.

BLISS - Basic Language for Implementation of System Software.  W.A. Wulf,
CMU  ca. 1969.  An expression language, block-structured, and typeless,
with exception handling facilities, coroutines, a macro system, and a
highly optimizing compiler.  One of the first non-assembly languages for OS
implementation.  Gained fame for its lack of a goto.  Also lacks implicit
dereferencing: all symbols stand for addresses, not values.  "BLISS: A
Language for Systems Programming", W.A. Wulf et al, CACM 14(12):780-790
(Dec 1971).  Versions: CMU BLISS-10 for the PDP-10.  CMU BLISS-11, a cross
compiler for PDP-11 running on PDP-10, to support the C.mmp/Hydra project. 

Blosim - Block-Diagram Simulator.  A block-diagram simulator. "A Tool for
Structured Functional Simulation", D.G. Messerschmitt, IEEE J on Selected
Areas in Comm, SAC-2(1):137-147, 1984.

BLOX - A visual language.

BLUE - Softech.  A language proposed to meet the DoD Ironman requirements
which led to Ada.  "On the BLUE Language Submitted to the DoD", E.W.
Dijkstra, SIGPLAN Notices 13(10):10-15 (Oct 1978).

BMASF - Basic Module Algebra Specification Language?  "Design of a
Specification Language by Abstract Syntax Engineering", J.C.M. Baeten et
al, in LNCS 490, pp.363-394.

BMDP - BioMeDical Package.  UCB, 1961.  Statistical language, first
implemented in FORTRAN for the IBM 7090.

BMF - Bird-Meertens Formalism.  A calculus for derivation of a functional
program from a given specification.  "A Calculus of Functions for Program
Derivation", R.S. Bird, in Res Topics in Fnl Prog, D. Turner ed, A-W 1990.

BNF - Backus Normal Form, later renamed Backus-Naur Form at the suggestion
of Donald Knuth.  A formalism to express the productions of context-free

BNR Pascal - "Remote Rendezvous", N. Gammage et al, Soft Prac & Exp
17(10):741-755 (Oct 1987.

BNR Prolog - Constraint logic.

Bob - David Betz.  A tiny object-oriented language.  Dr Dobbs J, Sep 1991,

BOEING - Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16 (May

Booster - Data parallel language.  "The Booster Language", E. Paalvast, TR
PL 89-ITI-B-18, Inst voor Toegepaste Informatica TNO, Delft, 1989.

BOSS - Bridgport Operating System Software.  Derivative of the ISO 1054
numerical machine control language for milling, etc.

Boxer - Hal Abelson and Andy diSessa, Berkeley.  A visual language, claims
to be the successor to Logo.  Boxes used to represent scope.


BRIDGE - Component of ICES for civil engineers.  Sammet 1969, p.616.

Bridgetalk - A visual language.

Brilliant - One of five pedagogical languages based on Markov algorithms,
used in "Nonpareil, a Machine Level Machine Independent Language for the
Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London
(1968).  (cf. Diamond, Nonpareil, Pearl[3], Ruby[2]).

BRUIN - Brown University Interactive Language.  Simple interactive language
with PL/I-like syntax, for IBM 360.  "Meeting the Computational
Requirements of the University, Brown University Interactive Language",
R.G. Munck, Proc 24th ACM Conf, 1969.

BSL - Variant of IBM's PL/S systems language.  Versions: BSL1, BSL2.

BUGSYS - Pattern recognition and preparing animated movies, for IBM 7094
and IBM 360. "BUGSYS: A Programming System for Picture Processing - Not for
Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966).

Burge's Language - Unnamed functional language based on lambda-calculus. 
Recursive Programming techniques", W.H. Burge, A-W 1975.

Butterfly Common LISP - Parallel version of Common LISP for the BBN
Butterfly machine.

Butterfly Scheme - Parallel version of Scheme for the BBN Butterfly.

C - Dennis Ritchie, Bell Labs, ca. 1972.  Originally a systems language for
Unix on the PDP-11, briefly named NB.  Influenced by BCPL through
Thompson's B.  Terse, low-level and permissive.  Preprocessor.  C has
rapidly become the language most widely used for software implementation. 
"The C Programming Language", Brian Kernighan & Dennis Ritchie, P-H 1978.

C* - Thinking Machines, 1987.  Superset of ANSI C, object-oriented, data-
parallel with synchronous semantics, for the Connection Machine.  Adds a
data type, the 'domain', and a selection statement for parallel execution
in domains.  J.R. Rose et al, "C*: An Extended C Language for Data Parallel
Programming", in Proc Second Intl Conf on Supercomputing, L.P. Kartashev et
al eds, May 1987, pp.2-16.  "C* Programming Manual", Thinking Machines
Corp, 1986.

C++ - Stroustrup .  An object-oriented superset of C.  In
C++ a class is a user-defined type, syntactically a struct with member
functions.  Constructors and destructors are member functions called to
create or destroy instances.  A friend is a nonmember function that is
allowed to access the private portion of a class.  C++ allows implicit type
conversion, function inlining, overloading of operators and function names,
and default function arguments.  It has streams for I/O and references. 
"The C++ Programming Language", Bjarne Stroustrup, A-W, 1986.  (See G++).
ftp: for MS-DOS

C++ 2.0 - May 1989.  Multiple inheritance, type-safe linkage, pointers to
members, abstract classes.  "C++ 2.0 Draft Reference Manual"

C++ 2.1 - "Annotated C++ Reference Manual", B. Stroustrup et al, A-W 1990.

C++Linda - "The AUC C++Linda System", C. Callsen et al, U Aalborg, in
Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR
91-13, 1991.

C-10 - Improved version of COLINGO.  Sammet 1969, p.702.

CADET - Computer Aided Design Experimental Translator.  Sammet 1969, p.683.

CAFE - "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS Symp
on Job Control Languages--Past Present and Future, NCC, Manchester, England

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

CAJOLE - Dataflow language.  "The Data Flow Programming Language CAJOLE: An
Informal INtroduction", C.L. Hankin et al, SIGPLAN Notices 16(7):35-44 (Jul

CAL - Course Author Language.  CAI language for IBM 360.  "Design of a
Programming Language for Computer Assisted Learning", F.M. Tonge, Proc IFIP
Congress 1968, v2.

Caliban - Kelly, Imperial College.  Declarative annotation language,
controlling the partitioning and placement of the evaluation of expressions
in a distributed functional language.  "Functional Programming for Loosely-
coupled Multiprocessors", P. Kelly , Pitman/MIT Press,

Calico - Bell Labs.  Object-oriented language.  IEEE Software, May 1991.

CAMAL - CAMbridge ALgebra system.  Symbolic math used in Celestial
Mechanics and General Relativity.  Implemented in BCPL on Titan.  "CAMAL
User's Manual", John P. Fitch, Cambridge U, England (1975).  "The Design of
the Cambridge Algebra System", S.R. Bourne et al, Proc 2nd Symp of Symb &
Alg Manip, SIGSAM 1971.

Camelot Library - "The Camelot Library", J. Bloch, in Guide to the Camelot
Distributed Transaction Facility: Release I, A.Z. Spector et al eds, CMU
1988, pp.29-62.

CAMIL - Computer Assisted/Managed Instructional Language.  Used for CAI at
Lowry AFB, CO.  "The CAMIL Programming Language", David Pflasterer, SIGPLAN
Notices 13(11):43 (Nov 1978).


  1. Categorical Abstract Machine Language.  G. Huet and G. Cousineau.  A
version of ML intermediate between LCF ML and SML.  Lazy data structures. 
Built on the Categorical Abstract Machine.  "The CAML Reference Manual", P.
Weis et al, TR INRIA-ENS, 1989.
ftp:, Version 3.1

  2. Language for preparation of animated movies, listed [?] 1976.

CAML Light - Xavier Leroy.  CAML subset.  A small portable implementation,
uses a bytecode interpreter written in C.  Runs on Unix, MS-DOS, Macs and
Amiga.  Version: 0.4

Candle - related to IDL, Scorpion system?

Cantor - Object-oriented language with fine-grained concurrency.  Athas,
Caltech 1987.  "Multicomputers: Message Passing Concurrent Computers", W.
Athas et al, Computer 21(8):9-24 (Aug 1988)..

CASE SOAP III - Version of SOAP assembly language for IBM 650.  Listed in
CACM 2(5):16 (May 1959).

CAT - Common Abstract Tree Language.  R. Voeller & Uwe Schmidt, U Kiel,
Germany 1983.  Universal intermediate language, used by Norsk Data in their
family of compilers.  "A Multi-Language Compiler System with Automatically
Generated Codegenerators, U. Schmidt et al, SIGPLAN Notices 19(6):202-2121
(June 1984).

CATO - FORTRAN-like CAI language for PLATO system on CDC 1604.  "CSL PLATO
System Manual", L.A. Fillman, U Illinois, June 1966.

CAYLEY - Symbolic math system for group theory.  John Cannon, U Sydney,
Australia, 1976.  "An Introduction to the Group Theory Language CAYLEY", J.
Cannon, Computational Group Theory, M.D. Atkinson ed, Academic Press 1984,
pp.148-183.  Current version: V3.7 for Sun, Apollo, VAX/VMS.

CBASIC - Gordon Eubanks, now at Symantec.  A BASIC compiler.  Evolved
from/into EBASIC.

CCalc - Symbolic math for MS-DOS, available from Simtel.

CCL - 

  1. Coral Common LISP.

  2. Computer Control Language.  English-like query language based on
COLINGO, for IBM 1401 and IBM 1410.  

CCLU - Cambridge CLU.  G. Hamilton et al, CUCL.  CLU extended to support
concurrency, distributed programming, remote procedure calls.
contact: Jean Bacon 

CCP - Concurrent Constraint Programming.  Not a language, but a general

CCS - Calculus of Communicating Systems.  "A Calculus of Communicating
Systems", LNCS 92, Springer 1980.  "Communication and Concurrency", R.
Milner, P-H 1989.

CCSP - Based on CSP.  "Contextually Communicating Sequential Processes - A
Software Engineering Approach", M. Hull et al, Software Prac & Exp
16(9):845-864 (Sept 1986).


  1. Computer Definition [Design?] Language.  A hardware description
language.  "Computer Organization and Microprogramming", Yaohan Chu, P-H

  2. Command Definition Language.  Portion of ICES used to implement
commands.  Sammet 1969, p.618-620.

  3. Compiler Definition Language.  "CDL: A Compiler Implementation
Language", in Methods of Algorithmic Language Implementation, C.H.A Koster,
LNCS 47, Springer 1977, pp.341-351.  "Using the CDL Compiler Compiler",
C.H.A. Koster, 1974.  Variant: CDLM used at Manchester.

  4. Common Design Language.  "Common Design Language", IBM, Software
Engineering Inst, Sept 1983.

Cedar - Superset of Mesa, adding garbage collection, dynamic types and a
universal pointer type (REF ANY).  A large complex language designed for
custom Xerox hardware and the Cedar OS/environment.  Data types: atoms,
lists, ropes ("industrial strength" strings), conditions.  Multiprocessing
features include threads, monitors, signals and catch phrases.  "A
Description of the Cedar Language", Butler Lampson, Xerox PARC, CSL-83-15
(Dec 1983).  "The Structure of Cedar", D. Swinehart et al, SIGPLAN Notices
20(7):230-244 (July 1985).

CELIP - A cellular language for image processing.  "CELIP: A cellular
Language for Image Processing", W. Hasselbring , Parallel Computing 14:99-109 (1990).

CELLSIM - Modeling populations of biological cells.  "CELLSIM II User's
Manual", C.E. Donaghey, U Houston (Sep 1975).

CELP - Computationally Extended Logic Programming.  "Computationally
Extended Logic Programming", M.C. Rubenstein et al, Comp Langs 12(1):1-7

CESP - Common ESP. AI Language Inst, Mitsubishi - Object-oriented extension
of Prolog, a Unix-based version of ESP[3].

CESSL - CEll Space Simulation Language.  Simulating cellular space models. 
"The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS Dept, U
Michigan (Sept 1971).

CFD - Computational Fluid Dynamics.  FORTRAN-based parallel language for
the Illiac IV.

CFP - Communicating Functional Processes.  "Communicating Functional
Processes", M.C. van Eekelen et al, TR 89-3, U Nijmegen, Netherlands, 1989.

CGGL - ("seagull") Code-Generator Generator Language.  A machine-
description language based on modeling the computer as a finite-state
machine.  "A Code Generator Generator Language", M.K. Donegan et al,
SIGPLAN Notices 14(8):58-64 (Aug 1979).

CGOL - V.R. Pratt, 1977.  A package providing ALGOL-like surface syntax for
MACLISP.  "CGOL - An Alternative Exernal Representation for LISP Users", V.
Pratt, MIT AI Lab, Working Paper 89, 1976.

CHARITY - Cockett, Spencer, Fukushima, 1990-1991.  Functional language
based purely on category theory.  "About Charity", J.R.B. Cockett
 et al.  Version for Sun4 available from Tom
Fukushima .

Charme - Bull, 1989.  A language with discrete combinatorial constraint
logic aimed at industrial problems such as planning and scheduling. 
Implemented in C.  An outgrowth of ideas from CHIP.  Semantically
nondeterministic, with choice and backtracking, similar to Prolog.  "Charme
Reference Manual", AI Development Centre, Bull, France 1990.

CHARYBDIS - LISP program to display math expressions.  Related to MATHLAB. 
Sammet 1969, p.522.

CHASM - CHeap ASseMbler.  Shareware assembler for MS-DOS.

CHI - A wide spectrum language, the forerunner of Refine.  "Research on
Knowledge-Based Software Environments at Kestrel Institute", D.R. Smith et
al, IEEE Trans Soft Eng, SE-11(11) (1985).

CHILI - PL/I-like language for systems proramming.  "CHILI, An Algorithmic
Language for Systems Programming", CHI-1014, Chi Corp (Sep 1975).

CHILL - CCITT HIgh-Level Language.  ca. 1980.  Real-time language widely
used in European telecommunications.  "An Analytical Description of CHILL,
the CCITT High Level Language", P. Branquart, LNCS 128, Springer 1982.


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

  2. Constraint Handling In Prolog.  M. Dincbas, ECRC Munich 1985. 
Constraint logic language, includes boolean unification and a symbolic
simplex-like algorithm.  Introduced the domain-variable model.  "The
Constraint Logic Programming Language CHIP", M. Dincbas et al, Proc 2nd
Intl Conf on Fifth Generation Computer Sys, Tokyo (Nov 1988), pp.249-264. 
"Constraint Satisfaction in Logic Programming", Van Hentenryck.  Available
from COSYTEC, 4 rue Jean Rostand, F91893 Orsay, France.

CHIP-48 - Reimplementation of CHIP-8 for the HP-48 calculator.  Andreas
Gustafson , comp.sys.handhelds, Sep 1990.

CHIP-8 - RCA, Late 70's.  Low-level language (really a high-level machine
code) for video games on computers using RCA's CDP1802 processor: COSMAC
VIP, DREAM 6800 and ETI-660.  Now there's an interpreter for the Amiga.

CHISEL - An extension of C for VLSI design, implemented as a C
preprocessor.  It produces CIF as output.  "CHISEL - An Extension to the
Programming language C for VLSI Layout", K. Karplus, PHD Thesis, Stanford
U, 1982.

CHOCS - Generalization of CCS.  "A Calculus of Higer-Order Communicating
Systems", B. Thomsen, 16th POPL pp.143-154 (1989).

CIEL - Object-oriented Prolog-like language.  "CIEL: Classes et Instances
En Logique", M. Gandriau, Thesis ENSEEIHT (1988).

CIF - Caltech Intermediate Form.  Geometry language for VLSI design, in
which the primitives are colored rectangles.  Mead & Conway, "Introduction
to VLSI Systems", A-W 1980, Section 4.5.

CIL - Common Intermediate Language.  "Construction of a Transportable,
Milti-Pass Compiler for Extended Pascal", G.J. Hansen et al, SIGPLAN
Notices 14(8):117-126 (Aug 1979).

CIP-L - CIP Language.  (CIP stands for Computer-aided Intuition-guided
Programming.)  Wide-spectrum language for incremental program
transformation.  There are ALGOL-like and Pascal-like variants.  "The
Munich Project CIP, v.I: The Wide Spectrum Language CIP-L", LNCS 183,
Springer 1984.  Version: CIP85.

CIRCAL - "CIRCAL and the Representation of Communication, Concurrency and
TIme", G.J. Mitre, ACM TOPLAS 7(2):270-298 (1985).

CITRAN - Caltech's answer to MIT's JOSS.  Sammet 1969, p.217.

CL - Control Language.  Batch language for the IBM RPG/38, used in
conjunction with RPG III.  (See OCL).

CLAM - Symbolic math, especially General Relativity.  Implemented in ATLAS
assembly language first, LISP later.  "CLAM Programmer's Manual", Ray
d'Inverno & Russell-Clark, King's College London, 1971.  (See ALAM).

Clarion - MS-DOS 4GL.

CLASP - Subset of SPL[2].

Classic-Ada - Object-oriented extension to Ada, said to be Smalltalk-like. 
Implemented as a preprocessor.

Clean - Subset of Lean.  Experimental lazy higher-order functional language
with no syntactic sugaring (not even infix expressions or complex lists.) 
Also used as an intermediate language.  Implemented via graph rewriting on
the ABC abstract machine.  "Clean - A Language for Functional Graph
Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987.  (See Concurrent

CLEAR - Specification language based on initial algebras.  "An Informal
Introduction to Specification Using CLEAR", R.M. Burstall in The
Correctness Problem in Computer Science, R.S. Boyer et al eds, Academic
Press 1981, pp.185-213.

C-Linda - The most widely used variant of Linda, with C as the base
language.  Available from Sci Comp Assocs .


  1. Compiler Language for Information Processing.  1958-1959.  Based on
IAL, led to JOVIAL.  One of the first languages used to write its own
compiler.  Sammet 1969, p.635.

  2. Common LISP in Parallel.  Allegro.  Version for the Sequent Symmetry.

Clipper - Compiled dBASE dialect from Nantucket Corp, LA.  Versions: 
Winter 85, Spring 86, Autumn 86, Summer 87, 4.5 (Japanese Kanji), 5.0.

CLIPS - C Language Integrated Production System.  NASA JSC.  A forward-
chaining rule-based language with LISP-like syntax that has the inferencing
and representation capabilities of OPS5.  A language for developing expert
systems, now with support for three paradigms: rule-based, object-oriented
and procedural.  Available for MS-DOS, comes with source code in C. 
COSMIC, U Georgia, (404) 542-3265.  Austin Code Works 
(512)258-0785.  Versions: CLIPS 5.1, CLIPS/Ada 4.3.  (See PCLIPS).
ftp: 4.20

CLIX - "Overview of a Parallel Object-Oriented Language CLIX", J. Hur et
al, in ECOOP '87, LNCS 276, Springer 1987, pp.265-273.

CLOS - Common LISP Object System.  Object-oriented extension to Common
LISP, based on generic functions, multiple inheritance, declarative method
combination and a meta-object protocol.  A descendant of CommonLoops. 
"Common LISP Object System Specification X3J13 Document 88-002R", D.G.
Bobrow et al, SIGPLAN Notices 23 (Sep 1988).  (See PCL[2]).

CLP - 

  1. Cornell List Processor.  Extension of CORC for list processing. 
Sammet 1969, p.461.

  2. Constraint Logic Programming.  A programming framework based (as
Prolog) on LUSH (or SLD) resolution, but in which unification has been
replaced by a constraint solver.  A CLP interpreter contains a Prolog-like
inference engine and an incremental constraint solver.  The engine sends
constraints to the solver one at a time.  If the new constraint is
consistent with the collected constraints it will be added to the set.  If
it was inconsistent, it will cause the engine to backtrack.  "Constraint
Logic Programming", J. Jaffar et al, 14th POPL, ACM 1987.

CLP(R) - Constraint Logic Programming (Real).  Joxan Jaffar, TJWRC & S.
Michaylov, Monash U, 1986.  A constraint-logic programming language with
real-arithmetic constraints.  A superset of Prolog.  "The CLP(R) Language
and System", J. Jaffar et al, IBM RR RC16292 (#72336) (Nov 1990).  Version:
1.2 for Unix, MS-DOS and OS/2, available from the author.

CLP* - Derivative of CLP.  "CLP* and Constraint Abstraction", T. Hickey,
16th POPL, pp.125-133, 1989.

CLU - CLUster.  1974-1975.  CLU is an object-oriented language of the
Pascal family designed to support data abstraction, similar to Alphard. 
Introduced the iterator: a coroutine yielding the elements of a data
object, to be used as the sequence of values in a 'for' loop.
    A CLU program consists of separately compilable procedures, clusters
and iterators, no nesting.  A cluster is a module naming an abstract type
and its operations, its internal representation and implementation. 
Clusters and iterators may be generic.  Supplying actual constant values
for the parameters instantiates the module.
    There are no implicit type conversions.  In a cluster, the explicit
type conversions 'up' and 'down' change between the abstract type and the
representation.  There is a universal type 'any', and a procedure force[]
to check that an object is a certain type.  Objects may be mutable or
    Exceptions are raised using 'signal' and handled with 'except'. 
Assignment is by sharing, similar to the sharing of data objects in LISP.
Arguments are passed by call-by-sharing, similar to call by value, except
that the arguments are objects and can be changed only if they are mutable. 
CLU has own variables and multiple assignment.
    "CLU Reference Manual", Barbara Liskov et al, LNCS 114, Springer 1981.
ftp: - versions for Sun, VAX/VMS.
contact: Paul R. Johnson 

Cluster 86 - Shang, Nanjing U ca1986.  Distributed object-oriented
language.  A cluster is a metatype.  "Cluster: An Informal Report", L.
Shang , SIGPLAN Notices 26(1):57-76 (Jan 1991). 
Versions for MS-DOS, Unix.

CMAY - "A Microkernel for Distributed Applications", R. Bagrodia et al,
Proc 5th Intl Conf Distrib Comp Sys IEEE 1985, pp.140-149.

CML - 

  1. A query language.  "Towards a Knowledge Description Language", A.
Borgida et al, in On Knowledge Base Management Systems, J. Mylopoulos et al
eds, Springer 1986.

  2. Concurrent ML.  J. Reppy, Cornell 1990.  A concurrent extension of
SML/NJ, supporting dynamic thread creation and synchronous message passing
on typed channels.  Threads are implemented using first-class
continuations.  "CML: A Higher-Order Concurrent Language", John H. Reppy,
SIGPLAN Notices 26(6):293-305 (June 1991).

CMS-2 - General purpose language used for command and control applications
in the US Navy.  "CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San
Diego CA (Oct 1976).

CO2 - (a blend of C and O2).  Object-oriented database language.  GIP
Altair, Versailles, France.  Francois Bancilhon et al, in Advances in
Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer

COBOL - COmmon Business Oriented Language.  1960.  CODASYL Committee, Apr
1960.  Simple computations on large amounts of data.  The most widely used
programming language today.  The natural language style is intended to be
largely self-documenting.  Introduced the record structure.  "Initial
Specifications for a Common Business Oriented Language" DoD, US GPO, Apr
1960.  Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS X3.23-1974), and

COBOL-1961 Extended - Short-lived separation of COBOL specifications. 
Sammet 1969, p.339.

CoCoA - [Symbolic math?  On a Radio Shack CoCo???  I have no idea.]

Cocol - Coco Language.  A language for writing left-attributed LL(1)
grammars.  Syntactic resemblance to Modula-2.  Used as the input language
for the Coco LL(1) parser generator, which produces Modula-2 output.  "A
Compiler Generator for Microcomputers", P. Rechenberg et al, P-H 1989. 
Version: Cocol-2 for the Coco-2 generator.

CODIL - COntext Dependent Information Language.  Early language for non-
numerical business problems.  "CODIL, Part1.  The Importance of
Flexibility", C.F. Reynolds et al, Computer J 14(3):217-220 (May 1971).

COFF - Common Object File Format.  Binary file format used by Unix System V
Release 3.

COGENT - COmpiler and GENeralized Translator.  Compiler writing language
with pattern-directed string and list processing features, for CDC 3600 and
CDC 3800.  A program consists of productions defining a context-free
language, plus analysis and synthesis function generators, "COGENT
Programming Manual", J.C. Reynolds, ANL-7022, Argonne, Mar 1965.  Sammet
1969, p.638.  "An Introduction to the COGENT System", J.C. Reynolds, Proc
ACM 20th Natl Conf, 1965.

COGO - Co-ordinate geometry problems in Civil Engineering.  A subsystem of
ICES.  "Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug 1967).

Coherent Parallel C - Data parallel language.  "Coherent Parallel C", E.
Felten et al in Third Conf on Hypercube Concurrent Computers and Appls,
ACM, 1988, pp.440-450.

COIF - FORTRAN with interactive graphic extensions for circuit design, on
UNIVAC 1108.  "An Interactive Software System for Computer-Aided Design: An
Application to Circuit Projects", CACM 9(13) (Sep 1970).

COLASL - Early system for numerical prolems on IBM 7030.  Special character
set for input of natural math expressions.  Sammet 1969, pp.265-271.

COLD - A sugared version of COLD-K.

COLD-K - Formal design kernel language for describing (sequential) software
systems in intermediate stages of their design.  "An Introduction to COLD-
K", H.B.M. Jonkers in Algebraic Methods: Theory, Tools and Applications, M.
Wirsing et al eds, LNCS 394, Springer 1989, pp.139-205.

COLINGO - Compile On-LINe and GO.  MITRE Corp.  English-like query system
for IBM 1401.  "The COLINGO System Design Philosophy", Information System
Sciences, Proc Second Congress, 1965.  Sammet 1969, p.664.

COMAL - Benedict Loefstedt & Borge Christensen, 1973.  A language for
beginners, popular in Europe and Scandinavia.  Pascal-like structure added
to BASIC.  COMAL-80 has been adopted as an introductory language in
Denmark.  "Beginning COMAL", B. Christensen, Ellis Harwood 1982.  COMAL
User's Group, 5501 Groveland Terr, Madison WI 53716.  Version for Amiga.

COMIT - 1957-8.  The first string-handling and pattern-matching language,
designed for applications in natural language translation.  The user has a
workspace organized into shelves.  Strings are made of constituents
(words), accessed by subscript.  A program is a set of rules, each of which
has a pattern, a replacement and goto another rule.  "COMIT Programmer's
Reference Manual", V.H. Yngve, MIT Press 1961.  Sammet 1969, pp.416-436.

COMIT II - "Computer Programming with COMIT II", Victor H. Yngve, MIT
Press, 1963.

Comma - COMputable MAthematics.  Esprit project at KU Nijmegen.

COMMEN - L.J. Cohen.  Proc SJCC 30:671-676, AFIPS (Spring 1967).

Commercial Translator - English-like pre-COBOL language for business data
processing.  Sammet 1969, p.378.

Common LISP - An effort begun in 1981 to provide a common dialect of LISP. 
The result is a large and complex language, fairly close to a supeset of
Maclisp.  Lexical binding, data structures using defstruct and setf,
closures, multiple values, types using declare, a variety of numerical
types.  Function calls allow optional, keyword and &rest arguments.  
Generic sequence can either be a list or an array.  Formatted printing
using escape characters.  "Common LISP: The Language", Guy L. Steele,
Digital Press 1984, ISBN 0-932376-41-X. "Common LISP: The Language, 2nd
Edition", Guy L. Steele, Digital Press 1990, ISBN 1-55558-041-6.
ftp:  CMU Common LISP Version 16e
        Draft proposed ANS Common Lisp

CommonLoops - "CommonLoops: Merging Lisp and Object-Oriented Programming",
D.G. Bobrow et al, SIGPLAN Notices 21(11):17-29 (Nov 1986).  (See CLOS,
ftp: - Pcl (Portable CommonLoops)

CommonObjects - "Inheritance and the Development of Encapsulated Software
Components", A. Snyder, Proc 20th Hawaii Conf on Sys Sci, pp.227-238

Compact COBOL - Subset of COBOL defined, but not published, ca. 1961. 
Sammet 1969, p.339.

Compas Pascal - Predecessor of Turbo Pascal, by POLY Data of Denmark. 
Later renamed POLY Pascal, and afterwards sold to Borland.

COMPASS - COMPrehensive ASSembler.  Assembly language on CDC machines.

Compel - COMpute ParallEL.  The first single-assignment language.  "A
Language Design for Concurrent Processes", L.G. Tesler et al, Proc SJCC
32:403-408, AFIPS (Spring 1968).

Compiler-Compiler - Early compiler generator for the Atlas, with its own
distinctive input language.  "The Compiler-Compiler", R.A. Brooker et al,
Ann Rev Automatic Programming 3:229-275, Pergamon 1963.

COMPL - "The COMPL Language and Operating System", A.G. Fraser et al,
Computer J 9(2):144-156 (1966).

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

COMPROSL - COMpound PROcedural Scientific Language.  Language for
scientists or engineers.  Sammet 1969, p.299-300.

Computer Animation Movie Language.  "A Computer Animation Movie Language
for Educational Motion Pictures", D.D. Weiner et al, Proc FJCC 33(2), AFIPS 
(Fall 1968).

Computer Compiler - Proposed language for compiler design.  Sammet 1969,

Computer Design Language - ALGOL-like language for computer design.  "An
ALGOL-like Computer Dewsign Language", Y. Chu, CACM 8(10) (Oct 1965).

COMSL - COMmunication System Simulation Language.  "COMSL - A Communication
System Simulation Language", R.L. Granger, Proc FJCC 37 (1970).

COMTRAN - "Communications Computer Language COMTRAN", D.W. Clark et al,
RADC-TR-69-190, Rose Air Development Center, Griffiss AFB, NY (July 1969). 
Sammet 1969, p.324, 331.

ConC - Concurrent extension of C based on DPN (decomposed Petri nets),
using 'handshake' and 'unit' constructs.  "ConC: A Language for Distributed
Real-Time Programming", V.K. Garg et al, Computer Langs 16(1):5-18 (1991).

CONCUR - "CONCUR, A Language for Continuous Concurrent Processes", R.M.
Salter et al, Comp Langs 5(3):163-189 (1981).

Concurrent C - 

  1. Extension of C with rendezvous-based concurrency.  "Concurrent C",
N.H. Gehani et al, Soft Prac & Exp 16(9):821-844 (1986).  "The Concurrent C
Programming Language", N. Gehani et al, Silicon  Press 1989.  Versions for 
most Unix systems available commercially from AT&T.

  2. Extension of C with asynchronous message passing.  [NOT the same as
above] "Concurrent C: A Language for Distributed Systems", Y. Tsujino et
al, Soft Prac & Exp 14(11):1061-1078 (Nov 1984).

Concurrent C++ - "Concurrent C++: Concurrent Programming with Class(es)",
N. Gehani, Bell labs 1986.

Concurrent Clean - An implementation of CFP.  A version of Clean for
loosely coupled parallel architectures.  Lazy, purely functional.  Strongly
typed (Milner/Mycroft), modules, functional I/O (including windows and
mouse).  Compiles to the PABC machine, based on graph rewriting. 
"Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U Nijmegen,
Netherlands, 1989.  Version: 0.8.1, October 1992.
ftp: - simulator for Mac, Sun3, Sun4

Concurrent CLU - Hamilton, 1984.  "Preserving Abstraction in Concurrent 
Programming", R. Cooper et al, IEEE Trans Soft Eng SE-14(2):258-263 (Feb

Concurrent Euclid - J.R. Cordy & R.C. Holt, U Toronto, 1980.  Subset of
Euclid ("Simple Euclid") with concurrent extensions.  Separate compilation,
modules, processes and monitors, signal and wait on condition variables. 
'Converters' to defeat strong type checking, absolute addresses.  All
procedures and functions are re-entrant.  TUNIS (a Unix-like OS) is written
in Concurrent Euclid.  "Specification of Concurrent Euclid", J.R. Cordy &
R.C. Holt, Reports CSRI-115 & CSRI-133, CSRI, U Toronto, Jul 1980, rev. Aug
1981.  "Concurrent Euclid, The Unix System, and Tunis," R.C. Holt, A-W,

Concurrent LISP - "A Multi-Processor System for Concurrent Lisp", S.
Sugimoto et al, Proc 1983 Intl Conf parallel Proc, 1983 pp.135-143.

Concurrent Pascal - Brinch Hansen, 1972-75.  Extension of a Pascal subset,
Sequential Pascal.  The first language to support monitors.  Access to
hardware devices through monitor calls.  Also processes and classes.  "The
Programming Language Concurrent Pascal", Per Brinch Hansen, IEEE Trans Soft
Eng 1(2):199-207 (Jun 1975).

Concurrent Prolog - Ehud "Udi" Shapiro, Yale . 
Guarded clauses and committed-choice [= dont-care] nondeterminism.  A
subset's been implemented, but not the full language.  "Concurrent Prolog:
Collected Papers", E. Shapiro, V.1-2, MIT Press 1987.  (See Mandala).

Concurrent Scheme - M. Swanson .  A parallel
Lisp, for the Mayfly.  "Concurrent Scheme", R.R. Kessler et al, in Parallel
Lisp: Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989.

ConcurrentSmalltalk - Concurrent variant of Smalltalk (what did you
expect).  "Concurrent Programming in ConcurrentSmalltalk", Y. Yokote et al
in Object-Oriented Concurrent Programming, A. Yonezawa et al eds, MIT Press
1987, pp.129-158.

CONIC - "Dynamic Configuration for Distributed Systems", J. Kramer et al,
IEEE Trans Soft Eng SE-11(4):424-436 (Apr 1985).

Connection Machine LISP - LISP with a parallel data structure, the
'xapping', an array of values assigned to an array of sites.  G.L. Steele
et al, "Connection Machine LISP: Fine-Grained Parallel Symbolic
Processing", in Proc 1986 ACM Conf on LISP and Functional Prog, Aug 1986,
pp.279-297.  "Connection Machine LISP Reference Manual", Thinking Machines
Corp, Feb 1987.

CONNIVER - AI language for automatic theorem proving.  An outgrowth of
PLANNER.  Allowed multiple database contexts with hypothetical assertions. 
"The CONNIVER Reference Manual", D. McDermott & G.J. Sussman
, AI Memo 259, MIT AI Lab, 1973.

ConstraintLisp - Object-oriented constraint language based on CSP.  An
extension of Common Lisp and CLOS.  "ConstraintLisp: An Object-Oriented
Constraint Programming Language", Bing Liu  et al, SIGPLAN
Notices 27(11):17-26 (Nov 1992).

CONSTRAINTS - Constraints using value inference.  "CONSTRAINTS: A Language
for Expressing Almost-Hierarchical Descriptions", G.J. Sussman et al, Artif
Intell 14(1):1-39 (Aug 1980).

Consul - Constraint-based [future-based?] language with LISP-like syntax. 
"Consul: A Parallel Constraint Language", D. Baldwin, IEEE Software


  1. String processing language, an extension of LISP with pattern matching
and transformation operations.  "Convert", A. Guzman et al, CACM 9(8):604-
615 (Aug 1966).

  2. Early language to convert programs and data from one language to
another.  "CONVERT Manual", OLI Systems Inc (Oct 1976).


  1. Concurrent Object-Oriented Language.  A parallel version of C++. 
"COOL: A Language for Parallel Programming", R. Chandra
 et al in Languages and Compilers for Parallel
Computing, D. Gelernter et al eds, MIT Press 1990, pp.126-148.

  2. CLIPS Object-Oriented Language?

CORAL - Class Oriented Ring Associated Language.  L.G. Roberts, MIT 1964. 
Graphical display and systems programming on the TX-2.  Used "rings"
(circular lists) from Sketchpad.  "Graphical Communication and Control
Languages", L.B. Roberts, Information System Sciences: Proc Second
Congress, 1965.  Sammet 1969, p.462.

CORAL 66 - Real-time system programming language, a derivative of JOVIAL
and ALGOL-60.  It was adopted as the British military standard from 1970
until the arrival of Ada.  "Official Definition of CORAL 66", P.M. Woodward
et al, HMSO, London, 1970.

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

CORC - CORnell Compiler.  Simple language for student math problems.  "The
Cornell Computing Language", R.W. Conway et al, CACM 6(6):317-320 (Jun
1963)  Sammet 1969, p.294-296.

Coroutine Pascal - "Control Separation in Programming languages", Lemon et
al, ACM Ann Conf 1977.

CORREGATE - Based on IT.  Sammet 1969, p.139.

Correlatives and Conversions - Data description language used in the Pick
OS.  "Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986.

Coursewriter III - ca. 1976.  Simple CAI language.  "Coursewriter III,
Version 3 Author's Guide", SH20-1009, IBM.

COWSEL - COntrolled Working SpacE Language.  Burstall et al, U Edinburgh,
1964-66.  LISP-like semantics with FORTH-like stack.  Written in reverse
Polish form.  Forerunner of POP.  EPU-R-12, U Edinburgh (Apr 1966).

CP - A concurrent Prolog.  "The Concurrent Logic Programming Language CP":
Definition and Operational Semantics", V. Saraswat, 14th POPL, ACM 1987,

CParaOps5 - Anurag Acharya, .  Parallel version of
OPS5, written in C and compiling to C.  Available for Unix, Mach, Encore
Multimaxen, and Sequent.  Version: 5.4.

CPL - Combined Programming Language.  U Cambridge and U London.  Similar to
ALGOL 60 but quite complex.  Never fully implemented, died with the Atlas
computer.  Led to the much simpler BCPL.  "The Main Features of CPL", D.W.
Barron et al, Computer J 6(2):134-143 (Jul 1963).

C-Prolog - F. Pereira  et al, Jul 1982.  An
implementation of Prolog in C.  No garbage collection.

CPS - 

  1. Conversational Programming System.  Allen-Babcock Corp, 1965. 
Interactive extended subset of PL/I.  "Conversational Programming System
under TSO (PBPO), Terminal User's Manual", SH20-1197, IBM.  Sammet 1969,

  2. Continuation Passing Style.  A semantically clean language with
continuations, has been used as an intermediate language for Scheme and the
SML/NJ compiler.  "Rabbit: A Compiler for Scheme", G.L. Steele, AI-TR-474,
MIT (May 1978).  "Compiling With Continuations", A. Appel, Cambridge U
Press 1992.

C-Refine - Lutz Prechelt  Symbolic naming of code
fragments to redistribute complexity and provide running commentary. 
Implemented as a C preprocessor.
ftp: comp.sources.reviewed: crefine

CRISP - Jeff Barnett, SDC, Santa Monica CA, early 70's.  A LISP-like
language and compiler for the IBM 370.  Differences from LISP included a
generalization of 2-part cons nodes to n-part.

CRL - Carnegie Representation Language.  (c)Carnegie Group Inc.  Frame
language derived from SRL.  Written in Common LISP.  Used in the product
Knowledge Craft.

CROSSTABS - Simple language for statistical analysis of tabular data. 
"User's Manual for the CROSSTABS System", Cambridge Computer Assoc (Feb

Crystal - Concurrent Representation of Your Space-Time ALgorithms.  A
recursion equation parallel language.  "A Parallel Language and its
Compilation to Multiprocessor Machines or VLSI", M.C. Chen, 13th POPL, ACM
1986 pp.131-139.

CS-4 - [?]  Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac &
Exp 10:851-887 (1980).

CS-Prolog - Distributed logic language.  "CS-Prolog on Multi-Transputer
Systems", I. Futo et al, Microprocessors & Microsystems, March 1989.

C-Scheme - Joe Bartlett at DEC/WRL?  Dialect of Scheme implemented in and
embeddable in C.

csh - C-Shell.  William Joy.  Command shell interpreter and script language
for Unix.


  1. Computer Structure Language.  A computer hardware description
language, written in BCPL.  "Computer Structure Language (CSL)", Proc 1975
Symp on Comp Hardware Description Languages and their Appl, ACM (Sep 1975).

  2. Control and Simulation Language.  "Control and Simulation Language",
J.N. Buxton et al, Computer J 5(3):194-199 (Oct 1962).  Version: CSL II.

CSM - "CSM - A Distributed Programming Language", S. Zhongxiu et al, IEEE
Trans Soft Eng SE-13(4):497-500 (Apr 1987).

CSMP - Continuous System Modeling Program.  Simulation of dynamics of
continuous systems.  Similar to CSSL.  "A Guide to Using CSMP - The
Continuous System Modeling Program", Frank H. Speckhart et al, P-H 1976.

CSP - Communicating Sequential Processes.  1978.  A notation for
concurrency based on synchronous message passing and selective
communications.  cobegin/coend.  "Communicating Sequential Processes", A.R.
Hoare, P-H 1985.

CSP/80 - Based on CSP.  "CSP/80: A Language for Communicating Processes",
M. Jazayeri et al, Proc Fall COMPCON80, IEEE pp.736-740 (Sept 1980).

CS/PCode - Used at Microsoft.

CSP/k - Concurrent SP/k.  A PL/I-like concurrent language.  "Structured
Concurrent Programming with Operating System Applications", R.C. Holt et
al, A-W 1978.

CSP-S - "Implementation of CSP-S for Description of Distributed
Algorithms", L. Patniak et al, Comput Lang 9(3):193-202 (1984).

CSPS - "Toward Comprehensive Specification of Distributed Systems", G.
Roman et al, Proc 7th Intl Conf on Distrib Comp Sys, IEEE 1987, pp.282-289.

CS/QCode - Used at Microsoft.

CSS/II - Computer System Simulator II.  Like GPSS, for IBM 360.  "Computer
System Simulator II (CSS II) Program Description and Operations Manual",
SH20-0875, IBM.

CSSA - Object-oriented language.  "Key Concepts in the INCAS Multicomputer
Project", J. Nehmer et al, IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987).

CSSL - Continuous System Simulation Language.  Versions include ACSL,
HYTRAN, SL-I, S/360 and CSMP.  "The SCi Continuous System Simulation
Language (CSSL)", Simulation, 9(6) (Dec 1967).

CSTools - Concurrency through message-passing to named message queues.

CTL - 

  1. Checkout Test language.  "Checkout Test Language: An Interpretive
Language Designed for Aerospace Checkout Tasks", G.S. Metsker, Proc FJCC
33(2) (1968).

  2. Compiler Target Language.  Intermediate language used by the ALICE
parallel machine.  "The Design and Implementation of ALICE: A Parallel
Graph Reduction Machine", M.D. Cripps et al, Proc Workshop on Graph
Reduction, Springer 1987.

Cube - Three-dimensional visual language for higher-order logic.  "The Cube
Language", M. Najork et al, 1991 IEEE Workshop on Visual Langs, Oct 1991,

CUCH - CUrry-CHurch.  Lambda-calculus.  "A Type-Theoretical Alternative to
CUCH, ISWIM, OWHY", Dana Scott, Oxford U 1969.  "Introduction to the CUCH",
C. Bohm et al, in Automata Theory, E.R. Caianiello ed, A-P 1966, pp.35-65.

Culler-Fried System - System for interactive mathematics.  Sammet 1969,

CUPID - Graphic query language.  "CUPID: A Graphic Oriented Facility for
Support of Nonprogrammer Interactions with a Datablase",  N. McDonald, PhD
Thesis, CS Dept, UC Berkeley 1975.

CUPL - Cornell University Programming Language.  Simple math problems,
based on CORC, with PL/I-like syntax.  "An Instruction Language for CUPL",
R.J. Walker, Cornell U, Jul 1967,

CWIC - Compiler for Writing and Implementing Compilers.  Val Schorre.  One
of the early metacompilers.  (cf. Meta-II).

CYBIL - Control Data's system programming language in the 80's.  Major
parts of CDC systems written in this.

CYCL - Frame language.  "Building Large Knowledge-Based Systems", D.B.
Lenat et al, A-W 1990.

CypherText - Interactive language for text formatting and typesetting. 
"CypherText: An Extensible Composing and Typesetting Language", C.G. Moore
et al, Proc FJCC 37, AFIPS (Fall 1970).

D - 

  1. "The Data Language."  MS-DOS 4GL.

  2. A Haskell-like language, with type classes.

DACAPO - Broad-range hardware specification language.  "Mixed Level
Modelling and Simulation of VLSI Systems", F.J. Rammig in Logic Design and
Simulation, E. Horbst ed, N-H 1986.

DACTL - Declarative Alvey Compiler Target Language.  U East Anglia.  An
intermediate language.  "DACTL - A Computational Model and Compiler Target
Language Based on Graph Reduction", J.R.W. Glauert et al, ICL Tech J 5(3)
(1987).  Version: Dactl0.  (See Lean, Parallel SML).

Daisy - Functional.  "Daisy Programming Manual", S.D. Johnson, CS Dept TR,
Indiana U, 1988.

DAISY 201 - Early system on G-15.  Listed in CACM 2(5):16 (May 1959).

DAP Fortran - "Efficient High Speed Computing with the Distributed Array
Processor", P.M. Flanders et al, pp.113-127 (1977). [same as Fortran-

DAPLEX - "The Functional Data Model and the Data Language DAPLEX", D.W.
Shipman, ACM Trans Database Sys, 6(1):140-173 (Mar 1981).

DARE - Differential Analyzer REplacement.  A family of simulation languages
for continuous systems.  "Digital Continuous System Simulation", G.A. Korn
et al, P-H 1978.

Darms - Music language.  "The Darms Project: A Status Report", R.F.
Erickson, Computers and the Humanities 9(6):291-298 (June 1975).

Dartmouth BASIC - Term for the original BASIC by Kemeny & Kurtz.

DAS - Digital Analog Simulator.  Represents analog computer design.

DASL - Datapoint's Advanced System Language.  Gene Hughes.  A cross between
C and Pascal with custom features for Datapoint hardware (no stack), used
internally by Datapoint.

Data/BASIC - Also known as Pick BASIC.  A BASIC-like language with database
capabilities, the main programming language on the Pick OS.  "The
Data/BASIC Language - A Data Processing Language for Non-Professional
Programmers", P.C. Dressen, Proc SJCC 36, AFIPS (Spring 1970).

DATABUS - DATApoint BUSiness Language.  Like an interpreted assembly
language, used for custom applications on Datapoint machines.

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

Data Parallel C - Hatcher & Quinn [?]

Data Structures Language - MAD dialect with extensions for lists and
graphics, on Philco 212.  "A Compiler Language for Data Structures", N.
Laurance, Proc ACM 23rd Natl Conf 36 (1968).

DATA-TEXT - Harvard.  Numerical computations in the Social Sciences. 
"DATA-TEXT Primer", D.J. Armor, Free Press 1972.

DataVis - Dataflow language for scientific visualization.  "Data Flow
Visual Programming Languages", D. Hils, J Vis Langs and Comput, Dec 1991.

dBASE - Language used by the dBASE system.  First release was dBASE II, ca
1980.  (There never was a "dBASE I")  Later versions: dBASE III, dBASE
III+, and dBASE IV.

DBC - Data-parallel Bit-serial C.  SRC, Bowie MD.  Based on MPL.

dBFAST - dBASE dialect for MS-DOS, MS-Windows.

DBPL - Procedural language with relational database constructs.  A
successor to Pascal/R and Modula/R.  "DBPL Report", J.W. Schmidt et al,
DBPL-Memo 111-88, Fachbereich Informatik, Johann Wolfgang
Goethe-Universitaet, Frankfurt, Germany, 1988.

dBXL - dBASE-like interpreter/language for MS-DOS from WordTech, Orinda,

DCALGOL - Data Communications ALGOL.  A superset of Burroughs Extended
ALGOL used for writing Message Control Systems.

DCDL - Digital Control Design Language.  A language for simulating computer
systems.  "DCDS Digital Simulating System", H. Potash et al, Proc FJCC 35,
AFIPS (Fall 1969).

DCG - A variant of BNF.

DCL - 

  1. DIGITAL Command Language.  The interactive command and scripting
language for VAX/VMS.

  2. Delphi Common LISP.  An implementation of Common LISP that has been
used as a basis for CLOS.

DDL - 

  1. "A Digital System Design Language" (DDL)", J.R. Duley, IEEE Trans on
Computers c-17(9):850-861 (Sep 1968).

  2. M. Urban, C. Kostanick et al, UCLA Computer Club.  An adventure
language, the forerunner of ADL.

  3. Data Definition Language.  Specification language for a database based
on the entity-relationship model.  Used in the Eli compiler-compiler to
manage type definitions.  "DDL Reference Manual", ECE Dept U Colorado,

DDM - Dataflow language.  "The Architecture and System Method of DDM-1: A
Recursively Structured Data Driven Machine", A. Davis, Proc 5th Ann Symp
Comp Arch, IEEE 1978.

DEACON - Direct English Access and CONtrol.  English-like query system. 
Sammet 1969, p.668.

Delirium - An embedding coordinate language for parallel programming,
implemented on Sequent Symmetry, Cray, BBN Butterfly.  "Parallel
Programming with Coordination Structures", S. Lucco et al, 18th POPL,
pp.197-208 (1991).

Delta - 

  1. J.C. Cleaveland, 1978.  Expression-based. [?]

  2. Tandem.  A string-processing language with single-character commands.
Delta-Prolog - Prolog extension with AND-parallelism, don't-know
nondeterminism and interprocess communication using synchronous event
goals.  Distributed backtracking.  "Delta-Prolog: A Distributed Logic
Programming Language", L.M. Pereira et al, Intl Conf 5th Gen Comp Sys, Nov

DEMON - Program generator for differential equation problems.  N.W.
Bennett, Australian AEC Research Establishment, AAEC/E142, Aug 1965.

Design System language - J. Gaffney, Evans & Sutherland 1976.  Interpretive
FORTH-like language for 3-D graphics databases.  Earliest forerunner of
both Interpress and PostScript.  Mentioned in PostScript Language Reference
Manual, Adobe Systems, A-W 1985.

DETAB - DEcision TABle.  A. Chapman, 1964.  Decision table preprocessor for
COBOL.  Sammet 1969, p.315.  Versions: DETAB 65, DETAB X.

DETOL - Directly Executable Test Oriented Language.  Simple language to
control a specific type of test equipment.  "Improved DETOL Programming
Manual for the Series 5500 Automatic Test System, Pub. 5500-31-0-1, AAI
Corp. (Sep 1973).

DEX - W. van Oortmerssen.  A cross between Modula-2 and C.
ftp:  Version 1.2 for Amiga

DFC - Dataflow language.

DG/L - 

  1. Descriptive Geometry Language.  Early CAD/CAE language, used light
pen.  "Interactive Graphic Consoles - Environment and Software", R.L.
Beckermeyeer, Proc FJCC 37 (1970).

  2. Data General ca 1973-1974.  Derivative of ALGOL 60, developed from
DG's Algol-5, used as the systems language under AOS and RDOS for the DG
Eclipse family of computers.  Replaced by PL/I in the early 80's.  Data
General manual 093-000229-01.

DIALOG - Illinois Inst Tech, 1966.  Interactive math using graphics tablet. 
"DIALOG: A Conversational Programming System with a Graphical Orientation",
S.H. Cameron et al, CACM 10:349-357 (1967).  Sammet 1969, p.255-258.

DIAMAG - An interactive extension of ALGOL.  Sammet 1969, p.195.

Diamond - One of five pedagogical languages based on Markov algorithms,
used in "Nonpareil, a Machine Level Machine Independent Language for the
Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London
(1968).  (cf. Brilliant, Nonpareil, Pearl[3], Ruby[2]).

DIANA - Descriptive Intermediate Attributed Notation for Ada.  Goos & Wulf,
CMU 1981.  A de facto standard intermediate representation for Ada
programs.  A tree-structured representation with an abstract interface
defined in IDL.  Resulted from a merger of AIDA and TCOL.Ada.  "DIANA - An
Intermediate Language for Ada", G.T. Goos et al, LNCS 161, Springer 1983.

DIBOL - DIgital Business Oriented Language.  DEC for RT-11.  FORTRAN syntax
with BCD arithmetic.

Dictionary APL - nickname for Sharp APL.

Dijkstra's guarded command language - Edsger Dijkstra, ca. 1974. 
Introduced the concept of guards and committed choice [=don't care]
nondeterminism.  Described and used in A Discipline of Programming, E.
Dijkstra, P-H 1976.

DIMATE - Depot Installed Maintenance Automatic Test Equipment.  For
automatic equipment tests, on RCA 301.  "A Simple User-Oriented Source
Language for Programming Automatic Test Equipment", B.H. Scheff, CACM 9(4)
(Apr 1966).  Sammet 1969, p.647.

Dino - Data parallel language, a superset of C.  "Dino: Summary and
Examples", M. Rosing et al, "Third Conf on Hypercube Concurrent Computers
and Appls", pp. 472-481, ACM 1988.

Disiple - DSP language.  "A Compiler that Easily Retargets High Level
Language Programs for Different Signal Processing Architectures", J.E.
Peters & S.M. Dunn, Proc ICASSP 89, pp.1103-1106, (May 1989).

Dislang - "Dislang: A Distributed Programming Language/System", C. Li et
al, Proc 2nd Intl Conf Distrib Comp Sys, IEEE 1981, pp.162-172.

Distributed Eiffel - "Distributed Eiffel: A Language for Programming Multi-
Granular Distributed Objects on the Clouds Operating System", L. Gunaseelan
et al, IEEE Conf Comp Langs, 1992.

Distributed Processes - (Also "DP").  First concurrent language based on
remote procedure calls.  "Distributed Processes: A Concurrent Programming
Concept", P. Brinch Hansen CACM 21(11):934-940 (Nov 1978).

Distributed Smalltalk - "The Deisgn and Implementation of DIstributed
Smalltalk", J. Bennett, SIGPLAN Notices 22(12):318-330 (Dec 1980).

DL/1 - Query language, linear keyword.

DMAD - Diagnostic Machine Aid-Digital.  Functional testing of digital
devices.  "DMAD M/MM Manual", BR-8392, Raytheon Co. (Oct 1973).

DMALGOL - ALGOL with extensions to interface to DMS II, the Burroughs

DML - 

  1. Data Management Language.  Early ALGOL-like language with lists,
graphics, on Honeywell 635.  "DML: A Data Management Language", D.W. Bray
et al, GE, Syracuse NY.

  2. "DML: A Meta-language and System for the Generation of Practical and
Efficient Compilers from Denotational Specifications", M. Pettersson et al,
IEEE Conf Comp Langs, 1992.

Doc - Directed Oc.  "Programming Language Doc and Its Self-Description, or
'X=X Is Considered Harmful'", M. Hirata, Proc 3rd Conf Japan Soc Soft Sci
Tech, pp.69-72 (1986).

DOCUS - Display Oriented Computer Usage System.  Interactive system using
push buttons.  Sammet 1969, p.678

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

DOL - Display Oriented Language.  Subsystem of DOCUS.  Sammet 1969, p.678.

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

d-Prolog - Prolog extended with defeasible reasoning.
ftp: for MS-DOS and Unix

DPL-82 - "DPL-82: A LAnguage for Distributed Processing", L. Ericson, PRoc
3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.526-531.

DPS - Real-time language with direct expression of timing requests. 
"Language Constructs for Distributed Real-Time PRogramming", I. Lee et al
Proc IEEE Real-Time Sys Symp pp.57-66 (Dec 1985).

draco - Chris Gray, 1987.  A blend of Pascal, C and ALGOL 68.  Implemented
for CP/M-80 and Amiga.

DRAGON - Implementation language used by BTI Computer Systems.
info: Pat Helland 

DRAGOON - Colin Atkinson, Imperial College 1989.  (current address:
, U Houston-Clear Lake).  Ada-based language, bringing
object-oriented programming to embeddable systems.  Presently implemented
as a preprocessor to Ada.  "Object-Oriented Reuse, Concurrency and
Distribution: An Ada-Based Approach", C. Atkinson, A-W 1991, ISBN 0-2015-6-

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

DSL - 

  1. Digital Simulation Language.  Extensions to FORTRAN to simulate analog
computer functions.  "DSL/90 - A Digital Simulation Program for Continuous
System Modelling", Proc SJCC 28, AFIPS (Spring 1966).  Version: DSL/90 for
the IBM 7090.  Sammet 1969, p.632.

  2. Denotational Semantics Language.  Specification language used by the
SIS compiler generator.  "SIS - Semantics Implementation System", P.D.
Mosses, TR DAIMI MD-30, Aarhus U, Denmark.

DSM - 

  1. Data Structure Manager.  J.E. Rumbaugh and M.E. Loomis, GE.  Object-
oriented language similar to C++, used in implementation of CAD/CAE
software.  DSM is written in itself and C, and produces C as output.  "DSM:
An Object-Relationship Modeling Language", A. Shah et al, SIGPLAN Notices
24(10):191-202 (OOPSLA '89) (Oct 1989).

  2. DIGITAL Standard MUMPS.  DEC.  (See MUMPS).

DSP/C - Numerical extension to C, for DSP applications.  "DSP/C: A Standard
High Level Language for DSP and Numeric Processing", K. Leary & W.
Waddington, Proc ICASSP 90, Apr 1990, pp.1065-1068.

DSP32 Assembly Language - A high-level assembly language for the DSP32
Programmable DSP Chip.

DSPL:  Digital Signal Processing Language.  A C-derived DSP language.  "The
Programming Language DSPL", A. Schwarte & H. Hanselmann, Proc PCIM 90,

DTALGOL - Decision Table Algol.  Victoria U, Wellington.  An ALGOL superset
that added Decision Tables.  On Burroughs Large System.

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

Dual FCP - [?]

Durra - "Durra: A Task-level Description Language", M.R. Barbacci et al,
CMU/SEI-86-TR-3, CMU 1986.

DYANA - DYnamics ANAlyzer.  Early specialized language for vibrational and
other dynamic systems.  Sammet 1969, p.628.

Dylan - (named for Dylan Thomas)  Advanced Technology Group East, Apple
Computer.  A simple object-oriented LISP dialect, most closely resembles
CLOS and Scheme.  "Dylan, an Object-Oriented Dynamic Language", Apple 1992.
ftp: - compiler implemented in Scheme

DYNAMO - DYNamic MOdels.  Phyllis Fox & A.L. Pugh, 1959.  Continuous
simulation including economic, industrial and social systems.  Versions:
"DYNAMO User's Manual", A.L. Pugh, MIT Press 1976.

DYSAC - Digital Simulated Analog Computer.  Sammet 1969, p.629.

DYSTAL - DYnamic STorage ALlocation.  Adds lists, strings, sorting,
statistics and matrix operations to FORTRAN.  Sammet 1969, p.388.  "DYSTAL:
Dynamic Storage Allocation Language in FORTRAN", J.M. Sakoda, in Symbol
Manipulation Languages and Techniques, D.G. Bobrow ed, N-H 1971, pp.302-

E - An extension of C++ with database types and persistent objects.  Used
in the Exodus database system.  "Persistence in the E Language: Issues and
Implementation", J.E. Richardson et al, Soft Prac & Exp 19(12):1115-1150
(Dec 1989).

Eagle - dBASE-like dialect bundled with Emerald Bay, sold by Migent from
1986-1988, later renamed Vulcan when Wayne Ratliff reacquired the product.

Ease - General purpose parallel programming language, combining the process
constructs of CSP and the distributed data structures of Linda. 
"Programming with Ease: Semiotic Definition of the Language", S.E. Zenith,
 Yale U TR-809, Jul 1990.

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

EASIAC - Early system on Midac computer.  Listed in CACM 2(5):16 (May

EASY FOX - Early system on JOHNNIAC computer.  Listed in CACM 2(5):16 (May

EBASIC - Gordon Eubanks, now at Symantec.  Form of BASIC that led to

ECAP II - Electronic Circuit Analysis Program.  Simple language for
analyzing electrical networks.  "Introduction to Computer Analysis: ECAP
for Electronics Technicians and Engineers", H. Levin, P-H 1970.

Echidna - Constraint logic programming embedded in an object-oreinted
language.  The syntax is an extension of Edinburgh Prolog.  "Hierarchical
Arc Consistency Applied to Numeric Processing in Constraint Logic
Programming", G. Sidebottom et al, TR-91-06, CSS-IS, Simon Fraser U, and
Comp Intell 8(4) (1992).

ECL -  Extensible CL.  Wegbreit, ca 1970.  "The ECL Programming System", B.
Wegbreit, Proc FJCC 39:253-261, AFIPS (Fall 1971).  "ECL Programmer's
Manual", B. Wegbreit, TR 23-74, Harvard U (Dec 1974).

ECMA - Subset of ALGOL.  Sammet 1969, p.180.

ECP - Extended Concurrent Prolog.  Concurrent Prolog with OR parallelism,
set abstraction and meta-inference features.  "AND-OR Queuing in Extended
Concurrent Prolog", J. Tanaka et al, Proc Logic Prog Conf '85, LNCS 193,
Springer 1985. [???]

ECRC-Prolog - Evidently Prolog with coroutine extensions.  "ECRC-Prolog
User's Manual Version 1.0", K. Estenfeld, TR-LP-08 ECRC, Feb 1986.  (See

ECSP - An extension to CSP, supporting dynamic communication channels and
nested processes.  "Static Type Checking of Interprocess Communication in
ECSP", F. Baiardi et al, SIGPLAN Notices 19(6):290-299 (June 1984).

ECSS II - Extendable Computer System Simulator.  An extension of SIMSCRIPT
II.  "The ECSS II Language for Simulating Computer Systems", D.W. Kosy, R-
1895-GSA, Rand Corp.

ECSSL - Formerly APSE.  Equation-oriented specifications for continuous
simulations.  The compiler outputs HYTRAN, which must be run on an analog

Eden - Concurrent object-oriented language with both synchronous and
asynchronous message passing.  "The Eden System: A Technical Review", G.
Almes et al, IEEE Trans Soft Eng SE-11(1):43-59 (Jan 1985).


  1. Electronic Design Interchange Format.  Not a programming language, but
a format to simplify data transfer between CAD/CAE systems.  LISP-like
syntax.  "EDIF Electronic Design Interchange Format Version 200", ANSI/EIA
Standard 548.

  2. VLSI design specification language.  "Designer's Guide to EDIF", E.
Marx et al, EDN 1987. [?]

Edinburgh Prolog - Prolog dialect which eventually developed into the
standard, as opposed to Marseille Prolog.  (The difference is largely
syntax.)  Clocksin & Mellish describe Edinburgh Prolog.  Version: C-Prolog.

Edison - 

  1. (named for the American inventor Thomas Edison (1847-1931))  Brinch
Hansen.  A simplified Pascal, with modules and concurrency (cobegin/coend). 
"Edison - A Multiprocessor Language", P. Brinch Hansen, CS Dept, USC, Sep
1980.  "Programming a Personal Computer", Brinch Hansen, P-H 1977.

  2. Adds an OPS5-like system to C.  Translated by preprocessor into C. 
"Edison, A Unix and C Friendly Rete Based Production System", B. Thirion,
SIGPLAN Notices 27(1):75-84 (Jan 1992).

EDL - 

  1. Experiment Description Language.  J.S. Jenkins.  "A Programmable
System for Acquisition and Reduction of Respiratory Physiological Data",
J.S. Jenkins et al, Ann Biomed Eng, 17:93-108 (1989).

  2. Event Description Language.  "EDL: A Basis for Distributed System
Debugging Tools", P.C. Bates et al, in Proc Hawaii Intl Conf on Sys Sci,
Jan 1982, pp.86-93.

EFL - Extended FORTRAN Language.  Preprocessor for FORTRAN to provide
structured programming much like C.  A descendant of RATFOR, written in C. 
"An Informal Description of EFL", S.I. Feldman.

Eh - "A".  Software Portability Group, U Waterloo.  A typeless language
derived from (and similar to) B.  Provides guaranteed order of evaluation
for side effects in expressions.  Also character indexing operators.  "Eh
Reference Manual", R.S.C. Braga, RR CS-76-45, U Waterloo, Nov 1976.  (See

Eiffel - Bertrand Meyer  ca. 1986.  An object-
oriented language.  Classes with multiple and repeated inheritance,
deferred classes (like Smalltalk's abstract class), and clusters of
classes.  Objects can have both static and dynamic types.  The dynamic type
must be a descendant of the static (declared) type.  Dynamic binding
resolves clashes from the multiple inheritance.  Flattened forms of
classes, in which all of the inherited features are added at the same
level.  Generic classes parametrized by type.  Persistent objects, garbage
collection, exception handling, interface to routines written in other
languages.  Implemented as a preprocessor to C.  "Eiffel: the Language",
Bertrand Meyer, P-H 1990.  Interactive Software Eng, Goleta CA, (805) 685-
1006.  Version 2.3, Eiffel-3 (See Sather).

EL1 -  Extensible Language One.  B. Wegbreit, Harvard ca 1974.  An
extensible language, internally somewhat LISP-like, but fully typed with
records and pointers.  The external syntax is Algol-like and extensible,
supporting user-defined data structures, control structures and operations. 
The parser is table-driven, with a modifiable set of productions.  Used as
the basis for the ECL operating system. "Studies in Extensible Programming
Languages", B. Wegbreit, Garland Pub 1980.

el(alpha) - Aims to be a high-level language that knows about real
hardware, for systems programming.  "Essential Language el(alpha) - A
Reduced Expression Set Language for Systems Programming", T. Watanabe et
al, SIGPLAN Notices 26(1):85-98.

Elan - "Top-down Programming with Elan", C.H.A. Koster, Ellis Horwood 1987.

ELF - Binary format used by System V Release 4 Unix.

ELI - 

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

  2. Embedded Lisp Interpreter.  Bob Glickstein  
Small Common Lisp-like interpreter embedded in the Andrew mail system.

ELISP - Chuck Hedrick, Rutgers.  Implemented originally for DEC-20's, later
used as the LISP in EMACS.

Elk - Extension Language Kit.  Oliver Laumann ,
Tech U Berlin.  A Scheme interpreter, easily extendable with new types and
primitive procedures.  First-class environments, dynamic-wind, fluid-let,
macros, dynamic loading of object files, autoloading, and a dump.

ELLA - Hardware description language.  "The Design Rationale of ELLA, A
Hardware Design and Description Language", J.D. Morison et al, in Computer
Hardware Description Languages and their Applications, C.J. Koomen et al
eds, N-H 1985.

Ellie - Object-oriented language with fine-grained parallelism for
distributed computing.  Based on BETA, Smalltalk, and others.  Parallelism
by unbounded RPC and 'future' objects.  Synchronization by 'dynamic
interfaces.  Classes, methods, blocks and objects all modeled by first-
class 'Ellie objects'.  Genericity, polymorphism and
delegation/inheritance.  "Ellie Language Definition Report", Birger
Andersen , SIGPLAN Notices 25(11):45-65 (Nov 1990).

ELLIS - EuLisp LInda System.  An object-oriented Linda system written for
EuLisp.  "Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery
 et al, in Linda-Like Systems and Their
Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991.

ELP - 

  1. English Language Programs.  Language for testing avionics equipment,
on Varian 620/i.  "Multiband Automatic test Equipment - A Computer
Controlled Checkout System", T. Kuroda et al, Proc SJCC, 38 (1971).

  2. Equational Logic Programming.  O'Donnell . 
Semantically pure, fully lazy.  "Equational Logic as a Programming
Language", M.J. O'Donnell, MIT Press 1985.  Current version: 4.2.
ftp: for Sun and DEC.

ELSIE - A distributed version of ELLIS.  "Using Object-Oriented Mechanisms
to Describe Linda", P. Broadbery  et al, in Linda-
Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13,

EM-1 - A stack-oriented intermediate language, used by the Amsterdam
Compiler Kit.
info: Andrew Tanenbaum , Vrije U, Amsterdam.

EMA - Extended Mercury Autocode.  (See Autocode).

EMACS LISP - Richard Stallman.  Variant of LISP used by the EMACS editor. 
(This is the "offical" name, based on the EMACS FAQ file.  See ELISP.)

Emerald - U Washington, early 80's.  The successor of EPL[3].  An
object-oriented distributed programming language/environment.  Strongly
typed, uses signatures and prototypes rather than inheritance. 
"Distribution and Abstract Types in Emerald", A. Black et al, IEEE Trans
Soft Eng SE-13(1):65-76 (Jan 1987).

EML - Extended ML.  A language for formally specifying SML programs. 
"Formal Program Development in Extended ML for the Working Programmer", D.
Sannella, Proc 3rd BCS/FACS Workshop on Refinement", Springer 1990.

English - Database language used in the Pick OS.  "Exploring the Pick
Operating System", J.E. Sisk et al, Hayden 1986.

EOL - Expression Oriented Language.  A low-level language for strings. 
"EOL - A Symbol Manipulation Language", L. Lukaszewicz,  Computer J
10(1):53 (May 1967). Versions: EOL-1, EOL-2, EOL-3.


  1. Extended Programming In LOGic.  PROLOG with several AND's having
different time constraints.  "Epilog: A Language for Extended Programming
in Logic", A. Porto in Implementations of Prolog, J.A. Campbell ed, Ellis
Horwood 1984.

  2. A data-driven PROLOG, with both AND and OR parallelism.  "EPILOG =
PROLOG + Data Flow", M.J. Wise, SIGPLAN Noices 17:80-86 (1982).


  1. Early PL/I.  McIlroy, Morris et al.  PL/I subset dialect, the first
running PL/I compiler.  Used by Bell Labs and MIT to write Multics, EPL had
extensions to handle the segment/offset nature of Multics pointers.  "EPL
Reference Manual", Project MAC, April 1966.  Sammet 1969, p.542.  (See

  2. Experimental Programming Language.  David May.  Influenced occam. 
"EPL: An Experimental Language for Distributed Computing", D.C. May, in
Trends and Applications: Distributed Processing Proceedings, NBS, pp.69-71.

  3. Eden Programming Language.  U Washington.  Based on Concurrent Euclid
and used with the Eden distributed OS.  Influenced Emerald and Distributed
Smalltalk.  "EPL Programmer's Guide", A. Black et al, U Washington June

  4. Equational Programming Language. Szymanski, RPI.  Equational language
for parallel scientific applications.  "EPL - Parallel Programming with
Recurrent Equations", B. Szymanski in Parallel Functional Languages and
Compilers, B. Szymanski et, A-W 1991.

EPROS - A specification/prototyping language.  Implemented in Franz Lisp. 
"Software Prototyping, Formal Methods and VDM", Sharam Hekmatpour et al, A-
W 1988.

EPSIMONE - Concurrent simulation language derived from Simone.  "EPSIMONE
Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978.

EqL - An equational language.  Bharat Jayaraman . 
"EqL: The Language and its Implementation", B. Jayaraman et al, IEEE Trans
Soft Eng SE-15(6):771-780 (June 1989).

EQLog - OBJ2 plus logic programming based on Horn logic with equality. 
"EQLog: Equality, Types and Generic Modules for Logic Programming", J.
Goguen et al in Functional and Logic Programming, D. DeGroot et al eds,
pp.295-363, P-H 1986.

Eqn - Language for typesetting mathematics.  "A System for Typesetting
Mathematics", B.W. Kernighan and L.L. Cherry, CACM 18(3):151-157 (Mar

Equel - Embedded Quel.  INGRES, Inc.  Combines QUEL theories with C code.

Erlang - Armstrong, Williams & Virding, Ellemtel, Sweden.  Concurrent
functional programming language for real-time systems.  Explicit
concurrency, asynchronous message passing.  "Erlang - an Experimental
Telephony Programming Language", J.L. Armstrong et al, 13th Intl Switching
Symposium, Stockholm 1990.  Interpreter in SICStus Prolog, compilers in C
and in Erlang, for several Unix platforms.

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

ES-1 - Early text editing interpreter.  Sammet 1969, p.684.

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

ESI - Dialect of JOSS.  Sammet 1969, p.217.

esim - A simulation language for VLSI, at the switch level.  Primitives are
nodes and transistors.  C.M. Baker et al, "Tools for Verifying Integrated
CIrcuit Design", Lambda 1(3):22-30 (1980).


  1. Extra Simple Pascal.  Subset of Pascal.

  2. Econometric Software Package.  Statistical analysis of time series. 
"Econometric Software Package, User's Manual", J.P. Cooper, Graduate School
of Business, U Chicago.  Sammet 1978.

  3. Extended Self-containing Prolog.  Chikayama.  An object-oriented
extension of KL0.  Backtracking-based control, unification-based parameter
passing, object-oriented calling.  An object in ESP is an axiom set.  A
class definition consists of nature definitions (inheritance), slot
definitions (class variables) and clause definitions.  Multiple inheritance
similar to Flavors.  Implemented for ICOT's PSI Sequential Inference
machine.  "Unique Features of ESP", T. Chikayama, Proc Intl Conf 5th Gen
Comp Sys, ICOT 1984.  (See CESP)

  4. Early symbolic math system.  A. Rom, Celest Mech 3:331-345 (1971).

ESPOL - An ALGOL superset used to write the MCP (Master Control Program) on
Burroughs 6700.  Superseded by NEWP.  "The B6700 ESPOL Reference Manual",
Burroughs, 1970.

Estelle - A Pascal extension for specification of computer network
protocols.  Protocols are described by modules which are communicating
NFA's.  Modules are arranged in a dynamic hierarchy and communicate at
named interaction points.  "The Formal Description Technique Estelle", M.
Diaz et al eds, N-H 1989.  Adopted by CCITT.  ISO standard IS 9074.
ftp:      Compiles Estelle into C
                                  petdingo   Translates Estelle into C++

Esterel - Distributed language for synchronous interaction of real-time
systems with their environment.  Uses explicit timing requests.  Esterel
programs are compiled into finite automata.  "The ESTEREL Programming
Language and its Mathematical Semantics", G. Berry & L. Cosserat, TR 327,
INRIA, 1984.

ET - Bernd Gersdorf, U Bremen.  An integration of functional and logic

ET++ - Weinand, UBILAB Zurich.  A smalltalk-like system built on C++.

ETC - ExTendible Compiler.  FORTRAN-like, macro extendible.  "ETC - An
Extendible Macro-Based Compiler", B.N. Dickman, Proc SJCC 38 (1971).

ETHER - Concurrent object-oriented language?

Euclid - (named for the Greek geometer, fl ca 300 BC.)  A Pascal descendant
for development of verifiable system software.  No goto, no side effects,
no global assignments, no functional arguments, no nested procedures, no
floats, no enumeration types.  Pointers are treated as indices of special
arrays called collections.  To prevent aliasing, Euclid forbids any overlap
in the list of actual parameters of a procedure.  Each procedure gives an
imports list, and the compiler determines the identifiers that are
implicitly imported.  Iterators.   "Report on the Programming Language
Euclid", B.W. Lampson et al, SIGPLAN Notices 12(2):1-79 (Feb 1977).

EULER - (named for the Swiss mathematician Leonhard Euler (1707-1783)) 
Revision of ALGOL.  A small predecessor of Pascal.  "EULER: A
Generalization of ALGOL and Its Formal Definition", N. Wirth, CACM 9(1)
(Jan 1966) and 9(2) (Feb 1966).

EuLisp - 1985-present.  LISP dialect intended to be a common European
standard, with influences from Common LISP, Le LISP, Scheme and T.  First-
class functions, classes and continuations, both static and dynamic scope,
modules, support for parallelism.  The class system (TELOS) incorporates
ideas from CLOS, ObjVLisp and Oaklisp.
ftp: (Free and Eventually Eulisp)

Eva - A toy ALGOL-like language used in Formal Specification of Programming
Languages:  A Panoramic Primer, F. G. Pagan, P-H 1981.

EXAPT - EXtended APT.

EXEC - Early batch language for IBM VM/CMS systems.  SC19-6209 Virtual
Machine/ System Product CMS Command and Macro Reference (Appendix F. CMS
EXEC Control Statements)

EXEC2 - IBM, late 70's.  SC24-5219 Virtual Machine/System Product EXEC 2
Reference.  Superseded by REXX.

Express - Concurrency through message-passing to named message queues.

Extended ALGOL - Used to write the ESPOL compiler on Burroughs B5500,
B6700.  "Burroughs B6700 Extended ALGOL Language Information Manual", No.
5000128 (Jul 1971)  Sammet 1969, p.196.

Extended C++ - G. Masotti  Extensions to C++
including preconditions, postconditions, class invariants, parametrized
classes, exception handling and garbage collection.  Implemented as a
preprocessor to C++.

Extended ML - Don Sanella, Edinburgh.  Algebraic specification meets
functional programming.  "Program Specification and Development in Standard
ML", D. Sannella et al, 12th POPL, ACM 1985.

EXTRA - Object-oriented, Pascal style, handles sets.  "A Data Model and
Query Language for EXODUS", M.J. Carey et al, SIGMOD 88 Conf Proc, pp.413-
423, ACM SIGMOD Record 17:3 (Sept 1988).

EZ - High-level string-processing language derived from SNOBOL4, SL5 and
Icon.  "The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U Arizona,

FAC - Functional Array Calculator.  APL-like but purely functional and
lazy, allowing infinite arrays.  "FAC: A Functional APL Language", H.-C. Tu
and A.J. Perlis, IEEE Trans Soft Eng 3(1):36-45 (Jan 1986).

Facile - ECRC.  A concurrent extension of ML.  "Facile: A Symmetric
Integration of Concurrent and Functional Programming", A. Giacalone
 et al, Intl J Parallel Prog 18(2):121-160 (Apr 1989).

FACT - Fully Automated Compiling Technique.  ca. 1959.  Pre-COBOL
English-like business DP language for Honeywell 800.  (Aka Honeywell-800
Business Compiler.)  Sammet 1969, p.327.

FAD - "FAD, A Simple and Powerful Database Language", F. Bancilon et al,
Proc 13th Intl Conf on VLDB, Brighton England, Sept 1987.

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

FAP - Assembly language for Sperry-Rand 1103 and 1103A.  Listed in CACM
2(5):16 (May 1959).

FAS - General purpose language sponsored by the Finnish government in the
70's and 80's.

FASE - Fundamentally Analyzable Simplified English.  L.E. McMahon, Bell
Labs.  Sammet 1969, p.720.

FAST - FORTRAN Automatic Symbol Translator.  Assembly language on IBM 650
by MITRE Corp.  Listed in CACM 2(5):16 (May 1959).  Sammet 1969, p.526.

FC - Functional language.  "FC Manual", L. Augustsson, Memo 13, Programming
Methodology Group, Chalmers U, Sweden 1982.

F-code - Code for the FPM abstract machine, an optimized SECD machine. 
"FP/M Abstract Syntax Description", R. Bailey, Dept Computing, Imperial
College, U London, 1985.

FCP - Flat Concurrent Prolog.  "Design and Implementation of Flat
Concurrent Prolog", C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984.

Feel - Free and Eventually EuLisp.  An initial implementation of EuLisp.

FEL - Function Equation Language.  Programs are sets of definitions. 
Sequences are lists stored in consecutive memory.  "FEL Programmer's
Guide", R. M. Keller, AMPS TR 7, U Utah, March 1982.

FFP - Formal FP.  Similar to FP, but with regular sugarless syntax, for
machine execution.  "Can Programming be Liberated From the von Neumann
Style?  A Functional Style and Its Algebra of Programs", John Backus, 1977
Turing Award Lecture, CACM 21(8):165-180 (Aug 1978).  (See FP, FL).

FGHC - Flat GHC.  A variant of GHC in which guard calls can be only to
primitives.  (See KL1).

FGL - 

  1. Flow Graph Lisp.  A distributed dataflow language for AMPS
(Applicative Multi-Processing System).  "A Loosely-Coupled Applicative
Multi-Processing System", R. Keller et al, NCC, AFIPS June 1979, pp.613-

  2. Function Graph Language.  Related to FEL.

FGL+LV - "Functional Programming and the Logical Variable", G. Lindstrom,
POPL 1985, pp.266-280.

FGRAAL - FORTRAN extended GRAph Algorithmic Language.  A FORTRAN extension
for handling sets and graphs.  "On a Programming Language for Graph
Algorithms", W.C. Rheinboldt et al, BIT 12(2) 1972.

FIDO - FInite DOmains.  A constraint language implemented on top of Prolog.

File Composition - Typesetting language.  "File Composition System
Reference Manual", No. 90388, Information Intl.

F+L - Equational clauses within function definitions to solve for logical
variable bindings.  ""Functions plus Logic in Theory and Practice", R.B.
Kieburtz, Feb 1987, unpublished.

FL - Function Level.  John Backus, ca. 1985.  Successor to FP.  Dynamically
typed.  Adds higher-order functions, exceptions, user-defined types, and
other features.  "FL Language Manual, Parts 1 & 2", J. Backus et al, IBM
Research Report RJ 7100 (1989).  (See FP, FFP).

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

FLAP - Symbolic math, for IBM 360.  "FLAP Programmer's Manual", A.H. Morris
Jr., TR-2558 (1971) U.S. Naval Weapons Lab.  Sammet 1969, p.506.

Flavors - D. Weinreb & D.A. Moon  1980.  LISP
with object-oriented features.  "Object-Oriented Programming with Flavors",
D.A. Moon, SIGPLAN Notices 21(11):1-8 (OOPSLA '86) (Nov 1986).

Fleng - Parallel logic language.  "Massively Parallel Implementation of
Flat GHC on the Connection Machine", M. Nilsson, Proc Intl Conf on 5th Gen
Comp Sys, 1988, pp.1031-1040.


  1. Faster LEX.  (Faster and free.)  "The FLEX Scanner Generator", Vern
Paxson , Real Time Systems, LBL, CA.  (See Lex).
ftp: comp.sources.unix/Volume23 with Ada output

  2. Real-time language for dynamic environments.  "FLEX: Towards Flexible
Real-Time Programs", K. Lin et al, Computer Langs 16(1):65-79 (Jan 1991).

Flex 2 - ca. 1980.  A preprocessor designed to make FORTRAN look more like
Pascal.  DECUS?
FLIC - Functional Language Intermediate Code.  Intermediate language used
in the Chalmers LML compiler.  "FLIC - A Functional Language Intermediate
Code", S. Peyton Jones et al., RR 148, U Warwick, Sep


  1. Early assembly language on G-15.  Listed in CACM 2(5):16 (May 1959).

  2. "FLIP User's Manual", G. Kahn, TR 5, INRIA 1981.

  3. Formal LIst Processor.  Early language for pattern-matching on LISP
structures.  Similar to CONVERT.  "FLIP, A Format List Processor", W.
Teitelman, Memo MAC-M-263, MIT 1966.

FLIP-SPUR - Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16 (May

F-Logic - "F-Logic: A Higher-Order Language for Reasoning about Objects,
Inheritance and Scheme", ACM SIGMOD May 1989, pp.134-146.

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

FLOW-MATIC or FLOWMATIC - (originally B-0).  Remington Rand, 1958. 
Possibly the first English-like DP language.  For UNIVAC I.  Sammet 1969,

FLPL - FORTRAN List Processing Language.  H. Gelernter et al, ca 1960. 
Package of FORTRAN subroutines for handling lists.  Sammet 1969, p.388.

FMPL - Frobozz Magic Programming Language.  Experimental Computing
Facility, UC Berkeley.  A prototype-based object-oriented language with
functional features.  Event-driven.


  1. FOrmula CALculator.  BASIC-style interpreter from DEC, designed 1969
for PDP-5/PDP-8's.  Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for PDP-11
under RT-11).

  2. Forty-One CAlculator Language.  Programming language of the HP-41
calculator line.

FOCUS - Hierarchical database language.  Information Builders Inc.

FOIL - File Oriented Interpretive Language.  CAI language.  "FOIL - A File
Oriented Interpretive Language", J.C. Hesselbart, Proc ACM 23rd National
Conf (1968).

foogol - Per Lindberg.  A tiny ALGOL-like language based on the VALGOL I
compiler, G.A. Edgar, DDJ May 1985.
ftp: comp.sources.unix/V8 /systems/amiga/fish/fish/ff066

FOOL - Fool's Lisp.  A small Scheme interpreter.

FOOP - OBJ2 plus object-orientation.  "Extensions and Foundations for
Object-Oriented Programming", J. Goguen et al, in Research Directions in
Object-Oriented Programming, B. Shriver et al eds, MIT Press 1987.
FORC - Early system on IBM 704.  Listed in CACM 2(5):16 (May 1959).

Force - dBASE dialect for MS-DOS.

The Force - Data parallel language.  "The Force", H. Jordan in The
Characteristics of Parallel Algorithms, L. Jamieson et al eds, MIT Press
1987, pp.395-436.

ForceOne - Andrew K. Wright.  "Polymorphism in the Compiled Language
ForceOne", G.V. Cormack et al, Proc 20th Annual Hawaii Intl Conf on System
Sciences, 1987, pp.284-292.  "Design of the Programming Language ForceOne",
A.K. Wright, MS Thesis, U Waterloo 1987.

ForceTwo - Andrew K. Wright.  An unofficial successor to ForceOne.

FORM - Jos Vermaseren  1989.  Designed for speedy
handling of very large-scale symbolic math calculations.  A descendant of
Schoonschip.  Available for many PC's and workstations.

FORMAC - FORmula MAnipulation Compiler.  J. Sammet & Tobey, IBM Boston APD,
1962.  Extension of FORTRAN for symbolic math.  "Introduction to FORMAC",
J.E. Sammet et al, IEEE Trans Elec Comp (Aug 1964).  Versions: PL/I-FORMAC
and FORMAC73.  Sammet 1969, pp.474-491.


  1. FORmula MAnipulation Language.  An early FORTRAN extension for
symbolic math.  "FORMAL, A Formula Manipulation Language", C.K. Mesztenyi,
Computer Note CN-1, CS Dept, U Maryland (Jan 1971).

  2. IBM LASC.  Data manipulation language for nonprogrammers.  "FORMAL: A
Forms-Oriented and Visual-Directed Application System", N.C. Shu, IEEE
Computer 18(8):38-49 (1985).

FORMAT-FORTRAN - FORTRAN Matrix Abstraction Technique FORTRAN. 
Manipulation, printing and plotting of large matrices.  "FORMAT-FORTRAN
Matrix Abstraction Technique (Vol. V)" AFFDL-TR-66-207, Douglas Aircraft Co
(Oct 1968).

Formes - Object-oriented language for music composition and synthesis,
written in VLISP.  "Formes: Composition and Scheduling of Processes", X.
Rodet & P. Cointe, Computer Music J 8(3):32-50 (Fall 1984).

Formula - 

  1. FORTH Music Language.  An extension of FORTH with concurrent note-
playing processes.  "Formula: A Programming Language for Expressive
Computer Music", D.P. Anderson et al Computer 24(7):12 (Jul 1991).  For Mac
and Atari ST, with MIDI output.

  2. Preprocessor language for the Acorn Archimedes, allowing inline high-
level statements to be entered in an assembly program.  Written in nawk.

Formula ALGOL - ALGOL extension for symolic math, strings and lists. 
Carnegie, CDC G-20, 1962.  A.J. Perlis & R. Iturriaga.  Sammet 1969, p.583. 
"An Extension of ALGOL for Manipulating Formulae", A.J. Perlis et al, CACM
7(2):127-130 (Feb 1964).

Forsythe - An ALGOL-like language.  "Preliminary Design of the Programming
Language Forsythe", J.C. Reynolds, CMU-CS-88-159, 1988.

FORTH - Fourth.  Charles H. Moore, 1960's.  An interactive extensible
language using postfix syntax and a data stack.  A program is a set of
recursive functions ("words") which are compiled by an outer interpreter
into bytecodes.  FORTH is small and efficient, but programs can be
difficult to read.  Used first to guide the telescope at NRAO, Kitt Peak. 
Versions include FORTH 79 and FORTH 83.  FORTH Interest Group, Box 1105,
San Carlos CA 94070.

FORTRAN - FORmula TRANslator.  The first and still the most widely used
language for numerical calculations.  Nonrecursive, efficient.

FORTRAN I - John Backus, IBM for the IBM 704.  Design begun 1954, compiler
released April 1957.

FORTRAN II - 1958.  Added subroutines.

FORTRAN III - This was only distributed to ca. 20 sites.  See Wexelblat.

FORTRAN IV - IBM 1962.  For the IBM 7090/94.  Many implementations went
well beyond the original definition.

FORTRAN V - Preliminary work on adding character handling facilities by IBM
ca. 1962.  This name never really used.

FORTRAN VI - Internal IBM name for early PL/I work ca. 1963.  Sammet 1969,

FORTRAN 66 - FORTRAN IV standardized.  ASA X3.9-1966.

FORTRAN 77 - Block IF, PARAMETER, SAVE statements added, still no WHILE. 
Fixed-length character strings, format-free I/O, arrays with lower bounds. 
ANSI X3.9-1978.
ftp: for Amiga

Fortran 90 - Previously Fortran 8x and Fortran Extended.  An extensive
enlargement of FORTRAN 77.  Derived types, assumed shape arrays, array
sections, functions returning arrays, case statement, module subprograms
and internal subprograms, optional and keyword subprogram arguments,
recursion, and dynamic allocation.  ISO 1539:1991, soon to be adopted by
ANSI.  "Fortran 90 Explained", M. Metcalf et al, Oxford University Press

Fortran D - Ken Kennedy, Rice U.  A data-parallel Fortran.  TR 90-141, Rice

Fortran-Linda - Scientific Computer Assocs .

FORTRAN-Plus - FORTRAN for the DAP parallel machine, implements many
Fortran 90 features.

FORTRANSIT - FORTRAN Internal Translator.  Subset of FORTRAN translated
into IT on the IBM 650.  Sammet 1969, p.141.

FORTRUNCIBLE - A cross between FORTRAN and RUNCIBLE for the IBM 650. 
Listed in CACM 2(5):16 (May 1959).

FOSIL - Fredette's Operating System Interface Language.  A portable job
control language, for IBM OS360, UNIVAC EXEC 8 and Honeywell GCOS. 
"Fredette's Operating System Interface Language (FOSIL)", G.N. Baird in
Command Languages, C. Unger ed, N-H 1973.

FoxBASE+ - dBASE III+-like product from Fox Software, Perrysburg, OH.

FoxPRO - dBASE IV-like product from Fox Software, Perrysburg, OH.

FP - Functional Programming.  Backus.  Combinator based.  "Can Programming
be Liberated From the von Neumann Style?  A Functional Style and Its
Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM
21(8):165-180 (Aug 1978).  (See FFP, FL, IFP).
Berkeley FP - distributed with 4.2BSD
ftp: comp.sources.unix/Volume20: fpc translates FP programs to C.
	comp.sources.unix/volume13: FP by Andy Valencia

FP2 - Functional Parallel Programming.  Term rewrite rules used to specify
algebraic data types and parallel processes.  "Term Rewriting as a Basis
for the Design of a Functional and Parallel Programming Language.  A Case
Study: The Language FP2", Ph. Jorrand in Fundamentals of Artificial
Intelligence, LNCS 258, Springer 1986, pp.221-276.

FP/M - An intermediate language for functional languages, used to implement
Hope.  "The Compilation of FP/M Programs into Conventional Machine Code",
A.J. Field, Imperial College, London, 1985.  "Functional Programming", A.J.
Field & M.C. Harrison, A-W 1988.

FQL - Functional database language.  "An Implementation Technique for
Database Query Languages", O.P. Buneman et al, ACM Trans Database Sys
7(2):164-186 (June 1982).

FrameKit - Frame language.  "The FrameKit User's Guide", E. Nyberg, TR CMU-
CMT-88-MEMO, CMU 1988.

FRANK - "Using BINS for Interprocess Communication", P.C.J. Graham, SIGPLAN
Notices 20(2):32-41 (Feb 1985).

Franz Lisp - (named for the Hungarian composer Franz Liszt (1811-1886)) R.
Fateman et al, UC Berkeley ca 1980.  A subdialect of MACLISP.  "The FRANZ
LISP Manual", J.K. Foderaro et al. UC Berkeley 1980.  Version: Opus 38.22. 
Liszt (the compiler) Version 8.08.

FRED - Robert Carr.  Language used by Framework, Ashton-Tate.

Fresh - "Fresh: A Higher-Order Language Based on Unification", G. Smolka,
in Logic Programming: Functions, Relations and Equations", D. DeGroot et
al, P-H 1986, pp.469-524.

FRINGE - C. Katz, GE, 1961.  Subcomponent of GE-255 GECOM system.  Sorting
and merging of data, reports and file maintenance.

FRL - Frame Representation Language.  MIT.  "The FRL Manual", R. Roberts et
al, AI Memo 409, MIT AI Lab, 1977.

FRMT-FTRN - Scientific language, listed [?] 1976.

FSL - Formal Semantics Language.  Language for compiler writing.  "A Formal
Semantics for Computer Languages and its Application in a Compiler-
Compiler", J.A. Feldman, CACM 9(1) (Jan 1966).  Sammet 1969, p.641.

Fugue - Music language, implemented in Xlisp.  "Fugue: A Functional
Language for Sound Synthesis", R.B. Dannenberg et al, Computer 24(7):36-41
(Jul 1991).

Fun - A typed lambda-calculus, similar to SOL[2].  "On Understanding Types,
Data Abstractions and Polymorphism", L. Cardelli et al, ACM Comp Surveys
17(4) (Dec 1985).

FUNLOG - Functional programming plus unification.  "Lazy" in the sense that
expressions are reduced only if they are not unifiable.  "FUNLOG: A
Computational Model Integrating Logic Programming and Functional
Programming", P.A. Subrahmanyam et al, in Logic Programming: Functions,
Relations and Equations, D. DeGroot et al eds, P-H 1986.

FX-87 - Effects.  A polymorphic language based on Scheme, allowing side
effects and first-class functions.  Attempts to integrate functional and
imperative programming.  Expressions have types, side effects (e.g.
reading, writing or allocating) and regions (stating where the effects may
occur).  "The FX-87 Reference Manual", D.K. Gifford 
et al, MIT/LCS/TR-407, Oct 1987.  Version: FX-89.

FX-90 - Partial type and effect reconstruction and first-class modules.

G - 

  1. "G: A Functional Language with Generic Abstract Data Types", P.A.G.
Bailes, Computer Langs 12(2):69-94 (1987).

  2. Oregon State U 1988.  Combines functional, object-oriented,
relational, imperative and logic programming (you name it we got it).  "The
Multiparadigm Language G", J. Placer, Computer Langs 16:235-258(1991).

G++ - GNU's implementation of C++.
ftp: for Unix

Gabriel - Graphical DSP language for simulation and real systems.  "A
Design Tool for Hardware and Software for Multiprocessor DSP Systems," E.A.
Lee, E. Goei, J. Bier & S. Bhattacharyya, DSP Systems, Proc ISCAS-89, 1989.

GADS - Picture retrieval language.  "Integrated Geographical Databases: The
GADS Experience", P.E. Mantey et al, in Database Techniques for Pictorial
Applications, A. Blaser ed, pp.193-198.

Gaelic - For automated test programs.  Used in military, essentially
replaced by ATLAS.

Galaxy - An extensible language in the vein of EL/1 and RCC.  "Introduction
to the Galaxy Language", Anne F. Beetem et al, IEEE Software 6(3):55-62.

Galileo - "Galileo: A Strongly Typed Interactive Conceptual Language", A.
Albano et al, ACM Trans Database Sys 10(2):230-260 (June 1985).

Gambit - A variant of Scheme R3.99 supporting the 'future' construct of
Multilisp.  Implementation includes a compiler portable across 680x0
systems.  Version: 1.7.1.


  1. language for matrices and generation of mathematical programming
reports.  "GAMMA 3.3 for MPS/MPSX, IBM System:/360", Bonnor & Moore Assocs
(Mar 1975).

  2. A high-level parallel language.  Research Directions in High-Level
Parallel Languages, LeMetayer ed, Springer 1992.

GAN - Generating and Analyzing Networks.  "GAN - A System for Generating
and Analyzing Acivity Networks", A. Schurmann, CACM 11(10) (Oct 1968).

GAP - Groups Algorithms and Programming.  Johannes Meier, Alice Niemeyer,
Werner Nickel, Martin Schonert, Aachen 1988.  Symbolic math for
computational group theory.
ftp:, version for Sun.

GAPLog - General Amalgamated Programming with Logic.  LOGPRO group,
Linkoping Sweden.  Restricted version of constraint loic programming, using
S-unification but not restricted to a single domain.  [Chapter in
forthcoming Springer book on ESPRIT]

Gargoyle - For compiler writing.  J.V. Garwick, CACM 7(1):16-20, (Jan

GARP - Graphical language for concurrent programming.  "Visual Concurrent
Programmint in GARP", S.K. Goering er al, PARLE '89 v.II, LNCS 366, pp.165-

GASP - Graph Algorithm and Software Package.  PL/I extension for
programming graph algorithms.  "GASP - Gprah Algorithm Software Package",
S. CHase, TR CS Dept, U Illinois, Dec 1969.

GAT - Generalized Algebraic Translator.  Improved version of IT.  On IBM
650 RAMAC.  Sammet 1969, p.142.

GATE - GAT Extended?  Based on IT.  Sammet 1969, p.139.

GAWK - GNU's implementation of AWK.

GCL - General Control Language.  A portable job control language.  "A
General Control Interface for Satellite Systems", R.J. Dakin in Command
Languages, C. Unger ed, N-H 1973.

G-Code - 

  1. Johnsson & Augustsson, Chalmers Inst Tech.  Intermediate language used
by the G-machine, an implementation of graph reduction based on
supercombinators.  "Efficient Compilation of Lazy Evaluation", T. Johnsson,
SIGPLAN Notices 19(6):58-69 (June 1984).

  2. A machine-like language for the representation and interpretation of
attributed grammars.  Used as an intermediate language by the Coco compiler
generator.  "A Compiler Generator for Microcomputers", P. Rechenberg et al,
P-H 1989.

GDPL - Generalized Distributed Programming Language.  "GDPL - A Generalized
Distributed Programming Language", K. Ng et al, Proc 4th Intl Conf Distrib
Comp Sys, IEEE 1984, pp.69-78.

GEA - Graph Extended ALGOL.  Extension of ALGOL-60 for graph manipulation,
on UNIVAC 1108.  "A Language for Treating Graphs", S. Crespi-Reghizzi et
al, , CACM 13(5) (May 1970).

GECOM - For the GE-255.  Somewhat akin to COBOL with some ALGOL features
added.  Comprised of ALGOL, COBOL, FRINGE and TABSOL.  FRINGE and TABSOL
may not have actually been implemented.  Sammet 1969, p.329.

Gedanken - John Reynolds, 1970.  "GEDANKEN - A Simple Typeless Language
Based on the Principle of Completeness and the Reference Concept", J.C.
Reynolds, CACM 13(5):308-319 (May 1970).

General Purpose Graphic Language - "A General Purpose Graphic Language",
H.E. Kulsrud, CACM 11(4) (Apr 1968).

Gentleman's Portable Coroutine System - Coroutine package in FORTRAN.  "A
Portable Coroutine System", W.M. Gentleman, Info Proc 71, C.V. Freiman ed,

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

Gerald - "Gerald: An Exceptional Lazy Functional Programming Language",
A.C. Reeves et al, in Functional Programming, Glasgow 1989, K. Davis et al
eds, Springer 1990.

GHC - Guarded Horn Clauses.  K. Ueda.  Parallel logic language similar to
Parlog.  Guards and commited-choice nondeterminism.  (See FGHC, KL1).

GIM-1 - Generalized Information Management Language.  Nelson, Pick,
Andrews.  Proc SJCC 29:169-73, AFIPS (Fall 1966).

GIN - Special-purpose macro assembler used to build the GEORGE 3 operating
system for ICL1900 series machines.

GIRL - Graph Information Retrieval Language.  Handling directed graphs. 
"Graph Information Retrieval Language", S. Berkowitz, Report 76-0085, Naval
Ship Res Dev Center, (Feb 1976).

GKS - Graphical Kernel System.

Glammar - A pattern transformation language for text-to-text translation,
Used for compiler writing and linguistics.

GLASS - General LAnguage for System Semantics.  Esprit project at KU

Glisp - Generalized LISP.  D.C. Smith, Aug 1990.  A coordinated set of
high-level syntaxes for Common LISP.  Contains Mlisp, Plisp and ordinary
LISP, with an extensible framework for adding others.  Written in Plisp.

GLOS - Graphics Language Object System.  Dan Johnston> and
Brian Hicks , U Queensland, St. Lucia 1978.  Graphics objects
correspond to language statements (e.g. line, circle, polygon etc).  New
objects defined using procedures.  2-D Transformations are context
dependent and may be nested.

GLOW - A POP-11 variant with lexical scope.  Reviewed in Byte's UK edition,
May 1992.  Available from Andrew Arnblaster, Bollostraat 6, B-3140
Keerbergen, Belgium, for Mac or MS-DOS.

Glypnir - 1966.  An ALGOL-like language with parallel extensions.  Similar
to Actus.  "GLYPNIR - A Programming Language for the Illiac IV", D.H.
Lawrie et al, CACM 18(3) (Mar 1975).

GMAP - GCOS Macro Assembler Program - Macro assembler for the GCOS 8
operating system on Honeywell/Bull DPS-8 machines.  "GCOS8 OS GMAP User's
Guide", Bull.

Goedel - Declarative language for AI, based on many-sorted logic.  Strongly
typed, polymorphic, declarative, with a module system.  Supports bignums
and sets.  Partial implementation available on SISCtus Prolog.

Gofer - Mark Jones , Oxford 1991.  An interpreted
language similar to Haskell 1.1.  Lazy evaluation, higher order functions,
pattern matching, and type classes.  Lambda, case, conditional and let
expressions, and wildcard, as and irrefutable patterns.  Lacks modules,
arrays, standard classes.  "Introduction to Gofer 2.20", M.P. Jones.

GOL - General Operating Language.  Subsystem of DOCUS.  Sammet 1969, p.678.

GOM - Good Old MAD.  Don Boettner, U Mich.  MAD for the IBM 360.  Parts of
the MTS Time-sharing system were written in GOM.

GOOD - Graph-Oriented Object Database.  A graph manipulation language for
use as a database query language.  "A Graph-Oriented Object Database
Model", M. Gyssens et al, Proc ACM Symp Princs of Database Sys, Mar 1990.

GOSPL - Graphics-Oriented Signal Processing Language.  A graphical DSP
language for simulation.  "Graphic Oriented Signal Processing Language -
GOSPL", C.D. Covington et al, Proc ICASSP-87, 1987.

GP - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May 1959).

GPL - 

  1. Generalized Programming Language.  General purpose language akin to
ALGOL.  Sammet 1969, p.195.

  2. "A Sample Management Application Program in a Graphical Data-driven
Programming language", A.L. Davis et al, Digest of Papers, Compcon Spring
81, Feb 1981, pp.162-167.

GPM - General Purpose Macro-generator.  Early text-processing language
similar to TRAC, implemented on Atlas 2.  "A General Purpose
Macrogenerator", C. Strachey, Computer J 8(3):225-241 (Oct 1965).

GPSS - General Purpose Systems Simulator.  Geoffrey Gordon, 1960.  Discrete
simulations.  "The Application of GPSS V to Discrete System Simulation", G.
Gordon, P-H 1975.  Versions include GPSS II (1963), GPSS III (1965),
GPS/360 (1967), and GPSS V (1970).

GPX - Early system on UNIVAC II.  Listed in CACM 2(5):16 (May 1959).

GRAAL - ("Grail")  General Recursive Applicative and Algorithmic Language. 
FP with polyadic combinators.  "Graal: A Functional Programming System with
Uncurryfied Combinators and its Reduction Machine", P. Bellot in ESOP 86,
G. Goos ed, LNCS 213, Springer 1986.

GRAF - GRaphic Additions to FORTRAN.  FORTRAN plus graphic data types. 
"GRAF: Graphic Additions to FORTRAN", A. Hurwitz et al, Proc SJCC 30
(1967).  Sammet 1969, p.674.

GRAIL - Graphical Input Language.  Flowchart language entered on a grphics
tablet.  "The GRAIL Language and Operations", T.O. Ellis et al, RM-6001-
ARPA, RAND, Sept 1969.

GRAIN - Pictorial query language.  "Pictorial Information Systems", S.K.
Chang et al eds, Springer 1980.

GRAM - An extension of BNF used by the SIS compiler generator.  "SIS -
Semantics Implementation System", P.D. Mosses, TR DAIMI MD-30, Aarhus U,

Graphic ALGOL - Generation of shaded perspective picures in real time.
"An Extended ALGOL-60 for Shaded Computer Graphics", B. Jones, Proc ACM
Symp on Graphic Languages, Apr 1976.

Graphic Language - For specifying graphic operations.  "A Problem Oriented
Graphic Language", P.J. Schwinn, proc ACM 22nd Natl Conf, 1967.  Sammet
1969, p.677.

GRAPPLE - GRAPh Processing LanguagE.  1968.  "A Directed Graph
Representation for Computer Simulation of Belief Systems", L.G. Tesler et
al, Math Biosciences 2:19-40 (1968).

GREEN - A proposed language to meet the DoD Ironman requirements which led
to Ada.  This language was the winner.  "On the GREEN Language Submitted to
the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):16-21 (Oct 1978).

GRIND - GRaphical INterpretive Display.  Graphical input language for PDP-
9.  "GRIND: A Language and Translator for COmputer Graphics", A.P. Conn,
Dartmouth, June 1969.

Groff - GNU's implementation of roff.  (See nroff, troff).

GSBL - "GSBL: An Algebraic Specification Language Based on Inheritance", S.
Clerici et al in in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer
1988, pp.78-92.

GSPL - Greenberg's System Programming Language.  Bernard Greenberg.

GVL - Graphical View Language.  T.C.N. Graham & J.R. Cordy, Queen's U.
Canada.  A visual language for specifying interactive graphical output. 
"GVL: A Graphical, Functional Language for the Specification of Output in
Programming Languages", J.R. Cordy & T.C.N. Graham, Proc IEEE Intl Conf on
Comp Lang ICCL'90 (March 1990).

GW-BASIC - "Gee Whiz" BASIC.  Microsoft's BASIC with graphic extensions.

Gypsy - Specification and verification of concurrent systems software. 
Message passing using named mailboxes.  Separately compilable units:
routine (procedure, function, or process), type and constant definition,
each with a list of access rights. "Report on the Language Gypsy", A.L.
Ambler et al, UT Austin ICSCS-CMP-1 Aug 1976.

HAL/S - Real-time language used by NASA for onboard shuttle software. 
"Two-Dimensional Characteristics of HAL, A Language for Spaceflight
Applications", J.S. Miller, SIGPLAN Notices 7(10) (Oct 1972).

HALGOL - Hewlett-Packard.  A simple language for communicating with devices
such as modems and X.25 PADs.

HALMAT - Intermediate language used by HAL/S.

Haskell - (named for the logician Haskell B. Curry).  April 1990.  Designed
by a committee from the functional programming community.  A lazy purely
functional language largely derived from Miranda.  Static polymorphic
typing, higher-order functions, user-defined algebraic data types, and
pattern-matching list comprehensions.  Innovations include a class system,
operator overloading, functional I/O system, functional arrays, and
separate compilation.   "Report on the Programming Language Haskell Version
1.1", Paul Hudak & P. Wadler eds, CS Depts, U Glasgow and Yale U. (Aug
1991).  Version 1.2: SIGPLAN Notices 27(5) (Apr 1992).
  Yale Haskell - beta 2.0, a full Haskell 1.2 system built on Common Lisp.
  Glasgow Haskell - Version 0.10 for Sun4's
  Haskell B. - Haskell 1.2 implemented in LML, for Sun 3's and 4's,        
	DECstation 3100 and Sequent Symmetry.

HASL - SASL plus conditional unification.  "A Prological Definition of
HASL, A Purely Functional Language with Unification Based Conditional
Binding Expressions", H. Abramson in Logic Programming: Functions,
Relations and Equations, D. DeGroot et al eds, P-H 1986.

HCLP - Hierarchical CLP.  "Constraint Hierarchies and Logic Programming",
A. Borning et al, in Proc Sixth Intl Logic Prog Conf, June 1989, pp. 149-

HCPRVR - "HCPRVR: An Interpreter for Logic Programs", D. Chester in Proc
First Natl Conf on AI, Stanford, 1980.

HDFL - Single assignment language.  "Methods for Handling Structures in
Data-Flow Systems", J.L. Gaudiot, Proc 12th Intl Symp Comp Arch, June 1985.


HELP - DEA.  Language for industrial robots.

HEQS - E. Derman.  Constraint language for financial modeling.  Uses an
extension of the equation solver in IDEAL.  "A Simple Equation Solver and
Its Application to Financial Modeling", E. Derman et al, Soft Prac & Exp
14(12):1169-1181 (Dec 1984).

HERAKLIT - A distributed object-oriented language.  "Definition einer
objektorientierten Programmiersprache mit hierarchischem Typkonzept", B.
Hindel, diss U Erlangen-Nuernberg, Dec 1987.

Hermes - IBM, June 1990.  An imperative, strongly typed process-oriented
language for complex distributed systems.  A follow-on effort to NIL[2]. 
Threads, relational tables, typestate checking, capability-based access,
dynamic configuration.  "Hermes: A Language for Distributed Computing", R.
Strom et al, P-H 1991, ISBN 0-13-389537-8.
ftp: 0.7alpha for Unix

HIBOL - A variant of DIBOL, used in Infotec computers.

HiLog - W. Chen et al, Stony Brook, 1989.  Logic programming in higher
order logic.  "HiLog as a Platform for Database Languages (Or Why Predicate
Calculus is Not Enough)", W. Chen et al, 2nd Intl Workshop on Database Prog
Langs, Morgan Kaufmann, 1989.

HINT - Hierarchical Information NeTs.  For CDC 3600.  "HINT: A Graph
Processing Language", R.D. Hart, Michigan State U, Apr 1970.

HLISP - "Monocopy and Associative Algorithms in an Extended Lisp", E. Goto,
U Tokyo May 1974.

HOL - Higher Order Logic.  A proof-generating system for higher order logic
based on LCF.  "HOL: A Machine Oriented Formulation of Higher Order Logic",
M.J.C. Gordon, Report 68, Comp Lab U Cambridge (1985).  "Introduction to
HOL", M.J.C. Gordon et al, Cambridge U Press 1993 ISBN 0-521-441897
HOL-88 built on ML, from Mike Gordon 
HOL-90 built on SML/NJ, from Brian Graham 
ftp: for Sun 4

Honeywell-800 Business Compiler - Another name for FACT.  Sammet 1969,

HOOK - ? Object Oriented Kernel.  Delphia.  An object-oriented extension of
Delphia Prolog.

Hope - ("springs eternal" and so forth.)  R.M. Burstall, U Edinburgh 1978. 
Functional language with polymorphic types and lazy lists.  First language
to use call-by-pattern.  "HOPE, an Experimental Applicative Language", R.M.
Burstall et al, Conf Record 1980 LISP Conf, p.136-143 (Aug 1980), "A HOPE
Tutorial", R. Bailey, BYTE Aug 1985, pp.235-258.  "Functional Programming
with Hope", R. Bailey, Ellis Horwood 1990.
ftp:  PC Hope, plus a lazy variant for Unix,

Hope+ - Alvey Flagship project, Imperial College.  An extension of Hope
with real numbers, vectors, call-by-WHNF.  "Hope+", N. Perry, Imperial
College, IC/FPR/LANG/2.5.1/7, 1988.

Hope+C - Alvey Flagship project, Imperial College.  Further evolution of
Hope+ with continuation-based I/O, coroutines, and RFC's.  For Sun-3's with
Motorola FPU's.  (See Massey Hope).
info: John Darlington 

HOS-STPL - Hospital Operating System - STructured Programming Language.  A
FORTRAN-like language with structured extensions.  "HOS-STPL User Manual",
Health Services Research, US Public Health Service (Jan 1975).

HPcode - Stack-based intermediate language used by HP in many of its
compilers for RISC and stack-based architectures.  Supports Fortran, Ada,
Pascal, COBOL and C++.  Descended from Stanford's U-code.

HPCode-Plus - Descendant of HPcode with data types, developed to be an ANDF
language.  "ANDF: Finally an UNCOL After 30 Years", M.E. Benitez, Jack
Davidson  et al, CS TR-91-05 U Virginia (Mar 1991). 
(See ANDF).

HP-GL - Hewlett-Packard Graphics Language.  Vector graphics language used
by HP plotters.

HP-GL/2 - "HP-GL/2 Programmer's Guide", No. 5959-9733, HP.  (See PCL.)

HPL - Language used in HP9825A/S/T "Desktop Calculators", 1978(?) and
ported to the early Series 200 family (9826 and 9836, MC68000).  Fairly
simple and standard, but with extensive I/O support for data acquisition
and control (BCD, Serial, 16 bit custom and IEEE-488 interfaces), including
interrupt handling.  Currently owned by Structured Software Systems.  "HPL
Operating Manual for Series 200, Models 216, 226 and 235\6", HP 98614-
90010, Jan 1984.

HSL-FX - Hierarchical Specification Language - Function Extension.

HUGO - Geac.  A bytecode-interpreted transaction handler.

Hybrid - Concurrent object-oriented language.  "Active Objects in Hybrid",
O.M. Nierstrasz, SIGPLAN Notices 22(12):243-253 (OOPSLA '87) (Dec 1987).

Hyperscript - Informix.  The object-based programming language for Wingz,
used for creating charts, graphs, graphics, and customized data entry.

HyperTalk - The programming language for Macintosh HyperCard.

HyTime - A hypermedia extension of SGML.  "The HyTime Hypermedia/Time-based
Document Structuring Language", S. Newcomb et al, CACM 34(11):67-83 (Nov

IAL - International Algebraic Language.  Original name of ALGOL 58.
"Preliminary report - International Algebraic Language", CACM 1(12):8

IAM - Interactive Algebraic Manipulation.  Interactive symbolic math for
PDP-10.  "IAM, A System for Interactive Algebraic Manipulation", C.
Christensen et al, Proc Second Symp Symb Alg Manip, ACM Mar 1971.

IBEX - Command language for Honeywell's CP-6 OS.

ICES - Integrated Civil Engineering System.  Subsystems include COGO,
include ICETRAN and CDL.  "An Integrated Computer System for Engineering
Problem Solving", D. Roos, Proc SJCC 27(2), AFIPS (Spring 1965).  Sammet
1969, pp.615-620.

ICETRAN - An extension of FORTRAN IV.  Component of ICES.  Sammet 1969,

ici - Tim Long.  Similar to C.  Dynamic arrays, database features, screen

Icon - Griswold, 1970's.  A descendant of SNOBOL4 with Pascal-like syntax. 
Icon is a general-purpose language with special features for string
scanning.  Dynamic types.  The central theme of Icon is the generator: when
an expression is evaluated it may be suspended and later resumed, producing
a result sequence of values until it fails.  Resumption takes place
implicitly in two contexts: iteration which is syntactically loop-like
('every-do'), and goal-directed evaluation in which a conditional
expression automatically attempts to produce at least one result. 
Expressions that fail are used in lieu of Booleans.  Data backtracking is
supported by a reversible assignment.  Icon also has co-expressions, which
can be explicitly resumed at any time.  "The Icon Programming Language",
Ralph & Marge Griswold, 2nd ed P-H 1990.

Iconicode - 1990-1992.  Visual dataflow language, token-based with
hierarchical, recursive and iterative constructs.  Version: IDF with
extensions for image processing.  "IDF: A Graphical Data Flow Programming
Language for Image Processing and Computer Vision", Neil Hunt, Proc IEEE
Conf on Systems Man & Cybernetics, IEEE, Nov 1990.  Available from Iconicon

IC-Prolog - Clark & McCabe, Imperial College 1979.  Logic language with
coroutining.  "IC-Prolog Language Features", K.L. Clark 
et al in Logic Programming, K.L. Clark et al eds, pp.253-266, Academic
Press 1982.

IC Prolog ][ - Imperial College.  A Prolog with multithreading, TCP
primitives for interprocess communication, mailboxes, and an interface to
Parlog.  "IC Prolog ][: A Language for Implementing Multi-Agent Systems",
Y. Cosmadopoulos et al, in Tutorial and Workshop on Coperating Knowledge
Based Systems, Keele U 1992.
info: Y. Cosmadopoulos 
      Damien Chew

Id - Irvine Dataflow.  Arvind & Gostelow.  Single assignment language, used
on MIT's Tagged-Token Dataflow Architecture (and soon on Motorola's
Monsoon).  Incrementally compiled, non-strict.  "An Asynchronous
Programming Language for a Large Multiprocessor Machine", Arvind et al,
TR114a, Dept ISC, UC Irvine, Dec 1978.  "The U-Interpreter", Arvind et al,
Computer 15(2):42-50 (1982).  (See Id Nouveau).

IDAMS - Pictorial retrieval language, implemented in APL.  "Concept of the
Diagnostic Image Workstation", D. Meyer-Ebrecht, Proc 2nd Conf on Picture
Archiving (PACS II), SPIE 418, pp.180-183 (1983).

IDEA - Interactive Data Entry/Access.  Data General.  A language in which
you designed the screen first, and then wrote the program around the
predefined fields.  Precursor to the DG COBOL Screen Section.

IDEAL - Van Wyk, Stanford 1980.  Numerical constraint language for
typesetting graphics into documents.  Inspired partly by Metafont.  "A
High-Level Language for Specifying Pictures", C.J. Van Wyk, ACM Trans
Graphics 1(2):163-182 (Apr 1982).  Distributed as part of Troff.


  1. Interactive Data analysis Language.  Xerox.  Built on Interlisp-D.

  2. Interface Description Language.  Nestor, Lamb & Wulf, CMU 1981.
Description of data structures to be passed between the components of an
application, to provide a language-independent intermediate representation. 
"The Interface Description Language", R. Snodgrass, Computer Science Press
1989.  Also SIGPLAN Notices 22(11) (Nov 1987) special issue.

  3. Interface Definition Language.  Project DOE, SunSoft, Inc.  Part of an
effort to integrate distributed object technology into the Solaris OS.  IDL
provides the standard interface between objects, and is the base mechanism
for object interaction.
info:  or Mache Creeger, SunSoft Inc (415)336-5884.

IDMS - Pictorial query language, an extension of Sequel2.  "A Management
System for an Integrated Database of Pictures and Alphanumeric Data", G.Y.
Tang, Computer Graphics Image Processing 16:270-286 (1981).

Id Nouveau - Arvind  & Nikhil , LCS
MIT, ca. 1986.  Dataflow language, began as a functional language, added
streams, resource managers and I-structures (mutable arrays).  Loops are
syntactic sugar for tail recursion.  "Id Nouveau Reference Manual", R.S.
Nikhil, CS TR, MIT, March 1988.  "Id (Version 90.1) Reference Manual", R.S.
Nikhil, CSG Memo 284-2, LCS MIT, July 15, 1991.  (See Id).

IDOL - Icon-Derived Object Language.  Object-oriented preprocessor for
Icon.  "Programming in Idol: An Object Primer", C.L. Jeffery, U Arizona CS
TR #90-10.

IDS/I - Integrated Data Store.  Extension to COBOL involving "chains"
(circular lists), for GE computers.  "A General Purpose Programming System
for Random Access Memories", C.W. Bachman et al, Proc FJCC 26(1), AFIPS
(Fall 1964).  Sammet 1969, p.376.

IF1 - Graph language used as an intermediate language for dataflow
hardware.  Used by the OSC SISAL compiler.  "The Manchester Prototype
Dataflow Computer", J.R. Gurd et al, CACM 28(1):34-52 (Jan 1985).

IF2 - Graph language used by the OSC SISAL compiler.

IFIP - Subset of ALGOL.  Sammet 1969, p.180.

IFP - Illinois FP.  Arch Robinson.  Variant of FP with Algol-like syntax. 
"The Illinois Functional Programming Interpreter", A.D. Robison, Proc 1987
SIGPLAN Conf on Interpreters and Interpretive Techniques (June 1987). 
"Illinois Functional Programming: A Tutorial", A.D. Robison, BYTE Feb 1987.
ftp: - Versions for Unix and MS-DOS

IFX - "Type Reconstruction with First-Class Polymorphic Values", J. O'Toole
et al, SIGPLAN Notices 24(7):207-217 (Jul 1989).

IGL - Interactive Graphic Language.  Used primarily by Physics Dept at
Brooklyn Poly, uses numerical methods on vectors to approximate continuous
function problems that don't have closed form solutions. [Is this being
confused with Tektronix's graphics library by the same name?]

IIS - Idealized Instruction Set.  Assembly language for the Flagship
parallel machine.  "An Idealized Instruction Set for a Packet Rewrite
Machine", J. Sargeant, Manchester U, 1988.

IITRAN - Simple PL/I-like language for students, on IBM 360.  "The IITRAN
Programming Language", R. Dewar et al, CACM 12(10):569-575 (Oct 1969).

ILIAD - Real time language.  "On the Design of a Language for Programming
Real-Time Concurrent Processes", H.A. Schutz, IEEE Trans Soft Eng SE-
5(3):248-255 (May 1979).

ILLIAC - Assembly language for the ILLIAC computer.  Listed in CACM
2(5):16, (May 1959) p.16.

ILOC - Rice U.  Register-oriented intermediate language targeted to PC/RT. 
Source languages include FORTRAN and Russell.


  1. IMProved Mercury Autocode.  Used to code the Edinburgh Multi Access
System (EMAS), one of the first OS's written in a high-level language,
apparently predating Unix.  References are in J British Computer Soc.  (See

  2. Extensible dialect of ALGOL-60, on CDC 1604.  "Experience with an
Extensible Language", Edgar T. Irons, CACM 13(1):31-39 (Jan 1970).

  3. Interpretive Menu Processor.  Used to implement much of the user
interface of the Alis office automation package from Applix, Inc.

Ina Jo - [FDM?]  "The Ina Jo Specification Language Reference Manual", J.
Scheid et al, TR TM-(L)-6021/001/00, SDC Mar 1985.

Info BASIC - Variant of Pick BASIC used with PRIME's PRIMOS.

Information Algebra - Theoretical formalism for DP, never resulted in a
language.  Language Structure Group of CODASYL, ca. 1962.  Sammet 1969,

Inglish - English-like language used for Adventure games like "The Hobbit"
(could distinguish between "take the rope and axe" and "take the money and

InnovAda - Object-oriented extension to Ada, said to be LISP-like. 
Implemented as a preprocessor.

INTCODE - Intermediate language used in the implementation of BCPL.  "BCPL
- The Language and its Compiler", Martin Richards & Colin Whitby-Stevens,
Cambridge U Press 1979.  (See OCODE).

INTELLECT - Larry Harris, 1977.  A query language, close to natural

INTERCAL - (Allegedly stands for "Compiler Language With No Pronounceable
Acronym").  Woods & Lyon, Princeton U, May 26, 1972.  Claims to have
nothing in common with any other major programming language.  "The INTERCAL
Programming Language Reference Manual", Donald R. Woods & James M. Lyon. 
C-INTERCAL implementation as a C preprocessor by Eric Raymond.
ftp:, also comp.sources.misc/Volume16

INTERCOM - Assembly language for the G-15.  Listed in CACM 2(5):16 (May
Versions: INTERCOM 101, INTERCOM 1000.

INTERLISP - Once INTERLISP was one of two main branches of LISP (the other
being MACLISP).  In 1981 Common LISP was begun in an effort to combine the
best features of both.  INTERLISP includes a LISP programming environment. 
Dynamically scoped.  "INTERLISP Programming Manual", W. Teitelman, TR,
Xerox Rec Ctr 1975.  Version: INTERLISP-D.

Intermediate Programming Language - Arthur W. Burks.  A very early attempt
to express machine language at a higher level of abstraction.  Like
Plankalkul, it used a right-handed style of assignment, in which the new
value appears on the right.

Interpress - Xerox.  Interpretive FORTH-like graphics language, possibly
the first page description language, predating PostScript.  Both are
descendants of JaM.  Used on Xerox printers.  "Interpress, The Source
Book", Steven Harrington et al, P-H 1988.

Iota - Specification language.  "The Iota Programming System", R. Nakajima
er al, Springer 1983.

IPL - Information Processing Language.  Allen Newell, J.C. Shaw, H. Simon,
Carnegie ca. 1956.  Said to be the first list-processing language, also the
first language to support recursion.  Very low level.  Sammet 1969, pp.388-
400.  "Information Processing Language-V Manual", A. Newell ed, P-H 1965. 
Versions: IPL-I (never implemented), IPL-II (1957 for JOHNNIAC), IPL-III
(existed briefly), IPL-IV, IPL-V (1958, for IBM 650, 704, 7090, many
others.  Widely used), IPL-VI.

IPS - Threaded language.  "IPS, An Unorthodox High Level Language", K.
Meinzer, BYTE pp.146-159 (Jan 1979).

IQ - Pictorial query language, implemented in Ratfor.  "Structured
Implementation of an Image Query Language", Y.E. Lien et al, in Database
Techniques for Pictorial Applications, A. Blaser ed, pp.416-430.

IRDATA - Industrial Robot DATA.  A standardized robot control code. 
"IRDATA, Industrial Robot Data", DIN 66313, Beuth-Verlag 1991.

IRL - Industrial Robot Language.  A high-level language for programming
industrial robots.  "IRL, Industrial Robot Language", DIN 66312, Beuth-
Verlag 1992.

Ironman - HOLWG, DoD, 1978.  Fourth of the series of DoD requirements that
led to Ada.  "Department of Defense Requirements for High Order Computer
Programming Languages", SIGPLAN Notices 12(12):39-54 (Dec 1977).  (See
Strawman, Woodenman, Tinman, Steelman).

Isabelle-92 - A generic theorem prover, supporting a wide variety of
logics.  A system of type classes allows polymorphic object-logics with
overloading and automatic type inference.

ISBL - Mathematical query language.

ISETL - Interactive SETL.  Gary Levin , Clarkson
U.  "An Introduction to ISETL Version 1.9", G.M. Levin, Dept MCS, Clarkson
U.  Current version: 3.0.
ftp:, for MS-DOS, Mac, Unix, VAX/VMS, and source.


  1. Dialect of JOSS.  Sammet 1969, p.217.

  2. Concurrent language?

ISO Pascal - Pascal standard, ISO 7185-1982.  Changes from Jensen & Wirth's
Pascal include: name equivalence; names must be bound before they are used;
loop index must be local to the procedure; formal procedure parameters must
include their arguments; conformant array schemas.  

ISP - Instruction Set Processor.  A family of languages for describing the
instruction sets of computers.  "Computer Structures: Readings and
Examples", D.P. Siewiorek et al, McGraw-Hill 1982.

ISPL - Instruction Set Processor Language.  ca 1971.  Original ISP
language, written in BLISS.  "Computer Structures: Readings and Examples",
D.P. Siewiorek et al, McGraw-Hill 1982.

ISPS - Instruction Set Processor Specifications.  Operational hardware
specification language.  Successor to ISPL.  IEEE Trans Computers, C-
30(1):24-80 (1981). [Bell, Newell, Siewiorek, Barbacci 1982?]

ISWIM - If You See What I Mean.  Landin 1966.  ISWIM is purely functional,
a sugaring of lambda calculus, and the ancestor of most modern applicative
languages.  An ISWIM program is a single expression qualified by 'where'
clauses (auxiliary definitions including equations among variables),
conditional expressions and function definitions.  ISWIM was the first
language to use lazy evaluation, and introduced the offside rule for
indentation.  "The Next 700 Programming Languages", P.J. Landin, CACM
9(3):157-166 (Mar 1966).

IT - Internal Translator.  A.J. Perlis et al, Carnegie Tech ca 1957.  Early
compiler for math originally for Burroughs 205, then IBM 650.  Forerunner
of RUNCIBLE, GATE, CORRELATE and GAT.  IT source code was converted to PIT,
thence to SPIT.  Sammet 1969, pp.139-141.  Versions: IT-2 produced machine
language directly, IT-3 developed at Carnegie added double-precision
floating point.  CACM 1(5):22 (1958).

Ivan - A Diana-like language making up part of VHDL.  "VHDL - The Designer
Environment", A. Gilman, IEEE Design & Test 3, (Apr 1986).

Iverson's Language - APL, which went unnamed for many years.  Sammet 1969,

IVTRAN - 1966.  Parallel FORTRAN for the Illiac IV.

J - Derivative and redesign of APL.  Purely functional with lexical scope
and more conventional control structures, plus several new concepts such as
function rank and function arrays.  "APL\?"", Roger K.W. Hui et al, APL90
Conf Proc, Quote Quad 20(4):192-200.  Version 4.1 for MS-DOS, Sun, Mac,
Archimedes.  Source available in C from Iverson Software, (416)925-6096.

J3 - Dialect of JOVIAL.  "Military Standard JOVIAL (J3)", MIL-STD-1588
(USAF), June 1976.

J73 - Yep, another JOVIAL dialect.  "Military Standard JOVIAL (J73)",
MIL-STD-1589 (USAF), Feb 1977.

JACAL - JAffer's CAnonical ALgebra.  A. Jaffer. 
Symbolic math program, written in Scheme.

Jade - 

  1. U Washington, late 80's.  A strongly-typed language, object-oriented
but without classes.  For type research.  The compiler output is Smalltalk. 
[Submitter claimed that Jade has exactly one user!]

  2. Implicit coarse-grained concurrency.  The constructs 'withth',
'withonly' and 'without' create tasks with specified side effects to shared
data objects.  Implemented as a C preprocessor.  "Coarse-Grain Parallel
Programming in Jade", M.S. Lam et al, SIGPLAN Notices 26(7):94-105 (Jul

JaM - John and Martin.  J. Warnock & M. Newell, PARC 1978.  Interpretive
FORTH-like graphics language, forerunner of both Interpress and PostScript. 
Mentioned in PostScript Language reference Manual, Adobe Systems, A-W 1985.

Janus - 

  1. Distributed language with an ask/tell constraint system.  "Janus: A
Step Towards Distributed Constraint Programming", V. Saraswat
 et al in Logic Programming: Proc 1990 North Am
Conf, S. Debray et al eds, MIT Press 1990.
ftp:, a sequential implementation built on
SICStus Prolog.

  2. "Experience with the Universal Intermediate Language Janus", B.K.
Haddon et al, Soft Prac & Exp 8(5):601-616 (Sep 1978).

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

JCL - Job Control Language.  Batch language on IBM OS/360 systems. 
Notoriously difficult to program in.

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

JEAN - A dialect of JOSS.

JOSS - JOHNNIAC Open Shop System.  Charles L. Baker, RAND 1964.  An early
simple interactive calculator language.  "JOSS Users' Reference Manual",
R.L. Clark, Report F-1535/9, RAND Corp (Jan 1975)  Sammet 1969, pp.217-226. 
Versions: JOSS I and JOSS II.

JOVIAL - Jule's Own Version of IAL.  Jules I. Schwartz 1959-1960.  Based on
ALGOL 58, with extensions for large scale real-time programming.  Saw
extensive use by the US Air Force.  The data elements were items, entries
(records) and tables.  CACM 6(12):721 (Dec 1960)[?].  Versions include
JOVIAL I (IBM 709, 1960), JOVIAL II (IBM 7090, 1961) and JOVIAL 3 (1965). 
Dialects: J3, JOVIAL J73, JS, JTS.

Joyce - Brinch Hansen.  Distributed language based on Pascal and CSP. 
"Joyce - A Programming Language for Distributed Systems", Per Brinch
Hansen, Soft Prac & Exp 17(1):29-50 (Jan 1987).

JPL - JAM Programming Language.  Imperative string-based language, part of
the JAM tool for developing screen (non-window) applications.  JYACC Corp.

JPLDIS - Jet Propulsion Laboratory Display Information System.  Jack
Hatfield, George Masters, W. Van Snyder, Jeb Long et al, JPL.  Query system
for UNIVAC 1108 [or PDP's?] written in FORTRAN, based on Tymshare's
"Retrieve".  Indirectly led to Vulcan[1] which led to dBASE II.

JS - Dialect of JOVIAL.  Sammet 1969, p.639.

JTS - Simple dialect of JOVIAL.  Sammet 1969, p.528.

Juno - Numerical constraint-oriented language for graphics applications. 
Solves its constraints using Newton-Raphson relaxation.  Inspired partly by
Metafont.  "Juno, a Constraint-Based Graphics System", G. Nelson in
SIGGRAPH '85 Conf Readings, B.A. Barsky ed, Jul 1985, pp.235-243.

Jym - Patrick Bellot, France.  A predecessor to Graal.

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

Kaleidoscope - Freeman-Benson , U Washington and
Universite de Nantes, 1989; U Victoria, 1992.  Object-oriented language
which mixes imperative and constraint-oriented features.  Similar to Siri. 
Vaguely related to Prose[2].  "Kaleidoscope: Mixing Objects, Constraints
and Imperative Programming", B.N. Freeman-Benson, SIGPLAN Notices
25(10):77-88 (OOPSLA/ECOOP '90) (Oct 1990).  "Constraint Imperative
Programming", B.N. Freeman-Benson, Ph.D. Thesis, TR 91-07-02, U Wash
(1991).  "Constraint Imperative Programming", Freeman-Benson et al, IEEE
Conf on Comp Lang, Apr 1992.  Versions: Kaleidoscope '90, Kaleidoscope '91.

Kali - Data parallel language.  "Supporting Shared Data Structures on
Distributed Memory Architecures", C. Koelbel et al in Second ACM SIGPLAN
Symp on Princ and Prac of Parallel Programming, pp.177-186, Mar 1990.

KAP - Kernel Andorra Prolog.  "Kernel Andorra Prolog and its Computation
Model", S. Haridi  et al, in Logic Programming: Proc 7th Intl
Conf, MIT Press 1990.  Predecessor to AKL.

Karel - Language featured in Karel the Robot: A Gentle Introduction to
Computer Programming, Richard E. Pattis, Wiley 1981.

KBMS - Expert system.

KCL - Kyoto Common LISP.  Compiles to ANSI C.  "Design and Implementation  
of Kyoto Common Lisp", T. Yuasa, J Info Proc 13(3):284-295 (1990).  "Kyoto
Common Lisp Report", T. Yuasa & M. Hagiya.

KEE - Knowledge Engineering Environment.  Frame-based expert system. 
Supports dynamic inheritance, multiple inheritance, polymorphism.  Classes,
meta-classes and objects are all treated alike.  A class  is an instance of
a meta-class.  Can control rules for merging of each field when multiple
inheritance takes  place.  Methods  are  written  in LISP.  Actions  may 
be triggered when fields are accessed or modified.  Extensive GUI
integrates with objects.  Can  easily make  object updates  to be 
reflected on  display or display selections  to update fields.   This can 
in turn trigger other  methods or  inference rules  which may  then update 
other parts of the display.  Intellicorp, for TI Explorer.  "The Role of
Frame-Based Representation in Reasoning", R. Fikes et al, CACM 28(9):904-
920 (Sept 1985).

Kernel Parlog - Modeless intermediate language for Parlog compilation. 
"Notes on the Implementation of Parlog", K.L. Clark et al, J Logic Prog
2(1):17-42 (1985).

Kevo - S. Taivalsaari  Prototype-based object-oriented

Kid - Kernel language for Id.  A refinement of P-TAC, used as an
intermediate language for Id.  Lambda-calculus with first-class let-blocks,
plus I-structures.  "A Syntactic Approach to Program Transformations", Z.
Ariola et al, SIGPLAN Notices 26(9):116-129 (Sept 1991).

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

KL0 - Sequential logic language based on Prolog, for the ICOT project,

KL1 - Kernel Language 1.  An experimental AND-parallel version of KL0 for
the ICOT project, Japan.  An implementation of FGHC.  "Design of the Kernel
Language for the Parallel Inference Machine", U. Kazunori et al, Computer J
(Dec 1990).

Klerer-May System - Columbia U.  Early system with special math symbols. 
Its reference manual was two pages long!  "Further Advances in Two-
Dimensional Input-Output by Typewriter Terminals", M. Klerer et al, Proc
FJCC 31 (1967).  Sammet 1969, pp.284-294.

KL-ONE - Frame language.  "An Overview of the KL-ONE Knowledge
Representation System", R.J. Brachman and J. Schmolze, Cognitive Sci 9(2),

KMODEL - An ancestor of Model-K.  "Preliminary Results on the BEHAVIOR
Specifications Language KMODEL-0", BEHAVIOR Memo 5-91, 1991, GMD, Sankt
Augustin, Germany

KOMPILER - Early system on IBM 701.  Listed in CACM 2(5):16 (May 1959).
Versions: KOMPILER 2 for IBM 701, KOMPILER 3 for IBM 704.

K&R C - C as originally described in The C Programming Language, B.
Kernighan and D. Ritchie, in contrast to the proposed ANSI standard C.

KRC - Kent Recursive Calculator.  Turner 1981.  Lazy functional language
based on SASL, with pattern matching, ZF expressions.  "Functional
Programming and its Applications", David A. Turner, Cambridge U Press 1982.

KRL - Frame language.  "An Overview of KRL, a Knowledge Representation
Language", D.G. Bobrow and T. Winograd, Cognitive Sci 1:1 (1977).

KRS - Frame-based language built on Common LISP.

KRYPTON - Frame language.  "An Essential Hybrid Reasoning System: Knowledge
and Symbol Level Acounts of of KRYPTON", R.J. Brachman et al, Proc IJCAI-
85, 1985.

ksh - Korn Shell command interpreter for Unix.

L6 - Bell Telephone Laboratories Low-Level Linked List Language.  Ken
Knowlton, 1965.  List processing language, typeless.  "A Programmer's
Description of L6, Bell Telephone Laboratories' Low-Level Linked List
Language", K. Knowlton CACM 9(8):616-625 (Aug 1966).  Sammet 1969, pp.400-

LADY - "Key Concepts in the INCAS Multicomputer Project", J. Nehmer et al
IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987).

Lakota - Scripting language, extends existing OS commands.
info: Richard Harter  SMDS Inc.

LAMBDA - A version of typed lambda calculus, used to describe semantic
domains.  "Outline of a Mathematical Theory of Computation", D.S. Scott, TM
PRG-2, PRG, Oxford U, 1971.

lambda-Prolog - An extension of standard Prolog, in which terms are typed
lambda-terms.  Prolog/Mali compiler uses the MALI abstract memory system. 

LAMINA - Concurrent object-oriented language.  "Experiments with a
Knowledge-based System on a Multiprocessor", Third Intl Conf Supercomputing
Proc, 1988.  "ELINT in LAMINA, Application of a Concurent Object language",
Delagi et al, KSL-88-3, Knowledge Sys Labs, Stanford U.

Language H - Early business-oriented language developed by NCR.

Laning and Zierler - J.H. Laning Jr and N. Zierler, 1953-1954.  Possibly
the first true working algebraic compiler.  On MIT's Whirlwind computer. 
Sammet 1969, pp.131-132.

LAP - LISP Assembly Program.  Assembly language embedded into early LISP. 
Sammet 1969, p.597.  Also used by the Liar compiler for MIT Scheme.

LAP4 - Early assembly language for Linc-8 machine.

LAPSE - Single assignment language for the Manchester dataflow machine.  "A
Single Assignment Language for Data Flow Computing", J.R.W. Glauert, M.Sc
Diss, Victoria U Manchester, 1978.

Larch - The Larch Project develops aids for formal specifications.  Each
Larch specification has two components: an interface containing predicates
written in the LIL (Larch Interface Language) designed for the target
language and a 'trait' containing assertions about the predicates written
in LSL, the Larch Shared Language common to all.  "The Larch Family of
Specification Languages", J. Guttag et al, IEEE Trans Soft Eng 2(5):24-365
(Sep 1985).

LARCH/CLU - Larch specification language for CLU.  Used in Abstraction and
Specification in Program Development, B. Liskov & J. Guttag, MIT Press

LaTeX - see TeX.

LAU - Langage a Assignation Unique.  Single assignment language for the LAU
dataflow machine, Toulouse.  "Pipelining, Parallelism and Asynchronism in
the LAU System", J.C. Syre et al, Proc 1977 Intl Conf Parallel Proc, pp.87-

LAURE - A language for knowledge representation combining object
orientation and logic programming.  Object-oriented exception handling and
a polymorphic type system.
info: Yves Caseau 

LAVA - A language for VLSI that deals with "sticks", i.e. wires represented
as lines with thickness.  R.J. Matthews et al, "A Target Language for
Silicon Compilers", IEEE COMPCON, 1982, pp.349-353.

LAX - LAnguage eXample.  Toy language used to illustrate problems in
compiler design.  "Compiler Construction", W.M. Waite et al, Springer 1984.

LCC - Language for Conversational Computing.  CMU 1960's.  Similar to JOSS,
with declarations, pointers and block structure from ALGOL-60.  Implemented
for IBM 360/370 under TSS.  "LCC Reference Manual", H.R. Van Zoeren, CMU

LCL - 

  1. The Larch interface language for ANSI standard C.  J.V. Guttag et al,
TR 74, DEC SRC, Palo Alto CA, 1991.

  2. Liga Control Language.  Controls the attribute evaluator generator
LIGA, part of the Eli compiler-compiler.  "LCL: Liga Control Language", U.
Kastens, U Paderborn.

LCS - Language for Communicating Systems.  Bernard Barthomieu.  A
concurrent SML with behaviors and processes, based upon higher order CCS. 
Implemented as a bytecode interpreter.  Version 3.1
ftp: for Sun 3, Sun 4
info: Bernard Berthomieu 

LDL - "LDL: A Logic-Based Data-Language", S. Tsur et al, Proc VLDB 1986,
Kyoto Japan, Aug 1986, pp.33-41.

LDT - Logic Design Translator.  Computer system design analysis.  Sammet
1969, p.621.

LE/1 - Langage External.  "An Evaluation of the LE/1 Network Command
Language Designed for the SOC Network", J. du Masle, in Command Languages,
C. Unger ed, N-H 1973.


  1. LISP Extended Algebraic Facility.  "An Algebraic Extension to LISP",
P.H. Knowlton, Proc FJCC 35 (1969).

  2. "LEAF: A Language which Integrates Logic, Equations and Functions", R.
Barbuti et al in Logic Programming, Functions Relations and Equations, D.
DeGroot et al eds, P-H 1986, pp.201-238.

Lean - U Nijmegen and U East Anglia.  An experimental language based on
graph rewriting, useful as an intermediate language.  Descendant of Dactl0. 
"Towards an Intermediate Languae Based on Graph Rewriting", H.P. Barendregt
et al in PARLE: Parallel Architectures and Languages Europe, G. Goos ed,
LNCS 259, Springer 1987, pp.159-175.  (See Clean).

LEAP - Language for the Expression of Associative Procedures.  ALGOL-based
formalism for sets and associative retrieval, for TX-2.  Became part of
SAIL.  "An ALGOL-based Associative Language", J.A. Feldman et al, CACM
12(8):439-449 (Aug 1969).

LECOM - Version of COMIT on GE 225 ca. 1966.  Sammet 1969, p.419.

LEDA - Combines imperative, object-oriented, and logic programming
language.  Tim Budd, Oregon State U. .

LeFun - MCC, Austin.  Integration of logic and functional programming. 
"LeFun: Logic, Equations and Functions", H. Ait-Kaci et al, Proc 1987 Symp
on Logic Programming, San Francisco.

LEGOL - "Application of MP/3 to the Design and Implementation of LEGOL, A
Legally Oriented Language", S.H. Mandil et al, Intl Symp Programming, paris

Le-Lisp - Jerome Chailloux and Emmanuel St James, INRIA, France.  A LISP
dialect close to Common Lisp, lexically scoped, with a CLOS-like object
system.  Uses both packages and modules.  "le-lisp: A Portable and
Efficient Lisp System", J. Chailloux et al, Proc 1984 ACM Symp on Lisp and
Functional Programming, ACM.  Version v.16, available from ILOG, France.

Leo - General-purpose systems language, syntactically like Pascal and Y,
semantically like C.  "The Leo Programming Language", G. Townsend, CS TR
84-7, U Arizona 1984.

Lex  - Input language to the Lex scanner generator.  "Lex - A Lexical
Analyzer Generator", M.E. Lesk, CS TR 39, Bell Labs (Oct 1975).  (See
  ML-lex - Implementation and output in SML/NJ.

LG - Simple language for analyic geometry, with graphic output.  "LG: A
Language for Analytic Geometry", J. Reymond, CACM 12(8) (Aug 1969). [???]

LGDF - Large-Grain DataFlow.  "A Large-grain Data Flow Scheduler for
Parallel Processing on Cyberplus", R.G. Babb et al, Proc 1986 Intl Conf on
Paralllel Proc, Aug 1986.

LGEN - Bell Labs.  A logic language for VLSI implementation.  S.C. Johnson,
"Code Generation for Silicon", Proc 10th POPL, 1983.

LGN - Linear Graph Notation.  A linearized representation of TCOL trees. 
B.W. Leverett et al, "An Overview of the Production Quality Compiler-
Compiler Projects", TR CMU-CS-79-105, Carnegie Mellon 1979.  (See TCOL)

LIDO - Input language for the attribute evaluator generator LIGA (a
successor of GAG and a subsystem of the Eli compiler-compiler).  LIDO is
derived from GAG's input language ALADIN.  "LIDO: A Specification Language
for Attribute Grammars", U. Kastens, Fab Math-Inf, U Paderborn (Oct 1989).

LIFE - Logic of Inheritance, Functions and Equations.  Hassan Ait-Kacy
 et al, MCC, Austin, 1987.  Object-oriented, functional,
and constraint-based.  Integration of ideas from LOGIN and LeFun.  "Is
There a Meaning to LIFE?", H. Ait-Kacy et al, Intl Conf on Logic Prog,
ftp: - Wild_LIFE interpreter from
Paradise project at DEC's Paris Research Lab

Lila - Patrick Salle'.  A small assembly-like
language used for implementation of Actor languages.  [Plasma perhaps?]

LIMDEP - Linear programming language used by economists.

LIMP - "Messages in Typed Languages", J. Hunt et al, SIGPLAN Notices
14(1):27-45 (Jan 1979).

Linc - Burroughs/Unisys 4GL.  Designed in New Zealand.

Lincoln Reckoner - ca 1965.  Interactive math including matrix operations,
on TX-2.  "The Lincoln Reckonere: An Operation-Oriented On-line Facility
with Distributed Control", A.N. Stowe et al, Proc FJCC 29 (1966).  Sammet
1969, pp.245-247.

Linda - Yale.  A "coordination language", providing a model for concurrency
with communication via a shared tuple space.  Usually implemented as a
subroutine library for a specific base language.  "Generative Communication
in Linda", D. Gelernter  ACM TOPLAS 7(1):80-112
(1985).  "Linda in Context", N. Carreiro  et al, CACM
32(4):444-458 (Apr 1989).  (See C-Linda, Ease, Fortran-Linda, LindaLISP,
Lucinda, Melinda, Prolog-Linda).

LindaLISP - Yep, you guessed it.

Lingo - An animation scripting language.  MacroMind Director V3.0
Interactivity Manual, MacroMind 1991.

LINGOL - LINguistics Oriented Language.  Natural language processing.  "A
Linguistics Oriented Programming Language", V.R. Pratt, Third Intl Joint
Conf on AI, 1973.
LIPL - Linear IPL.  A linearized (i.e. horizonal format) version of IPL-V. 
Sammet 1969, p.394.  R. Dupchak, "LIPL - Linear Information Processing
Language", Rand Memo RM-4320-PR, Feb 1965.

LIS - Langage Implementation Systeme.  "The System Implementation Language
LIS", J.D. Ichbiah et al, CII Honeywell-Bull, TR 4549 E/EN, Louveciennes
France (Dec 1974).

LISA - Statistical data analysis.  Similar to S.

LISP - LISt Processing.  John McCarthy  et al, MIT
late 50's.  Symbolic functional recursive language based on lambda-
calculus, used especially for AI and symbolic math.  Many dialects.  Atoms
and lists.  Dynamic scope.  Both programs and data are represented as list
structures.  Versions include LISP 1 (Original version), LISP 1.5 (MIT
1959), LISP 1.75, LISP 1.9.

LISP 2 - LISP 1.5 with an ALGOL60-like surface syntax.  Also optional type
declarations, new data types including integer-indexed arrays and character
strings, partial-word extraction/insertion operators and macros.  A
pattern-matching facility similar to COMIT was proposed.  "The LISP 2
Programming Language and System", P.W. Abrahams et al, Proc FJCC 29:661-
676, AFIPS (Fall 1966).

LISP70 - LISP dialect, a descendant of MLISP and MLISP2.  Also known as
PLISP and VEL.  Useful for parsing.  Only the pattern-matching system was
published and fully implemented.  According to Alan Kay, LISP70 had an
influence on Smalltalk-72.  "The LISP70 Pattern Matching System, Larry
Tesler et al, IJCAI 73.

LISP A - "LISP A: A LISP-like System for Incremental Computing", E.J.
Sandewall, Proc SJCC 32 (1968).

Lispkit Lisp - Purely functional version of LISP.  "Functional Programming,
Application and Implementation", P. Henderson, P-H 1980.

Lisp-Linda - P. Dourish, U Edinburgh 1988.

LISP Machine LISP - Zetalisp.

Lisptalk - "Concurrent Programming Language Lisptalk", C. Li, SIGPLAN
Notices 23(4):71-80 (Apr 1988).

LITTLE - Typeless language used to produce machine-independent software. 
LITTLE has been used to implement SETL.  "Guide to the LITTLE Language", D.
Shields, LITTLE Newsletter 33, Courant Inst (Aug 1977).

Little Smalltalk - A line-oriented near-subset of Smalltalk-80.  "A Little
Smalltalk", Timothy Budd, A-W 1987.
ftp:, source in C.

LLM3 - J. Chailloux.  Assembly language for a virtual machine, the
implementation language for Le-Lisp.

LM-Prolog - Lisp Machine Prolog.  K. Kahn et al, 1983.  "LM-Prolog User
Manual", M. Carlsson et al, Uppsala Dec 1983.
ftp: archive/lm-prolog.tar.Z - Prolog interpreter in Zetalisp

LM3 - The Larch interface language for Modula-3.  (See Larch).  "LM3: A
Larch/Modula-3 Interface Language", Kevin D. Jones, TR 72, DEC SRC, Palo
Alto CA.

LML - 

  1. Chalmers U Tech, Goteborg, Sweden.  Lazy, completely functional
variant of ML[2].  Implemented on the G-machine.

  2. Logical ML.  Adds to Lazy ML a data type of 'theories' whose objects
represent logic programs.  "Logic Programming within a Functional
Framework", A. Brogi et al, in Programming Language Implementation and
Logic Programming, P. Deransart et al eds, LNCS 456, Springer 1990.

LNF - "A Fully Lazy Higher Order Purely Functional Programming Language
With Reduction Semantics", K.L. Greene, CASE Center TR 8503, Syracuse U

L&O - Logic and Objects.  Implemented as a front end for IC Prolog.  "Logic
and Objects", Frank McCabe, Prentice-Hall.
info: Zacharias Bobolakis 

LO - Linear Objects.  Concurrent logic programming language based on
"linear logic", an extension of Horn logic with a new kind of OR-
concurrency.  "LO and Behold! Concurrent Structured Processes", J. Andreoli
et al, SIGPLAN Notices 25(10):44-56 (OOPSLA/ECOOP '90) (Oct 1990).

LogC - C extension ncorporating rule-oriented programming, for AI
applications.  Production rules are encapsulated into functional components
called rulesets.  Uses a search network algorithm similar to RETE.  "LogC:
A Language and Environment for Embedded Rule Based Systems", F. Yulin et
al, SIGPLAN Notices 27(11):27-32 (Nov 1992).  Version: LogC 1.6.

Logic Design Language - Language for computer design.  "A System
Description Language Using Parametric Text Generation", R.H. Williams, TR
02.487, IBM San Jose, Aug 1970.

LOGIN - Integration of logic programming and inheritance.  "LOGIN: A Logic
Programming Language with Built-In Inheritance", H. Ait-Kaci et al, J Logic
Programming 3(3):185-215 (1986).

LOGLAN - Inst Informatics, Warsaw U.  Object-oriented.  "LOGLAN '88 -
Report on the Programming Language", LNCS 414, Springer, ISBN 3-540-52325-

LOGLISP - Robertson & Sibert, Syracuse 1980.  A Prolog-like language called
LOGIC, embedded in LISP.  "LOGLISP: An Alternative to Prolog", J. Alan
Robinson et al in Machine Intelligence 10, D. Michie ed, Ellis Horwood

LOGO - Developed 1966-1968 by a group at Bolt, Beranek & Newman headed by
Wally Fuerzeig  and including Seymour Papert
.  A LISP-like language aimed at children and other
beginning programmers, noted for its "turtle graphics" used to draw
geometric shapes.
ftp:    Logo interpreters for Mac, Unix, PC, X

LOGOL - Strings are stored on cyclic lists or 'tapes', which are operated
upon by finite automata.  J. Mysior et al, "LOGOL, A String manipulation
Language", in Symbol Manipulations Languages and Techniques, D.G. Bobrow
ed, N-H 1968, pp.166-177.

LOLITA - Language for the On-Line Investigation and Transformation of
Abstractions.  Extension of Culler-Fried system for symbolic math.  "An On-
line Symbol Manipulation System", F.W. Blackwell, Proc ACM 22nd Natl Conf
(1967).  Sammet 1969, p.464.

Lolli - (named for the "lollipop" operator "-o")  Based on linear logic, in
which clauses can be used exactly once.  All the operators of lambda-
Prolog plus linear variations.  Implemented in SML/NJ.  Josh Hodas et al,
"Logic Programming in a Fragment of Intuitionistic Linear Logic",
Information and Computation, to appear.

LOOK - Specification language.  "A Look at Algebraic Specifications", S.N.
Zilles et al, IBM RR, 1982.

LOOKS - "LOOKS: Knowledge-Representation System for Designing Expert
Systems in a Logical Programming Framework", F. Mizoguchi, Proc Intl Conf
5th Gen Comp Sys, ICOT 1984.

LOOPN - U Tasmania.  An object-oriented language for simulation of Petri

LOOPS - Object-oriented LISP extension, used in development of knowledge-
based systems.  "The LOOPS Manual", D.G. Bobrow & M. Stefik, Xerox Corp
1983.  (See CommonLoops).

Lore - Object-oriented language for knowledge representation.  "Etude et
Realisation d'un Language Objet: LORE", Y. Caseau, These, Paris-Sud, Nov

LOTIS - LOgic, TIming, Sequencing.  Describes a computer via its data flow. 
Sammet 1969, p.620.

LOTOS - Specification language based on temporal ordering.  "The Formal
Description Technique LOTOS", P.H.J. van Eijk et al eds, N-H 1989.

Lout - J. Kingson   The language embedded in the document
preparation system lout.

LPC - ca 1988.  Variant of C used to program the LP MUDs, programmable
multi-user adventures.

LPG - 

  1. Linguaggio Procedure Grafiche (Italian for "Graphical Procedures
Language").  dott. Gabriele Selmi.  Roughly a cross between FORTRAN and
APL, with graphical-oriented extensions and several peculiarities. 
Underlies the products of CAD.LAB Spa.   "Graphical Procedure Language
User's Guide and Reference Manual", CAD.LAB , Bologna, Italy, 1989, order
code GO89/9.

  2. Langage de Programmation Generique.  An applicative language, both
specification and functional.  Special emphasis on parametrized
declarations.  "Design and Implementation of a Generic, Logic and
Functional Programming Language",  D. Bert et al, ESOP 86, LNCS 213,
Springer 1986.

LPL - List Programming Language.  LISP-like language with ALGOL-like
syntax, for IBM 360.  "LPL - LISP Programming Language", F.W. Blair et al,
RC 3062, IBM TJWRC, Sep 1970.

LRLTRAN - Lawrence Radiation Laboratory TRANslator.  FORTRAN extension with
vector arithmetic and dynamic storage, used for scientific work and systems
programming, including the LTSS OS.  "The LRLTRAN Compiler", S.F.
Mendicino, CACM 11(11):747-775 (Nov 1969).

LSL - 

  1. Larch Shared Language.  An assertion language.  (See Larch).

  2. Link and Selector Language.  Graphic query language.  "LSL: A Link and
Selector Language", D.C. Tsichritzis, Proc Intl Conf Management of Data,
ACM 1976, pp.123-134.

LSYD - Language for SYstems Development.  PL/I-like language with data
structure and character extensions.  "Systems Programming Languages", R.D.
Bergeron et al, in Advances in Computers 1971, A-P.

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

LTR - Langage Temps-Reel.  A French predecessor to Ada, Modula-like with a
set of special-purpose real-time constructs based on an event model. 
Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp 10:851-
887 (1980).

LTR2 - 

LTR3 - Parayre, France.  Saw wide use by French military and avionics. 
"The LTR3 Reference Manual", A. Parayre, Delegation Generale pour
l'Armement, France.


  1. Early query language, ca. 1965, System Development Corp, Santa Monica,
CA.  Sammet 1969, p.701.

  2. Ashcroft & Wadge , 1981.  A dataflow language
descended from ISWIM, lazy but first-order.  Statements are regarded as
equations defining a network of processors and communication lines, through
which the data flows.   Every data object is thought of as an infinite
stream of simple values, every function as a filter.  Lucid has no data
constructors such as arrays or records.  Iteration is simulated with 'is
current' and 'fby' (concatenation of sequences).  "Lucid, the Dataflow
Programming Language", W. Wadge, Academic Press 1985.

Lucinda - Combines Russell-like polymorphism with Linda-like concurrency. 
Implemented as a threaded interpreter written in C, for a Sun network and a
Meiko Computing Surface.  "Lucinda - An Overview", P. Butcher, U York
 et al, SIGPLAN Notices 26(8):90-100 (Aug 1991).

Lucy - Distributed constraint programming language.  An actor subset of
Janus.  "Actors as a Special Case of Concurrent Constraint Programming", K.
Kahn  et al, SIGPLAN Notices 25(10):57-66 (OOPSLA/
ECOOP '90) (Oct 1990).

LUSTRE - Real-time dataflow language for synchronous systems, especially
automatic control and signal processing.  A Lucid subset, plus timing
operators and user-defined clocks.  "Outline of a Real-Time Data-Flow
Language", J.-L. Bergerand et al, Proc IEE-CS Real Time Systems Symp, San
Diego, IEEE Dec 1985, pp.33-42.  "LUSTRE: A Declarative Language for
Programming Synchronous Systems", P. Caspi et al, Conf Rec 14th Ann ACM
Symp on Princ Prog Langs, 1987.

LYaPAS - (Russian acronym for "Logical Language for the Representation of
Synthesis Algorithms").  For the URAL-1 computer.  Coded in octal! 
"LYaPAS: A Programming Language for Logic and Coding Algorithms", M.A.
Gavrilov et al eds, Academic Press 1969.

LYNX - U Wisc 1984.  Language for large distributed networks, using remote
procedure calls.  "The Lynx Distributed Programming Language: Motivation,
Design and Experience", M.L. Scott, Computer Langs 16:209-233 (1991).

LYRIC - Language for Your Remote Instruction by Computer.  CAI language
implemented as a FORTRAN preprocessor.  "Computer Assisted Instruction:
Specification of Attributes for CAI Programs and Programmers", G.M. Silvern
et al, Proc ACM 21st Natl Conf (1966).

M - 

  1. Alternative name for MUMPS.

  2. Silicon Compiler Systems.  A C-like language for multilevel hardware
description.  Currently available in the GDT package from Mentor Graphics.

M3 - Macro processor, forerunner of M4, for the AP-3 mini.

M4 - Macro processor for Unix and GCOS.  "The M4 Macro Processor",
Kernighan & Ritchie, Jul 1977.

M5 - A. Dain, U Cincinnati 1992.  Macro processor, a generalization of M4. 
For Unix and DOS.

MAC - Early system on Ferranti Mercury.  Listed in CACM 2(5):16 (May 1959).

Mac-1 - Assembly language used in Structured Computer Organization, A.S.
Tanenbaum, 3rd Edition, P-H 1989, Sect. 4.3.  [See Mic-1]

MAC-360 - ca. 1967.  Solving numerical problems using equation-like input.
"User's Guide to MAC-360", Charles Stark Draper Lab, Cambridge MA (Aug
1973)  Sammet 1969, p.264.

Macaulay - Mike Stillman  and Dave Bayer
 1977.  Symbolic math package for commutative
algebra, algebraic geometry, cohomology.
ftp:, Version 3 for Sun, Mac and Amiga, source in C

MACE - Concurrent object-oriented language.[?]

Machiavelli - Peter Buneman & Atsushi Ohori, U Pennsylvania, 1989.  An
extension of Standard ML based on orthogonal persistence.  "Database
Programming in Machiavelli: A Polymorphic Language with Static Type
Inference", A. Ohori, Proc SIGMOD Conf, ACM, June 1989.

MACL - Macintosh Allegro CL.

MACLISP - Project MAC.  Was once one of two main branches of LISP (the
other being INTERLISP).  In 1981 Common LISP was begun in an effort to
combine the best features of both.  "MACLISP Reference Manual", D.A. Moon
, TR Project MAC, MIT 1974.


  1. Assembly language for VAX/VMS.

  2. PL/I-like language with extensions for string processing.  "MACRO: A
Programming Language", S.R. Greenwood, SIGPLAN Notices 14(9):80-91 (Sep

Macro SAP - Macro processing modification of SAP.  D.E. Eastwood and D.M.
McIlroy, unpublished memorandum, Bell Labs 1959.  Led to TRAC.

MACSYMA - Project MAC's SYmbolic MAnipulator.  Joel Moses
 MIT 1969, later Symbolics, Inc.  The first
comprehensive symbolic math system, written in LISP. "MACSYMA - The Fifth
Year", J. Moses, SIGSAM Bulletin 8(3) (Aug 1974).  Versions: Symbolics
Macsyma, DOE Maxima (ANL), Vaxima.
ftp:   DOE Maxima in Common

MAD - 

  1. Michigan Algorithm Decoder.  Developed at U Michigan by R. Graham,
Bruce Arden  and Bernard Galler
, 1959.  Based on IAL.  For the IBM 704,
709 and 7090, later ported to Philco, Univac and CDC machines.  MAD was one
of the first extensible languages: the user could define his own operators
and data types.  "Michigan Algorithm Decoder (The MAD Manual)", U Michigan
Computing Center, 1966.  Sammet 1969, p.205.

  2. Dataflow language.  "Implementation of Data Structures on a Data Flow
Computer", D.L. Bowen, Ph.D. Thesis, Victoria U Manchester, Apr 1981.

Mad/1 - A later, much enhanced version of MAD, for the IBM 360.  Michigan's
answer to PL/I.

MADCAP - Math and set problems, for the Maniac II and CDC 6600.  "MADCAP -
A Scientific Compiler for a Displayed Formula Texbook Language", M.B.
Wells, CACM 4(1):31-36 (Jan 1961).  Sammet 1969, pp.271-281.

MADTRAN - Early preprocessor that translated FORTRAN to MAD, for gain in

MAGIC - Early system on Midac computer.  Listed in CACM 2(5):16 (May 1959).

Magic Paper - Early interactive symbolic math system.  Sammet 1969, p.510.

Magma2 - Language that allows programmability of the control environment,
e.g. recursion, backtracking, coroutines, nondeterminism, etc.  "Magma2: A
Language Oriented Toward Experiments in Control", Franco Turini, ACM TOPLAS
6(4):468-486 (Oct 1984).

MagmaLISP - Predecessor of Magma2.  "MagmaLISP: A Machine Language for
Artificial Intelligence", C. Mantagero et al, Proc 4th Intl Joint Conf
Artif Intell, 1975, pp.556-561.

MAGNUM - Tymshare Inc, late 70's.  Database language for DEC-10's, used
internally by Tymshare.

Magritte - J. Gosling.  Constraint language for interadctive graphical
layout.  Solves its constraints using algebraic transformations. 
"Algebraic Constraints", J. Gosling, PhD Thesis, TR CS-83-132, CMU, May

MAINSAIL - MAchine INdependent SAIL.  From XIDAK, Palo Alto CA, (415) 855-

Make - Language for the Unix file maintenance utility Make.  "Make - A
Program for Maintaining Computer Programs", A.I. Feldman, TR No 57, Bell
Labs Apr 1977.

MAL - Micro Assembly Language - Microprogramming language with high-level
syntax, used in Structured Computer Organization, A.S. Tanenbaum, 3rd ed,
P-H 1989, Sect 4.4.  [See Mic-1, Mac-1].

Manchester Autocode - Predecessor of Mercury Autocode.  "The Programming
Strategy Used with the Manchester University Mark I Computer", R.A.
Brooker, Proc IEE 103B Suppl:151-157, 1956.

Mandala - ICOT, Japan.  A system based on Concurrent Prolog.  "Mandala: A
Logic Based Knowledge Programming System", K. Furukawa et al, Intl Conf 5th
Gen Comp Sys 1984.

MAO - Early symbolic math system.  A. Rom, Celest Mech 1:309-319 (1969).

MAP - Mathematical Analysis without Programming.  On-line system under CTSS
for math.  Sammet 1969, p.240.

Maple - B. Char, K. Geddes, G. Gonnet, M. Monagan & S. Watt, U Waterloo,
Canada 1980.  Symbolic math system.  Waterloo Maple Software.  Current
version: Maple V.

Marseille Prolog - One of the two main dialects of Prolog, the other being
Edinburgh Prolog.  The difference is largely syntax.  The original
Marseille Interpreter (1973) was written in FORTRAN.

MARSYAS - MARshall SYstem for Aerospace Simulation.  Simulation of large
physical systems.  "MARSYAS - A Software System for the Digital Simulation
of Physical Systems", H. Trauboth et al, Proc SJCC, 36 (1970).

MARY - Norwegian research language, somewhat ALGOL68-like.  No operator
precedence.  The back cover of the manual bears the (well-hidden) fragment:

MAS - Modula-2 Algebra System.  "Modula-2 Algebra System", H. Kredel, Proc
DISCO 90 Capri, LNCS 429, Springer 1990, pp270-271.
ftp:, for PC, Atari, Amiga

MASM - Microsoft Assembler for MS-DOS.

Massey Hope - Massey U, NZ.  Refinement of Hope+C with improved syntax, and
no stream I/O.
info: Nigel Perry 

Matchmaker - A language for specifying and automating the generation of
multi-lingual interprocess communication interfaces.  MIG is an
implementation of a subset of Matchmaker that generates C and C++ remote
procedure call interfaces for interprocess communication between Mach
tasks.  "MIG - The Mach Interface Generator", R.P. Draves et al, CS CMU, (4
Aug 1989).

Mathcad - Symbolic math environment.

Mathematica - (name suggested by Steve Jobs).  Wolfram Research, 1988. 
Symbolic math and graphics system.  The language emphasizes rules and
pattern-matching.  "Mathematica: A System for Doing Mathematics by
Computer", Stephen Wolfram, A-W 1988.

MATHLAB - Symbolic math system, MITRE, 1964.  Later version: MATHLAB 68
(PDP-6, 1967).  "The Legacy of MATHLAB 68", C. Engelman, Proc 2nd Symp on
Symbolic and Algebraic Manip, ACM (Mar 1971).  Sammet 1969, p.498.

MATH-MATIC or MATHMATIC - Alternate name for AT-3.  Early, pre-FORTRAN
language for UNIVAC I or II.  Sammet 1969.

Matrix Compiler - Early matrix computations on UNIVAC.  Sammet 1969, p.642.

MATRIX MATH - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May

mawk - Mike Brennan  1991.  An implementation of
nawk, distributed under GNU license but distinct from GNU's gawk.

MAXIMOP - "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS
Symp on Job Control Languages--Past Present and Future, NCC, Manchester,
ENgland 1974.

MBASIC - Microsoft BASIC.

MC - "Design and Implementation of a C-Based Language for Distributed Real-
Time Systems", A. Rizk et al, SIGPLAN Notices 22(6):83-96 (June 1987).

McG360 - Interactive, similar to PAL[5], for IBM 360.  "McG360 Programmer's
Guide", RC 2693, IBM TJWRC, Nov 1969.

MCL - Macintosh Common LISP.

M-Code - 

 1) Intermediate code produced by the Modula-2 compiler. [which one?]

 2) Intermediate language for an SECD-like machine, used by the Concert
implementation of MultiLISP.

MCS - Meta Class System.  A portable object-oriented extension of Common

MDL - (originally "Muddle").   C. Reeve, C. Hewitt & G. Sussman, MIT ca.
1971.  Basically LISP 1.5 with data types and arrays.  Many of its features
were advanced at the time, and were incorporated into later LISP dialects. 
In the mid 80's there was an effort to use bytecoding to make the language
portable.  CLU was first implemented in MDL.  Infocom wrote Zork in MDL,
and used it as the basis for the ZIL interpreter.  "The MDL Programming
Language", S.W. Galley et al, Doc SYS.11.01, Project MAC, MIT (Nov 1975). 
Implementations exist for ITS, TOPS-20, BSD 4.3, Apollo Domain, SunOS and

me too - Peter Henderson, 1984.  Functional language for executable
specifications.  Like LispKit Lisp, but with sets, maps and sequences to
describe the specification.  "Functional Programming, Formal Specification
and Rapid Prototyping", IEEE Trans Soft Eng, SE-12(2):241-250 (Feb 1986).

MELD - Concurrent, object-oriented, dataflow, modular and fault-tolerant! 
Comparable to SR.  "MELDing Multiple Granularities of Parallelism", G.
Kaiser et al, ECOOP '89, pp.147-166, Cambridge U Press 1989.

MeldC - Columbia U, 1990.  A C-based concurrent object-oriented
coordination language built on a reflective architecture.  A redesign of
MELD.  Version 2.0 or Sun4's and DECstations.

Melinda - "Melinda: Linda with Multiple Tuple Spaces", S. Hupfer,
 YALEU/DCS/RR-766, Yale U Feb 1990.

Mentat - U Virginia.  Object-oriented distributed language, an extension of
C++, portable to a variety of MIMD architectures.  "Mentat: An Object-
Oriented Macro Data Flow System", A. Grimshaw  et
al, SIGPLAN Notices 22(12):35-47 (Dec 1987) (OOPSLA '87).  Available now
for Sun 3 & 4 and iPSC/2, and soon Mach, iPSC860, RS/6000 and Iris.

MENTOR - CAI language.  "Computer Systems for Teaching Complex Concepts",
Report 1742, BBN, Mar 1969.

MENYMA/S - "A Message Oriented Language for System Applications", A. Koch
et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.824-832.

Mercury Autocode - Autocode for the Ferranti Mercury machine.  (See

Mesa - Xerox PARC, ca 1977.  System and application programming for
proprietary hardware: Alto, Dolphin, Dorado and Dandelion.  Pascal-like
syntax.  Its modules with separately compilable definition and
implementation parts directly led to Wirth's design for Modula.  Threads,
coroutines (fork/join), exceptions, and monitors.  Type checking may be
disabled.  Originally for internal use, Mesa was released to a few
universitites in 1985.  "Mesa Language Manual", J.G. Mitchell et al, Xerox
PARC, CSL-79-3 (Apr 1979).  "Early Experience with Mesa", Geschke et al,
CACM 20(8):540-552 (Aug 1977).

META - CDC, ca 1977.  Assembly language for the CYBER 200.  CDC Pub

META 5 - Early syntax-directed compiler-compiler, used for translating one
high-level language to another.  "META 5: A Tool to Manipulate Strings of
Data", D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966.  Sammet 1969,
p.638.  Versions: META II, META-3.

Meta-II - An early compiler-compiler.  "Meta-II: a Syntax Oriented Compiler
Writing Language", V. Schorre, Proc 19th ACM Natl Conf 1964.

Meta-IV - "The Vienna Development Method: The Meta Language", D. Bjorner et
al, eds, LNCS 61 Springer 1978.

Meta-Crystal - A language for transformations of Crystal programs. 
Implemented in T.  "Meta-Crystal- A Metalanguage for Parallel-Program
Optimization", J.A. Yang et al, TR YALEU/DCS/TR-786, Yale Apr 1990.  (See

METAFONT - Knuth.  A system for the design of raster-based alphabets. 
Companion to TeX.  "The METAFONT Book," Donald Knuth, A-W 1986.  Version
2.0, March 1990.

Meta-Vlisp - E. St.James  France.  A Lisp dialect with
many innovations.

METEOR - Successor to COMIT.  "METEOR - A List Interpreter for String
Transformation", D.G. Bobrow in The Programming Language LISP and its
Interpretation, E.D. and D.G. Bobrow eds, 1964.

Methods - Digitalk, ca 1985.  Line-oriented Smalltalk for PC's, predecessor
of Smalltalk/V.


  1. MIMIC Hardware Description Language.

  2. Microwave Hardware Description Language.  Incorporates Haskell 1.2. 
info: David Barton 

Mic-1, Mic-2 - Microprogramming languages, used in Structured Computer
Organization, A.S. Tanenbaum, 3rd ed, P-H 1989, Sect 4.4, 4.5.  [See Mac-

microPLANNER - G.J. Sussman et al, MIT.  Subset of PLANNER, implemented in
LISP.  Superseded by Conniver.  Important features: goal-oriented, pattern-
directed procedure invocation, embedded knowledge base, automatic
backtracking.  "microPLANNER Reference Manual", G.J. Sussman et al, AI Memo
203, MIT AI Lab, 1970.

MIDAS - Digital simulation language.  Sammet 1969, p.627.

MIIS - ("Meese").  Interpreted.  One-letter keywords.  Similar to MUMPS?

MILITRAN - Discrete simulation for military applications.  Sammet 1969,

MIMIC - J.H. Andrews, NIH 1967.  Early language for solving engineering
problems such as differential equations that would otherwise have been done
on an analog computer.  "MIMIC, An Alternative Programming Language for
Industrial Dynamics, N.D. Peterson, Socio-Econ Plan Sci. 6, Pergamon 1972.

MIMOLA - Operational hardware specification language.  "A Retargetable
Compiler for a High-Level Microprogramming Language", 17th Ann Workshop on
Microprogramming, P. Marwedel, IEEE 1984, pp.267-274.

Mini-ML - "A Simple Applicative Language: Mini-ML", D. Clement et al, Proc
1986 ACM Conf on LISP and Functional Prog, (Aug 1986).

MINITAB II - Interactive solution of small statistical problems.  "MINITAB
Student Handbook", T.A. Ryan et al, Duxbury Press 1976.

MINT - Mint Is Not TRAC.  Version of TRAC used as the extension language in
the Freemacs editor.

Miracula - Stefan Kahrs , LFCS.  An implementation of a
subset of Miranda, no modules or files.  Can be interactively switched
between eager and lazy evaluation.  Portable source in C from the author.

Miranda - (latin for "admirable", also the heroine of Shakespeare's
Tempest).  David A. Turner , U Kent early 1980's.  Lazy,
purely functional.  A commercial descendant of SASL and KRC, with ML's type
system.  Terse syntax using the offside rule for indentation.  Type
declarations are optional.  Nested pattern-matching, list comprehensions,
modules.  Sections rather than lambda abstractions.  User types are
algebraic, may be constrained by laws.  Implemented by SKI reduction.  The
KAOS operating system is written entirely in Miranda.  "Miranda: A Non
Strict Functional Language with Polymorphic Types", D.A. Turner, in
Functional Programming Languages and Computer Architecture, LNCS 201,
Springer 1985.  "Functional Programming with Miranda", Holyer, Pitman Press
0-273-03453-7.  (See Miracula, Orwell).
info: Research Software Ltd, or

MIRFAC - Mathematics in Recognizable Form Automatically Compiled.  Early
interactive system resembling BASIC, typewriter output with special math
symbols.  Sammet 1969, pp.281-284.

MISHAP - Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16, (May

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

MIXAL - MIX Assembly Language.  Assembly language for Knuth's hypothetical
MIX machine, used in The Art of Computer Programming v.1, Donald Knuth,
A-W 1969.

MJS - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May 1959).

ML -

  1.  Manipulator Language.  IBM language for handling robots.

  2.  Meta Language.  R. Milner  et al, 1973.  A
strict higher-order functional language with statically-checked polymorphic
types, garbage collection and a formal semantics.  It began as the
metalanguage for the Edinburgh LCF proof assistant.  (LCF="Logic for
Computable Functions")  "A Metalanguage for Interactive Proof in LCF",
M.J.C. Gordon et al, 5th POPL, ACM 1978.  (See SML).  LCF ML was
implemented in Stanford LISP.  Cardelli's implementation (1981) in Pascal,
using the FAM.

MLAB - Modeling LABoratory.  Interactive mathematical modeling.  "MLAB, An
On-Line Modeling Laboratory", NIH (Mar 1975).

ML/I - Early macro translating system.  P.J. Brown, CACM 10(10):618-623,
(Oct 1967).


  1. M-expression LISP.  J. McCarthy, 1962.  The original "meta-language"
syntax of LISP, intended for external use in place of the parenthesized S-
expression syntax.  "LISP 1.5 Programmer's Manual", J. McCarthy et al, MIT
Press 1962.

  2. Meta-LISP.  D.C. Smith & H. Enea.  LISP variant with ALGOL-like
syntax.  Not just a surface syntax, a full language.  "MLISP", D.C. Smith,
TR CS-179, CS Dept, Stanford (Oct 1970).  Version: MLISP2.

  3. A hybrid of M-expression LISP and Scheme.  "M-LISP: Its Natural
Semantics and Equational Logic", R. Muller, SIGPLAN Notices 26(9):234-242
(Sept 1991) (PEPM '91).

ML-Linda - U Edinburgh, under development.

ML Threads - Greg Morrisett .  SML/NJ with mutual
exclusion primitives similar to those in Modula-2+ and Mesa.  Lightweight
threads are created using 'fork'.  They are pre-emptively scheduled, and
communicate via shared memory which can be protected by a 'mutex'
(monitor).  "Adding Threads to Standard ML", E. Cooper et al, CMU-CS-90-
186, CMU Dec 1990. Implementations for 68020, SPARC and MIPS, and also VAX-
 and MIPS-based multiprocessors.

Mma - R. Fateman, 1991.  A fast Mathematica-like system, in Allegro CL.

MOBSSL-UAF - Merritt and Miller's Own Block-Structured Simulation
Language-Unpronounceable Acronym For.  Interactive continuous simulations. 
"MOBSSL - An Augmented Block Structured Continuous System Simulation
Language for Digital and Hybrid Computers", M.J. Merritt et al, Proc FJCC
35, AFIPS (Fall 1969).

Mock Lisp - The LISP used by the Gosling Emacs editor.

MODCAL - Version of HP-PASCAL enhanced with system programming constructs,
used internally by HP.

Mode - Object-oriented.  "The Programming Language Mode: Language
Definition and User Guide", J. Vihavainen, C-1987-50, U Helsinki, 1987.

MODEF - Pascal-like language with polymorphism and data abstraction. 
"Definition of the Programming Language MODEF", J. Steensgard-Madsen et al,
SIGPLAN Notices 19(2):92-110 (Feb 1984).

MODEL - Pascal-like language with extensions for large-scale system
programming and interface with FORTRAN applications.  Generic procedures,
and a "static" macro-like approach to data abstraction.  Produced P-code. 
Used to implement DEMOS operating system on Cray-1.  "A Manual for the
MODEL Programming Language", J.B. Morris, Los Alamos 1976.

MODSIM II - 1986.  Object-oriented modular language for discrete
simulation, with multiple inheritance, strong typing, integrated 2D and 3D
graphics.  Compiles to C.  CACI, La Jolla, (619) 457-9681.

Modula - MODUlar LAnguage.  Wirth, 1977.  Predecessor of Modula-2, more
oriented towards concurrent programming but otherwise quite similar. 
"Modula - A Language for Modular Multiprogramming", N. Wirth, Soft Prac &
Exp 7(1):3-35 (Jan 1977).

Modula-2 - Wirth, ETH 1978.  Developed as the system language for the
Lilith workstation.  The central concept is the module which may be used to
encapsulate a set of related subprograms and data structures, and restrict
their visibility from other portions of the program.  Each module has a
definition part giving the interface, and an implementation part.  The
language provides limited single-processor concurrency (monitors,
coroutines and explicit transfer of control) and hardware access (absolute
addresses and interrupts).  "Programming in Modula-2", N. Wirth, Springer

Modula-2* - M. Philippsen , U Karlsruhe.  Modula-2
extension.  Uses a superset of data parallelism, allowing both synchronous
and asynchronous programs, both SIMD and MIMD.  Parallelism may be nested
to any depth.  Version for MasPar and simulator for SPARC.

Modula-2+ - DEC SRC, Palo Alto CA.  Exceptions and threads.  "Extending
Modula-2 to Build Large, Integrated Systems", P. Rovner, IEEE Software
3(6):46-57 (Nov 1986).

Modula-3 - 1988.  A descendant of Modula-2+ and Cedar, designed for safety. 
Objects, threads, exceptions and garbage collection.  Modules are
explicitly safe or unsafe.  As in Mesa, any set of variables can be
monitored.  "Modula-3 Report", Luca Cardelli et al, TR 52, DEC SRC, and
Olivetti Research Center, Aug 1988.  "System Programming with Modula-3",
Greg Nelson ed, P-H 1991, ISBN 0-13-590464-1.  Version: SRC Modula-3 V1.5.
uucp: osu-cis

Modula-P - "Modula-P: A Language for Parallel Programming Definition and
Implementation on a Transputer Network", R. Hoffart et al, IEEE Conf Comp
Langs 1992.

Modula-Prolog - Adds a Prolog layer to Modula-2.  "Modula-Prolog: A
Software Development Tool", C. Muller IEEE Software pp.39-45 (Nov 1986).

Modula/R - Modula with relational database constructs added.  LIDAS Group
(J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt, C.A. Zehnder)
"Modula/R Report", LIDAS Memo 091-83, ETH Zurich, Sep 1983.

Modular Prolog - An extension of SB-Prolog (version 3.1) extended with ML-
style modules.  For Sun-4.

Modulex - Based on Modula-2.  Mentioned by M.P. Atkinson & J.W. Schmidt in
a tutorial in Zurich, 1989.

MooZ - Object-oriented extension of Z.  "Object Orientation in Z", S.
Stepney et al eds, Springer 1992.

MOPS - Michael Hore.  A derivative of Neon.

MORAL - Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp
10:851-887 (1980).

MORTRAN - A public domain FORTRAN preprocessor for structured programming.

Mouse - Peter Grogono, 1975.  A mighty small macro language.  "Mouse, A
Language for Microcomputers", P. Grogono 
Petrocelli Books, 1983.

Moxie - Language for real-time computer music synthesis, written in XPL. 
"Moxie: A Language for Computer Music Performance", D. Collinge, Proc Intl
Computer Music Conf, Computer Music Assoc 1984, pp.217-220.

MP-1 - Assembly language for the MasPar machine.

MPL - 

  1. Early possible name for PL/I.  Sammet 1969, p.542.

  2. MasPar.  A data-parallel version of C.

  3. Motorola Programming Language.  A low-level PL/I-like language,
similar to PL/M, but for the Motorola 6800.

  4. MicroProgramming Language.  Simple language for microprogramming. 
Statements on the same line represent register transfers caused by one
microinstruction, and are executed in parallel.  "Structured Computer
Organization", A.S. Tanenbaum, First Edition, P-H 1976. (replaced in later
editions by Mic-1)

MPL II - Burroughs VMS MPL II Language Reference Manual.

MPPL - Early possible name for PL/I.  Sammet 1969, p.542.

M-Prolog - 

  1. Marseille Prolog.

  2. An extension to Prolog involving modules.  "The MProlog System", J.
Bendl et al, Proc Logic Prog Workshop, 1980.

MPS III - Solving matrices and producing reports.  "MPS III DATAFORM User
Manual", Management Science Systems (1976).

MPSX - Mathematical Programming System Extended.  Solution strategy for
mathematical programming.  "Mathematical Programming System Extended (MPSX)
Control Language User's Manual", SH20-0932, IBM.  Sammet 1978.

MRS - An integration of logic programming into LISP.  "A Modifiable
Representation System", M. Genesereth et al, HPP 80-22, CS Dept Stanford U

MSG.84 - "Analysis and Design in MSG.84: Formalizing Functional
Specifications", V. Berzins et al IEEE Trans Soft Eng SE-11(8):657-670 (Aug

Muddle - Original name of MDL.

muFP - Functional language for hardware design, predecessor to Ruby.

Mul-T - An implementation of Multilisp built on T, for the Encore Multimax. 
"Mul-T: A High-Performance Parallel Lisp", SIGPLAN Notices 24(7):81-90 (Jul

multiC - Wavetracer.  A data-parallel version of C.

MultiLisp - Parallel extension of Scheme, with explicit concurrency.  The
form (future X) immediately returns a 'future', and creates a task to
evaluate X.  When the evaluation is complete, the future is resolved to be
the value.  "MultiLisp: A Language for Concurrent Symbolic Computation", R.
Halstead, TOPLAS pp.501-538 (Oct 1985).

MultiScheme - An implementation of Multilisp built on MIT's C-Scheme, for
the BBN Butterfly.  "MultiScheme: A Paralled Processing System Based on MIT
Scheme", J. Miller, TR-402, MIT LCS, Sept 1987.

MUMPS - Massachusetts General Hospital Utility Multi-Programming System.  A
database-oriented OS and the language that goes with it.  Used originally
for medical records.  Only data type is the character string.  Current
versions for IBM RT and R6000, DSM (Digital Standard Mumps) for DEC,
Datatree MUMPS for IBM PC, Unix MUMPS from PFCS .  "MUMPS
Language Standard", ANS X11.1-1977.  MUMPS User's Group, Box 208, Bedford
MA 01730.

MU-Prolog - L. Naish, U Melbourne 1982.  Prolog with 'wait' declarations
for coroutining.  "Negation and Control in Prolog", L. Naish, TR 85/12, U
Melbourne (1985).  (See NU-Prolog).

MuSimp - LISP variant used as the programming language for the PC symbolic
math package MuMath.

Muse - OR-parallel logic programming.

Music - Bell Labs, 60's.  A series of early languages for musical sound
synthesis.  Versions: Music I through Music V.  "An Acoustical Compiler for
Music and Psychological Stimuli", M.V. Mathews, Bell Sys Tech J 40 (1961).

MUSL - Manchester University Systems Language.

MYSTIC - Early system on IBM 704, IBM 650, IBM 1103 and 1103A.  Listed in
CACM 2(5):16 (May 1959).

NASTRAN - NAsa STRess ANalysis program.  Large stress analysis problems. 
"The NASTRAN User's Manual", SP-222(C3), NASA.

Napier - Atkinson & Morrison, St Andrews U; design began ca. 1985, first
implementation Napier88, 1988.  Based on orthogonal persistence, permits
definition and manipulation of namespaces.  "The Napier88 Reference
Manual", R. Morrison et al, CS Depts St Andrews U and U Glasgow, Persistent
Programming Research Report PPRR-77-89, 1989.

NAPLPS - North American Presentation-Level-Protocol Syntax.  Language for
sending text and graphics over communication lines.  Used by videotex

NAPSS - Numerical Analysis Problem Solving System.  Purdue ca. 1965. 
"NAPSS - A Numerical Analysis Problem Solving System", J.R. Rice et al,
Proc ACM 21st Natl Conf, 1966.  Sammet 1969, p.299.

NASTRAN - Engineering language, listed [?] 1976.

NATURAL - Integrated 4GL used by the database system ADABAS.  Menu-driven

Natural English - Used to mean programming in normal, spoken English. 
Sammet 1969, p.768.

Nawk - New AWK.  AT&T.  Pattern scanning and processing language.  An
enhanced version of AWK, with dynamic regular expressions, additional
built-ins and operators, and user-defined functions.

NB - ("New B"?)  Original name of C.

NDL- Network Definition Language.  Used to program the DCP (Data
Communications Processor) on Burroughs Large System.  Version: NDL II.

Nebula - ICL.  Early business-oriented language for Ferranti Orion
computer.  "NEBULA - A Programming Language for Data Processing", T.G.
Braunholtz et al, Computer J 4(3):197-201 (1961).

NELIAC - Navy Electronics Laboratory International ALGOL Compiler.  1958-
1959.  Numeric and logical computations, based on IAL.  "Neliac - A Dialect
of Algol", H.D. Huskey et al, CACM 3(8):463-468 (Aug 1960).  Version:  BC

Neon - Charles Duff.  An object-oriented extension of FORTH, for the Mac. 
Inheritance, SANE floating point, system classes and objects for Mac
interfacing, overlays.  Sold by Kriya Systems, 1985-1988.  Modified, made
PD and renamed Yerk.

NETL - Semantic network language, for connectionist architectures.

NEWP - NEW Programming language.  Replaced ESPOL on Burroughs Large System.

NewsClip - Clarinet article filter language.

Newspeak - J.K. Foderaro.  Inspired by Scratchpad.  "The Design of a
Language for Algebraic Computation", Ph.D. Thesis, UC Berkeley, 1983.

Newsqueak - "Newsqueak: A Language for Communicating with Mice", R. Pike
CSTR143, Bell Labs (March 1989).

Newton - ALGOL-like language used for undergraduate teaching at Federal
Tech U Lausanne (EPFL).  "Programming in Newton", Wuetrich and Menu, EPFL

Nexpert Object - Expert system.

NFQL - "NFQL: The Natural Forms Query Language", D. Embley, Trans Database
Sys 14(2):168-211 (June 1989).

NGL - Dialect of IGL.

NIAL - Nested Interactive Array Language.  Queen's U, Canada.  High-level
array-oriented language, based on Array Theory as developed by Trenchard
More Jr.  (Papers on this subject are available from the IBM Cambridge
Scientific Center, Cambridge MA.)  "Programming Styles in NIAL", M.A.
Jenkins et al, IEEE Software 3(1):46-55 (Jan 1986).  (See Q'NIAL).


  1. Small subset of PL/I by (Massachusetts) Computer Assoc, ca. 1965. 
Version: NICOL II (1967).  Sammet 1969, p.542.

  2. ICL, 1968. [same as 1?]

NIKL - Frame language.  "Recent Developments in NIKL", T.R. Kaczmarek et
al, Proc AAAI-86, 1986.


  1. A forerunner of Common LISP.  "NIL: A Perspective", Jon L. White,
MACSYMA Users' Conf Proc, 1979.

  2. Network Implementation Language.  Strom & Yemini, TJWRC, IBM. 
Implementation of complex networking protocols in a modular fashion.  "NIL:
An Integrated Language and System for Distributed Programming", R. Strom et
al, SIGPLAN Notices 18(6):73-82 (June 1983).

NJCL - Network Job Control Language.  "NJCL - A Network Job Control
Language", J. du Masle et al, IFIP Congress 1974.

Noddy - A simple (hence the name) language to handle text and interaction
on the Memotech home computer.  Has died with the machine.

nML - Specification language for instruction sets, based on attribute
grammars, for back-end generators.  "The nML Machine Description
Formalism", M. Freericks  TR TU Berlin, FB20, Bericht

NOMAD - Database language.  "NOMAD Reference Manual", Form 1004, National
CSS Inc (Dec 1976).  Version: NOMAD2, Must Software Intl.

Nonpareil - One of five pedagogical languages based on Markov algorithms,
used in "Nonpareil, a Machine Level Machine Independent Language for the
Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London
(1968).  (cf. Brilliant, Diamond, Pearl[3], Ruby[2]).

NORC COMPILER - Early system on NORC machine.  Listed in CACM 2(5):16 (May

NORD PL - Intermediate language for Norsk Data computers.  Sintran III (OS
of the ND 10, late 70's) was written in NORD PL.  "NORD PL User's Guide",

Nother - Parallel symbolic math.


  1. New Programming Language.  IBM's original (temporary) name for PL/I,
changed due to conflict with England's "National Physical Laboratory."  MPL
and MPPL were considered before settling on PL/I.  Sammet 1969, p.542.

  2. Burstall, 1977.  A predecessor of HOPE.  Pattern matching and set

  3. NonProcedural Language.  1980.  A relational database language.  "An
Introduction to Nonprocedural Languages Using NPL", T.D. Truitt et al,
McGraw-Hill 1983.  Versions for Apple II, MS-DOS.

NPPL - Network Picture Processing Language.  Interactive language for
manipulation of digraphs.  "A Graph Manipulator for On-line Network Picture
Processing", H.A. DiGiulio, Proc FJCC 35 (1969).

N-Prolog - Prolog extended with explicit negation.  Dov Gabbay, J Logic

Nqthm - Language[?] used in the Boyer-Moore theorem prover.  "Proving
Theorems About LISP Functions", R.S. Boyer et al JACM 22(1):129-144 (Jan

Nroff - Text formatting language/interpreter, based on Unix roff.  (See
Troff, Groff.)

NUCLEOL - List processing language, influenced by EOL.  J. Nievergelt,
Computer J 13(3) (Aug 1970).

Nuprl - (pronounced "new pearl")  Nearly Ultimate PRL.  Interactive
creation of formal mathematics, including definitions and proofs.  An
extremely rich type system, including dependent functions, products, sets,
quotients and universes.  Types are first-class citizens.  Built on Franz
Lisp and Edinburgh ML.  "Implementing Mathematics in the Nuprl Proof
Development System", R.L. Constable et al, P-H 1986.

NU-Prolog - L. Naish, U Melbourne.  A Prolog with 'when' declarations, the
successor to MU-Prolog.  Type-checked.  "NU-Prolog Reference Manual -
Version 1.3", J.A. Thom et al eds, TR 86/10, U Melbourne (1988).  Available
(but not free).

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

NYU OMNIFAX - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May

O2 - ("Object-Oriented").  Object-oriented database language used in the
Altair project.  Implemented as an interpreter.  GIP Altair, Versailles,
France.  Francois Bancilhon et al, in Advances in Object-Oriented Database
Systems, K.R. Dittrich ed, LNCS 334, Springer 1988.  (See CO2).

Oaklisp - K. Lang and B. Perlmutter.  A portable object-oriented Scheme,
syntactically a Scheme superset.  Based on generic operations rather than
functions.  Anonymous classes.  "Oaklisp: An Object-Oriented Scheme with
First-Class Types", K. Lang et al, SIGPLAN Notices 21(11):30-37 (Nov 1986)
(OOPSLA '86).
ftp: for Amiga

OBE - Office By Example.  Moshe Zloof, IBM, early 1980's.  Sequel to QBE,
descriptions published but apparently never implemented.

Oberon - Wirth, 1988.  A descendant of Modula-2 eliminating many things:
variant records, enumeration types, subranges, lower array indices and
'for' loops.  Additions are extensible record types, multidimensional open
arrays and garbage collection.  "The Programming Language Oberon", N.
Wirth, Soft Prac & Exp 18(7):671-690 (July 1988).
ftp: for MacII, MS-DOS for MS-DOS for Amiga

Oberon-2 - H. Moessenboeck, 1991.  A superset of Oberon-1 to include
object-orientation.  A redesign of Object Oberon.  Type-bound procedures
(equivalent to methods), read-only export of variables and record fields,
open array variables, and a 'with' statement with variants.  The 'for'
statement is reintroduced.  Second Intl Modula-2 Conf, Sept 1991.
ftp: for SPARC, DECstation, RS/6000, DOS386, MacII

OBJ - Joseph Goguen 1976.  A family of declarative "ultra high level"
languages.  Abstract types, generic modules, subsorts (subtypes with
multiple inheritance), pattern-matching modulo equations, E-strategies
(user control over laziness), module expressions (for combining modules),
theories and views (for describing module interfaces).  For the massively
parallel RRM (Rewrite Rule Machine).  "Higher-Order Functions Considered
Unnecessary for Higher-Order Programming", J.A. Goguen, in Research TOpics
in Functional Programming.
OBJ0 - Tardo.  Based on unsorted equational logic.
OBJT - Tardo.  Error algebras plus an image construct.
OBJ1 - 

OBJ2 - Clear-like parametrized modules.  A functional system based on
equations.  "Principles of OBJ2", K. Futatsugi et al, 12th POPL, ACM 1985,

OBJ3 - Based on order-sorted rewriting.  Agent-oriented.  "Introducing
OBJ3", J. Goguen et al, SRI-CSL-88-9, SRI Intl (1988).  Runs on AKCL.

Object CHILL - "Object CHILL - An Object Oriented Language for Systems
Implementation", J. Winkler et al, ACM Comp Sci Conf 1992, pp.139-147.

ObjectLOGO - A variant of LOGO with object-oriented extensions.  Lexical
scope.  Version 2.6, for the Mac.  Paradigm Software

Object Oberon - H. Moessenboeck & J. Templ, 1989.  Adds classes and methods
to Oberon.  "Object Oberon - An Object-Oriented Extension of Oberon", H.
Moessenboeck et al, ETH TR 109 (Apr 1990).  "Object Oberon - A Modest
Object-Oriented Language", H. Moessenboeck & J. Templ, in Structured
Programming 10(4), 1989.  (See Oberon-2).

Object-Oriented Turing - under development.  Adds objects and classes to
Turing Plus.

Object Pascal - Developed jointly by Apple Computer and Niklaus Wirth.  An
object-oriented Pascal.  "Object Pascal Report", Larry Tesler, Structured
Language World 9(3):10-17 (1985).

Object Z - U Queensland.  "Object Orientation in Z", S. Stepney et al eds,
Springer 1992.

Objective C - Brad Cox, Productivity Products.  An object-oriented superset
of ANSI C, incorporating many ideas from Smalltalk.  Implemented as a
preprocessor for C.  No operator overloading, no multiple inheritance, no
class variables.  Does have run-time binding.  Used as the system
programming language on the NeXT.  "Object-Oriented Programming: An
Evolutionary Approach", Brad Cox, A-W 1986.  Versions for MS-DOS, Macs, VMS
and Unix workstations.  Language versions by Stepstone, NeXT and GNU are
slightly different.  Stepstone Corp, (203) 426-1875.

Objective Turing - 

Objlog - CNRS, Marseille.  Frame-based language combining objects and
Prolog II.  "The Inheritance Processes in Prolog", C. Chouraki et al,
GRTC/187bis/Mars 1987 (CNRS).

ObjVlisp - 1984.  An object-oriented extension of Vlisp.  Reflective
architecture.  "Metaclasses are First Class: The ObjVlisp Model", P.
Cointe, SIGPLAN Notices 22(121):156-167 (Dec 1987) (OOPSLA '87).

ObjVProlog - Logic programming and object-orientation, an adaptation of the
ObjVlisp model to Prolog.  "ObjVProlog: Metaclasses in Logic", J.
Malenfant, ECOOP '89, Cambridge U Press 1989, pp.257-269.

Oblog - Object-oriented extension to Prolog.  Small, portable.
info: Margaret McDougall, EdCAAD, Dept Arch, U Edinburgh, EH1 1JZ.

OBSCURE - "A Formal Description of the Specification Language OBSCURE", J.
Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985.

Oc - ("Oh see!")  Parallel logic language.  "Self-Description of Oc and its
Applications", M. Hirata, Proc 2nd Natl Conf Japan Soc Soft Sci Tech,
pp.153-156 (1984).

OCAL - On-Line Cryptanalytic Aid Language.  "OCAS: On-line Cryptanalytic
Aid System", D.J. Edwards, MAC-TR-27, MIT Project MAC, May 1966.  Sammet
1969, p.642.

occam - (named for the English philosopher William of Occam (1300-1349))
Now known as "occam 1".  David May et al, 1982.  Concurrent algorithms,
based on CSP and EPL.  Designed for the INMOS transputer and vice versa. 
Expressions are processes, which may be combined in serial and parallel. 
Processes communicate via named unidirectional channels.  There is no
operator precedence.  "Occam", D. May, SIGPLAN Notices 18(4):69-79 (1983).
ftp:, simulator for VAX, Tahoe

occam 2 - 1987.  An extension of occam1.  Occam 2 adds floating point,
functions and a type system.  "occam 2 Reference Manual", INMOS, P-H 1988,
ISBN 0-13-629312-3.

OCL - Operator Control Language.  Batch language for the IBM System/36, 
used specifically with the RPG II compiler.  (See CL).

OCODE - Intermediate language used by the Cambridge BCPL compiler.  "The
Portability of the BCPL Compiler", M. Richards, Soft Prac & Exp 1(2)

OIL - 

  1. "The Architecture of the FAIM-1 Synbolic Multiprocessing System", A.
Davis et al, 9th Intl Joint Conf in Artif Intell, 1985, pp.32-38.

  2. Operator Identification Language.  Used for overload resolution by the
Eli compiler-writing system.  

OLC - On-Line Computer system.  UCSB ca. 1966.  Predecessor of Culler-Fried
System.  Sammet 1969, p.253.

OLDAS - On-line Digital Analog Simulator.  Interactive version of MIMIC,
for IBM 360.  "OLDAS: An On-line Continuous System Simulation Language",
R.P. Cullen, in Interactive Systems for Experimental Applied Mathematics,
A-P 1968.

Omega - Prototype-based object-oriented language.  "Type-Safe Object-
Oriented Programming with Prototypes - The Concept of Omega", G. Blaschek,
Structured Programming 12:217-225 (1991).

OMNICODE - Thompson, 1956.  Ran on IBM 650.  Sammet 1969, p.5.

OMNIFAX - Alternate name for NYU OMNIFAX?  Early system on UNIVAC I or II. 
Listed in CACM 2(5):16 (May 1959).

OMNITAB - Statistical analysis and desk calculator.  "OMNITAB II User's
Reference Manual", NBS Tech Note 552 (Oct 1971).  Sammet 1969, pp.296-299. 
Version: OMNITAB II.

Ondine - "Concurrency Introduction to an Object-Oriented Language System
Ondine", T. Ogihara et al, 3rd Natl Conf Record A-5-1, Japan Soc for Soft
Sci Tech, Japan 1986.

Ontic - Object-oriented language for an inference system.  LISP-like
appearance, but based on set theory.  "Ontic: A Knowledge Representation
System for Mathematics", D.A. McAllester, MIT Press 1989.

OOF - Object-Oriented Fortran.  Data items can be grouped into objects,
which can be instantiated and executed in parallel.  Available now for
Suns, Iris, iPSC, soon for nCUBE.

OOPS - "OOPS: A Knowledge Representation Language", D. Vermeir, Proc 19th
Intl Hawaii Conf on System Sciences, IEEE (Jan 1986) pp.156-157.

OOZE - Object oriented extension of Z.  "Object Orientation in Z", S.
Stepney et al eds, Springer 1992.

Opal -

  1. DSP language.  "OPAL: A High Level Language and Environment for DSP
boards on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989.

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

  3. Simulation language with provision for stochastic variables.  An
extension of Autostat.  "C-E-I-R OPAL", D. Pilling, Internal Report,
C.E.I.R. Ltd (1963).

  4. Language for compiler testing said to be used internally by DEC.


  1. On-line Process Synthesizer.  M. Greenberger, MIT ca. 1964.  Discrete
simulation under CTSS.  Sammet 1969, p.660.  Versions: OPS-3, OPS-4.  "On-
line Computation and Simulation: The OPS-3 System", M. Greenberger et al,
MIT Press 1965.

  2. Official Production System.  CMU, 1970.  The first production-system
(i.e. rule-based) programming language, used for building expert systems. 
Written originally in Franz Lisp, later ported to other LISP dialects.

OPS5 - Charles L. Forgy.  1977 version of OPS[2], publicly available from
the author .  "Programming Expert Systems in OPS5", L.
Brownston et al, A-W 1985.  Other versions: OPS4, OPS5+, OPS83
ftp: an OPS5 interpreter
in Common LISP.
C5 - An OPS5 implementation in C.  "Rule-Based Programming in the Unix
System", G.T. Vesonder, AT&T Tech J 67(1), 1988.
ftp: OPS5 in Common LISP

Orca - Vrije Universiteit, Amsterdam, 1986.  Similar to Modula-2, but with
support for distributed programming using shared data objects, like Linda. 
A 'graph' data type removes the need for pointers.  Version for the Amoeba
OS, comes with Amoeba.  "Orca: A Language for Distributed Processing", H.E.
Bal  et al, SIGPLAN Notices 25(5):17-24 (May 1990).

Orient84/K - Y. Ishikawa, Keio U, Yokohama.  "A Concurrent Object-Oriented
Knowledge Representation Language Orient84/K", Y. Ishikawa et al, SIGPLAN
Notices 21(11):232-241 (OOPSLA '86) (Nov 1986).

ORTHOCARTAN - A. Krasinski, Warsaw, early 80's.  Symbolic math, especially
General Relativity.  

Orwell - Lazy functional language, Miranda-like.  List comprehensions and
pattern matching.  "Introduction to Orwell 5.00", P.L. Wadler et al,
Programming Research Group, Oxford U, 1988.


  1. Oregon State Conversational Aid to Research.  Interactive numerical
calculations, vectors, matrices, complex arithmetic, string operations, for
CDC 3300.  "OSCAR: A User's Manual with Examples", J.A. Baughman et al, CC,
Oregon State U.

  2. Object-oriented language used in the COMANDOS Project.  "OSCAR:
Programming Language Manual", TR, COMANDOS Project, Nov 1988.

OSSL - Operating Systems Simulation Language.  "OSSL - A Specialized
Language for Simulating Computer Systems", P.B. Dewan et al, Proc SJCC 40,
AFIPS (Spring 1972).

Ottawa Euclid - Variant of Euclid.

OWHY - Functional?  "A Type-Theoretical Alternative to CUCH, ISWIM, OWHY",
Dana Scott, Oxford U 1969.

Owl - Original name of Trellis.

P+ - "Experience with Remote Procedure Calls in a Real-Time Control
System", B. Carpenter et al, Soft Prac & Exp 14(9):901-907 (Sep 1984).

P4 - Rusty Lusk .  A macro/subroutine package for
parallel programming, using monitors on shared memory machines, message
passing on distributed memory machines.  Implemented as a subroutine
library for C and Fortran.  An enhancement of the "Argonne macros",

PACT I - Early system on IBM 701.  Listed in CACM 2(5):16 (May 1959). 
Version: PACT IA for IBM 704.

PACTOLUS - Digital simulation.  Sammet 1969, p.627.

Paddle - Language for transformations leading from specification to
program.  Used in POPART, a grammar-driven programming environment
generator.  "POPART: Producer of Paddles and Related Tools, System
Builders' Manual", D.S. Wile TR RR-82-21, ISI, Marina del Rey, CA 1982.

PAGE - Typesetting language.  "Computer Composition Using PAGE-1", J.L.
Pierson, Wiley 1972.

PaiLisp - Parallel Lisp built on Scheme.  1986.  "A Parallel Lisp Language
PaiLisp and its Kernel Specification", T. Ito et al, in Parallel Lisp:
Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989.

PAISley - Bell Labs.  Operational specification language.  "An Operational
Approach to Requirements Specification for Embedded Systems", P. Zave, IEEE
Trans Soft Eng SE-8(3):250-269 (May 1982).

PAL - 

  1. Paradox Application Language.  Language for Paradox, Borland's
relational database.

  2. For the AVANCE distributed persistent OS.  "PAL Reference Manual", M.
Ahlsen et al, SYSLAB WP-125, Stockholm 1987.  "AVANCE: An Object Management
System", A. Bjornerstedt et al, SIGPLAN Notices 23(11):206-221 (OOPSLA '88)
(Nov 1988).

  3. Object-oriented Prolog-like language.  "Inheritance Hierarchy
Mechanism in Prolog", K. Akama, Proc Logic Prog '86, LNCS 264, Springer
1986, pp.12-21.

  4. PDP Assembly Language.  Assembly language for PDP-8 and PDP-11.

  5. Pedagogic Algorithmic Language.  "PAL - A Language for Teaching
Programming Linguistics", A. Evans Jr, Proc ACM 23rd Natl Conf,
Brandon/Systems Press (1968).

Pam - Toy ALGOL-like language used in "Formal Specification of Programming
Languages:  A Panoramic Primer", F.G. Pagan, P-H 1981.

Pandora - Parlog extended to allow "don't-know" non-determinism.  "Pandora:
Non-Deterministic Parallel Logic Programming", R. Bahgat et al, Proc 6th
Intl Conf Logic Programming, MIT Press 1989 pp.471-486.

PANON - A family of pattern-directed string processing languages based on
generalized Markov algorithms.  "String Processing Languages and
Generalized Markov Algorithms", A. C. Forino, Proc IFIP Working Conf on
Symb Manip Languages, pp.141-206, Amsterdam 1968.  PANON-1, based on Simple
GMA's and PANON-2 based on Conditional Functional GMA's.

Paragon - IEEE Software (Nov 1991). [?]

Paralation - PARALlel reLATION.  Sabot, MIT 1987.  A framework for parallel
programming.  A "field" is an array of objects, placed at different sites. 
A paralation is a group of fields, defining nearness between field
elements.  Operations can be performed in parallel on every site of a
paralation.  "The Paralation Model: Architecture Independent Programming",
G.W. Sabot , MIT Press 1988.

Paralation LISP - Embeds the paralation model in Common LISP.  Available
from MIT Press, (800)356-0343.

Paralation C - Paralation embedded in C.  Under development.

ParAlfl - Hudak, Yale.  Parallel functional language, a superset of Alfl. 
Used by the Alfalfa system on Intel iPSC and Encore Multimax.  "Para-
Functional Programming", P. Hudak, Computer 19(8):60-70 (Aug 1986). 
"Alfalfa: Distributed Graph Reduction on a Hypercube Multiprocessor", B.
Goldberg & P. Hudak, TR, Yale U, Nov 1986.

Parallaxis - U Stuttgart.  Data-parallel (SIMD) language, based on Modula-
2.  "User Manual for Parallaxis Version 2.0", T. Braunl, U Stuttgart. 
Simulator for workstations, Mac and PC.

Parallel C - Never implemented, but influenced the design of C*.

Parallel FORTH - For the MPP.

Parallel Pascal - Data-parallel language, similar to Actus and Glypnir. 
"Parallel Pascal: An Extended Pascal for Parallel Computers", A. Reeves, J
Parallel Dist Computing 1:64-80 (1984).

Parallel SML - "Parallel SML: A Functional Language and its Implementation
in Dactl", Kevin Hammond, Pitman Press 1990.

Pari - Symbolic math, especially number theory.  Version 1.37 for Unix,
Macintosh, MS-DOS, Amiga.

Paris - PARallel Instruction Set.  Low-level language for the Connection

Parlance - Concurrent language.  "Parallel Processing Structures:
Languages, Schedules, and Performance Results", P.F. Reynolds, PhD Thesis,
UT Austin 1979.

Parlog - Clark & Gregory, Imperial College 1983.  An AND-parallel Prolog,
with guards and committed choice [=don't care] nondeterminism.  Shallow
backtracking only.  "Parlog: A Parallel Logic Programming Language", K.L.
Clark and S. Gregory, Imperial College, London, May 1983.  ("Parlog83", in
which the ouput mechanism was assignment).  "Parallel Logic Programming in
PARLOG, The Language and Its Implementation", S. Gregory, A-W 1987. 
("Parlog86", in which the output mechanism was unification, as in GHC). 
(See Strand). Implementations: MacParlog and PC-Parlog from Parallel Logic
Programming Ltd, Box 49 Twickenham TW2 5PH, UK.

Parlog++ - Andrew Davison , then Imperial College now U
Melbourne.  Object orientation plus parallel logic, built on top of
MacParlog.  "Parlog++: A Parlog Object-Oriented Language", A. Davison,
Parlog Group, Imperial College 1988.  Sold by PLP Ltd.  

PARMACS - Argonne Natl Lab.  The "Argonne macros".  A package of macros
written in m4 for portable parallel programming, using monitors on shared
memory machines, and message passing on distributed memory machines.  E.
Lusk et al, "Portable Programs for Parallel Processors", HRW 1987.  (See

ParMod - "Parallel Programming with ParMod", S. Eichholz, Proc 1987 Intl
Conf on Parallel Proc, pp.377-380.

PARSEC - Extensible language with PL/I-like syntax, derived from PROTEUS. 
"PARSEC User's Manual", Bolt Beranek & Newman (Dec 1972).

PARULEL - "The PARULEL Parallel Rule Language", S. Stolfo et al, Proc 1991
Intl Conf Parallel Proc, CRC Press 1991, pp.36-45.

Pascal - (named for the French mathematician Blaise Pascal (1623-1662))  N.
Wirth, ca. 1970.  Designed for simplicity, in reaction to the complexity of
ALGOL 68, and intended as a teaching language.  Innovations: enumeration
types, subranges, sets, variant records, case statement.  Missing from
standard Pascal: strings, adjustable arrays, abstract data types,
random-access files, and separate compilation.  Pascal has been extremely
influential in programming language design, and has led to a great number
of variations and descendants.  "PASCAL User Manual and Report", K. Jensen
& N. Wirth, Springer 1975.  BS 6192, "Specification for Computer
Programming Language Pascal", British Standards Institute 1982.

Pascal- - Pascal subset used in Brinch Hansen on Pascal Compilers, P.
Brinch Hansen, P-H 1985.

Pascal-2 - [?]

Pascal-80 - A successor of Platon.  Developed at RC International for
systems programming.  Later it was renamed Real-Time Pascal.  "PASCAL80
Report", J. Staunstrup, RC Intl, Denmark Jan 1980.

Pascal+CSP - "Pascal+CSP, Merging Pascal and CSP in a Parallel Processing
Oriented Language", J. Adamo, Proc 3rd Intl Conf Distrib Comp Sys, IEEE
1982, pp.542-547.

Pascal-F - Pascal extended to include fixed-point arithmetic.  E. Nelson,
"Pascal-F: Programming Language for Real-Time Automotive Control", IEEE
ElectroTechnol. Rev. (USA), 2:39, 1968.

Pascal-FC - Derived from Pascal-S, provides several types of concurrency:
semaphores, monitors, both occam/CSP-style and Ada-style rendezvous.  "The
Teaching Language Pascal-FC", G.L. Davies et al, Computer J 33(2):147-154
(Apr 1990).

Pascal/L - A SIMD parallel extension of Pascal.  "Implementation of an
Array and Vector Processing Language", C. Fernstrom, Intl Conf Parallel
Proc, IEEE, pp.113-127 (1982)

Pascal-Linda - Ian Flockhart, U Edinburgh, 1991.  Under development.

Pascal-m - "Pascal-m: A Language for Loosely Coupled Distributed Systems",
S. Abramsky et al in Distributed Computing Systems, Y. Paker et al eds,
Academic Press 1986, pp.163-189.

Pascal-P - Variant of Pascal used by the UCSD p-system environment. 
Extended string and array operations, random access files, separate
compilation, etc.  Available from Pecan.

Pascal Plus - Jim Welsh & D. Bustard, Queens U, Belfast.  Pascal with
extensions for object-oriented multiprogramming, uses an 'envelope'
construct for both packages and classes.  "Pascal Plus - Another Language
for Modular Multiprogramming", J. Welsh et al, Soft Prac & Exp 9:947
(1979).  "Sequential Program Structures", J. Welsh et al, P-H ISBN 0-13-

Pascal/R - Pascal with relational database constructs added.  The first
successful integrated database language.  "Pascal/R Report", J.W. Schmidt
et al, U Hamburg, Fachbereich Informatik, Report 66, Jan 1980.

Pascal-S - Simplified Pascal.  Source for a complete Pascal-S compiler is
in "Pascal-S: A Subset and Its Implementation", N. Wirth in Pascal
- The Language and Its Implementation, by D.W. Barron, Wiley 1979.

Pascal-SC - ESPRIT DIAMOND Project.  An extension of Pascal for numerical
analysis, with controlled rounding, overloading, dynamic arrays and
modules.  "PASCAL-SC, A Computer Language for Scientific Computation", G.
Bohlender et al, Academic Press 1987.

PASRO - PAScal for RObots.  "PASRO - Pascal for Robots", C. Blume et al,
Springer 1985.

PAT - Personalized Array Translator.  Small subset of APL.  Sammet 1969,

Path Pascal - Parallel extension of Pascal.  Processes have shared access
to data objects.  Constraints on their synchronization are specified in a
path expression.  "An Overview of Path Pascal's Design", R.H. Campbell,
SIGPLAN Notices 15(9):13-24 (Sep 1980).

pc - Parallel C.  U Houston.

PCF - Simply typed, functional.  "Fully Abstract Translations Between
Functional Languages", J. Riecke, 18th POPL, pp.245-254 (1991).  "LCF
Considered as a Programming Language", Theor CS 5:223 (1977).

PCL - 

  1. Printer Control Language.  Document description language used by
Hewlett-Packard Laserjet printers, a superset of HP-GL/2.  LaserJet
III/IIID Printer Technical Reference Manual, HP 33459-90903.  Versions: PCL
3, PCL 5.

  2. Portable CommonLoops.  Started out as an implementation of
CommonLoops.  Is now being converted to CLOS, but currently implements only
a subset of the CLOS specification.

  3. Peripheral Control Language.  Command language for I/O on the CP-V OS.

  4. "PCL - A Process Oriented Job Control Language", V. Lesser et al, Proc
1st Intl Conf Distrib Comp Sys, IEEE 1979, pp.315-329.

PCN - Program Composition Notation.  A specification language.

P-code - The intermediate code produced by the Pascal-P compiler.  Assembly
language for a hypothetical stack machine, the P-machine, said to have been
an imitation of the instruction set for the Burroughs Large System.  The
term was first used in Algorithms + Data Structures = Programs, N. Wirth,
P-H 1976.  A series of Byte articles about writing a Pascal Compiler in
Northstar BASIC (ca Aug 1978) also used the term.  Later used in Apple
Pascal, and as the intermediate language in the UCSD P-system.  "A
Comparison of PASCAL Intermediate Languages", P.A. Nelson, SIGPLAN Notices
14(8):208-213 (Aug 1979).  Variants: P-2 P-code, P-4 P-code, UCSD P-code,
LASL P-code.
info: USUS, Box 1148, La Jolla, CA 92038

PC-TILES - A visual language.

PCLIPS - Parallel CLIPS - U Lowell.  Concurrent independent CLIPS expert
systems.  They use 'rassert' (remote assert) to enter facts into each
other's database.  "PCLIPS: A Distributed Expert System Environment", R.
Miller, CLIPS Users Group Conf, Aug 1990.

PDEL - Partial Differential Equation Language.  Preprocessor for PL/I. 
"PDEL - A Language for Partial Diferential Equations", A.F. Cardenas, CACM
13(3):184-191 (Mar 1970).

PDELAN - Partial Differential Equation LANguage.  "An Extension of FORTRAN
Containing Finite Difference Operators", J. Gary et al, Soft Prac & Exp
2(4) (Oct 1972).

PDL2 - Process Design Language.  Developed for the TI ASC computer.  "Texas
Instruments Process Design Methodology - Design Specification: Process
Design Language", Volume I (Sep 1976).  Mentioned in "An Overview of Ada"
J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980).

PDS/MaGen - Problem Descriptor System.  Generation of matrices and reports
for mathematical programming and operations research.  "PDS MaGen User
Information Manual", Haverly Systems (Dec 1977).


  1. Constable, Cornell U, 80's.  Constructive mathematics.

  2. Process and Experiment Automation Real-Time Language.  A real-time
language for programming process control systems, widely used in Europe. 
Size and complexity comparable to Ada.  DIN 66253 Teil 2,
"Programmiersprache PEARL", Beuth-Verlag, Nov 1980.

  3. One of five pedagogical languages based on Markov algorithms, used in
"Nonpareil, a Machine Level Machine Independent Language for the Study of
Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). 
(cf. Brilliant, Diamond, Nonpareil, Ruby[2]).

Pebble - Polymorphic.  "A Kernel Language for Abstract Data Types and
Modules", R.M. Burstall & B. Lampson, in Semantics of Data Types, LNCS 173,
Springer 1984.

Pebbleman - DoD requirements that led to APSE.

PECOS - Constraint-based language, built on the object-oriented module of
Le-Lisp.  "Pecos Reference Manual", ILOG, 1990.  ILOG, 12 av Raspail, BP 7,
F94251 Gentilly, France.

PEEL - Used to implement version of EMACS on PRIME computer. [?]

PENCIL - Pictorial ENCodIng Language.  On-line system to display line
structures.  Sammet 1969, 675.

Pepper - Chris Dollin .  Variant of POP-11.

PEPsy - Prolog extended with parallel modules within which explicit OR-
parallelism can be used.  "PEPsy: A Prolog for Parallel Processing", M.
Ratcliffe et al, ECRC TR CA-17, 1986.

Perl - Practical Extraction and Report Language.  Larry Wall   An AWK-like scripting language for scanning text and
printing reports.  "Programming Perl", Larry Wall et al, O'Reilly & Assocs.
ftp: for Unix, MS-DOS, Amiga for Mac
uucp: osu-cis

pf - Parallel Fortran.  U Houston.  Under development.

PFL - Holmstrom, Matthews.  A concurrent extension of ML, using CCS.  "PFL:
A Functional Language for Parallel Programming", S. Holmstrom in Proc
Declarative Language Workshop, London 1983.

PHOCUS - Object-oriented Prolog-like language.  "PHOCUS: Production Rules,
Horn Clauses, Objects and Contexts in a Unification Based System", D. Chan
et al, Actes du Sem Prog et Logique, Tregastel (May 1987), pp.77-108.

PIC - Brian Kernighan.  Graphics meta-language for textually describing
pictures, for use with troff.  Featured in Jon Bentley's "More Programming
Pearls."  "PIC - A Language for Typesetting Graphics", B.W. Kernighan, Soft
Prac & Exp 12(1):1-21 (Jan 1982).  "PIC - A Graphics Language for
Typesetting, Revised User Manual", Bell Labs TR 116, Dec 1984.

Pick BASIC - see Data/BASIC.

PIE - CMU.  Similar to Actus.

PIL - Procedure Implementation Language, subsytem of DOCUS.  Sammet 1969,

PIL/I - Variant of JOSS.  Sammet 1969, p.217.


  1. Polytechnic's Instructional Language for Educators.  Similar in use to
an enhanced PILOT, but structurally more like Pascal with Awk-like
associative arrays (optionally stored on disk).  Distributed to about 50
sites by Initial Teaching Alphabet Foundation for Apple II and CP/M.  "A
Universal Computer Aided Instruction System," Henry G. Dietz & Ronald J
Juels, Proc Natl Educ Computing Conf '83, pp.279-282.

  2. "PILE _ A Language for Sound Synthesis", P. Berg, Comput Music J 3,1

PILOT - Programmed Inquiry Learning Or Teaching.  CAI language, many
versions.  "Guide to 8080 PILOT", J. Starkweather, Dr Dobb's J (Apr 1977).

PINBOL - Decision table language for controlling pinball machines used at
Atari.  Included a multi-tasking executive and an interpreter that worked
on data structures compiled from condition:action lists.

PIRL - Pattern Information Retrieval Language.  Language for digraph
manipulation, embeddable in FORTRAN or ALGOL, for IBM 7094.  "PIRL -
Pattern Information Retrieval Language", S. Berkowitz, Naval Ship Res Dev
Ctr, Wash DC.

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

PL-11 - High-level machine-oriented language for the PDP-11.  (May have
been from CERN.)

PL/360 - Assembly language for IBM 360 and 370, with a few high-level
constructs.  "PL/360, A Programming Language for the 360 Computers", N.
Wirth, J ACM 15(1):37-74 (Jan 1968).

PL-6 - PL/I-like system language for the Honeywell OS CP-6.

PL.8 - A systems dialect of PL/I, developed originally for the IBM 801 RISC
mini, later used internally for IBM RT and R/6000 development.  "An
Overview of the PL.8 Compiler", M. Auslander et al, Proc SIGPLAN '82 Symp
on Compiler Writing.

Pla - High-level music programming language, written in SAIL.  Includes
concurrency based on message passing.  "Pla: A Composer's Idea of a
Language", B. Schottstaedt, Computer Music J 7(1):11-20 (Winter 1983).

PLACE - Programming Language for Automatic Checkout Equipment.  "The
Compiler for the Programming Language for Automatic Chekcout Equipment
(PLACE)", AFAPL TR-68-27, Battelle Inst, Columbus, May 1968.

PLAIN - Programming LAnguage for INteraction.  Pascal-like, with extensions
for database, string handling, exceptions and pattern matching.  "Revised
Report on the Programming Language PLAIN", A. Wasserman, SIGPLAN Notices
6(5):59-80 (May 1981).

PLAN - Assembly language for ICL1900 series machines.

Planet - "An Experiment in Language Design for Distributed Systems", D.
Crookes et al, Soft Prac & Exp 14(10):957-971 (Oct 1984).

PLANIT - Programming LANguage for Interaction and Teaching.  CAI language. 
"PLANIT - A Flexible Language Designed for Computer-Human Interaction",
S.L. Feingold, Proc FJCC 31, AFIPS (Fall 1967)  Sammet 1969, p.706.

Plankalkul - Konrad Zuse, ca. 1945.  The first programming language, never
implemented.  Included arrays and records.  Much of his work may have been
either lost or confiscated in the aftermath of WWII.  "The Plankalkul of
Konrad Zuse", F.L. Bauer et al, CACM 15(7):678-685 (Jul 1972).

PLANNER - C. Hewitt  MIT 1967.  A language for writing
theorem provers.  Never fully implemented, see microPLANNER.  "PLANNER: A
Language for Proving Theorems in Robots", Carl Hewitt, Proc IJCAI-69, Wash
DC, May 1969.

PLANS - Programming Language for Allocation and Network Scheduling.  A PL/I
preprocessor, used for developing scheduling algorithms.  "A User's Guide
to the Programming Language for Allocation and Network Scheduling", H.R.
Ramsey et al, TR SAI-77-068-DEN, Science Applications Inc (Jun 1977).

Plasma - Carl Hewitt, 1976.  The first actor language.  "Viewing Control
Structures as Patterns of Passing Messages", C. Hewitt, AI Memo 410, MIT

Platon - Distributed language based on asynchronous message passing. 
"Message Passing Communication Versus Procedure Call Communication", J.
Staunstrup, Soft Prac & Exp 12(3):223-234 (Mar 1982).  "Platon Reference
Manual", S. Soerensen et al, RECAU, U Aarhus, Denmark.

PLAY - 1977.  Language for real-time music synthesis.  "An Introduction to
the Play Program", J. Chadabe ete al, Computer Music J 2,1 (1978).

Playground - A visual language for children, developed for Apple's Vivarium
Project.  OOPSLA 89 or 90?

PL/C - Subset of PL/I for student use.  "User's Guide to PL/C", S. Worona
et al, Cornell, June 1974.  "PL/C - A High Performance Compiler" H.L.
Morgan et al, Proc SJCC, AFIPS 38:503-510 (1971).

PL/I - Programming Language I.  George Radin, 1964.  Oriinally named NPL. 
An attempt to combine the best features of FORTRAN, COBOL and ALGOL 60. 
Result is large but elegant.  One of the first languages to have a formal
semantic definition, using the Vienna Definition Language.  EPL, a dialect
of PL/I, was used to write almost all of the Multics OS.  PL/I has no
reserved words.  Types are fixed, float, complex, character strings with
max length, bit strings, and label variables.  Arrays have lower bounds,
and may be dynamic. Summation, multi-level structures, structure
assignment, untyped pointers, side effects, aliasing.  Control flow goto,
do-end groups, do-to-by-while-end loops, external procedures and internal
nested procedures and blocks, procedures may be declared recursive. 
Generic procedures.  Many implementations support concurrency ('call task'
and 'wait(event)' amount to fork/join) and compile-time statements. 
Exception handling.  "A Structural View of PL/I", D. Beech, Computing
Surveys, 2,1 33-64 (1970).  ANS X3.53-1976, X3.74-1981.  PL/I is still
widely used internally at IBM.
ftp:, PL/I interpreter
version: LPI for PC's and workstations 

PL/I SUBSET - Early 70's version of PL/I for minis.

PL/I Subset G - The commercial PL/I subset (i.e., what was actually
implemented by most vendors).

PL/I-FORMAC - Variant of FORMAC.  "The PL/I-FORMAC Interpreter", J.
Xenakis, Proc 2nd Symp Symbolic and Algebraic Manip, ACM (Mar 1971). 
Sammet 1969, p.486.

Plisp - Pattern LISP.  1990.  A pattern-matching rewrite-rule language,
optimized for describing syntax translation rules.  (See LISP70).

PLITS - Programming Language In The Sky.  A computational model for
concurrency with communication via asynchronous message-passing.  "High
Level Programming for Distributed Computing", J.A. Feldman, CACM 22(6):353-
368 (Jun 1979).

PL/M - Programming Language/Microcomputers.  MAA (later Digital Research)
for Intel, 1972.  A very low level language incorporating ideas from PL/I,
ALGOL and XPL.  Integrated macro processor.  Originally the implementation
language for CP/M.  "PL/M-80 Programming Manual", Doc 98-268B, Intel 1976. 
"A Guide to PL/M Programming for Microcomputer Applications", D. McCracken,
A-W 1978.  Versions: PL/M-80, PL/M-86, PL/M-286.

PL/P - Programming Language, Prime.  Russ Barbour, PRIME Computer, late
70's.  Subset of PL/I used internally for implementation of PRIMOS.  (See

PL/PROPHET - PL/I-like language for the PROPHET system, used by
pharmacologists.  "The Implementation of the PROPHET System", P.A.
Castleman et al, NCC 43, AFIPS (1974).

PL/S - Programming Language/Systems.  IBM late 60's.  Apparently a hybrid
of PL/I and ASM.  Much of IBM/360 OS/MFT/MVT/SVS/MVS was written in it. 
Documented by various IBM internal ZZ-? publications.  Versions: PLS1,

PL/Seq - Programming Language for Sequences.  A DSP language.  "A General
High Level Language for Signal Processors", J. Skytta & O. Hyvarinen,
Digital Signal Processing 84, Proc Intl Conf, Fiorence, Italy, Sep 1984,

PLUSS - Proposition of a Language Useable for Structured Specifications. 
Algebraic specification language, built on top of ASL.  "A First
Introduction to PLUSS", M.C. Gaudel, TR, U Paris Sud, Orsay 1984.

PM - "PM, A System for Polynomial Manipulations", G.E. Collins, CACM
9(8):578-589 (Aug 1966).

PLZ - [?]

PML - Parallel ML.  "Synchronous Operations as First-Class Values", J.H.
Reppy , Proc SIGPLAN 88 Conf Prog Lang Design and
Impl, June 1988, pp.250-259.

POGO - Early system on G-15.  Listed in CACM 2(5):16 (May 1959).

Polka - Object orientation plus parallel logic, built on top of Parlog. 
"Polka: A Parlog Object-Oriented Language", Andrew Davison
, TR, Parlog Group, Imperial College, London 1988.

Poly - 

  1. D.C.J. Matthews, Cambridge, early 80's.  Polymorphic,
block-structured.  "An Overview of the Poly Programming Language", D.C.J.
Matthews , in Data Types and Persistence, M.P. Atkinson
et al eds, Springer 1988.

  2. St Andrews U, Scotland.  Software Prac & Exp, Oct 1986.[?]

  3. Polymorphic language used in Polymorphic Programming Languages, David
M. Harland, Ellis Horwood 1984.

POLYGOTH - Distributed language integrating classes with a parallel block
structure, including multiprocedures and fragments.  "Operational Semantics
of a Distributed Object-Oriented Language and its Z Formal Specification",
M. Benveniste , TR532, IRISA/INRIA-Rennes.

Ponder - Jon Fairbairn, .  Polymorphic, non-strict
functional language.  Has a type system similar to Girard's System F
("Proofs and Types", J-Y. Girard, Cambridge U Press 1989), also known as
Lambda-2 or the polymorphic lambda calculus.  Ponder adds extra recursive
'mu' types to those of F, allowing more general recursion.  "Ponder and its
Type System", J. Fairbairn, TR 31, Cambridge U Computer Lab, Nov 1982. 
Also "Subtyping in Ponder", V. Paiva, TR 203.

POOL2 - Parallel Object-Oriented Language.  Philips Research Labs, 1987. 
Strongly typed, synchronous message passing, designed to run on DOOM (DOOM
= Decentralized Object-Oriented Machine).  "POOL and DOOM: The Object-
Oriented Approach", J.K. Annot, PAM den Haan, in Parallel Computers,
Object-Oriented, Functional and Logic, P. Treleaven ed.  "Issues in the
Design of a Parallel Object-Oriented Language", P. America, Formal Aspects
of Computing 1(4):366-411 (1989).  

POOL-I - Latest in the line of POOL languages.  "A Parallel Object-Oriented
Language with Inheritance and Subtyping", P. America et al, SIGPLAN Notices
25(10):161-168 (OOPSLA/ECOOP '90) (Oct 1990).

POOL-T - Object-oriented, concurrent, synchronous.  Predecessor of POOL2. 
"Definition of the Programming Language POOL-T", Esprit Project 415, Doc.
0091, Philips Research Labs, Eindhoven, Netherlands, June 1985.

POP-1 - Package for On-Line Programming.  1966.  First of the POP family of
languages.  Used reverse Polish notation.  EPU-R-17, U Edinburgh (Jul

POP-2 - Robin POPplestone, Edinburgh 1967.  An innovative language
incorporating many of Landin's ideas, including streams, closures, and
functions as first-class citizens.  The first implementation was named
Multi-POP.  "POP-2 Papers", R.M. Burstall et al, Oliver & Boyd 1968. 
"Programming in POP-2", R.M. Burstall et al, Edinburgh U Press 1971.

POP-10 - Julian Davies, 1973.  Descendant of POP-2, for the PDP-10.  "POP-
10 User's Manual", D.J.M. Davies, CS R25, U West Ontario, 1976.

POP-11 - Robin POPplestone, 1975.  Originally for the PDP-11.  In some
ways, POP is like FORTH (stack-oriented, extensible, efficient).  It's also
like LISP (functional, dynamically typed, interactive, garbage-collected). 
And the syntax is like Pascal (block-structured).  "Programming in POP-11",
J. Laventhol , Blackwell 1987.  Implementations: AlphaPop
for Mac (Computable Functions Inc, 413-253-7637).  PopTalk [?]  POPLOG (U
Sussex) available for VAX/VMS and most workstations.
info: Robin Popplestone  (413)253-7637

POP-9X - Proposed BSI standard for POP-11.

POP++ - An extension of POPLOG.  Available from Integral Solutions.

POPCORN - AI system built on POP-2.  "The POPCORN Reference Manual", S.
Hardy, Essex U, Colchester, 1973.

Poplar - Morris, 1978.  A blend of LISP with SNOBOL4 pattern matching and
APL-like postfix syntax.  Implicit iteration over lists, sorting primitive.
"Experience with an Applicative String-Processing Language", J.H. Morris et
al, 7th POPL, ACM 1980, pp.32-46.

POPLER - A PLANNER-type language for the POP-2 environment.  "Popler 1.6
Reference Manual", D. Davies et al, U Edinburgh, TPU Report No 1 (May

POPLOG - U Sussex.  Language for the two-stack virtual machine (PVM) which
underlies the POPLOG interactive environment.  POPLOG supports POP-11,
LISP, Prolog and ML via shared data structures and incremental compilation. 
"POPLOG's Two-Level Virtual Machine Support for Interactive Languages", R.
Smith et al, in Research Directions in Cognitive Science, v.5 (1992).

PopTalk - A commercial object-oriented derivative of POP, used in the
Expert System MUSE.  Cambridge Consultants.

Port - Waterloo Microsystems (now Hayes Canada) ca. 1979.  Imperative
language descended from Zed.  "Port Language" document in the Waterloo Port
Development System.

Portable Standard Lisp - "A Portable Lisp System", M.L. Griss et al, Proc
1982 ACM Symp on Lisp and Functional Prog, Aug 1982.

PORTAL - Process-Oriented Real-Time Algorithmic Language.  "PORTAL - A
Pascal-based Real-Time Programming Language", R. Schild in Algorithmic
Languages, J.W. deBakker et al eds, N-H 1981.

Port Language - "Communicating Parallel Processes", J. Kerridge et al, Soft
Prac & Exp 16(1):63-86 (Jan 1986).

POSE - 1967.  An early query language.  "POSE: A Language for Posing
Problems to Computers", S. Schlesinger et al, CACM 10:279-285 (May 1967).

POSTQUEL - POSTGRES QUERy Language.  Language used by the database system
POSTGRES.  "The Design of POSTGRES", M. Stonebraker et al, Proc ACM SIGMOD
Conf, June 1986.
ftp:    Version 4.0

PostScript - J. Warnock et al, Adobe Systems, ca. 1982.  Interpretive
FORTH-like language used as a page description language by Apple
LaserWriter, and now many laser printers and on-screen graphics systems. 
"PostScript Language Reference Manual" ("The Red Book"), Adobe Systems, A-W

POSYBL - PrOgramming SYstem for distriButed appLications.  Ioannis
Schoinas.  A Linda implementation for Unix networks.

PowerFuL - Combines functional and logic programming, using "angelic

PPL - Polymorphic Programming Language.  Harvard U.  Interactive and
extensible, based on APL.  "Some Features of PPL - A Polymorphic
Programming Language", T.A. Standish, SIGPLAN Notices 4(8) (Aug 1969).

PPLambda - Essentially the first-order predicate calculus superposed upon
the simply-typed polymorphic lambda-calculus.  The object language for LCF. 
"Logic and Computation: Interactive Proof with Cambridge LCF", L. Paulson,
Cambridge U Press, 1987.

P-Prolog - Parallel logic language.  "P-Prolog: A Parallel Logic Language
Based on Exclusive Relation", R. Yang et al, Third Intl Conf on Logic Prog,
1986, pp.255-269.

pre-cc - PREttier Compiler Compiler.

PREP - PRogrammed Electronics Patterns.  Language for designing integrated
circuits.  "Computer Assisted Mask Production", R.L. Rosenfeld, Proc IEEE
57(9) Sep 1969.

PRESTO - Bershad et al, U Washington 1987.  A parallel language for shared-
memory multiprocessors, built on top of C++.  Provides classes for threads
and spinlocks.  Also Mesa-style monitors and condition variables.  "PRESTO:
A Kernel for Parallel Programming Environments", B.N. Bershad et al, U Wash
CS TR, Jan 1987.

PRINT - PRe-edited INTerpreter.  Early math for IBM 705.  Sammet 1969,

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

PRISM - Distributed logic language.  "PRISM: A Parallel Inference System
for Problem Solving", S. Kasif et al, Proc 1983 Logic Prog Workshop,

PRL - Proof Refinement Logic.  "PRL: Proof Refinement Logic Programmer's
Manual",  CS Dept, Cornell, 1983.  Versions: micro-PRL, lambda-PRL, nu-PRL.
(See NUPRL).

Probe - Object-oriented logic language based on ObjVlisp.  "Proposition
d'une Extension Objet Minimale pour Prolog", Actes du Sem Prog en Logique,
Tregastel (May 1987), pp.483-506.

PROC - Job control language used in the Pick OS.  "Exploring the Pick
Operating System", J.E. Sisk et al, Hayden 1986.

PROCOL - J. Van Den Bos, Erasmus U, Rotterdam.  Constraints and distributed
delegation.  "PROCOL: A Parallel Object Language with Protocols", J. Van
Den Bos et al, SIGPLAN Notices 24(10):95-102 (OOPSLA '89) (Oct 1989).

PROFILE - Simple language for matching and scoring data.  "User's Manual
for the PROFILE System", Cambridge Computer Assoc (May 1974).

PROGENY - 1961.  Report generator for UNIVAX SS90.

Prograph - Technical U, Halifax.  Visual language, a blend of dataflow and
object orientation.  Available for Mac.  TGS Systems (902) 429-5642.

PROJECT - Subsystem of ICES.  Sammet 1969, p.616.

Prolog - PROgrammation en LOGique.  (Original name: SYSTEM Q).  Alain
Colmerauer and Phillipe Roussel, U Aix-Marseille 1971.  First implemented
in ALGOL-W in 1972.  Designed originally for natural-language processing. 
LUSH (or SLD) resolution theorem proving based on the unification alorithm. 
No user-defined functions, and no control structure other than the built-in
depth-first search with backtracking.  "Programming in Prolog", W.F.
Clocksin & C.S. Mellish, Springer 1985.  Early collaboration between
Marseille and R. Kowalski at U Edinburgh continued until about 1975.  (See
LM-Prolog, SB-Prolog).  Draft ISO standard.
ftp: - Prolog interpreter in Scheme ESL Prolog for MS-DOS  Open Prolog for Mac - Prolog interpreter in Common LISP.

Prolog-2 - An implementation of Edinburgh Prolog.  "An Advanced Logic
Programming Language", Anthony Dodd.
info: Nick Henfrey, ESL (Expert Systems Ltd, Magdalen Centre, Oxford
Science Park, Oxford, OX4 4GA, tel 0865 784474).

Prolog-II - Prolog with two new predicates: 'dif' for coroutines and
'freeze' for delayed evaluation.  "Prolog II Reference Manual and
Theoretical Model", A. Colmerauer, Internal Report, GroupeIA, U Aix-
Marseille (Oct 1982).  Available from ExperIntelligence, Santa Barbara CA.

Prolog-III - A. Colmerauer, U Aix-Marseille, ca 1984.  Marseille Prolog,
with unification replaced by constraint resolution.  [deferred goals too?] 
(Not to be confused with Prolog 3, a commercial product.)  "Opening the
Prolog-III Universe", BYTE 12(9):177-182 (Aug 1987).  "An Introduction to
Prolog III", A. Colmerauer, CACM 33(7):69-90 (1990).

Prolog++ - Phil Vasey, Logic Programming Associates.  Prolog with object-
oriented features added.  For MS-DOS and X-windows.  Distributed by AI Intl
Ltd in England and Quintus (800)542-1283.

Prolog-D-Linda - Embeds the Linda parallel paradigm into SISCtus Prolog.

Prolog-Linda - 

  1. Prolog extended with Linda-style parallelism.  Proc 4th Australian
Conf on Artif Intell.

  2. Neil MacDonald, U Edinburgh 1989.  Another Prolog extended with Linda,
implemented on a Computing Surface.

PROMAL - Computer Language, Mar 1986, pp.128-134. [?]

Pronet - "The Design of a Programming Language Based on Connectivity
Networks", R. LeBlanc et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE
1982, pp.532-541.

Proposal Writing - Extension of FORTRAN for proposal writing.  Sammet 1969,


  1. PROblem Solution Engineering.  Numerical problems including
differentiation and integration.  "Computing in Calculus", J. Thames,
Research/Development 26(5) (May 1975).

  2. A constraints-and-sequencing system similar to Kaleidoscope. 
"Reflexive Constraints for Dynamic Knowledge Bases", P. Berlandier et al in
Proc First Intl CS Conf '88: AI: Theory and Appls, Dec 1988.

PROSPER - "PROSPER: A Language for Specification by Prototyping", J.
Leszczylowski, Comp Langs 14(3):165-180 (1989).

ProTalk - Quintus.  An object-oriented Prolog.

PROTEUS - Extensible language, core of PARSEC.  "The Design of a Minimal
Expandable Computer Language", J.R. Bell, PhD Thesis, CS, Stanford U (Dec

Protosynthex - Query system for English text.  Sammet 1969, p.669.

PS-ALGOL - Persistent Algol.  ca 1981, released 1985.  A derivative of S-
Algol.  Database capability derived from the longevity of data.  "The PS-
Algol Reference Manual", TR PPR-12-85, CS Dept, U Glasgow 1985.  IBM PC
version available from CS Dept, U Strathclyde, Glasgow.

Psather - Parallel version of Sather, under development.

PSML - Processor System Modeling Language.  Simulating computer systems
design.  A preprocessor to SIMSCRIPT.  "Processor System Modeling - A
Language and Simulation System", F. Pfisterer, Proc Symp on Simulation of
Computer Systems (Aug 1976).

P-TAC - Parallel Three Address Code.  "P-TAC: A Parallel Intermediate
Language", Z. Ariola et al, Fourth Intl Conf Func Prog Langs and Comp Arch,
ACM Sept 1989.  (See Kid).

PUB - PUBlishing.  1972.  An early text-formatting language for TOPS-10,
with syntax based on SAIL.  Inluenced TeX and Scribe.  "PUB: The Document
Compiler", Larry Tesler, Stanford AI Proj Op Note, Sept 1972.

PUFFT - "The Purdue University Fast FORTRAN Translator", Saul Rosen et al,
CACM 8(11):661-666 (Nov 1965).

PVM - Concurrent language?

Python - 

  1. Guido van Rossum  1991.  A high-level interpreted
language combining ideas from ABC, C, Modula-3, Icon, etc.  Intended for
prototyping or as an extension language for C applications.  Modules,
classes, user-defined exceptions.  "Linking a Stub Generator (AIL) to a
Prototyping Language (Python)", Guido van Rossum et al, Proc 1991 EurOpen
Spring Conf.  Available for Unix, Amoeba and Mac.  Version 0.9.8.

  2. Compiler for CMU Common LISP.

Q'NIAL - Queen's U, Canada.  A portable incremental compiler for NIAL,
written in C.  "The Q'NIAL Reference Manual", M.A. Jenkins, Queen's U
Report, Dec 1983.  Versions for Unix and MS-DOS, from NIAL Systems Ltd,
Ottawa Canada, (613)234-4188.

QA4 - Question-answering language.  A procedural calculus for intuitive
reasoning.  A LISP-based pattern-matching language for theorem proving. 
"QA4, A Language for Writing Problem-Solving Programs", J.F. Rulifson et
al, Proc IFIP Congress 1968.

QBE - Query By Example.  Moshe Zloof, IBM 1975.  A user-friendly query
language.  "QBE: A Language for Office and Business Automation", M.M.
Zloof, Computer pp.13-22 (May 1981).

Qlambda - "Queue-based Multi-processing Lisp", R. Gabriel & J. McCarthy,
Proc 1984 Symp Lisp and Functional Prog, pp.25-44.


  1. SRI 1973.  General problem solving, influenced by PLANNER.  QA4
features merged with INTERLISP.  "QLISP - A Language for the Interactive
Development of Complex Systems", E. Sacerdoti et al, NCC 45:349-356, AFIPS

  2. A parallel LISP.  "Qlisp", R. Gabriel et al in Parallel Computation
and Computers for AI, J. Kowalik ed, 1988, pp.63-89.

QLOG - An integration of logic programming into LISP.  "QLOG - The
Programming Environment for Prolog in LISP", H.J. Komorowski in Logic
Prgramming, K.L. Clark et al eds, Academic Press 1982.

QPE - Two-dimensional pictorial query language.  "Pictorial Information
Systems", S.K. Chang et al eds, Springer 1980.

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

QUEL - Query language used by the database management system INGRES.

Quest - 

  1. A language designed for its simple denotational semantics.  "The
Denotational Semantics of Programming Languages", R. Tennent, CACM
19(8):437-453 (Aug 1976).

  2. Language with a sophisticated type system.  Written in Modula-3. 
"Typeful Programming", Luca Cardelli , RR 45, DEC SRC

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

Quicksilver - dBASE-like compiler for MS-DOS from WordTech, Orinda, CA.

QUIKTRAN - FORTRAN-like, interactive with debugging facilities.  Sammet
1969, p.226.

QUIN - Pyle 1965.  Interactive language.  Sammet 1969, p.691.

Quintec-Objects - Based on Quintec (not Quintus) Prolog.  British.

Quty - Functional plus logic.  "Quty: A Functional Language Based on
Unification", M. Sato et al, in Conf Fifth Gen Computer Systems, ICOT 1984,

QX - (meaning "OK", from E.E. Smith SF books).  Richard Gillmann,  SDC,
Santa Monica.  Language for digital signal processing of digitized speech. 
Was part of SDC's speech recognition project.

Raddle - "On the Design of Large Distributed Systems", I.R. Forman, Proc
1st IEEE Intl Conf Comp Langs, pp.25-27 (Oct 1986).

RAIL - Automatix.  High-level language for industrial robots.

RAISE - Rigorous Approach to Industrial Software Engineering.  A
specification and design language.  ESPRIT project 315, CRI A/S, Denmark.

RAL - Expert system.

RAMIS II - Rapid Access Management Information System.  Database system. 
On-Line Software Intl.

Rapidwrite - Method for translating set of abbreviations into the much more
verbose COBOL code.  Sammet 1969, p.338.

RAPT - "An Interpreter for a Language for Describing Assemblies", R.J.
Popplestone et al, Artif Intell 14:79-107 (1980).

RASP - "RASP - A Language with Operations on Fuzzy Sets", D.D. Djakovic,
Comp Langs 13(3):143-148 (1988).

RATEL - Raytheon Automatic Test Equipment Language.  For analog and digital
computer controlled test centers.  "Automatic Testing via a Distributed
Intelligence Processing System", S.J. Ring, IEEE AUTOTESTCON 77 (Nov 1977).

RATFIV - Successor to RATFOR.

RATFOR - RATional FORTRAN.  Kernighan.  FORTRAN preprocessor to allow
programming with C-like control flow.  "Ratfor - A Preprocessor for a
Rational Fortran", B.W. Kernighan, Soft Prac & Exp 5:395-406 (Oct 1975). 
Featured in Software Tools, B.W. Kernighan & P.J. Plauger, A-W 1976.
ftp: mirrors/unix-c/languages/ratfor.tar-z

RAWOOP-SNAP - Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16
(May 1959).

R:BASE - MS-DOS 4GL from Microrim.  Based on Minicomputer DBMS RIM.  Was
Wayne Erickson the author?

RBCSP - "A Communicating Sequential Process Language and Implementation",
T. Roper & J. Barter, Soft Prac & Exp 11(11):1215-1234 (Nov 1981).

rc - Tom Duff.  AT&T Plan 9 shell.  Lookalike by Byron Rakitzis


RCC - An extensible language. [?]

RCL - Reduced Control Language.  A simplified job control language for
OS360, translated to IBM JCL.  "Reduced Control Language for Non-
Professional Users", K. Appel in Command Languages, C. Unger ed, N-H 1973.

RDL - Requirements and Development Language.  "RDL: A Language for Software
Development", H.C. Heacox, SIGPLAN Notices 14(9):71-79 (Sep 1979).

Real-Time Euclid - Real-time language, restriction to time-bounded
constructs.  "Real-Time Euclid: A Language for Reliable Real-Time Systems",
E. Kligerman et al, IEEE Trans Software Eng SE-12(9):941-949 (Sept 1986).

Real-Time Mentat - An extension of C++.  "Real-Time Mentat: A Data-Driven
Object-Oriented System", A.S. Grimshaw et al, Proc IEEE Globecom, Nov 1989

Real-Time Pascal - Later name for Pascal-80 by RC Intl, Denmark.

REC - Regular Expression Converter.  See CONVERT.

Recital - dBASE-like language/DBMS from Recital Corp.  Versions include

RECOL - REtrieval COmmand Language.  CACM 6(3):117-122 (Mar 1963).

RED - (Also "REDL").  Intermetrics.  A language proposed to meet the
Ironman requirements which led to Ada.  "On the RED Language Submitted to
the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):27 (Oct 1978).

REDCODE - Proposed as a language for "battle programs" in corewars.  (See
Computer Recreations column in Scientific American.)

RediLisp - R.M. Keller, U Utah.  Dialect of Lisp used on the Rediflow
machine, a derivative of FEL.

REDUCE - Anthony Hearn, 1963.  Symbolic math, ALGOL-like syntax, written in
LISP.  "REDUCE, Software for Algebraic Computation", G. Rayna, Springer
1987.  Version: Reduce 2, based on Portable Standard LISP.

REF-ARF - "REF-ARF: A System for Solving Problems Stated as Procedures",
R.E. Fikes, Artif Intell J 1(1) (Spring 1970).

REFINE - "Research on Knowledge-Based Software Environments at Kestrel
Institute", D.R. Smith et al, IEEE Trans Soft Eng, SE-11(11) (1985).

Refined C (RC) - An extension of C to directly specify data access rights
so that flow analysis, and hence automatic parallelization, is more
effective.  Research implementations only.  "Refining A Conventional
Language For Race-Free Specification Of Parallel Algorithms," H.G. Dietz et
al, Proc 1984 Intl Conf Parallel Proc, pp.380-382.

Refined Fortran (RF) - Similar to Refined C.  Research implementations
only.  "Refined FORTRAN: Another Sequential Language for Parallel
Programming," H.G. Dietz et al, Proc 1986 Intl Conf Parallel Proc,

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

Relational Language.  Clark & Gregory.  First parallel logic language to
use the concept of committed choice.  Forerunner of PARLOG.  "A Relational
Language for Parallel Programming", K.L. Clark et al, Proc ACM Conf on
Functional Prog Langs and Comp Arch, pp.171-178, ACM 1981.

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

RELCODE - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May

REL English - Rapidly Extensible Language, English.  A formal language
based on English.  "Practical Natural Language Processing: The REL System
as Prototype", Adv in Computers 13, Academic Press 1975.

RenderMan Shading Language.  "The RenderMan Companion", S. Upstill, A-W
1989, chaps 13-15.

RENDEZVOUS - Query language, close to natural English.  "Seven Steps to
Rendezvous with the Casual User", E. Codd in Data Base Management, J.W.
Klimbie et al eds, N-H 1974, pp.179-199.

REPL - Restricted EPL.  A subset of EPL (the efficient part) used to write
the core of Multics.

Required-COBOL - 1961.  Minimal subset of COBOL.  Later dropped entirely. 
Sammet 1969, p.339.

Retrieve - Tymshare Corp, 1960's.  Query language, inspired JPLDIS which
lead to Vulcan[1] and then to dBASE II.

Revised ALGOL 60 - Alternate name for ALGOL 60 Revised.  Sammet 1969,

REXX - Restructured EXtended eXecutor.  Cowlishaw, IBM ca. 1979.  (Original
name: REX.  They also call it "System Product Interpreter").  Scripting
language for IBM VM and MVS systems, replacing EXEC2.  "Modern Programming
Using REXX", R.P. O'Hara et al, P-H 1985.  "The REXX Language: A Practical
Approach to Programming", M.F. Cowlishaw, 1985.  Versions: PC-Rexx for MS-
DOS, and AREXX for Amiga.
ftp:    REXX interpreters for Unix

RIGAL - Language for compiler writing.  Data strucures are atoms,
lists/trees.  Control based on pattern-matching.  "Programming Language
RIGAL as a Compiler Writing Tool", M.I. Augustson, Inst of Math and CS of
Latvia U, 1987.

Rigel - Database language?  Based on Pascal.  Listed by M.P. Atkinson &
J.W. Schmidt in a tutorial presented in Zurich, 1989.

RLL - Representation Language Language.  A frame language.  "A
Representation Language Language", R. Greiner and D.B. Lenat, Proc AAAI-80,

RMAG - Recursive Macro Actuated Generator.  Robert A. Magnuson, NIH ca
1970.  Stand-alone macroprocessor for IBM 360/370 under VS or OS. Many
built-in features and a library of several hundred macros.  Several large
systems were written in RMAG to generate source code for languages such as
IBM JCL, IBM assembly language, COBOL.  There was also a system (SLANG:
Structured Language Compiler) which would generate 370 assembly language
from a pseudo-structured-programming language, based on Michael Kessler's
structure programming macros developed at IBM.  "Project RMAG--RMAG22
User's Guide", R.A. Magnuson, NIH-DCRT-DMB-SSS-UG103, NIH, DHEW, Bethesda,
MD 20205 (1977).

ROADS - Subsystem of ICES.  Sammet 1969, p.616.

ROBEX - ROBot EXapt.  Aachen Tech College.  Based on EXAPT.  Version:
ROBEX-M for micros.

Roff - Text formatting language/interpreter associated with Unix.  (See
groff, nroff, troff).

ROME - Experimental object-oriented language.  "The Point of View Notion
for Multiple Inheritance", B. Carre et al, SIGPLAN Notices 25(10):312-321
(OOPSLA/ECOOP '90) (Oct 1990).

Rossette - MCC.  Concurrent object-oriented language.

RPG - Report Program Generator.  IBM 1965.  For easy production of
sophisticated large system reports.  Versions: RPG II, RPG III, RPG/400 for
the IBM AS/400.  MS-DOS versions by California Software and Lattice.  (See

RPL-1 - Data reduction language.  Proc SJCC 30:571-575, AFIPS (Spring

RPL - Reverse Polish LISP.  Language used by HP-28 and HP-48 calculators.

RTC++ - Real-time extension of C++.  "Object-Oriented Real-Time Language
Design: Constructs for Timing Constraints", Y. Ishikawa et al, SIGPLAN
Notices 25(10):289-298 (OOPSLA/ECOOP '90) (Oct 1990).

RT-CDL - Real-Time Common Design Language.  Real-time language for the
design of reliable reactive systems.  "RT-CDL: A Real-Time Description
Language and Its Semantics", L.Y. Lin et al, 11th World Computer Congress
IFIP '89 pp.19-26 (Sep 1989).

RTL - Register Transfer Language.  Chris Fraser  & J.
Davidson, U Arizona early 80's.  Intermediate code for a machine with an
infinite number of registers, used for machine-independent optimization. 
The GNU C compiler gcc uses a version of RTL with LISP-like syntax.  RTL is
also incorporated into Davidson's VPCC (Very Portable C compiler) at U

RTL/1 - Real Time Language.  Barnes, ICI 1971.  A real-time language, the
predecessor of RTL/2.  "Real Time Languages for Process Control, J.G.P.
Barnes, Computer J 15(1):15-17 (Feb 1972).

RTL/2 - Barnes, ICI 1972.  Small real-time language based on ALGOL 68, with
separate compilation.  A program is composed of separately compilable
'bricks' (named modules) which may be datablock, procedure, or stack.  A
stack is a storage area for use as a workspace by a task.  The language is
block-structured and weakly typed.  Simple types are byte, int, frac and
real, no Boolean.  Compound types may be formed from arrays, records and
refs (pointers).  There are no user-defined types.  Control consists of if-
then-elseif-else-end, for-to-by-do-rep, block-endblock, switch, goto, and
label variables.  "RTL/2: Design and Philosophy", J.G.P. Barnes, Hayden &
Son, 1976.

Ruby -

  1. Hardware description language.  "Ruby - A Language of Relations and
Higher-Order Functions", M. Sheeran, Proc 3rd Banff Workshop on Hardware
Verification, Springer 1990.

  2. One of five pedagogical languages based on Markov algorithms, used in
"Nonpareil, a Machine Level Machine Independent Language for the Study of
Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). 
(cf. Brilliant, Diamond, Nonpareil, Pearl[3]).

RUFL - Rhodes University Functional Language.  Rhodes U, Grahamstown, South
Africa.  Miranda-like.

RUNCIBLE - Early system for math on IBM 650.  Listed in CACM 2(5):16 (May

RUSH - Remote Use of Shared Hardware.  ca 1966.  Interactive dialect of
PL/I, related to CPS[1].  "Introduction to RUSH", Allen-Babcock Computing
1969.  Sammet 1969, p.309.

Russell - (named for the British mathematician Bertrand Russell (1872-
1970))  A. Demers & J. Donahue.  A compact, polymorphically typed
functional language, with bignums and continuations.  Types are themselves
first-class values and may be passsed as arguments.  "An Informal
Description of Russell", H. Boehm et al, Cornell CS TR 80-430, 1980.

RUTH - Harrison .  Real-time language based
on LispKit.  Uses timestamps and real-time clocks.  "RUTH: A Functional
Language for Real-Time Programming", D. Harrison in PARLE: Parallel
Architectures and Languages Europe, LNCS 259, Springer 1987,

S - AT&T.  Statistical analysis.  "S: An Interactive Environment for Data
Analysis and Graphics", Richard A. Becker, Wadsworth 1984.

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

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

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 - ON-line text editing system by MITRE.  Sammet 1969, p.685.


  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.

SAL - 

  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.

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.

Sandman - DoD requirements that led to APSE.

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

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

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 - Simon Peyton-Jones.  A version of Yacc written in SASL. [?]

Sather - (named for the Sather Tower at UCB, as opposed to the Eiffel
Tower)  Steve M. Omohundro, ICSI, Berkeley.  Eiffel-like, but smaller and
faster.  Clean and simple syntax, parameterized classes, multiple
inheritance, strong typing, garbage collection.  Compiles to C code.

SB-Prolog - Stony Brook Prolog.  PD Prolog implementation for Unix.
ftp: pub/sbprolog/v3.0 amiga/fish/ff140 and ff141  Version 2.3.2 for Amiga


  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 - 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. 
"The Revised^4 Report on the Algorithmic Language Scheme", W. Clinger et
al, MIT (Nov 1991) (ftp from
Implementations: Scheme84 (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).
ftp: (SCM, Aubrey Jaffer       
         ) in C for Amiga, Atari-ST, Mac, MS-DOS, 
         NOS/VE, VMS, Unix.  Conforms to Revised^4 Report and IEEE P1178 (MIT-Scheme, Liar compiler) (for Suns) (compiler for 68K's) (Scheme In One Defun, George   
         Carrette )

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

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 

SCL - Systems Control Language.  ICL2900 VME/B O/S command shell.  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.

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.

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.

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).

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


  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 for discrete interactive systems such as industrial process
control or traffic control.  Said to have a visual component?  Proc Plenary
Assembly, Melbourne 14-25 Nov 1988, Fasc X.1, CCITT.   "Telecommunications
Systems Engineering Using SDL", R. Saracco et al, N-H 1989.  (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.  A tool used internally by DEC to
define and generate the symbols used for VMS internal data structures in
various languages.

SDMS - Query language.

Sed - Stream editor.  The Unix stream editor.

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

Sel - 

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

  2. Bharat Jayaraman.  "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 purely on
prototypes and delegation.  Allows objects to inherit state, and to
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).  Version: 2.0

Seneca - R. Griesemer, 1990.  Descendant of Oberon designed for numerical
applications on supecomputers, especially vector or pipelined
architectures.  Includes a standard COMPLEX type and special aray
expressions.  Still under development.  "Seneca - A Language for Numerical
Applications on Vectorcomputers", Proc CONPAR 90 - VAPP IV Conf.

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).

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

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

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.
ftp:, for MS-DOS, OS/2, Mac, Unix workstations

SETL/E - U Essen.  Another derivative of SETL with Ada-like syntax. 
"SETL/E, A Prototyping System Based on Sets", E.E. Doberkat et al, in
Tagungsband TOOL90, W. Zorn ed, pp.109-118, U Karlsruhe, Nov 1990.

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).

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 - "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.
ftp:  an SGML parser  another SGML parser

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.
info: Tevian Dray 

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

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 of Comp Sci), Sweden.

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 - Synchronous language.  Le Guernic et al, INRIA.  "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.

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

Sil/2 - Language for implementation of portable interpreters.  "The Design
of Transportable Interpreters", F. Druseikis, SNOBOL4 Project Document
S4D49, U Arizona (Feb 1975).

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

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

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

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

SIMSCRIPT - Rand Corp 1963.  Large discrete simulations, influenced Simula. 
"SIMSCRIPT: A Simulation Programming Language", P.J. Kiviat et al, CACI

SIMULA - SIMUlation LAnguage.  Kristen Nygaard & Ole-Johan Dahl, designed
1962, implemented 1964.  Extension to ALGOL for discrete simulation. 
Sammet 1969, p.659.

SIMULA 67 - Introduced the class concept, leading the way to data
abstraction and object-oriented programming.  Also coroutines.  Simula
a.s., Postboks 4403 - Torshov, N-0402 Oslo 4, Norway, versions for DOS,
OS/2 and UNIX/386.
ftp:, Mac version

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

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 Kaeidoscope.  "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

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. R.A. Sibley.  CACM 4(1):75-84 (Jan 1961).

  2. Set LANGuage.  Jastrzebowski, ca 1990.  A 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.

  5. Embedded language in the JED editor.
info: John E. Davis 

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.  List
processing subroutine package for 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

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-

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

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

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.

SML - 

 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.
  SML/NJ - Standard ML of New Jersey, Version 0.75 ftp:
  POPLOG ML - U Sussex.  For the Poplog system.
  Poly/ML - Implemented in Poly[1], for MC68020 and SPARC.  Abstract
Hardware Ltd .
  Edinburgh SML - Core language only.  Byte-code interpreter in C.
ftp:   EdML V 0.44
  ANU ML - Aust Natl U.  For MC68020, VAX and Pyramid.
  Micro ML - U Umea, Sweden.  Interpreter of an ML subset, for MS-DOS.
ftp:, a lazy version
  sml2c - portable, written in SML.  Language extensions include first-
class continuations, asynchronous signal handling.

  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/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
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


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

  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).

SNOBOL3 - 1965.  SNOBOL with user-defined functions.  "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.

FASBOL - "FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC
Berkeley 1971.

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

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.  "Soar: An Architecture for General Intelligence", J.E. Laird
et al, Art Intell 33(1) (1987).  Version: Soar6

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

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

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

SOL - 

  1. Simulation Oriented Language.  Discrete simulation.  Sammet 1969,

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

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

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

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.  For spaceflight and aerospace software. 
Similar to JOVIAL.  Aka SPL/J6.  A subset is known as CLASP.  "Space
Programming Language Development", SAMSO TP 70-325, System Development Corp
(Sep 1970).

  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.)

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.

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).

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

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).

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

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 programming language for distributed
systems.  A 'resource' is the encapsulation of a process and its variables
in two parts: specification and body.  Processes interact via the
rendezvous, in which one calls an 'operation' in the other.  The call can
be either blocking or nonblocking.  The operation names can be changed
dynamically.  "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


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.

SSL - 

  1. Synthesizer Specification Language.  The definition language for the
Cornell Program Synthesizer Generator.  "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

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

STAGE2 - Macro language.

Standard ML - See SML.

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

StarLISP - See *LISP.

StarMOD - See *MOD.

Steelman - DoD, 1979.  Fifth and last of the series of DoD requirements
that led to Ada.  "Requirements for High Order Programming Languages,
'Steelman'", June 1978.  SIGPLAN Notices 13(12) (Dec 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).

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

Stoneman - HOLWG, DoD, Feb 1980.  DoD requirements that led to APSE, the
Ada Programming Support Environment.

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
commerically from Strand Software, Beaverton, OR.

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

Strawman - HOLWG, DoD, 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,

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

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

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

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 Intemediate Format.  Register-oriented
intermediate language.

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

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?

SYGMA - "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

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).

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.

T - 

  1. True.  Rees, 1982.  LISP dialect with static scope, a near-superset of
Scheme.  "The T Manual", Johnathan A. Rees  et al,
Yale U, 1984.  Maintained by David Kranz .
ftp:    Unix source

  2. Functional.  "T: A Simple Reduction Language Based on Combinatory Term
Rewriting", Ida et al, Proc of Prog Future Generation Computers, 1988.

TABLET - Query language.  "Human Factor Comparison of a Procedural and a
Non-procedural Query Language", C. Welty et al, ACM Trans Database Sys
6(4):626-649 (Dec 1981).

TABSOL - T.F. Kavanaugh.  Early system oriented language.  Proc FJCC
18:117-136, AFIPS (Fall 1960).  (See GECOM).

TAC - Translator Assembler-Compiler.  For Philco 2000.

TACL - Tandem Advanced Command Language.  Tandem, about 1987.  The shell
language used in Tandem computers.

TACPOL - PL/I-like language used by US Army for command and control.

TAL - Tandem Application Language.  A cross between C and Pascal.  Primary
system programming language on Tandem computers.  (Tandem has no assembler
and until recently did not have C or Pascal.)   Derived from SPL[3]?

TALL - TAC List Language.  "TALL - A List Processor for the Philco 2000",
J. Feldman, CACM 5(9):484-485 (Sep 1962).

TAO - Lisp dialect with concurrency, object-orientation and logic. 
"Concurrent Programming in TAO - Practice and Experience", I. Takeuchi in
Parallel Lisp: Languages and Systems, T. Ito et al eds, LNCS 441, Springer
1989, pp.271-299.

TARTAN - A simpler proposed language to meet the Ironman requirements. 
"TARTAN - Language Design for the Ironman Requirement", Mary Shaw et al,
SIGPLAN Notices 13(9):36 (Sep 1978).

TASM - Turbo Assembler.  MS-DOS assembler from Borland.

TASS - Template ASSembly language.  Intermediate language produced by the
Manchester SISAL compiler.

TAWK - Tiny AWK.

Taxis - "A Language Facility for Designing Database-Intensive
Applications", J. Mylopoulos et al, ACM Trans Database Sys 5(2):185-207
(June 1980).

TBIL - Tiny Basic Interpreter Language.  Inner interpreter of Tom Pittman's
set of Tiny Basics in Dr Dobb's J.

Tbl - M.E. Lesk.  Language for laying out tables.

tcl - 

  1. ("tickle")  Tool Command Language.  John Ousterhout, UCB.
  A string language for issuing commands to
interactive programs.  Each application can extend tcl with its own set of
commands.    "Tcl: An Embeddable Command Language", J. Ousterhout, Proc
1990 Winter USENIX Conf.

  2. Terminal Control Language.  The command language used in the Pick OS. 
"Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986.

  3. Tymshare Conversational Language.  "Interactive Languages: Design
Criteria and a Proposal", R.K. Moore et al, Proc FJCC 33(1) (1968).

Tcode - Intermediate language used by the Spineless Tagless G-machine (an
abstract machine based on graph reduction) designed as a target for
compilation of non-strict functional languages.  "The Spineless tagless G-
machine", S. Peyton Jones et al, Fourth Intl Conf Func Prog Langs and Comp
Arch pp.184-201, ACM Sept 1989.

TCOL - CMU.  Tree-based intermediate representation produced by the PQCC
compiler generator.  "An Overview of the Production Quality Compiler-
Compiler Projects", B.W. Leverett et al, IEEE Computer 13(8): 38-49 (Aug
1980).  (See LG).

TCOL.Ada - CMU, 1980.  An intermediate representation for Ada, was merged
with AIDA to form Diana.  "TCOL.Ada: Revised Report on an Intermediate
Representation for the DOD Standard Programming Language", J.M. Newcomer et
al, CMU-CS-79-128 (June 1979).

tcsh - Command language for Unix, a dialect of csh.

Tcsim - Time (Complex) Simulator.  Complex arithmetic version of Tsim. 
ZOLA Technologies,

TDF - Intermediate language, a close relative of ANDF.  A TDF program is an
ASCII stream describing an abstract syntax tree.  "TDF Specification",
Defence Research Agency/Electronics Division, Great Malvern, England, +44
684 895314.
info: Nic Peeling 

TECO - Text Editor and COrrector.  (Originally "Tape Editor and
COrrector").  Macro language for text editing, screen handling and keyboard
management.  Has a reputation for being cryptic and hard to learn.  (TECO
programs are said to resemble line noise.)  The first EMACS editor was
written in TECO.
ftp:, for VAX/VMS, Unix, MS-DOS, Mac, Amiga

TELCOMP - Variant of JOSS.  Sammet 1969, p.217.

Telon - by Panasophic [?]


  1. The EuLisp Object System.  The object-oriented core of EuLisp. 
Incorporates ideas from CLOS, ObjVLisp and OakLisp.  Total merging of types
with classes, and message-passing with normal function application.  (See

  2. Pascal-based AI language.  "Design Rationale for TELOS, a Pascal-based
AI Language", Travis et al, SIGPLAN Notices 12(8) (Aug 1977).

TELSIM - Busch, ca 1966.  Digital simulation.  Sammet 1969, p.627.

TempLog - A clausal subset of first-order temporal logic, with discrete
time.  "Temporal Logic in Programming", M. Abadi et al, INtl Symp Logic
Prog pp.4-16 (1987).

TEMPO - Simple syntax and semantics.  Designed for teaching semantic and
pragmatic aspects of programming languages.  "TEMPO: A Unified Treatment of
Binding Time and Parameter Passing Concepts in Programming Languages", N.D.
Jones et al, LNCS 66, Springer 1978.

Tempura - Language based on temporal logic.  "Executing Temporal Logic
Programs", B. Moszkowski, Camb U Press 1986.

Ten15 - A universal intermediate language, predecessor to TDF. 
Polymorphic?  "Ten15: An Overview", P. Core et al, Royal Signals Radar
Establishment TR 3977 (Sept 1986).

TERMAC - Interactive matrix language.  "Users Guide to TERMAC", J.S. Miller
et al, MIT Dec 1968.

Terse - Language for decription of hardware logic.  "Hardware Logic
Simulation by Compilation", C. Hansen, 25th ACM/IEEE Design Automation
Conf, 1988.

TeX - Donald Knuth, 1978.  Language for formatting and typesetting text,
expecially mathematical formulas.  Macro extensible.  Version 3.0, March
  TeX-78 - The original version of TeX.
  TeX-82 - The version of TeX described in The TeXbook, Donald Knuth,
A-W 1984.
Well-known extensions to TeX:
  BibTeX - for bibliographies.  Distributed with LaTeX.
  LaTeX - Lamport TEX.  Incorporates document styles.  "LaTeX, A Document
Preparation System", Leslie Lamport , A-W 1986.
  MuTeX - for typesetting music.
  PiCTeX - for pictures.
  SliTeX - for slide preparation.  Distributed with LaTeX.

TFDL - "TFDL : A Task-level Dataflow Language", P.A. Suhler et al, J
Parallel and Distrib Comput 9:103-115 (1990).

TGS-II - Translator Generator System.  Contained TRANDIR.  Sammet 1969,

THEO - Frame language.  "Theo: A Framework for Self-Improving Systems",
Mitchell et al, in Architectures for Intelligence, K. VanLehn ed, Erlbaum,

Theseus - Based on Euclid, never implemented.  "Theseus - A Programming
Language for Relational Databases", J.E. Shopiro, ACM Trans Database Sys
4(4):493-517 (Mar 1979).

ThingLab - Simulation system written in Smalltalk-80.  Solves constraints
using value inference.  "The Programming Language Aspects of ThingLab, A
Constraint-Oriented Simulation Laboratory", A. Borning, ACM TOPLAS
3(4):353-387 (Oct 1981).  Version: ThingLab II.

Tinman - HOLWG, DoD, 1976.  Third of the series of DoD requirements that
led to Ada.  (See Strawman, Woodenman, Ironman, Steelman).

TINT - Interpreted version of JOVIAL.  Sammet 1969, p.528.

Tiny - Concurrency through message-passing to named message queues.

TIP - TI Pascal.


  1.  Teach IPL.  Interpretive IPL teaching system.  Sammet 1969, p.393.

  2.  Dialect of IGL.[?]

TK!Solver - Software Arts 1983.  Numerical constraint-oriented language. 
"The TK!Solver Book", M. Konopasek et al, McGraw-Hill 1984.

TL0 - Thread Language Zero.  The instruction set of the TAM (Threaded
Abstract Machine), used to implement Id.  "Fine-grain Parallelism with
Minimal Hardware Support", David Culler et al, SIGPLAN Notices 26(4):164-
175 (ASPLOS-IV Proc) (Apr 1991).

TMDL - Target-Machine Description Language.  Machine-desription language
used in the Graham-Glanville code generator.  "Table-Driven Code
Generation", S.L. Graham, IEEE Computer 13(8):25-34 (Aug 1980).

TMG - Transmogrifier.  Language for an early compiler-compiler.  Macro'd
from the IBM 1604 to the 709 to the 7094 to the GE635, where it was used to
write the EPL compiler for Multics development.  "TMG - A Syntax-Directed
Compiler", R.M. McClure, Proc ACM 20th Natl Conf (1965).  Sammet 1969,

TOK - Referred to in Ursula K. LeGuin's "Always Coming Home."  Seems to be
similar to the original BASIC.

Toronto Euclid - The standard dialect of Euclid, as compared to Ottawa

TPL - 
  1. Table Producing Language.  "The Bureau of Labor Statistics Table
Producing Language (TPL)", R.C. Mendelssohn, Proc ACM Annual Conf (1974).

  2. Fleming Nielson.  Concurrent, functional. [?]

  3. Terminal Programming Language.  Texas Inst, late 70's.  Used on the
TI-990/1 Small Business Computer and the TI-771 Intelligent Terminal.

TPS - Tree Pruning System.  "An Adaptive Tree Pruning System: A Language
for Programming Heuristic Tree Searches", E.W. Kozdrowicki, Proc ACM 23rd
Natl Conf 1968.

TPU - Text Processing Utility.  DEC.  Language for creation of text-
processing interfaces, used to implement DEC's Extensible VAX Editor (EVE).

TRAC - Text Reckoning And Compiling.  Calvin N. Mooers and Peter Deutsch
.  An interactive macrogenerator language for
string manipulation.  Derived ideas from Macro SAP.  "TRAC: A Procedure-
Describing Language for the Reactive Typewriter", Calvin N. Mooers, CACM
9(3):215-219 (Mar 1966).  Rockford Research Inst, 1972.  Sammet 1969,
pp.448-454.  Macro Processors, A.J. Cole, Cambridge U Press.  Versions for
PDP-1, PDP-8, PDP-10, PDP-11 (See MINT, SAM76)
info: Preston Briggs 

Trafola-H - A specification language for program transformations. 
Functional, statically typed, polymorphic, with extended constructs for
pattern-matching.  "Trafola-H Reference Manual", R. Heckmann et al, U
Saarlandes, Saarbrucken 1991.

TRANDIR - TRANslation DIRector.  A language for syntax-directed compiling. 
Sammet 1969, p.640.

TRANQUIL - 1966.  ALGOL-like language with sets and other extensions, for
the Illiac IV.  "TRANQUIL: A Language for an Array Processing Computer",
N.E. Abel et al, Proc SJCC 34 (1969). 

TRANS - TRAffic Network Simulation Language.  "A Model for Traffic
Simulation and a Simulation Language for the General Transportation
Problem", Proc FJCC 37 (1970).

TRANS-USE - Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16 (May

TRANSCODE - Early system on Ferut computer.  Listed in CACM 2(5):16 (May

TRANSIT - Subsystem of ICES.  Sammet 1969, p.616.

TREET - E.C. Haines, 1964.  An experimental variant of LISP1.5, implemented
on the STRETCH computer.  Basic structure was a trinary tree.  "The TREET
Time-Sharing System", H.A. Bayard et al, Proc 2nd Symp Symb and Alg Manip,
ACM (Mar 1971).  Sammet 1969, pp.457-461.

TREETRAN - FORTRAN IV subroutine package for tree manipulation.

Trellis - (formerly named Owl).  DEC.  Object-oriented, with static type-
checking and encapsulation.  "Persistent and Shared Objects in
trellis/owl", P. O'Brien et al, Proc 1986 IEEE Workshop on Object-Oriented
Database Systems, IEEE, NY 1986.
info: Jerry Smith 

TRIGMAN - Symbolic math, especially Celestial Mechanics.

Trilogy - Paul Voda, UBC, 1988.  Logic programming language with numerical
constraint-solving over the natural numbers.  Syntactically a blend of
Prolog, LISP and Pascal.  Contains three types of clauses: predicates
(backtracking but no assignable variables), procedures (if-then-else but no
backtracking; assignable variables), and subroutines (like procedures, but
with input and system calls; callable only from top level or from other
subroutines).  "The Constraint Language Trilogy: Semantics and
Computations", P. Voda , Complete Logic Systems,
741 Blueridge Ave, North Vancouver BC, V7R 2J5.  Papers by Voda, and BYTE

Troff - Text formatting language/interpreter, a variant of Unix roff.  (See
groff, nroff).

TROLL - Array language for continuous simulation, econometric modeling,
statistical analysis.  "TROLL Reference Manual", D0062, Info Proc Services,
MIT (1973-76).

True BASIC - John Kemeny & Thomas E. Kurtz.  A compiled BASIC requiring no
line numbers.

Tsim - Time Simulator.  Stack-based simulation language.  ZOLA

TSL-1 - Task Sequencing Language.  Language for specifying sequences of
tasking events in Ada programs.  "Task Sequencing Language for Specifying
Distributed Ada Systems", D.C. Luckham et al in PARLE: Parallel
Architectures and Langs Europe, LNCS 259, Springer 1987, pp.444-463.

Tui - Functional.  "Tui Language Manual", B. Boutel, TR CSD-8-021, Victoria
U of Wellington, 1988.

Tuki - An intermediate code for functional languages.  "Another
Implementation Technique for Applicative Languages", H. Glaser et al,
ESOP86, LNCS 213, Springer 1986.

Tuple Space Smalltalk - "Using Tuple Space Communication in Distributed
Object-Oriented Languages", S. Matsuoka et al, SIGPLAN Notices 23(11):276-
284 (Nov 1988).

Turbo Pascal - Borland Intl's Pascal.  Perhaps the first integrated
development environment for MS-DOS.
Versions 1.0-3.0: standard Pascal with a few extensions
Versions 4.0 (1987) and 5.0: separate compilation
Version 5.5: object-oriented facilities
Version 6.0: Turbo Vision OOP library

Turbo Prolog - 1986.  A Prolog-like language with strong typing and user-
defined domains.  Programs are arranged in sections: DOMAINS, CLAUSES,
PREDICATES, DATABASE and GOAL.  Currently known as PDC Prolog, and
distributed by Prolog Development Center, Atlanta (404)873-1366

Turing - R.C. Holt & J.R. Cordy , U Toronto, 1982. 
Descendant of Concurrent Euclid, an airtight super-Pascal.  "Turing
Language Report", R.C. Holt & J.R. Cordy, Report CSRI-153, CSRI, U Toronto,
Dec 1983.  "The Turing Programming Language", R.C. Holt & J.R. Cordy, CACM
31(12) (Dec 1988).  Available from Holt Software Assocs, Toronto.  Versions
for Sun, VAX/VMS, MS-DOS, Mac, VM/CMS.

Turing Plus - Systems programming language, a concurrent descendant of
Turing.  "The Turing Plus Report", R.C. Holt & J.R. Cordy, CSRI, U Toronto,
Feb 1987.  Available from Holt Software Assocs, Toronto

Turtle - The subset of LOGO dealing directly with turtle graphics.

TUTOR - Scripting language on PLATO systems from CDC.  "The TUTOR
Language", Bruce Sherwood, Control Data, 1977.

Twentel - Functional.  "The TWENTEL System (Version 1).", H. Kroeze, CS
Dept TR, U Twente, 1986.

TWIG - Tree-Walking Instruction Generator.  A code-generator language. 
"Twig Language Manual", S.W.K. Tijang, CS TR 120, Bell Labs, 1986.  A
variant, ML-Twig in SML by Jussi Rintanen  comes with

TXL - Tree Transformation Language.  J.R. Cordy et al, Queens U, Canada,
1988.  A general language for implementing source-to-source translation and
program transformation tasks.  "TXL: A Rapid Prototyping System for
Programming Language Dialects", J.R. Cordy et al, Comp Langs 16(1) (Jan
1991).  Specification and Automatic Prototype Implementation of Polymorphic
Objects in Turing Using the TXL Dialect Processor", J.R. Cordy & E.M.
Promislow, Proc IEEE Intl Conf on Comp Lang ICCL'90 (Mar 1990).
ftp:, Vers 5.3, source in ANSI C

Typed Smalltalk - Ralph Johnson, U Illinois .

TYPOL - A specialized logic programming language.  "TYPOL: A Formalism to
Implement Natural Semantics", T. Despeyroux, RR 94, INRIA, 1988.

UAN - User Action Notation.  VPI.  A notation for representation of
graphical user interfaces, e.g. mice and icons, H. Hartson et al, ACM Trans
on Info Sys, July 1990.

UBASIC - Y. Kida .  Extension of BASIC oriented
for symbolic math and number theory.  Includes bignums, fractions, complex
numbers and polynomials, integer factorization.  Version for MS-DOS,
written in assembly language.  Reviewed by W.D. Neumann, Notices of AMS
(Mar 1991).

uC++ - Micro-C++.  U Waterloo.  A concurrent extension of C++ with
coroutines and mutual exclusion.  Soft Prac & Exp (Feb 1992).  Version
3.4.4 for Unix using GCC.

UCSD Pascal - see Pascal-P.

U-Code - Universal Pascal Code.  Intermediate language, a generalization of
P-code for easier optimization.  Developed originally for the Los Alamos
Cray-1 and the Lawrence Livermore S-1.  A refined version currently used by
MIPS compilers is descended from one at Stanford U.  "Machine Independent
Pascal Code Optimization", D.R. Perkins et al, SIGPLAN Notices 14(8): 201-
201 (1979).  "A Transporter's Guide to the Stanford U-Code Compiler
System", P. Nye et al, TR CSL Stanford U, June 1983.  (See HPcode).

UHELP - Linear programming.  "UHELP User's Manual", D. Singh, Indus Eng
Dept, U Houston (Oct 1969).

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

UHELP - Mathematical language, listed [?] 1976.

ULP - Small structured language for use in microprocessors.  "User's Guide
to the ULP Language for the PDP-11", CS TR 536, U Maryland (May 1977).

uML - Micro ML.  An interpreter for a subset of SML that runs on MS-DOS.

UNCOL -  UNiversal Computer Oriented Language.  A universal intermediate
language, discussed but never implemented.  "A First Version of UNCOL",
T.B. Steel, Proc JCC 19:371-378 (Winter 1961).  Sammet 1969, p.708.

UNICODE - Pre-FORTRAN on the IBM 1103, similar to MATH-MATIC.  Sammet 1969,

UNIQUE - A portable job control language, used.  "The UNIQUE Command
Language - Portable Job Control", I.A. Newman, Proc DATAFAIR 73, 1973,

UNISAP - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May

UNITY - A high-level parallel language.  "Parallel Program Design", K.M.
Chandry et al, A-W 1988.

USE - Early system on IBM 1103 or 1103A.  Listed in CACM 2(5):16 (May

USL - Query language, close to natural English.

USSA - B. Burshteyn, Pyramid, 1992.  Object-oriented state language.

utility-coder - Data manipulation and report generation.  "User's Manual
for utility-coder", Cambridge Computer Assoc (Jul 1977).

V - Wide-spectrum language used in the knowledge-based environment CHI. 
"Research on Knowledge-Based Software Environments at Kestrel Inst", D.R.
Smith et al, IEEE Trans Soft Eng SE-11(11):1278-1295 (1985).


  1. Value-oriented Algorithmic Language.  J.B. Dennis, MIT 1979.  Single
assignment language, designed for MIT dataflow machine.  Based on CLU, has
iteration and error handling, lacking in recursion and I/O.  "A Value-
Oriented Algorithmic Language", W.B. Ackermann et al, MIT LCS TR-218, June
1979.  "The VAL Language: Description and Analysis", J.R. McGraw, TOPLAS
4(1):44-82 (Jan 1982).

  2. Variable Assembly Language.  Unimation.  Language for industrial
robots.  Version: VAL II - "VAL II: A New Robot Control System for
Automatic Manufacturing", B.E. Shimano et al, Proc IEEE Intl Conf on
Robotics 1984, pp.278-292.

  3. VHDL Annotation Language.  Stanford.
source in Ada available from Larry M. Augustin 

Valid - Dataflow language.  "A List-Processing-Oriented Data Flow Machine
architecture", Makoto Amamiya et al, AFIPS NCC, June 1982, pp.143-151.

VDM - Specification method based on predicate logic, an outgrowth of VDL. 
"The Vienna Development Method: The Meta-Language", D. Bjorner et al eds,
LNCS 61, Springer 1978.  Version: BSI/VDM.  Jones's books, 1980, 1986.[?]

Vector C - CMU?  Variant of C similar to ACTUS.

VECTRAN - FORTRAN with array extensions.  "The VECTRAN Language: An
Experimental Language for Vector/Matrix Array Processing, Report G320-
3334, IBM (Aug 1975).

Verdi - (named for the Italian composer Giuseppe Verdi (1813-1901)) 
Provable systems language.  Descendant of Ottawa Euclid.

VEL - See LISP70.

Verilog - Cadence Design Systems.  A hardware description language.  "The
Verilog Hardware Description Language", Donald E. Thomas & Philip Moorby,
Kluwer 1991.

VGQF - Query language.

VHDL - VHSIC Hardware Description Language.  (VHSIC = Very High Speed
Integrated Circuit)  The DoD standard for hardware description.  "VHSIC
Hardware Description Language", M.R. Shahdad et al, IEEE Computer 18(2):94-
103 (Feb 1985).

Vienna Definition Language - IBM Vienna Labs.  A language for formal
definition via operational semantics.  Used to specify the semantics of
PL/I.  "The Vienna Definition Language", P. Wegner, ACM Comp Surveys
4(1):5-63 (Mar 1972).

Vienna Fortran - Hans Zima, U Vienna.  Data-parallel.

Views - A Smalltalk extension for computer algebra.  "An Object Oriented
Approach to Algebra System Design", K. Abdali et al, in Symp Symb Alg
Manip, ACM 1986, pp.24-30.

Viron - "Five Paradigm Shifts in Programming Language Design and Their
Realization in Viron, a Dataflow Programming Environment", V. Pratt, 10th
POPL, ACM 1983, pp.1-9.

VITAL - Semantics language using FSL.  Mondshein, 1967.  Sammet 1969,

VIVID - Numerical constraint-oriented language.  "VIVID: The Kernel of a
Knowledge Representation Environment Based on the Constraints Paradigm of
Computation", J. Maleki, Proc 20th Annual Hawaii Intl Conf on System
Sciences (Jan 1987) pp.591-597.

viz - Visual language for specification and programming.  "viz: A Visual
Language Based on Functions", C.M. Holt, 1990 IEEE Workshop on Visual
Langs, Oct 1990, pp.221-226.

Vlisp - Patrick Greussay  ca 1973.  Lisp dialect widely
used in France.  (See ObjVlisp).

VPL - Dataflow language for interactive image processing.  "VPL: An Active,
Declarative Visual Programming System, D. Lau-Kee et al, 1991 IEEE Workshop
on Vis Langs, Oct 1991, pp.40-46.


  1. Wayne Ratliff ca. 1980.  CP/M port of JPLDIS which evolved into dBASE

  2. The dBASE-like interpreter and compiler sold by RSPI with their
Emerald Bay product. [same as 1?]

  3. Early string manipulation language.  "VULCAN - A String Handling
Language with Dynamic Storage Control", E.P. Storm et al, Proc FJCC 37,
AFIPS (Fall 1970).

  4. Kahn et al, Xerox PARC.  Concurrent object orientation and logic
programming.  An object-oriented preprocessor for FCP.  "Vulcan: Logical
Concurrent Objects", K. Kahn et al in Research Directions in Object-
Oriented Programming, A.B. Shriver et al eds, MIT Press 1987.

WAFL - WArwick Functional Language.  Warwick U, England.  LISP-like.

WAM - Intermediate language for compiled Prolog, used by the Warren
Abstract Machine.  "An Abstract Prolog Instruction Set", D.H.D. Warren, TR
309, SRI 1983.


WATFIV - WATerloo Fortran IV.  U Waterloo, Canada.  Student-friendly
variant of FORTRAN IV.

WATFOR - WATerloo FORtran.  U Waterloo, Canada.  Student-friendly variant
of FORTRAN.  "WATFOR - The University of Waterloo FORTRAN IV Compiler",
P.W. Shantz et al, CACM 10(1):41-44 (Jan 1967).

WAVE - Robotics language.  "WAVE: A Model-Based Language for Manipulator
Control", R.P. Paul, Ind Robot 4(1):10-17 (1979).

WEB - Knuth's self-documenting brand of programming, with algorithms and
documentation intermixed in one file.  They can be separated using Weave
and Tangle.  Versions exist for Pascal, C etc.  Spiderweb can be used to
create versions for other languages (ftp  "Literate
Programming", D.E. Knuth, Computer J 27(2):97-111 (May 1984).  

WFL - Work Flow Language.  Burroughs, ca 1973.  A job control language for
the B6700/B7700 under MCP.  WFL was a compiled block-structured language
similar to ALGOL-60, with subroutines and nested begin-end's.  "Work Flow
Management User's Guide", Burroughs Manual 5000714 (1973).  "Burroughs
B6700/B7700 Work Flow Language", R.M. Cowan in Command Languages, C. Unger
ed, N-H 1975.

Wisp - "An Experiment with a Self-Compiling Compiler for a Simple List-
Processing Language", M.V. Wilkes, Ann Rev Automatic Programming 4:1-48

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

WOOL - Colas Nahaboo   Small Common Lisp-like
extension language.  Claims to be the fastest interpreted language in C
with run-time types.  Version 1 used by the GWM window manager.  Version 2
has an object system.

WPOP - WonderPop.  Robert Rae , Edinburgh 1976.  An
implementation of POP for the PDP-10 that used cages for different data
types.  Introduced processes, properites, and some typed identifiers 

WRITEACOURSE - CAI language, for IBM 360.  "WRITEACOURSE: An Educational
Programming Language", E. Hunt et al, Proc FJCC 33(2) (1968).

WSFN - Which Stands For Nothing.  Atari 1983.  Beginner's language with
emphasis on graphics, for Atari home computers.  Version: Advanced WSFN.

WSL - Waterloo Systems Language.  A C-like systems programming language. 
"Waterloo Systems Language:  Tutorial and Language Reference", F.D.
Boswell, WATFAC Publications Ltd, Waterloo, Canada.  ISBN 0-919884-00-8.

X-1 - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May 1959).

Xbase - Generic term for the dBASE family of languages.  Coined in response
to threatened litigation over use of the copyrighted trademark "dBASE."

XC - Declarative extension of C++.  "XC - A Language for Embedded Rule
Based Systems", E. Nuutila et al, SIGPLAN Notices 22(9):23-32 (Sep 1987).

XDL - An object-oriented extension to CCITT's SDL[2].  "XDL: An Object-
Oriented Extension to SDL", S.J. Ochuodho et al in [?]

Xfun - S. Dalmas , INRIA, 1991.  A cross between
SML and Russell, intended for computer algebra.  "A Polymorphic Functional
language Applied to Symbolic Computation", S. Dalmas, Proc Intl Symp Symb
Alg Comp, Berkeley 1992.

Xi - VLSI design language.  "The Circuit Design Language Xi", S.I. Feldman,
unpublished memo, Bell Labs, 1982.  Mentioned in Computational Aspects of
VLSI, J.D. Ullman, CS Press 1984.

XLISP - eXperimental LISP.  David Betz.  LISP variant with object-oriented
extensions, source in C.  Versions exist for most PC's.  BYTE article.

XPC - eXplicitly Parallel C.  Dialect of Parallel C which is mode
independent, i.e. efficiently compilable to both SIMD and MIMD
architectures.  "Toward Semantic Self-Consistency in Explicitly Parallel
Languages," M.J. Phillip & H.G. Dietz, Proc 4th Intl Conf on
Supercomputing, Santa Clara, CA, May 1989, v.1, pp.398-407.  Research
implementations only.

XPL - Stanford, 1967-69.  Dialect of PL/I used for compiler writing.  "A
Compiler Generator," W.M. McKeeman et al, P-H 1970.  Also JCC, AFIPS 1968.

XPOP - Extensible macro assembly language with user-redefinable grammar,
for use with FAP.  "XPOP: A Meta-language Without Metaphysics", M.I.
Halpern, Proc FJCC 25:57-68, AFIPS (Fall 1964).

XScheme - David Betz.  Scheme with object-oriented extensions.  Source in
C.  Versions for PC, Macintosh, Atari, Amiga.
     comp.sources.amiga/volume90, version 0.28 for Amiga

XTRAN - FORTRAN-like, interactive.

Y - General purpose systems language, syntactically falls between RATFOR
and C.  "The Y Programming Language", D.R. Hanson, SIGPLAN Notices
16(2):59-68 (Feb 1981).

y++ - "YACC Meets C++", S.C. Johnson, USENIX Spring '88 Conf.

Yaa - Yet Another Assembler - Macro assembler for GCOS 8 and Mark III on
Bull DPS-8 machines.  Available from Bull as part of U Waterloo Tools
package (maintained by ).

Yacc - Yet Another Compiler Compiler.  Language used by the Yacc LALR
parser generator.  "YACC - Yet Another Compiler Compiler", S.C. Johnson, CS
TR 32, Bell Labs (Jul 1975). 
 ayacc - UC Irvine.  written in Ada, produces Ada output
 Bison - from GNU
 Bison++ - produces C++ output.
 perl-byacc - produces perl output
 SASL-Yacc - "Yacc in SASL - An Exercise in Functional Programming", Simon
Peyton-Jones, Software Prac & Exp 15:807-820 (1985).  Mentions also a BCPL
 Yacc++ - 1990.  An object-oriented rewrite of yacc, supports regular exp-
ressions, produces an LR(1) parser.  Chris Clark, Compiler Resources Inc,
 (508) 435-5016.
 MLYACC - Implementation and output in SML/NJ

YAPS - Yet Another Production System?  College Park Software.  A commercial
production rule language, simpler than OPS5.  Allows knowledge bases to be
attached to instances of CLOS objects.
info: Liz Allen 

Yay - Yet Another Yacc - An extension of Yacc with LALR(2) parsing. 
Available from Bull as part of U Waterloo Tools package (maintained by

YELLOW - A language proposed by SRI to meet the Ironman requirements which
led to Ada. "On the YELLOW Language Submitted to the DoD", E.W. Dijkstra,
SIGPLAN Notices 13(10):22-26 (Oct 1978).

Yerk - (named for Yerkes Observatory)  A public domain reincarnation of
info: Bob Lowenstein 

Z -

  1. Programming Research Group, Oxford U, ca 1980.  A specification
language based on axiomatic set theory and first order logic.  Must be
written in LaTeX?  Used in the IBM CICS project?  "Understanding Z", J.M.
Spivey, Cambridge U Press 1988.

  2. A stack-based, complex arithmetic simulation language.  ZOLA

Z++ - Object-oriented extension of Z.  "Z++, an Object-Oriented Extension
to Z", Lano, Z User Workshop, Oxford 1990, Springer Workshops in Computing,
1991, pp.151-172.

ZAP - Language for expressing transformational developments.  "A System for
Assisting Program Transformation", M.S. Feather, ACM TOPLAS 4(1):1-20 (Jan

Zed - 1978.  Software Portability Group, U Waterloo.  Eh, with types added. 
Similar to C.  Implementation language for the Thoth realtime operating
system.  Added a few simple types for greater efficiency on byte-addressed
machines.  String constants in case statements.  Enforces the naming
convention: MANIFESTS, Externals and locals.  "Porting the Zed Compiler",
G.B. Bonkowski et al, SIGPLAN Notices 14(8):92-97 (Aug 1979).

ZENO - Euclid with asynchronous message-passing.  "Preliminary ZENO
Language Description", J.E. Ball et al, SIGPLAN Notices 14(9):17-34 (Sep

ZERO - Object oriented extension of Z.  "Object Orientation in Z", S.
Stepney et al eds, Springer 1992.

ZEST - Object oriented extension of Z.  "Object Orientation in Z", S.
Stepney et al eds, Springer 1992.

ZetaLisp - MACLISP dialect used on the LISP Machine.  The many extensions
to MACLISP include vectors, closures, flavors, stack groups, locatives and
invisible pointers.  "LISP Machine Manual", D. Weinreb and D. Moon, MIT AI
Lab, 1981.

ZIL - Zork Implementation Language.  Language used by Infocom's Interactive
Fiction adventure games.  zmachine is an interpreter, for Unix and Amiga.

zsh - Sh with list processing and database enhancements.

ZOPL - Geac.  A low-level Pascal.

ZUG - Geac.  A low-level Awk?

Zuse - (named for Konrad Zuse, the designer of the first modern programming
language Plankalkul.)  Christian Collberg , PhD thesis
1991.  A descendant of Ada, Modula-2, Mesa and Oberon-1 supporting several
levels of information hiding.  The Zuse type system includes fully hidden
types (similar to Modula-2 opaque types but wihout any implementation
restriction), semi-open pointer types (same as Modula-2 opaque types),
extensible record types (similar to Oberon-1 public projection types but
without the compiler hint), enumeration types, extensible enumeration
types, and extensible subrange types.  A type can also be protected by
specifying the operations that particular modules may perform (similar to
C++ friend classes and Ada private types).  Zuse also includes hidden and
extensible constants and hidden inline procedures.  In order to support the
higher levels of information hiding the implementation employs partial
intermediate code linking.  Version for Sun-3.


Selected Works on Computer Language History and Design

AFIPS (American Federation of Information Processing Societies), SJCC
(Spring Joint Computer Conference) and FJCC (Fall Joint Computer
Conference), replaced after 1972 by the NCC (National Computer Conference). 
TK7885 .A1 J6

Andrews, G.R. and F.B. Schneider, "Concepts and Notations for Concurrent
Programming", ACM Comp Surveys 15(1):1-43 (Mar 1983).

Bal, H.E., "Programming Languages for Distributed Systems", ACM Comp
Surveys 21(3):261-322 (Sep 1989).

Blume, Christian, "Programming Languages for Industrial Robots", Springer

Bobrow, D.G. & Raphael, "New Programming Languages for Artificial
Intelligence Research", ACM Comp Surveys 6:155 (Nov 1974).

Computer Languages  QA 76.7 .C647  ISSN 0096-0551

Conference Record of the 19XX ACM Symposium on Lisp and Functional
Programming, QA 76.73 .L23 A26

Horowitz, Ellis, "Programming Languages, A Grand Tour", 3rd ed, Springer
1987.  QA76.7 .P78

Hudak, Paul, "Conception, Evolution and Application of Functional
Programming Languages", ACM Comp Surveys 21(3):359-411 (Sep 1989).

IEEE Transactions on Software Engineering, QA76 .I33x

POPL - Conference Record of the [Nth] Annual ACM Symposium on Principles of
Programming Languages.  QA 76.7 .A25a

Sammet, Jean E.,  "Programming Languages:  History
and Fundamentals",  P-H 1969.  QA76.5 .S213.  The definitive work on early
computer language development.

Sammet, Jean E., "Programming Languages: History and Future", CACM
15(7):601-610 (Jul 1972).

Sammet, Jean E., "Roster of Programming Languages"
	Computers & Automation 16(6):80-82 (June 1967)
	Computers & Automation 17(6):120-123 (June 1968)
	Computers & Automation 18(7):153-158 (June 1969)
	Computers & Automation 19(6B):6-11 (Nov 30, 1970)
	Computers & Automation 20(6B):6-13 (June 30, 1971)
	Computers & Automation 21(6B) (Aug 30, 1972)
	Computing Reviews 15(4): 147-160 (April 1974)
	CACM 19(12):655-669 (Dec 1976)
	SIGPLAN Notices 13(11):56 (Nov 1978).

Shapiro, E., "The Family of Concurrent Logic Programming Languages", ACM
Comp Surveys, 21(3):413-510 (Sep 1989).

ACM SIGPLAN Notices, QA76.7 .A13

Software: Practice and Experience, QA 76.5 .S653

ACM TOPLAS (Transactions on Programming Languages and Systems) QA76.7 .A16

Wexelblat, R.L. ed, "Proceedings: ACM SIGPLAN History of Programming
Languages Conference"  (Los Angeles, July 1978).  758 pp.  Academic Press
1981.  An entertaining account of the history of roughly 15 major
programming languages.  Jean Sammet co-organized the conference.  ACM No
548780.  ACM Order Dept: (800)342-6626.  QA76.7 .H56


A Chronology of Influential Computer Languages

Konrad Zuse in Nazi Germany may have developed the first real computer
programming language, "Plankalkul" ca. 1945.  This is mentioned in the 1978
ACM History of Programming Languages FORTRAN session.

According to Sammet, over 200 programming languages were developed between
1952 and 1972, but she considered only about 13 of them to be significant.

1957    FORTRAN
1958    ALGOL
1960    LISP
1960    COBOL
1962    APL
1962    SIMULA
1964    BASIC
1964    PL/I
1966    ISWIM
1970    Prolog
1972    C
1975    Pascal
1975    Scheme
1978    CSP
1978    FP
1979    Modula-2
1980    dBASE II
1983    Smalltalk-80
1983    Ada
1983    Parlog
1984    Standard ML
1986    C++
1986    CLP(R)
1986    Eiffel
1988    Mathematica
1988    CLOS
1990    Haskell

--Bill Kinnersley