Programming Languages - A

Sample Program

A# - Object-oriented and functional, a separable component of Version 2 of the AXIOM computer algebra system. Both types and functions are first class values. Designed for compilation to efficient machine code.

A+ - Dialect of APL used at Morgan-Stanley.

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

AACC - Language for building finite state automata. [?]

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 for PC's", S. Pemberton, IEEE Software 4(1):56-64 (Jan 1987). "The ABC Programmer's Manual", Leo Geurts et al, P- H 1989.* info: list: maintained by Steven Pemberton <abc-list->.

2. (A="argument",B="basic value",C=?). Intermediate language for the ABC abstract machine for implementation of functional languages, similar to the spineless tagless G-machine. "Compiling Clean to Abstract ABC-Machine Code", J.E.W. Smetsers, TR 89-20, U Nijmegen 1989. "The ABC-Machine: A Sequential Stack-Based Abstract Machine for Graph Rewriting", P. Koopman et al, TR 88-1, U Nijmegen 1988. Functional Programming and Parallel Graph Rewriting, Rinus Plasmeijer et al, A-W 1993, ISBN 0201416638.

ABC ALGOL - An extension of ALGOL 60 with arbitrary data structures and user-defined operators, for symbolic math. "ABC Algol, A Portable Language for Formula Manipulation Systems", R.P. van de Riet, Amsterdam Math Centrum 1973.

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.* info:

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. A reflective subset of ABCL/1, written in ABCL/1. "Reflection in an Object-Oriented Concurrent Language", T. Watanabe et al, SIGPLAN Notices 23(11):306-315 (Nov 1988).*

ABCL/R2 - Yonezawa et al, Tokyo Inst Tech 1992. A reflective concurrent object-oriented language, based on Hybrid Group Architecture. Provides almost all the functionality of ABCL/1. Written in Common LISP.*

Abel - HP Labs. Strongly-typed object-oriented language with contravariant semantics. Inherited interfaces are not required to be subtypes. info: Walter Hill <>

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 1 - U Aberdeen. Early declarative language, anticipated a number of features of Prolog. "ABSYS 1: 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).

ACOS - BBS language for PRODOS 8 on Apple ][. Macos is a hacked version of ACOS.

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 1983.

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 ACM Symposium on Interactive Systems for Experimental Applied Mathematics, M. Klarer et al eds, 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). Version 4. Now supported by Genesis Development Systems, (800) OKACTOR.

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, 1979. 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 parametrized. 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). Earlier draft versions appeared in July 1980 and July 1982. ANSI 9183, ISO 1987. Russian: GOST 27831-88. info: 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 and extension of Ada begun in 1988, currently under development. Additions include object-orientation (tagged types, abstract types and class-wide types), hierarchical libraries, and synchronization with shared data (protected types) similar to Orca. Lacks multiple inheritance. "Introducing Ada 9X", J.G.P. Barnes, Feb 1993.* mailing list: Chris Anderson <> (Ada 9X Project Manager)

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

Ada' - ORA. Subset of Ada used by the Penelope verification system. Omits tasking, generics, fixed and floating point. "Formal Verification of Ada Programs", D. Guaspari et al, IEEE Trans Soft Eng 16(9):1058-1075 (Sept 1990).

ADAM - A DAta Management system.

Ada-O - U Karlsruhe, 1979. Ada subset used for compiler bootstrapping. Lacks overloading, derived types, real numbers, tasks and generics. "Revised Ada-O Reference Manual", G. Persch et al, U Karlsruhe, Inst fur Infor II, Bericht Nr 9/81.

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.

AdaTran - Name given informally to an Ada subset and coding style reminiscent of the worst examples of Fortran, incomprehensible and full of GOTO's. The ENCORE Project at GE Corporate Research used this term for the output of their Fortran-to-Ada translator. ENCORE (ENvironment for COde RE-engineering) was a system for turning AdaTran into readable Ada.

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).

ADELE - Language for specification of attribute grammars, used by the MUG2 compiler compiler. "An Overview of the Attribute Definition Language ADELE", H. Ganziger in GI3, Fachesprach "Compiler-Compiler", W. Henhapl ed, Munchen Mar 1982, pp.22-53.

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. //

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

3. Assertion Definition Language. Sun Labs, for the Japanese Ministry of Trade. Language for automated generation of interface tests.

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 LISP-like.

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

AED - Automated Engineering Design (aka ALGOL Extended for Design). MIT System Laboratory ca 1965 by a team led by Douglas T. Ross (now at Softech). Systems language for IBM 7090 and 360, an extension of ALGOL-60 with records ("plexes"), pointers, and dynamic allocation. DYNAMO II was written in AED, as was the first BCPL compiler. "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.[?]

AHDL - Analog VHDL. US Air Force, under development. Mentioned in Electronic Times or Electronic Engineering Design[?] IEEE 1076.1

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.

AID - Algebraic Interpretive Dialogue. Version of Joss II for the PDP-10. "AID (Algebraic Interpretive Dialogue)", DEC manual, 1968.


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. "AIDA Introduction and User Manual", M. Dausmann et al, U Karlsruhe, Inst fur Inform II, TR Nr 38/80. "AIDA Reference Manual", ibid, TR Nr 39/80, Nov 1980.

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

