The Language List - Version 2.4, January 23, 1995 downloaded 1/17/01 from ftp://wuarchive.wustl.edu/doc/misc/lang-list.txt Collected information on about 2350 computer languages, past and present. Available online as: http://cui_www.unige.ch/langlist ftp://wuarchive.wustl.edu/doc/misc/lang-list.txt Maintained by: Bill Kinnersley Computer Science Department University of Kansas Lawrence, KS 66045 billk@cs.ukans.edu Started Mar 7, 1991 by Tom Rombouts 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. Hundreds of 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. "YOU LEFT OUT LANGUAGE ___!" 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 category. 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. 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 large 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 products. 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 avoiding any remarks that are 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, Lucid. 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 ...gn 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 substitution 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 distributed Concurrent languages differ in the way that processes are created: coroutines - control is explicitly transferred - Simula I, SL5, BLISS, Modula-2. 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 constructs. Algorithms or data structures may be chosen by the compiler. 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 computer. Intermediate language A language used as an intermediate stage in compilation. May be either text or binary. Metalanguage 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. 20-GATE - Carnegie, ca 1965. Algebraic language for the G-20. 3-LISP - Brian Smith. A procedurally reflective dialect of LISP which uses an infinite tower of interpreters. "The Implementation of Procedurally Reflective Languages", J. des Rivi et al, ACM J Lisp and Functional Programming, pp.331-347 (1984). 473L Query - English-like query language for Air Force 473L system. Sammet 1969, p.665. "Headquarters USAF Command and Control System Query Language", Info Sys Sci, Proc 2nd Congress, Spartan Books 1965, pp.57-76. 9PAC - 709 PACkage. 1959. Report generator for IBM 7090. Sammet 1969, p.314. "IBM 7090 Prog Sys, SHARE 7090 9PAC Part I: Intro and Gen Princs", IBM J28-6166, White Plains, 1961. *LISP - ("StarLISP") Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking Machines Corp. A data-parallel extension of Common LISP for the Connection Machine, uses 'pvars'. "The Essential *LISP Manual", TM Corp 1986. ftp://think.com/public/cm/starlisp/* info: customer-support@think.com documentation-order@think.com *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). 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. ftp://ftp.uu.net/languages/abc/* info: abc@cwi.nl list: abc-list@cwi.nl maintained by Steven Pemberton . 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. ftp://camille.is.s.u-tokyo.ac.jp/pub/acbl1/* info: matsu@is.s.u-tokyo.ac.jp 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). ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr/* 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. ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/* 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. list:ACTOR-L@hearn.nic.surfnet.nl http://www.cs.rulimburg.nl/~plugge/actor-l ftp://bommel.cs.rulimburg.nl:/pub/actor-l 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: adainfo@ajpo.sei.cmu.edu ftp repository: wsmr-simtel20.army.mil ftp info: ajpo.sei.cmu.edu ftp interpreters: stars.rosslyn.unisys.com:pub/ACE_8.0, for SunOS AdaEd compiler/interpreter for Unix, MS-DOS, Atari ST, Amiga wuarchive.wustl.edu:amiga/languages/ada/AdaEd1.11.0a.bin.lzh for Amiga cs.nyu.edu:pub/adaed 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. ftp://ajpo.sei.cmu.edu/public/ada9x/* 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. ADL - 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://ftp.uu.net/usenet/comp.sources.games/volume2 //wuarchive.wustl.edu/systems/amiga/fish/fish/f0/ff091 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. ftp://ftp.uu.net/vendor/adl/release 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. ftp://ftp.uu.net/usenet/comp.sources.games/volume2 AE - Application Executive. Brian Bliss An embeddable language, written as a C interpreter. ftp://sp2.csrd.uiuc.edu/pub/bliss/ae.tex.Z 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. AIDA - 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. ftp://rascal.ics.utexas.edu/pub/akcl-1-625.tar.Z 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). ALADIN - 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. ftp://ftp.inria.fr/INRIA/lang/alcool/* 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. ftp://research.att.com/dist/plan9man/05alef.ps.Z info: Phil Winterbottom ALEPH - 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. ftp://ftp.germany.eu.net/pub/programming/languages/LogicFunctional/alf* 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). ftp://locke.ccil.org/pub/retro/algol60-0.17.tar.gz 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: aljabr@fpr.com 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 ftp://cs.nyu.edu/pub/local/alloy/* 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). ALPS - 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: andf-tech@osf.org 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. ftp://anna.stanford.edu/pub/anna/* ANTLR - ANother Tool for Language Recognition. Parser generator, part of PCCTS (Purdue Compiler-Construction Tool Set). ftp://ecn.purdue.edu 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.) http://slacvm.slac.stanford.edu:5080/FIND/NAME/APESE/FULL 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: //ajpo.sei.cmu.edu/public/asis/* 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). ftp://cs.ubc.ca/pub/local/src/snacc/snacc1.1.tar.Z [?] 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. ftp://wowbagger.uni-bremen.de/pub/programming/lanugages/ASpecT/* 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 ftp://ftp.cognet.ucla.edu/alexis/am6* 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.) ftp://netlib.att.com/research/awk* 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. Used as the systems language on Honeywell's GCOS-3. "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. ftp://ftp.uni-kl.de/pub/languages/B.tar.Z 3. Jean-Raymond Abrial. Specification language similar to Z, but also supports development of C code from specifications. B Core UK, Magdalen Centre, Oxford Science Park, Oxford OX4 4GA. info: Ib.Sorensen@comlab.ox.ac.uk B-0 - Original name of FLOW-MATIC, Remington Rand. UNIVAC I or II ca. 1958. Babbage - GEC Marconi Ltd. Named after "the first programmer to slip schedule and go over budget". Low-level language, used on their OS4000 operating system. The British videotext system Prestel is programmed in Babbage. Article in Datamation, ca Oct, 1980[?] BABEL - 1. A subset of ALGOL 60, with many ALGOL W extensions. "BABEL, A New Programming Language", R.S. Scowen, Natl Phys Lab UK, Report CCU7, 1969. 2. Mentioned in The Psychology of Computer Programming, G.M. Weinberg, Van Nostrand 1971, p.241. 3. 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). BABYLON - Development environment for expert systems. ftp://gmdzi.gmd.de/gmd/ai-research/Software/* 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. BASCMP - A modification of STAGE2, used to implement the Basic Wisp translator. Implementing Software for Non-numeric Applications, W. M. Waite, P-H 1973. bash - Bourne Again SHell. GNU's command shell for Unix. ftp://prep.ai.mit.edu/pub/gnu/bash-1.10.tar.Z 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 X3.60-1978. list: basic@ireq.hydro.qc.ca BASIC AUTOCODER - Early system on IBM 7070. Listed in CACM 2(5):16 (May 1959). 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 Minix. bc - [Belinda's Calculator?] An interactive mini-language for numerical calculation. Part of the Unix toolkit since V7. Originally implemented by Belinda Cherry as a preprocessor for dc, supporting infix notation. The GNU toolkit contains a clone of it. ftp://prep.ai.mit.edu/pub/gnu 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, typeless and block-structured, and provides only one-dimensional arrays. Case is not significant, but conventionally reserved words begin with a capital. 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. BCPL had both procedures: 'Let foo(bar) Be command' and functions: 'Let foo(bar) = expression'. 'Valof $(..Resultis..$)' causes a compound command 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, which was subsequently reincarnated as AmigaDOS. "BCPL - The Language and its Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979. (See OCODE, INTCODE). Oxford BCPL differed slightly: Test-Ifso-Ifnot, and section brackets in place of $( $). 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). BeBOP - Combines sequential and parallel logic programming, object-oriented and meta-level programming. Both "don't know" nondeterminism and stream AND-parallelism. Prolog theories are first order entities and may be updated or passed in messages. Implemented by translation to NU-Prolog and PNU-Prolog. ftp://munnari.oz.au/pub/bebop.tar.Z info: Andrew Davidson BEGL - Back End Generator Language. A code generator description language. The input language for the back end generator BEG. "BEG - A Generator for Efficient 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. ftp://iraun1.ira.uka.de/pub/programming/cocktail/* 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, BELL L3. BER - Basic Encoding Rules. Provides a universal (contiguous) representation of data values. Used with ASN.1. 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. ftp://nexus.yorku.ca/pub/scheme/scm/bevan.shar 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 abstraction mechanism called "patterns", a generalization of classes, providing instantiation and hierarchical inheritance for all objects including procedures and processes. "Object-Oriented Programming in the BETA Programming Language", Ole Lehrmann et al, A-W June 1993, ISBN 0-201-62430-3. Mjolner Informatics ApS, implementations for Mac, Sun, HP, Apollo. info: info@mjolner.dk list: usergroup@mjolner.dk 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). Blazon - "From Blazon to Postscript", Daniel V. Klein, LoneWolf Systems, USENIX Symp on Very High Level Languages, Oct 1994. 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 (or allegedly, "System Software Implementation Language, Backwards"). 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. DEC BLISS-32 for VAX/VMS. BlooP - Douglas Hofstadter, 1979. Imperative language, designed for pedagogical purposes. Mechanizes primitive-recursive functions. Douglas Hofstadter, "Godel, Escher, and Bach: An Eternal Golden Braid", Basic Books, Chap 13. ISBN 0-465-02685-0. Implementation in Perl by John Cowan , 1994. (See FlooP). ftp://locke.ccil.org/pub/retro/bloop.* 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. Also known as Squiggol. "The Squiggolist", ed Johan Jeuring, published irregularly by CWI Amsterdam. BNF - Backus Normal Form, later renamed Backus-Naur Form at the suggestion of Donald Knuth. A formalism to express the productions of context-free grammars. First used in the specification of Algol-58. 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, p.26. ftp://ftp.mv.com/pub/ddj/packages/bob15.arc BOEING - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). Booster - Data parallel language. "The Booster Language", E. Paalvast, TR PL 89-ITI-B-18, Inst voor Toegepaste Informatica TNO, Delft, 1989. BOPL - Basic Object Programming Language. Minimal object-based language for teaching. "Object-Oriented Sype Systems", J. Palsberg et al, Wiley, 1993. 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. BRAVE - ? 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. bs - A BASIC-like interactive language, really a sort of super-extended calculator utility, shipped with some early System V Unixes. BSL - 1. Variant of IBM's PL/S systems language. Versions: BSL1, BSL2. 2. Backtracking Specification Language. A logic programming language fundamentally different from Prolog. A nondeterministic Algol-like language where variables cannot be assigned more than once except in controlled contexts. Each BSL program corresponds to an assertion in first order logic, and executing the program amounts to proving the assertion. Used to write an expert system CHORAL for harmonization of Bach-style chorales. "Report on the CHORAL Project: An Expert System for Chorale Harmonization", K. Ebcioglu, RC 12628, IBM TJWRC, 1987. 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. byacc - See yacc. 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. Partly due to its distribution with Unix, C became the language most widely used for software implementation. K&R C - C as originally described. "The C Programming Language", Brian Kernighan & Dennis Ritchie, P-H 1978. ANSI C - Revision of C, adding function prototypes, structure passing and assignment, and standardized library functions. ANSI X3.159-1989. ftp://ftp.cs.princeton.edu/pub/lcc/* http://www.cs.princeton.edu/software/lcc GNU C - Many extensions: compound statement within an expression, pointers to labels, local labels, nested functions, typeof operator, compound and conditional expressions and casts allowed as lvalues, long long ints, arrays of variable lengthmacros with variable number of arguments, nonconstant initializers, constructor expressions, labeled elements in initializers, case ranges, variable attributes. "Using and Porting GNU CC", R.M. Stallman, 16 Dec 1992. ftp://prep.ai.mit.edu/pub/gnu/gcc-2.3.3.tar.Z 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. Version: 6.x info: customer-support@think.com documentation-order@think.com 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, default function arguments, and pass by reference. It has streams for I/O. "The C++ Programming Language", Bjarne Stroustrup, A-W 1986 (1st edition), 1991 (2nd edition). ftp://grape.ecs.clarkson.edu/pub/msdos/djgpp/djgpp.zip for MS-DOS ftp://prep.ai.mit.edu/pub/gnu/g++-1.39.0.tar.Z for Unix draft ANSI C++ - X3J16 committee. Exceptions. C++ release 2.0 - May 1989. Added multiple inheritance, type-safe linkage, pointers to members, abstract classes. "C++ 2.0 Draft Reference Manual" C++ release 2.1 - Added nested types. "The Annotated C++ Reference Manual", M. Ellis et al, A-W 1990. C++ release 3.0 - Added templates. 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+@ - (formerly Calico). Bell Labs. Object-oriented language, uniformly represents all data as a pointer to a self-described object. Provides multiple inheritance with delegation, with control over which methods come from which delegated object. Default methodologies. Simple syntax, with emphasis on graphics. Originally used for prototyping of telecommunication services. "A Dynamic C-Based Object-Oriented System for Unix", S. Engelstad et al, IEEE Software 8(3):73-85 (May 1991). "The C+@ Programming Language", J. Fleming, Dr Dobbs J, Oct 1993, pp.24-32. Implementation for SunOS, compiles to Vcode. Unir Tech, (800)222-8647. info: Jim Vandendorpe C-10 - Improved version of COLINGO. Sammet 1969, p.702. C with Classes - Short-lived predecessor to C++. "Classes: An Abstract Data Type Facility for the C Language", B. Stroustrup, CSTR-84 Bell Labs, Apr 1980. Also in SIGPLAN Notices (Jan 1982). 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 1974. 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 1981). 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, 1989. Calico - See C+@. 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). CAML - 1. Categorical Abstract Machine Language. G. Huet and G. Cousineau. A dialect 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://ftp.inria.fr/INRIA/caml/V3.1 info: caml-light@margaux.inria.fr list:caml-list@margaux.inria.fr 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, and Mac. Version: 0.6 ftp://ftp.inria.fr/lang/caml-light/* info: caml-light@margaux.inria.fr Candle - Language used in Scorpion environment development system. Related to IDL? ftp://cs.arizona.edu/scorpion/* info: scorpion-project@cs.arizona.edu 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. C/ATLAS - DoD test language, variant of ATLAS. 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. info: cayley@maths.su.oz.au CBASIC - Gordon Eubanks, now at Symantec. A BASIC compiler. Evolved from/into EBASIC. cc - Concurrent Constraints. A family of languages generalizing CLP, including concurrency, atomic tell and blocking ask. "Concurrent Constraint Programming", V. Saraswat, MIT Press 1993. CC++ - Compositional C++. Extensions to C++ for compositional parallel programming. ftp://csvax.cs.caltech.edu/pub/comp info: Carl Kesselman 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 approach. 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). CDIF - CASE Data Interchange Format. Used by Cadre and other CASE tool vendors. CDL - 1. Computer Definition [Design?] Language. A hardware description language. "Computer Organization and Microprogramming", Yaohan Chu, P-H 1970. 2. Command Definition Language. Portion of ICES used to implement commands. Sammet 1969, p.618-620. 3. Compiler Description Language. C.H.A. Koster, 1969. Intended for implementation of the rules of an affix grammar by recursive procedures. A procedure may be a set of tree-structured alternatives, each alternative is executed until one successfully exits. Used in a portable COBOL-74 compiler from MPB, mprolog system from SzKI, and the Mephisto chess computer. "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. Versions: CDL2 (used in an Algol 68 compiler at TU Berlin), CDLM used at Manchester. 4. Common Design Language. "Common Design Language", IBM, Software Engineering Inst, Sept 1983. 5. Control Definition Language. Ideas which contributed to Smalltalk. "Control Structures for Programming Languges", David A. Fisher, PhD Thesis, CMU 1970. Cecil - Object-oriented language combining multi-methods with a classless object model, object-based encapsulation, and optional static type checking. Distinguishes between subtyping and code inheritance. Includes both explicit and implicit parameterization of objects, types, and methods. "The Cecil Language: Specification and Rationale", C. Chambers, TR 93-03- 05, U Wash (Mar 1993). ftp://cs.uwashington.edu/pub/chambers/cecil-spec.ps.Z Cedar - Xerox PARC. 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. Used to develop the Cedar integrated programming environment. "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). CEEMAC+ - Graphics language for DOS 3.3 on Apple ][. CELIP - A cellular language for image processing. "CELIP: A cellular Language for Image Processing", W. Hasselbring , Parallel Computing 14:99-109 (1990). CELLAS - CELLular ASsemblies. A concurrent block-structured language. Mentioned in Attribute Grammars, LNCS 323, Springer, p.97. 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 (1987). CESP - Common ESP. AI Language Inst, Mitsubishi - Object-oriented extension of Prolog, a Unix-based version of ESP[3]. info: cesp-request@air.co.jp 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. ftp://mc.lcs.mit.edu/its/ai/lisp/cgol.fasl CHAMIL - Sperry Univac. A Pascal-like microprogramming language. "CHAMIL - A Case Study in Microprogramming Design", T.G. Weidner, SIGPLAN Notices 15(1):156-166 (Jan 1980). 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 . CHARM - 1. An explicitly parallel programming language based on C, for both shared and nonshared MIMD machines. "The CHARM(3.2) Programming Language Manual", UIUC (Dec 1992) ftp://a.cs.uiuc.edu/pub/CHARM list:charm@cs.uiuc.edu 2. Peter Nowosad, 1990. Block-structured imperative language, strongly typed, with ideas borrowed from Pascal, C, RTL2 and ARM Assembler. PD compiler for the Acorn. Review in Archive magazine? CHARM++ - An object-oriented parallel programming system, similar to CHARM but based on C++. TR 1796, UIUC. ftp://a.cs.uiuc.edu/pub/CHARM/Charm++ info: Sanjeev Krishnan 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. info: cras@bull.fr 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 - D.L. Abt. Language for systems programming, based on ALGOL 60 with extensions for structure and type declarations. "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. "CHILL User's Manual", ITU, 1986, ISBN 92-61-02601-X. CCITT/ISO/IEC International Standard ISO/IEC 9496, Recommendation Z.200, ISBN 82-61- 03801-8 ("The Blue Book", 1988?). Versions: CHILL-80, CHILL-84, CHILL-88. Forthcoming compiler by Cygnus, based on gcc. CHIP - 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. Constraints over integers, rationals and booleans. Symbolic constraints, cumulative constraints, and update demons. 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. V4 available from COSYTEC, 4 rue Jean Rostand, F91893 Orsay, France. info: CHIP-48 - Reimplementation of CHIP-8 for the HP-48 calculator. Andreas Gustafson , comp.sys.handhelds, Sep 1990. ftp://vega.hut.fi/pub/misc/hp48sx/asap/* 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. ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f5/ff537/CHIP8.lzh 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). CIAL - Interval constraint logic language. Contains a linear Gauss-Seidel constraint solver, in addition to the interval narrowing solver. Implemented as an extension to CLP(R). "Towards Practical Interval Constraint Solving in Logic Programming", C.K. Chiu et al, TR, Chinese U Hong Kong, 1994. Version 1.0 (beta) info: Jimmy Lee 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. Cigale - A parser generator language with extensible syntax. "CIGALE: A Tool for Interactive Grammar Construction and Expression Parsing", F. Voisin, Sci Comp Prog 7:61-86 (1986). 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). CIMS PL/I - Courant Institute of Mathematical Sciences PL/I. A PL/I subset. "CIMS PL/I", P.W. Abrahams, Courant Inst. 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 - 1. 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). 2. Constraint Language Abstract Machine. The underlying abstract machine in the implementation of CLP(R). Based on the WAM. "An Abstract Machine for CLP(R)", J. Joffar et al, Proc ACM SIGPLAN 92 COnf on Prog Lang and Impl, 1992, pp.128-139. Clarion - MS-DOS 4GL. CLASP - Computer Language for AeronauticS and Programming. NASA. Real- time language with focus on fixed-point math. Near subset of SPL[2], with some ideas from PL/I. "Flight Computer and Language Processor Study", Raymond J. Rubey, Management Information Services, Detroit, 1971. Classic-Ada - Object-oriented extension to Ada, said to be Smalltalk-like. Implemented as an Ada 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 Clean). 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, A-P 1981, pp.185-213. CLEO - Clear Language for Expressing Orders. ICL, 1960's. Used until early 1972 on Leo III mainframes. C-Linda - The most widely used variant of Linda, with C as the base language. Available from Sci Comp Assocs . CLIP - 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 language for developing expert systems, with the inferencing and representation capabilities of OPS5, and support for three paradigms: forward chaining rule-based, object-oriented and procedural. LISP-like syntax. Available for MS-DOS, comes with source code in C. COSMIC, U Georgia, (404) 542- 3265. Austin Code Works (512)258-0785. "Expert Systems: Principles and Programming", Joseph Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6. Versions: CLIPS 5.1, CLIPS/Ada 4.3, CLIPS6.0 (See PCLIPS). info: service@cossack.cosmic.uga.edu telnet: cosline@cosmic.uga.edu ftp://earth.rs.itd.umich.edu/mac.bin/etc/compsci/Clips/CLIPS 4.20 //ftp.ensmp.fr/pub/clips/clips-5.1/dos/clips //ftp.ensmp.fr/pub/clips/clips-5.0/doc/mac-clips-50 list: CLIPS-LIST@UGA.BITNET CLISP - Conversational LISP. A mixed English-like, Algol-like surface syntax for Interlisp. "CLISP: Conversational LISP", W. Teitelman, in Proc Third Intl Joint Conf on AI, Stanford, Aug 1973, pp.686-690. CLIX - "Overview of a Parallel Object-Oriented Language CLIX", J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987, pp.265-273. Clock - ? Mentioned in the documentation for TXL. 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]). ftp://parcftp.xerox.com/pcl/* CLP - 1. Cornell List Processor. List processing language, an extension of CORC, used for simulation. 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. info: CLP* - Derivative of CLP. "CLP* and Constraint Abstraction", T. Hickey, 16th POPL, ACM 1989, pp.125-133. CLP(sigma*) - "CLP(sigma*): Constraint Logic Programming with Regular Sets", C. Walinsky, Proc ICLP, 1989, pp.181-190. 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 immutable. Garbage collection is built in. 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. TED (a text editor), R (a document formatter), SWIFT (an operating system), and lp (a proof tool used for formal specification) have been written in CLU. "Abstraction and Specification in Program Development", Barbara Liskov and John Guttag, McGraw-Hill, 1986. "CLU Reference Manual", Barbara Liskov et al, LNCS 114, Springer 1981. contact: Paul R. Johnson ftp://pion.lcs.mit.edu/pub/clu/* - versions for Sun, VAX/VMS. //ftp.lcs.mit.edu/pub/pclu/* - portable version, compiles to C //ftp.is.titech.ac.jp/pub/clu2c/* - compiles to C info: clu2c-report@is.titech.ac.jp 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). ftp://ftp.cs.cornell.edu/pub/CML-0.9.8.tar.Z info: cml-bugs@cs.cornell.edu Cmm - C Minus Minus. Scripting language. ftp://ftp.std.com/vendors/CEnvi-Cmm/share CMS-2 - General purpose language used for command and control applications in the US Navy. Variants: CMS-2M and CMS-2Y. "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 Bancilon et al, in Advances in Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988. COALA - "COALA: The Object Code of the Compiler Producing System", S. Kruszewski et al, MERA, Warsaw 1974. 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 1985. A new ISO standard is expected in 1997. 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. ftp://neptune.inf.ethz.ch/pub/Coco (Oberon and modula-2 versions) //cs.ru.ac.za/pub/coco (C version) Code 2.0 - Large-grain dataflow language. Has a graphical interface for users to draw communication structure. "The CODE 2.0 Parallel Programming Language", P. Newton et al, Proc ACM Intl Conf on Supercomput, Jul 1992. info: Peter Newton 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 problems 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 - COMmon Algorithmic Language. 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 - Victor H. Yngve, MIT, 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. Implemented on IBM 7090. "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 superset 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 now includes CLOS, an extended LOOP macro, condition system, pretty printing, logical pathnames. "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. (See AKCL, CCL, DCL, KCL, MCL) list: common-lisp@ai.sri.com. ftp://lisp-rt1.slisp.cs.cmu.edu/pub/16e-* CMU Common LISP Version 16e //ftp.think.com/public/think/lisp:public-review.text Draft proposed ANS Common Lisp CommonLoops - Xerox. An object-oriented LISP. Led to CLOS. "CommonLoops: Merging Lisp and Object-Oriented Programming", D.G. Bobrow et al, SIGPLAN Notices 21(11):17-29 (Nov 1986). (See CLOS, PCL). ftp://arisia.xerox.com/pub/pcl/September-16-92-PCL-c.tar.Z - Pcl (Portable CommonLoops) info: CommonLoops@xerox.com Common Objects - H-P. An object-oriented LISP. "Inheritance and the Development of Encapsulated Software Components", A. Snyder, Proc 20th Hawaii Conf on Sys Sci, pp.227-238 (1987). 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, p.695. Computer Design Language - ALGOL-like language for computer design. "An ALGOL-like Computer Design 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). Concert/C - IBM TJWRC, July 1993. A parallel extension of ANSI C with asynchronous message passing. ftp://software.watson.ibm.com/pub/concert/cncrt.B1.tar.Z info: concert-c@watson.ibm.com CONCUR - "CONCUR, A Language for Continuous Concurrent Processes", R.M. Salter et al, Comp Langs 5(3):163-189 (1981). Concurrent Aggregates (CA) - 1990. Concurrent object-oriented language based on the Actor model plus RPC. Pure object oriented, single inheritance, with first class selectors, continuations and messages. "Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs", Andrew A. Chien. Compiler for CM5 and workstations. definition:http//www-csag.cs.uiuc.edu/papers/ca-report.ps implementation:http//www-csag.cs.uiuc.edu/projects/concert/release.html info:http//www-csag.cs.uiuc.edu 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://ftp.cs.kun.nl/pub/Clean/* - simulator for Mac, Sun3, Sun4 info: Concurrent CLU - Hamilton, Cambridge U, 1984. "Preserving Abstraction in Concurrent Programming", R. Cooper et al, IEEE Trans Soft Eng SE- 14(2):258-263 (Feb 1988). 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, 1983. Concurrent LISP - "A Multi-Processor System for Concurrent Lisp", S. Sugimoto et al, Proc 1983 Intl Conf parallel Proc, 1983 pp.135-143. Concurent Oberon - not a separate language, but rather a modification of the Oberon system. 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. condela - Connection Definition Language. A language for defining neural nets. Procedural and parallel. ftp://tut.cis.ohio-state.edu/pub/condela 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, based on coroutines rather than backtracking. 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 6(4):62-71. CONVERT - 1. String processing language, combined the pattern matching and transformation operations of COMIT with the recursive data structures of Lisp. "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). cooC - Concurrent Object-Oriented C. Toshiba. Concurrent object execution with synchronous or asynchronous message passing. Implemented for SunOS. SIGPLAN Notices 28(2) [?] ftp://tsbgw.isl.rdc.toshiba.co.jp/pub/toshiba/cooc-beta.1.1.tar.Z info:cooc@isl.rdc.toshiba.co.jp COOL - 1. Concurrent Object-Oriented Language. An extension of C++ with task-level parallelism for shared-memory multiprocessors. "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. info: Rohit Chandra 2. CLIPS Object-Oriented Language? CORAL - 1. 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. 2. U Wisconsin Madison. Language for deductive database. Prolog-like syntax with SQL-like extensions. Many evaluation techniques are supported. Implemented in C++. 3. Royal Signals and Radar Establishment, Malvern UK. Real-time system programming language, a derivative of JOVIAL and ALGOL-60. Strongly associated with MASCOT, a design technique for real time systems. Adopted as the British military standard from 1970 until the arrival of Ada. Versions: CORAL 64, CORAL 66. "Official Definition of CORAL 66", P.M. Woodward et al, HMSO, London, 1970, ISBN 0-11-470221-7. 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. CORTL - Carl McConnell. Intermediate language, a form of RTL? info: mcconnell@cs.uiuc.edu Coursewriter III - ca. 1976. Simple CAI language. "Coursewriter III, Version 3 Author's Guide", SH20-1009, IBM. COWSEL - COntrolled Working SpacE Language. Burstall and Popplestone, U Edinburgh, 1964-66. LISP-like semantics with FORTH-like stack, and reverse Polish syntax. 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, pp.49-62. 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. ftp://dravido.soar.cs.cmu.edu//usr/nemo/cparaops5/CParaOPS5-5.4.tar.Z CPL - 1. Combined Programming Language. U Cambridge and U London. A very complex language, syntactically based on ALGOL-60, with a pure functional subset. Provides the ..where.. form of local definitions. Strongly typed but has a "general" type enabling a weak form of polymorphism. Functions may be defined as either normal or applicative order. Typed array and polymorphic list structures. List selection is through structure matching. Partially implemented on the Titan (Atlas 2) computer at Cambridge. Led to the much simpler BCPL. "The Main Features of CPL", D.W. Barron et al, Computer J 6(2):134-143 (Jul 1963). 2. Conversational Programming Language. DEC. Language similar to PL/I, for DEC-10 and DEC-20. Manual: DEC-10-LCPLA-B-D. 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, p.232-240. 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://ftp.uu.net/usenet/comp.sources.reviewed/volume02/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 1977). 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 - "CS-4 Language Reference Manual and Operating System Interface", Ben M. Brosgol et al, Report IR-130-2, Intermetrics, Cambridge MA, Oct 1975. 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. CSL - 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. Esso and IBM. Language for industrial simulations. "Control and Simulation Language", J.N. Buxton et al, Computer J 5(3):194-199 (Oct 1962). Version: CSL 2 (1966 for IBM 7094). 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. Patnaik 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, pp.218-224. 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, p.253-255. CUPID - Graphic query language. "CUPID: A Graphic Oriented Facility for Support of Nonprogrammer Interactions with a Database", N. McDonald, PhD Thesis, CS Dept, UC Berkeley 1975. CuPit - Parallel language for neural networks. "CuPit - A Parallel Language for Neural Algorithms: Language Reference and Tutorial", Lutz Prechelt, TR, U Karlsruhe, 1993. ftp://ftp.ira.uka.de/pub/uni-karlsruhe/papers/cupit.ps.gz 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, ftp://locke.ccil.org/pub/retro 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. info: polar@cs.syr.edu 3. Scripting language in the Teleuse Motif GUI builder. 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). DAD - Declarative Ada Dialect. Dialect of Ada intended to aid rapid prototyping of Ada programs. Adds many features including manipulation of first-order functions, lazy evaluation, and streams. Implemented as a pre- processor to Ada. "DAD Defined", P.A. Bailes et al, TR-229, CS Dept, U Queensland. info: Dan Johnston 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-16 - assembly language for the Honeywell 2600 test station. DAP Fortran - "Efficient High Speed Computing with the Distributed Array Processor", P.M. Flanders et al, pp.113-127 (1977). [same as Fortran- Plus?] 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). Dataparallel-C - Hatcher & Quinn, U New Hampshire. C with parallel extensions, based on an early version of C*. For Intel iPSC-2 and nCube. Data Parallel Haskell - Adds PODs and POD comprehensions to Haskell. (POD=Parallel Object with arbitrary Dimension) "Data Parallel Haskell: Mixing Old and New Glue", J. Hill. ftp://redstar.dcs.qmw.ac.uk/cpc/jon_hill/dpGlue.ps.Z 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. info: maya@super.org 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, CA. dc - Desk Calculator. A stack-based mini-language and its interpreter, shipped with every Unix since V7. 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, 1991. 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. 3. Language for system specification of simulation execution. "System Description and the DELTA Language", E. Holback-Hansen et al, DELTA Proj Rep 4, Norweg Comput Ctr, Feb 1977. 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 1984. 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 COBOL preprocessor. 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). Deva - Functional. "The Generic Development Language Deva: Presentation and Case Studies", M. Weber et al, LNCS 738, Springer 1993. DEX - W. van Oortmerssen. A cross between Modula-2 and C. ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f7/ff743/TurboDEX.lzh Version 1.2 for Amiga DFC - Dataflow language. "Data Flow Lanuage DFC: Design and Implementation", S. Toshio et al, Systems and Computers in Japan, 20(6):1- 10 (Jun 1989). DG/L - 1. Descriptive Geometry Language. Early CAD/CAE language, used light pen. "Interactive Graphic Consoles - Environment and Software", R.L. Beckermeyer, 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. DIALECT - High-level language for LALR grammars. Part of Software Refinery from Reasoning Systems. info: help@reasoning.com 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, Jan 1981. A de facto standard intermediate language for Ada programs. An attributed tree 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 Interactive Business Oriented Language. DEC, 1970. FORTRAN syntax with BCD arithmetic. Versions for PDP-8 and RT-11. ANSI X3.165-1988. 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 (but never named) in A Discipline of Programming, E. Dijkstra, P-H 1976. Dijkstra later (1972) referred to this language as DOVPA (Dijkstra's Own Version of Pidgin Algol). 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. DinnerBell - Object-oriented dataflow language with single assignment. "Object-Oriented Load Distribution in DinnerBell", S. Kono et al, in TOOLS Pacific 90. DINO - Data parallel language, a superset of C. "The DINO Parallel Programming Language", M. Rosing et al, J Parallel Dist Comp 13(9):30-42 (Sep 1991). Implemented using ALADIN. "DINO Parallel Programming Language", M. Rosing et al, CU-CS-457-90, U Colorado, April 1990. ftp://ftp.cs.colorado.edu/pub/cs/distribs/dino/* 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 Design and Implementation of DIstributed Smalltalk", J. Bennett, SIGPLAN Notices 22(12):318-330 (Dec 1980). DL/1 - Query language, linear keyword. DLG - DFA-based Lexical analyzer Generator. Part of PCCTS (Purdue Compiler-Construction Tool Set). ftp://ecn.purdue.edu DLP - Logic programming similar to Prolog, combined with parallel object orientation similar to POOL. Supports distributed backtracking over the results of a rendezvous between objects. Multi-threaded objects have autonomous activity and may simultaneously evaluate method calls. "DLP: A Languag