AGP-L - Language for natural language recognition. [?]

AKCL - Austin Kyoto Common LISP. Wm Schelter <>, U Texas, 1987-1994. Enhancements to KCL. In 1994, AKCL was renamed Gnu CL.

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", Uwe 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 - Atlas LISP Algebraic Manipulation. Symbolic math, especially for General Relativity. "ALAM Programmer's Manual", Ray D'Inverno, 1970. (See CLAM).

A-language. An early Algol-like surface syntax for Lisp. "An Auxiliary Language for More Natural Expression--The A-language", W. Henneman in The Programming Language LISP, E.C. Berkeley et al eds, MIT Press 1964, pp.239- 248.

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

Alcool-90 - An object-oriented extension of ML with runtime overloading and a type-based notion of modules, functors and inheritance. Built on CAML Light.* info: Francois Rouaix <>

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.

ALEF - Concurrent language for systems programming. C-like syntax, but a different type system. Exception handling, process management and synchronization primitives, both shared variable and message passing. Used in Plan 9 OS. info: Phil Winterbottom <>


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 1972).

Alex -

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

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. "The Implementation of the Functional- Logic Language ALF", M. Hanus and A. Schwab.* info: Rudolf Opalla <>

Alfl - Paul Hudak <>, Yale 1983. Functional, weakly typed, lazy. Implemented as a Scheme preprocessor for the Orbit 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 ParAlfl).

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

ALGOL 58 - See IAL.

ALGOL 60 - ALGOrithmic Language. Designed as a portable language for scientific computations. ALGOL 60 was small and elegant. It was block-structured, nested, recursive, and free form. It was also the first language to be described in BNF. There were three lexical representations: hardware, reference, and publication. The only structured data types were arrays, but they were permitted to have lower bounds and could be dynamic. Keywords. Conditional expression. Introduced :=, if-then-else, very general 'for' loops. Switch declaration (an array of statement labels generalizing FORTRAN's computed goto). Parameters were call-by-name and call-by-value. Static local 'own' variables. Lacked user-defined types, character manipulation and standard I/O. "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 - Still lacked standard I/O. "Revised Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM 6(1):1-17 (Jan 1963). NASE A60 Interpreter

ALGOL 68 - Adriaan van Wijngaarden et al. Discussed from 1963 by Working Group 2.1 of IFIP. Definition accepted Dec 1968. ALGOL 68 was complex, and posed difficulties for both implementors and users. Structural equivalence. Automatic type conversion, including dereferencing. Flexible arrays. Generalized loops (for-from-by-to-while-do-od), if-then-elif-fi, integer case statement with 'out' clause, skip statement, goto. Blocks, procedures and user-defined operators. Procedure parameters. Concurrent execution (cobegin/coend) and semaphores. Generators heap and loc for dynamic allocation. No abstract data types, no separate compilation.

ALGOL 68-R - April, 1970. Royal Signals and Radar Establishment, Malvern, Worcs UK, 1970. A restriction of ALGOL 68 permitting one-pass compilation: identifiers, modes and operators must be declared before use, no automatic proceduring, no concurrency. Implemented in ALGOL 60 under GEORGE 3 on an ICL 1907F. "ALGOL 68-R, Its Implementation and Use", I.F. Currie et al, Proc IFIP Congress 1971, N-H 1971, pp.360-363.

ALGOL 68 Revised - Significantly simplified the language. "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 - S. Bourne and Mike Guy, Cambridge U 1975. Variant of ALGOL 68, allowing two-pass compilation. Used as the implementation language for the CHAOS OS for the CAP capability computer. Ported to IBM 360, VAX/VMS, several others.

ALGOL 68RS - Royal Signals and Radar Establishment, Malvern UK. An extension of ALGOL 68 supporting function closures. Has been ported to Multics and VAX/VMS.

ALGOL 68S - A subset of ALGOL 68 allowing simpler compilation. Intended mainly for numerical computation. "A Sublanguage of ALGOL 68", P.G. Hibbard, SIGPLAN Notices 12(5) (May 1977). Rewritten in BLISS for the PDP- 11, and later in Pascal. Available as shareware 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 Kit).

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

ALGOL D - "A Proposal for Definitions in ALGOL", B.A. Galler et al, CACM 10:204-219 (1967).

ALGOL N - Yoneda. Proposed successor to ALGOL 60.

ALGOL W - Derivative of ALGOL 60. Introduced double precision, complex numbers, bit strings and dynamic data structures. Parsed entirely by operator precedence. Used call-by-value-result. "A Contribution to the Development of Algol", N. Wirth, CACM 9(6):413-431 (June 1966). "ALGOL W Implementation", H. Bauer et al, TR CS98, Stanford U, 1968.

ALGOL X - Proposed successor to ALGOL 60, a "short-term solution to existing difficulties". The three designs proposed were by Wirth, Seegmuller and van Wijngaarden. Sammet 1969, p.194.

ALGOL Y - Proposed successor to ALGOL 60, a "radical reconstruction". Originally a language that could manipulate its own programs at runtime, it became a collection of features that were not accepted for ALGOL X.

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

ALIAS - ALgorIthmic ASsembly language. Machine oriented language, a variant of BLISS. Implemented in BCPL for the PDP9. "ALIAS", H.E. Barreveld, Int Rep, Math Dept, Delft U Tech, Netherlands (1973).

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

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.

ALPHA - A.P. Ershov, Novosibirsk, 1961. Also known as "Input". Extension of ALGOL 60 for the M-20 computer, including matrix operations, slices, complex arithmetic. "The Alpha Automatic Programming System", A.P. "Yershov" ed., A-P 1971.

Alphard - (named for the brightest star in Hydra). Wulf, Shaw and London, CMU 1974. Pascal-like. Data abstraction using the 'form', which combines a specification and an implementation. "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, pp.256-264.

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

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 1984).

AMPLE - Hybrid Technologies, Cambridge England, mid 80's. FORTH-like language for programming the 500/5000 series of add-on music synthesizers for the BBC micro. Many listings published in Acorn User magazine.

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 1959).

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). list:

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 1988.

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

Anna - ANNotated Ada. ca. 1980. Adds semantic assertions to Ada as formal comments. Based on first-order logic. Includes generalized type constraints, virtual checking functions, and behavior specification. "ANNA - A Language for Annotating Ada Programs", David Luckham et al, Springer 1987.*

ANTLR - ANother Tool for Language Recognition. Parser generator, part of PCCTS (Purdue Compiler-Construction Tool Set).

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.

APESE - The language of the APE100 SIMD machine. (See TAO.)

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, APL SV, VS APL, Sharp APL, Sharp APL/PC, APL*PLUS, APL*PLUS/PC, APL*PLUS/PC 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.

AppleScript - An object-oriented shell language for the Macintosh, approximately a superset of HyperTalk.

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. The first language to be an ANSI standard: ANSI X3.37. "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 1959).

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, pp.569-599.

ARCHI - A microarchitecture description language with C-like syntax, intended for input to a one-pass firmware tool generator. "A Microarchitecture Description Language for Retargeting Firmware Tools", J.F. Nixon et al, Proc 19th Ann Workshop Microprogramming (MICRO-19), 1986, pp.34-43.

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- H.

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

ASDIMPL - ASDO IMPlementation Language. A C-like language, run on Burroughs' mainframe computers in the early 80's, and cross-compiled to x86-based embedded processors.

ASDL - "ASDL - An Object-Oriented Specification Language for Syntax- Directed Environments", M.L. Christ-Neumann et al, European Softwatre Eng Conf, Strasbourg, Sept 1987, pp.77-85.

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 Semantic Interface Specification. A layered, vendor-independent architecture providing an interface to the Ada program library. info: //*

ASF - Algebraic Specification Formalism. CWI. Language for equational specification of abstract data types. "Algebraic Specification", J.A. Bergstra et al eds, A-W 1989.

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, designed for the exchange of structured data over networks. Derived from the 1984 standard CCITT X.408 used to describe the syntax of messages in the X.400 mail system. Used by the Natl Center for Biotechnology Information. CCITT, ITU TS X.208 (1988), ISO 8824. "An Overview of ASN.1", G. Neufeld et al, Computer Networks and ISDN Systems, 23(5):393-415 (Feb 1992). Available from Logica, UK. (See BER). [?]

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

ASpecT - Algebraic Specification of abstract data Types. Strict functional language that compiles to C. Versions for Sun, Ultrix, NeXT, Mac, OS2/2.0, linux, RS6000, Atari, Amiga.*

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. MIL-spec language for automatic testing of avionics equipment. Replaced Gaelic and several other test languages. "IEEE Standard ATLAS Test Language", IEEE Std 416- 1976 and 416-1984.

Atlas Autocode - Autocode for the Ferranti Atlas, which may have been the first commercial machine with hardware-paged virtual memory. Whereas other autocodes were basically symbolic assembly languges, Atlas Autocode was high-level and block-structured, resembling a cross between FORTRAN and ALGOL 60. It had call-by value, loops, declarations, complex numbers, pointers, heap and stack storqage generators, dynamic arrays, extensible syntax, etc.

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, pp.638-649.

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.

Autocode - Alick E. Glennie, 1952. AUTOCODER was 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 705.

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 1976).

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).

AVA - A Verifiable Ada. Michael Smith. A formally defined subset of Ada, under development. "The AVA Reference Manual", M. Smith, TR64, Computational Logic, Austin TX (June 1990).

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.

Avon - Dataflow language. "AVON: A Dataflow Language", A. Deb, ICS 87, Second Intl Conf on Supercomputing, v.3, pp.9-19 (ISI 1987).

AXIOM - IBM. Commercially available subset of Scratchpad. "Axiom - The Scientific Computing System", R. Jenks et al, Springer 1992.

AXIS - H-P. Algebraic language with user-definable syntax. [?]

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.)*