Subject: The Language List V1.9 Date: Wed, 13 Jan 1993 19:38:08 GMT [This contains all 9 p

Master Index Current Directory Index Go to SkepticTank Go to Human Rights activist Keith Henson Go to Scientology cult

Skeptic Tank!

Newsgroups: comp.lang.misc Subject: The Language List V1.9 Message-ID: From: (Bill Kinnersley) Date: Wed, 13 Jan 1993 19:38:08 GMT Organization: University of Kansas Computer Science Dept Lines: 975 [This contains all 9 parts, concatenated.] The Language List - Version 1.9, January 13, 1993 Collected information on about 2000 computer languages, past and present. Currently maintained by: Bill Kinnersley Computer Science Department University of Kansas Lawrence, KS 66045 Version 1.8: Sept 1, 1992 Version 1.7: Apr 6, 1992 Version 1.6: Jan 15, 1992 Version 1.5: Nov 10, 1991 Version 1.4: Sept 8, 1991 Version 1.3: July 8, 1991 Version 1.2: May 30, 1991 Version 1.1: May 1, 1991 Version 1.0: Mar 7, 1991 Started by: Tom Rombouts Ashton-Tate Product Development 20101 Hamilton Avenue, Torrance, CA 90277 Work: (213)538-7108 Home: 535 Esplanade, #502 Redondo Beach, CA 90277 Ans Svc: (213)543-3811 USENET: This document is intended to become one of the longest lists of computer programming languages ever assembled (or compiled). Its purpose is not to be a definitive scholarly work, but rather to collect and provide the best information that we can in a timely fashion. Its accuracy and completeness depends on the readers of Usenet, so if you know about something that should be added, please help us out. Over 100 netters have already contributed to this effort. We hope that this list will continue to evolve as a useful resource available to everyone on the net with an interest in programming languages. "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, but the SML core syntax would be frustrating to write programs in. Other languages have purposely omitted essential features like I/O from their definition because they were never intended to be used without a standard library (C) or interface (Smalltalk-80), or because they constitute the command language for a particular product or system. Still other languages are by their very nature extensible, and the number of macro packages built on TeX for example could be called an endless list of separate "languages". Brand names - You might wonder why we do include a number of commercial products such as Turbo Pascal. Usually these items offer non-standard extensions to the base language. This has been particularly true in the varieties of BASIC and Prolog. But also one could argue that in a strict sense Microsoft C and Turbo C for example are distinct languages. Another reason for including entries of this type is that many languages are proprietary, appearing only in a certain product. Such languages may be distinctive and interesting and deserve to be here. On the other hand we don't want the list to become a catalog of commercial programming 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 making any remarks that are clearly subjective, such as calling a language "powerful". Nevertheless some comments might still be construed this way. For instance saying that Pascal is "ALGOL-like" could offend both some ALGOL and some Pascal users. Also, some questions of historical origin are not universally agreed upon. Classification - It's been suggested that the languages in this list should be arranged into categories, but to do so would be extremely difficult. For every classification scheme there wlll be a large proportion of languages that do not fit. The languages are therefore listed alphabetically, and in fact we think that this is the most useful organization. You'll find that the following categories have been referred to in the list, but we must emphasize that most languages are not purely one or the other, and we are really categorizing language features. Imperative language A language which operates by a sequence of commands that change the value of data elements. Typified by assignments and iteration. Declarative language A language which operates by making descriptive statements about data and relations between data. The algorithm is hidden in the semantics of the language. This category encompasses both applicative and logic languages. Examples of declarative features are set comprehensions and pattern-matching statements. Procedural language A language which states how to compute the result of a given problem. Encompasses both imperative and functional languages. Applicative language A language that operates by application of functions to values, with no side effects. A functional language in the broad sense. Functional language In the narrow sense, a functional language is one that operates by use of higher-order functions, building operators that manipulate functions directly without ever appearing to manipulate data. Example: FP. Definitional language An applicative language containing assignments interpreted as definitions. Example: Lucid. Single Assignment language An applicative language using assignments with the convention that a variable may appear on the left side of an assignment only once within the portion of the program in which it is active. Dataflow language A language suitable for use on a dataflow architecture. Necessary properties include freedom from side effects, and the equivalence of scheduling constraints with data dependencies. Examples: Val, Id, SISAL, 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 true? (gi's are the goals.) Further clauses are inferred using resolution. One clause is selected containing p as an assumption, another containing p as a consequence, and p is eliminated between them. If the two p's have different arguments they must be unified, using the subsitution with the fewest constraints that makes them the same. Logic languages try alternative resolutions for each goal in succession, backtracking in a search for a common solution. OR-parallel languages try alternative resolutions in parallel, while AND-parallel languages try to satisfy several goals in parallel. Constraint language A language in which a problem is specified and solved by a series of constraining relationships. Object-Oriented language A language in which data and the functions which access it are treated as a unit. Concurrent language A concurrent language describes programs that may be executed in parallel. This may be either multiprogramming: sharing one processor multiprocessing: separate processors sharing one memory 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. 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. 473L Query - English-like query language for Air Force 473L system. Sammet 1969, p.665. 9PAC - 709 PACkage. 1959. Report generator for IBM 7090. Sammet 1969, p.314. *LISP - ("StarLISP") Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking Machines Corp. A data-parallel extension of Common LISP for the Connection Machine. "The Essential *LISP Manual", TM Corp 1986. ftp:, a *LISP simulator. info: *MOD - ("StarMOD") Concurrent language combining the modules of Modula and the communications of Distributed Processes. "*MOD - A Language for Distributed Programming", R.P. Cook, IEEE Trans Soft Eng SE-6(6):563-571 (Nov 1980). A0 or A-0 - Possibly the first compiler ever. Grace Hopper's team at Remington Rand, 1952, for the UNIVAC I or II. Later internal versions: A- 1, A-2, A-3, AT-3. AT-3 was released as MATH-MATIC. Sammet 1969, p.12. AADL - Axiomatic Architecture Description Language. "AADL: A Net-Based Specification Method for Computer Architecture Design", W. Damm et al in Languages for Parallel Architectures, J.W. deBakker ed, Wiley 1989. ABC - 1. Leo Geurts, Lambert Meertens, Steven Pemberton. Simple interactive language designed for quick easy programming. Includes a programming environment with syntax-directed editing, suggestions, persistent variables and multiple workspaces and infinite precision arithmetic. "An Alternative Simple Language and Environment or PC's", S. Pemberton, IEEE Software 4(1):56-64 (Jan 1987). "The ABC Programmer's Manual", Leo Geurts et al, P- H 1989. ftp: and Unix source, MS-DOS, Mac and Atari ST executables. info: list: maintained by Steven Pemberton . 2. (A="argument",B="basic value",C=?). Intermediate code for the ABC abstract machine for implementation of functional languages. P. Koopman, "Functional Programs as Executable Specifications", 1990. [?] ABCL/1 - An Object-Based Concurrent Language. Yonezawa, U Tokyo 1986. Language for the ABCL concurrent (MIMD) system. Asynchronous message passing to objects. Implementations in KCL and Symbolics LISP available from the author. "ABCL: An Object-Oriented Concurrent System", A. Yonezawa ed, MIT Press 1990. ftp: info: ABCL/c+ - Concurrent object-oriented language, an extension of ABCL/1 based on C. "An Implementation of An Operating System Kernel using Concurrent Object Oriented Language ABCL/c+", N. Doi et al in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988. ABCL/R - Yonezawa, Tokyo Inst Tech 1988. Reflective concurrent object- oriented language. "Reflection in an Object-Oriented Concurrent Language", T. Watanabe et al, SIGPLAN Notices 23(11):306-315 (Nov 1988). ABLE - Simple language for accountants. "ABLE, The Accounting Language, Programming and Reference Manual," Evansville Data Proc Center, Evansville, IN, Mar 1975. Listed in SIGPLAN Notices 13(11):56 (Nov 1978). ABSET - U Aberdeen. Early declarative language. "ABSET: A Programming Language Based on Sets", E.W. Elcock et al, Mach Intell 4, Edinburgh U Press, 1969, pp.467-492. ABSYS - U Aberdeen. Early declarative language, anticipated a number of features of Prolog. "ABSYS: An Incremental Compiler for Assertions", J.M. Foster et al, Mach Intell 4, Edinburgh U Press, 1969, pp.423-429. Accent - Very high level interpreted language with strings, tables, etc. Strongly typed, remote function calls. CaseWare Inc. Access - English-like query language used in the Pick OS. ACL - A Coroutine Language. A Pascal-based implementation of coroutines. "Coroutines", C.D. Marlin, LNCS 95, Springer 1980. ACOM - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). ACP - Algebra of Communicating Processes. "Algebra of Communicating Processes with Abstraction", J.A. Bergstra & J.W. Klop, Theor Comp Sci 37(1):77-121 (1985). (compare CCS). ACT++ - Concurrent extension of C++ based on actors. "ACT++: Building a Concurrent C++ With Actors", D.G. Kafura TR89-18, VPI, 1989. ACT ONE - Specification language. "An Algebraic Specification Language with Two Levels of Semantics", H. Ehrig et al, Tech U Berlin 83-03 Feb 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 Interactive Systems for Experimental Applied Mathematics, A-P 1968. Actor - Charles Duff, Whitewater Group ca 1986. Object-oriented language for Microsoft Windows. Pascal/C-like syntax. Uses a token-threaded interpreter. Early binding is an option. "Actor Does More than Windows", E.R. Tello, Dr Dobb's J 13(1):114-125 (Jan 1988). Actors - C. Hewitt. A model for concurrency. "Laws for Communicating Parallel Processes", C. Hewitt et al, IFIP 77, pp. 987-992, N-H 1977. "ACTORS: A Model of Concurrent Computation in Distributed Systems", Gul A. Agha, Cambridge Press, MA, 1986. Actra - An exemplar-based Smalltalk. LaLonde et al, OOPSLA '86. Actus - Pascal with parallel extensions, similar to the earlier Glypnir. Parallel constants, index sets. Descendants include Parallel Pascal, Vector C, and CMU's recent language PIE. "A Language for Array and Vector Processors," R.H. Perrott, ACM TOPLAS 1(2):177-195 (Oct 1979). Ada - (named for Ada Lovelace (1811-1852), arguably the world's first computer programmer.) Jean Ichbiah's team at CII Honeywell, for the U.S. Department of Defense, 1980. Ada is a large, complex block-structured language aimed primarily at embedded computer applications. It has facilities for real-time response, concurrency, hardware access, and reliable run-time error handling. In support of large-scale software engineering, it emphasizes strong typing, data abstraction and encapsulation. The type system uses name equivalence and includes both subtypes and derived types. Both fixed and floating point numerical types are supported. Control flow is fully bracketed: if-then-elsif-end if, case-is-when-end case, loop-exit-end loop, goto. Subprogram parameters are in, out, or inout. Variables imported from other packages may be hidden or directly visible. Operators may be overloaded, and so may enumeration literals. There are user-defined exceptions and exception handlers. An Ada program consists of a set of packages encapsulating data objects and their related operations. A package has a separately compilable body and interface. Ada permits generic packages and subroutines, possibly 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). info: ftp repository: ftp info: ftp interpreters:, for SunOS AdaEd compiler/interpreter for Unix, MS-DOS, Atari ST, Amiga for Amiga Ada 83 - The original Ada, as opposed to Ada 9X. Ada 9X - Revision of Ada currently under development. ftp: mailing list: Chris Anderson (Ada 9X Project Manager) Ada++ - Object-oriented extension to Ada, implemented as a preprocessor. ADAM - A DAta Management system. Adaplex - An extension of Ada for functional databases. "Adaplex: Rationale and Reference Manual 2nd ed", J.M. Smith et al, Computer Corp America, Cambridge MA, 1983. ADAPT - Subset of APT. Sammet 1969, p.606. ADD 1 TO COBOL GIVING COBOL - Bruce Clement. Tongue-in-cheek suggestion for an object-oriented COBOL. SIGPLAN Notices 27(4):90-91 (Apr 1992). ADES - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). Version: ADES II. 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: pub/games/ /systems/amiga/fish/fish/f0/ff091 2. Ada Development Language. R.A. Lees, 1989. AdLog - Adds a Prolog layer to Ada. "AdLog, An Ada Components Set to Add Logic to Ada", G. Pitette, Proc Ada-Europe Intl Conf Munich, June 1988. ADM - Picture query language, extension of Sequel2. "An Image-Oriented Database System", Y. Takao et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp.527-538. ADS - Expert system. ADVSYS - David Betz, 1986. An adventure language, object-oriented and LISP-like. ftp: AE - Application Executive. Brian Bliss An embeddable language, written as a C interpreter. ftp: AED - Automated Engineering Design (aka ALGOL Extended for Design). MIT ca 1965 by Doug Ross (now at Softech). Systems language for IBM 7090 and 360, an extension of ALGOL-60 with records, pointers, and dynamic allocation. DYNAMO II was written in AED. "The Automated Engineering Design (AED) Approach to Generalized Computer-Aided Design", D.T. Ross, Proc ACM 22nd Natl Conf, 1967. Sammet 1969 and 1978. Versions: AED-0, AED-1, AED-JR. Aeolus - Concurrent language with atomic transactions. "Rationale for the Design of Aeolus", C. Wilkes et al, Proc IEEE 1986 Intl Conf Comp Lang, IEEE 1986, pp.107-122. AESOP - An Evolutionary System for On-line Programming. Early interactive query system with light pen for IBM 1800. "AESOP: A Final Report: A Prototype Interactive Information Control System", J.K. Summers et al, in Information System Science and Technology, D. Walker ed, 1967. Sammet 1969, p.703. AFAC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). AGORA - Distributed object-oriented language.[?] AHPL - A Hardware Programming Language. Hill & Peterson. A register-level language, some of whose operators resemble APL. "Digital Systems: Hardware Organization and Design", F. Hill et al, Wiley 1987. HPSIM2: a function- level simulator, available from Engrg Expt Sta, U Arizona. 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. AIMACO - AIr MAterial COmmand compiler. Modification of FLOW-MATIC. Supplanted by COBOL. Sammet 1969, p.378. AKCL - Austin Kyoto Common LISP. Bill Schelter. Improvements to KCL. ftp: 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", U. Kastens et al, LNCS 141, Springer 1982. 2. Interactive math for IBM 360. "A Conversational System for Engineering Assistance: ALADIN", Y. Siret, Proc Second Symp Symb Algebraic Math, ACM Mar 1971. ALAM - Symbolic math, especially for General Relativity. "ALAM Programmer's Manual", Ray D'Inverno, 1970. (See CLAM). ALC - Assembly Language Compiler. Alternative name for IBM 360 assembly language. (cf. BAL). ALCOR - Subset of ALGOL. Sammet 1969, p.180. Aldat - Database language, based on extended algebra. Listed by M.P. Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989. [?] ALDES - ALgorithm DEScription. "The Algorithm Description Language ALDES", R.G.K. Loos, SIGSAM Bull 14(1):15-39 (Jan 1976). ALDiSP - Applicative Language for Digital Signal Processing. 1989, TU Berlin. Functional language with special features for real-time I/O and numerical processing. "An Applicative Real-Time Language for DSP- Programming Supporting Asynchronous Data-Flow Concepts", M. Freericks in Microprocessing and Microprogramming 32, N-H 1991. ALEC - A Language with an Extensible Compiler. Implemented using RCC on an ICL 1906A. "ALEC - A User Extensible Scientific Programming Language", R.B.E. Napper et al, Computer J 19(1):25-31. 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. ftp:* info: Rudolf Opalla Alfl - Paul Hudak , Yale 1983. Functional, weakly typed, lazy. Implemented as a preprocessor to the Orbit Scheme compiler, by transforming laziness into force-and-delay. "Alfl Reference Manual and Programmer's Guide", P. Hudak, YALEU/DCS/RR322, Yale U, Oct 1984. (See 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 for scientific computations, ALGOL 60 was small and elegant. It was the first language to be described in BNF. There were three lexical representations: reference, hardware and publication. Only three basic types: integer, real and boolean. Arrays had lower bounds. Dynamic arrays. Strong typing. Data hiding with 'own' variables. No user-defined types. ALGOL 60 was the first block-structured language, with nested procedures and blocks, nested syntax, compound statement with begin-end. Keywords. Conditional expression. Introduced :=, if-then-else, very general 'for' loops. Switch declaration (an array of statement labels) generalizing FORTRAN's computed goto. Procedures were recursive, and parameters were pass-by-value and pass-by-name. "Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM 3(5):299-314 (May 1960). ALGOL 60 Modified - "A Supplement to the ALGOL 60 Revised Report", R.M. DeMorgan et al, Computer J 19(4):364 and SIGPLAN Notices 12(1) 1977. Erratum in Computer J 21(3):282 (Aug 1978) applies to both. ALGOL 60 Revised - "Revised Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM 6(1):1-17 (Jan 1963). ALGOL 68 - Adriaan van Wijngaarden et al. The communication and efficient execution of algorithms. By contrast with ALGOL 60, ALGOL 68 was large and complex, and posed difficulties for both implementors and users. Structural equivalence. Automatic type conversion. Flexible arrays. No abstract data types. if-then-elif-fi, for-from-by-to-while-do-od, integer case statement with 'out' clause, skip statement, generalized loops, goto. Blocks, procedures and user-defined operators. Procedure parameters. No separate compilation. Concurrent execution (cobegin/coend) and semaphores. Generators heap and loc for dynamic allocation. ALGOL 68 Revised - "Revised Report on the Algorithmic Language ALGOL 68," A. Van Wijngaarden et al, Acta Informatica 5:1-236 (1975), also Springer 1976, and SIGPLAN Notices 12(5):1-70 (May 1977). ALGOL 68C - Variant of ALGOL 68 developed at Cambridge U Computing Lab in the 70's. Used to implementation language for the CHAOS OS for the CAP capability computer. ALGOL 68RS - An extension of ALGOL 68 which supports function closures. Royal Signals Research Establishment, Malvern UK. ALGOL 68S - ALGOL 68 Subset. "A Sublanguage of ALGOL 68", P.G. Hibbard, SIGPLAN Notices 12(5) (May 1977). Shareware compiler from Charles Lindsey , Version 2.3 for Sun3's under OS4.x and Atari under GEMDOS (or potentially other machines supported by the Amsterdam Compiler Kit). ALGOL C - Clive Feather, Cambridge U, ca. 1981. Variant of ALGOL 60; added structures and exception handling. Designed for beginning students. ALGOL W - Derivative of ALGOL 60. "A Contribution to the Development of Algol", N. Wirth, CACM 9(6):413-431 (June 1966). ALGOL X - Generic term for the successor to ALGOL 60. The three designs proposed were by Wirth, Seegmuller and van Wijngaarden. Sammet 1969, p.194. ALGY - Early language for symbolic math. Sammet 1969, p.520. ALJABR - An implementation of MACSYMA for the Mac. Fort Pond Research. info: ALLOY - Combines functional, object-oriented and logic programming ideas, suitable for massively parallel systems. "The Design and Implementation of ALLOY, a Parallel Higher Level Programming Language", Thanasis Mitsolides , PhD Thesis NYU 1990. Version: ALLOY 2.0 ftp: ALM - Assembly Language for Multics. Language on the GE645. Critical portions of the Multics kernel were written in ALM. ALP - List-processing extension of Mercury Autocode. "ALP, An Autocode List-Processing Language", D.C. Cooper et al, Computer J 5:28-31 (1962). ALPAK - Subroutine package used by ALTRAN. "The ALPAK System for Nonnumerical Algebra on a Digital Computer", W.S. Brown, Bell Sys Tech J 42:2081 (1963). Sammet 1969, p.502. Alphard - Pascal-like. Introduced the notion of forms. "Abstraction and Verification in Alphard: Defining and Specifying Iteration and Generators", Mary Shaw, CACM 20(8):553-563 (Aug 1977). 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). AMPPL-II - Associative Memory Parallel Processing Language. Early 70's. AMTRAN - Automatic Mathematical TRANslation. NASA Huntsville, 1966. For IBM 1620, based on Culler-Fried System, requires special terminal. "AMTRAN: An Interactive Computing System", J. Reinfelds, Proc FJCC 37:537- 542, AFIPS (Fall 1970). ANCP - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). ANDF - Architecture Neutral Distribution Format. OSF's request for a universal intermediate language, allowing software to be developed and distributed in a single version, then installed on a variety of hardware. "Architecture Neutral Distribution Format: A White Paper", Open Software Foundation, Nov 1990. (See UNCOL). list: Andorra-I - The OR parallelism of Aurora plus the AND parallelism of Parlog. "Andorra-I: A Parallel Prolog System that Transparently Exploits both And- and Or-Parallelism", V.S Costa et al, SIGPLAN Notices 26(7):83-93 (July 1991). Andorra-Prolog - "Andorra-Prolog: An Integration of Prolog and Committed Choice Languages", S. Haridi et al, Intl Conf Fifth Gen Comp Sys 1988, ICOT 1988. Animus - "Constraint-Based Animation: The Implementation of Temporal Constraints in the Animus System", R. Duisberg, PhD Thesis U Washington 1986. Anna - ANNotated Ada. ca. 1980. Adds semantic assertions in the form of Ada comments. "ANNA - A Language for Annotating Ada Programs", David Luckham et al, Springer 1987. ftp: ANSI C - Revision of C, adding function prototypes, structure passing and assignment, and a standard set of library functions. ANSI X3.159-1989. ANSI C++ - X3J16 committee. (They're workin' on it.) ANSI FORTH - Soon-to-be-adopted standard. APAL - Array Processor Assembly Language. For the DAP parallel machine. APAREL - A PArse REquest Language. PL/I extension to provide BNF parsing routines, for IBM 360. "APAREL: A Parse Request Language", R.W. Balzer et al, CACM 12(11) (Nov 1969). APDL - Algorithmic Processor Description Language. ALGOL-60-like language for describing computer design, for CDC G-21. "The Description, Simulation, and Automatic Implementation of Digital Computer Processors", J.A. Darringer, Ph.D Thesis EE Dept, CMU May 1969. APL - A Programming Language. Ken Iverson Harvard U 1957-1960. Designed originally as a notation for the concise expression of mathematical algorithms. Went unnamed and unimplemented for many years. Finally a subset APL\360 was implemented in 1964. APL is an interactive array-oriented language with many innovative features, written using a non- standard character set. It is dynamically typed with dynamic scope. All operations are either dyadic infix or monadic prefix, and all expressions are evaluated from right to left. The only control structure is branch. APL introduced several functional forms but is not purely functional. "A Programming Language", Kenneth E. Iverson, Wiley, 1962. Versions: APL\360, 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. Applesoft BASIC - Version of BASIC on Apple computers. APPLOG - Unifies logic and functional programming. "The APPLOG Language", S. Cohen in Logic Programming, deGroot et al eds, P-H 1986, pp.39-276. APT - Automatically Programmed Tools. For numerically controlled machine tools. "APT Part Programming", McGraw-Hill. Versions: APT II (IBM 704, 1958), APT III (IBM 7090, 1961). Sammet 1969, p.605. APX III - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 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. 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). ASF - An algebraic specification language. "Algebraic Specification", J.A. Bergstra et al, A-W 1989. Ashmedai - Michael Levine Symbolic math package. Had an influence on SMP and FORM. Versions for Univac 1108 and VAX VMS. ASIS - Ada Semanic Interface Specification. An intermediate representation for Ada. (See Diana.) info: ASL - Algebraic Specification Language. "Structured Algebraic Specifications: A Kernel Language", M. Wirsing, Theor Comput Sci 42, pp.123-249, Elsevier 1986. ASM - Assembly language on CP/M machines (and a lot of others). ASN-1 - Abstract Syntax Notation. Data description language used by the Natl Center for Biotechnology Information. ASP - Query language? Sammet 1969, p.702. ASPOL - A Simulation Process-Oriented Language. An ALGOL-like language for computer simulation. "Process and Event Control in ASPOL", M.H. MacDougall, Proc Symp on Simulation of Computer Systems, NBS (Aug 1975). ASPEN - Toy language for teaching compiler construction. "ASPEN Language Specifications", T.R. Wilcox, SIGPLAN Notices 12(11):70-87 (Nov 1977). ASPIK - Multiple-style specification language. "Algebraic Specifications in an Integrated Software Development and Verification System", A. Voss, Diss, U Kaiserslautern, 1985. Aspirin - MITRE Corp. A language for the description of neural networks. For use with the MIGRAINES neural network simulator. Version: 6.0 ASPLE - Toy language. "A Sampler of Formal Definitions", M. Marcotty et al, Computing Surveys 8(2):191-276 (Feb 1976). ASSEMBLY - Early system on IBM 702. Listed in CACM 2(5):16 (May 1959). ASTAP - Advanced STatistical Analysis Program. Analyzing electronic circuits and other networks. "Advanced Statistical Analysis Program (ASTAP) Program Reference Manual", SH-20-1118, IBM, 1973. Astral - Based on Pascal, never implemented. "ASTRAL: A Structured and Unified Approach to Database Design and Manipulation", T. Amble et al, in Proc of the Database Architecure Conf, Venice, June 1979. AT-3 - Original name of MATH-MATIC. Sammet 1969, p.135. ATLAS - Abbreviated Test Language for Avionics Systems. _THE_ mil-spec language for automatic testing of avionics equipment. Replaced/upgraded Gaelic and several other test languages. "IEEE Standard ATLAS Test Language", IEEE Std 416-1976. Atlas Autocode - Autocode for the Ferranti Atlas, which may have been the first commercial machine with hardware-paged virtual memory. (See Autocode). 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. AUTOCODER - Alick E. Glennie, 1952. Possibly the first primitive compiler, it translated symbolic statements into machine language for the Manchester Mark I computer. Autocoding came to be a generic term for symbolic assembly language programming, and versions of Autocode were developed for many machines: Ferranti Atlas, Titan, Mercury and Pegasus, and IBM 702 and 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). Avalon/C++ - 1986. Fault-tolerant distributed systems, influenced by Argus. A concurrent extension of C++ with servers and transactions. "Camelot and Avalon: A Distributed Transaction Facility", J.L. Eppinger et al, Morgan Kaufmann 1990. Avalon/Common LISP - Prototype only. "Reliable Distributed Computing with Avalon/Common LISP", S.M. Clamen et al, CMU-CS-89-186 and Proc Intl Conf on Computer Languages, Mar 1990. AXIOM - IBM. Commercially available subset of Scratchpad. AXLE - An early string processing language. Program consists of an assertion table which specifies patterns, and an imperative table which specifies replacements. "AXLE: An Axiomatic Language for String Transformations", K. Cohen et al, CACM 8(11):657-661 (Nov 1965). AWK - Aho Weinberger Kernighan. 1978. Text processing/macro language. "The AWK Programming Language" A. Aho, B. Kernighan, P. Weinberger, A-W 1988. (See Bawk, Gawk, Mawk, Nawk, Tawk.) B - 1. Thompson, 1970. A systems language written for Unix on the PDP-11. Derived from BCPL, and very similar to it except for syntax. B was the predecessor of C. "The Programming Language B", S.C. Johnson & B.W. Kernighan, CS TR 8, Bell Labs (Jan 1973). 2. L. Meertens & S. Pemberton. Simple interactive programming language, the predecessor of ABC[1]. "Draft Proposal for the B Language", Lambert Meertens, CWI, Amsterdam, 1981. ftp: B-0 - Original name of FLOW-MATIC, Remington Rand. UNIVAC I or II ca. 1958. BABEL - 1. Mentioned in The Psychology of Computer Programming, G.M. Weinberg, Van Nostrand 1971, p.241. 2. Higher-order functional plus first-order logic language. "Graph-Based Implementation of a Functional Logic Language", H. Kuchen et al, Proc ESOP 90, LNCS 432, Springer 1990, pp.271-290. "Logic Programming with Functions and Predicates: The Language BABEL", Moreno-Navarro et al, J Logic Prog 12(3) (Feb 1992). BACAIC - Boeing Airplane Company Algebraic Interpreter Coding system. Pre-FORTRAN system on the IBM 701, IBM 650. BAL - Basic Assembly Language. What most people called IBM 360 assembly language. (See ALC). BALGOL - ALGOL on Burroughs 220. Sammet 1969, p.174. BALITAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). BALM - Block and List Manipulation. Harrison, 1970. Extensible language with LISP-like features and ALGOL-like syntax, for CDC 6600. "The Balm Programming Language", Malcolm Harrison, Courant Inst (May 1973). BAP - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Baroque - Boyer & Moore, 1972. Early logic programming language. "Computational Logic: Structure Sharing and Proof of program Properties", J. Moore, DCL Memo 67, U Edinburgh 1974. bash - Bourne Again SHell. GNU's command shell for Unix. ftp: 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 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 NELIAC - Version of NELIAC, post 1962. Sammet 1969, p.197. BCL - Successor to Atlas Commercial Language. "The Provisional BCL Manual", D. Hendry, U London 1966. BCPL - Basic CPL. Richards 1969. British systems language, a descendant of CPL and the inspiration for B and C. BCPL is low-level, block-structured and typeless, and provides only one-dimensional arrays. Case is not significant, but conventionally reserved words begin with a 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. 'Valof' or 'Resultis' cause a compound statement to produce a value. Parameters are call-by-value. Program segments communicate via the global vector where system and user variables are stored in fixed numerical locations in a single array. BCPL was used to implement the TRIPOS OS. "BCPL - The Language and its Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979. BDL - Block Diagram Compiler. A block-diagram simulation tool, with associated language. "A Software Environment for Digital Signal-Processing Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal Processing 6(1):31-43, (1987). BEGL - Back End Generator Language. A code generator description language. The input language for the back end generator BEG. "BEG - A Generator for Rfficient Back Ends", H. Emmelmann et al, SIGPLAN Notices 24(7):227-237 (Jul 1989). "BEG - A Back End Generator - User Manual", H. Emmelmann , GMD, U Karlsruhe 1990. ftp: 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. Bertrand - (named for the British mathematician Bertrand Russell (1872- 1970)). Wm. Leler. Rule-based specification language based on augmented term rewriting. Used to implement constraint languages. The user must explicitly specify the tree-search and the constraint propagation. "Constraint Programming Languages - Their Specification and Generation", W. Leler, A-W 1988, ISBN 0-201-06243-7. BETA - Kristensen, Madsen, Moller-Pedersen & Nygaard, 1983. Object-oriented language with block structure, coroutines, concurrency, strong typing, part objects, separate objects and classless objects. Central feature is a single abstrction mechanism called "patterns", a generalization of classes, providing instantiation and hierarchical inheritance for all objects including procedures and processes. "The BETA Programming Language", B.B. Kristensen et al, in Research Directions in Object-Oriented Programming, B.D. Shriver et al eds, MIT Press, 1987. Mjolner Informatics ApS, implementations for Mac, Sun, HP, Apollo. info: list: BIOR - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). BLAZE - Single assignment language for parallel processing. "The BLAZE Language: A Parallel Language for Scientific Programming", P. Mehrotra et al, J Parallel Comp 5(3):339-361 (Nov 1987). BLAZE 2 - Object-oriented successor to BLAZE. "Concurrent Object Access in BLAZE 2", P. Mehrotra et al, SIGPLAN Notices 24(4):40-42 (Apr 1989). B-LINE - Early CAD language. "B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall JCC 33 1968. BLISS - Basic Language for Implementation of System Software. W.A. Wulf, CMU ca. 1969. An expression language, block-structured, and typeless, with exception handling facilities, coroutines, a macro system, and a highly optimizing compiler. One of the first non-assembly languages for OS implementation. Gained fame for its lack of a goto. Also lacks implicit dereferencing: all symbols stand for addresses, not values. "BLISS: A Language for Systems Programming", W.A. Wulf et al, CACM 14(12):780-790 (Dec 1971). Versions: CMU BLISS-10 for the PDP-10. CMU BLISS-11, a cross compiler for PDP-11 running on PDP-10, to support the C.mmp/Hydra project. DEC BLISS-32 for VAX/VMS. Blosim - Block-Diagram Simulator. A block-diagram simulator. "A Tool for Structured Functional Simulation", D.G. Messerschmitt, IEEE J on Selected Areas in Comm, SAC-2(1):137-147, 1984. BLOX - A visual language. BLUE - Softech. A language proposed to meet the DoD Ironman requirements which led to Ada. "On the BLUE Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):10-15 (Oct 1978). BMASF - Basic Module Algebra Specification Language? "Design of a Specification Language by Abstract Syntax Engineering", J.C.M. Baeten et al, in LNCS 490, pp.363-394. BMDP - BioMeDical Package. UCB, 1961. Statistical language, first implemented in FORTRAN for the IBM 7090. BMF - Bird-Meertens Formalism. A calculus for derivation of a functional program from a given specification. "A Calculus of Functions for Program Derivation", R.S. Bird, in Res Topics in Fnl Prog, D. Turner ed, A-W 1990. BNF - Backus Normal Form, later renamed Backus-Naur Form at the suggestion of Donald Knuth. A formalism to express the productions of context-free grammars. 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: 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. 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. BSL - Variant of IBM's PL/S systems language. Versions: BSL1, BSL2. BUGSYS - Pattern recognition and preparing animated movies, for IBM 7094 and IBM 360. "BUGSYS: A Programming System for Picture Processing - Not for Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966). Burge's Language - Unnamed functional language based on lambda-calculus. Recursive Programming techniques", W.H. Burge, A-W 1975. Butterfly Common LISP - Parallel version of Common LISP for the BBN Butterfly machine. Butterfly Scheme - Parallel version of Scheme for the BBN Butterfly. C - Dennis Ritchie, Bell Labs, ca. 1972. Originally a systems language for Unix on the PDP-11, briefly named NB. Influenced by BCPL through Thompson's B. Terse, low-level and permissive. Preprocessor. C has rapidly become the language most widely used for software implementation. "The C Programming Language", Brian Kernighan & Dennis Ritchie, P-H 1978. C* - Thinking Machines, 1987. Superset of ANSI C, object-oriented, data- parallel with synchronous semantics, for the Connection Machine. Adds a data type, the 'domain', and a selection statement for parallel execution in domains. J.R. Rose et al, "C*: An Extended C Language for Data Parallel Programming", in Proc Second Intl Conf on Supercomputing, L.P. Kartashev et al eds, May 1987, pp.2-16. "C* Programming Manual", Thinking Machines Corp, 1986. info: C++ - Stroustrup . An object-oriented superset of C. In C++ a class is a user-defined type, syntactically a struct with member functions. Constructors and destructors are member functions called to create or destroy instances. A friend is a nonmember function that is allowed to access the private portion of a class. C++ allows implicit type conversion, function inlining, overloading of operators and function names, and default function arguments. It has streams for I/O and references. "The C++ Programming Language", Bjarne Stroustrup, A-W, 1986. (See G++). ftp: for MS-DOS C++ 2.0 - May 1989. Multiple inheritance, type-safe linkage, pointers to members, abstract classes. "C++ 2.0 Draft Reference Manual" C++ 2.1 - "Annotated C++ Reference Manual", B. Stroustrup et al, A-W 1990. C++Linda - "The AUC C++Linda System", C. Callsen et al, U Aalborg, in Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991. C-10 - Improved version of COLINGO. Sammet 1969, p.702. CADET - Computer Aided Design Experimental Translator. Sammet 1969, p.683. CAFE - "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS Symp on Job Control Languages--Past Present and Future, NCC, Manchester, England 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 - Bell Labs. Object-oriented language. IEEE Software, May 1991. CAMAL - CAMbridge ALgebra system. Symbolic math used in Celestial Mechanics and General Relativity. Implemented in BCPL on Titan. "CAMAL User's Manual", John P. Fitch, Cambridge U, England (1975). "The Design of the Cambridge Algebra System", S.R. Bourne et al, Proc 2nd Symp of Symb & Alg Manip, SIGSAM 1971. Camelot Library - "The Camelot Library", J. Bloch, in Guide to the Camelot Distributed Transaction Facility: Release I, A.Z. Spector et al eds, CMU 1988, pp.29-62. CAMIL - Computer Assisted/Managed Instructional Language. Used for CAI at Lowry AFB, CO. "The CAMIL Programming Language", David Pflasterer, SIGPLAN Notices 13(11):43 (Nov 1978). CAML - 1. Categorical Abstract Machine Language. G. Huet and G. Cousineau. A version of ML intermediate between LCF ML and SML. Lazy data structures. Built on the Categorical Abstract Machine. "The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989. ftp:, Version 3.1 info: 2. Language for preparation of animated movies, listed [?] 1976. CAML Light - Xavier Leroy. CAML subset. A small portable implementation, uses a bytecode interpreter written in C. Runs on Unix, MS-DOS, Macs and Amiga. Version: 0.4 ftp: info: Candle - related to IDL, Scorpion system? Cantor - Object-oriented language with fine-grained concurrency. Athas, Caltech 1987. "Multicomputers: Message Passing Concurrent Computers", W. Athas et al, Computer 21(8):9-24 (Aug 1988).. CASE SOAP III - Version of SOAP assembly language for IBM 650. Listed in CACM 2(5):16 (May 1959). CAT - Common Abstract Tree Language. R. Voeller & Uwe Schmidt, U Kiel, Germany 1983. Universal intermediate language, used by Norsk Data in their family of compilers. "A Multi-Language Compiler System with Automatically Generated Codegenerators, U. Schmidt et al, SIGPLAN Notices 19(6):202-2121 (June 1984). CATO - FORTRAN-like CAI language for PLATO system on CDC 1604. "CSL PLATO System Manual", L.A. Fillman, U Illinois, June 1966. CAYLEY - Symbolic math system for group theory. John Cannon, U Sydney, Australia, 1976. "An Introduction to the Group Theory Language CAYLEY", J. Cannon, Computational Group Theory, M.D. Atkinson ed, Academic Press 1984, pp.148-183. Current version: V3.7 for Sun, Apollo, VAX/VMS. info: CBASIC - Gordon Eubanks, now at Symantec. A BASIC compiler. Evolved from/into EBASIC. CCalc - Symbolic math for MS-DOS, available from Simtel. CCL - 1. Coral Common LISP. 2. Computer Control Language. English-like query language based on COLINGO, for IBM 1401 and IBM 1410. CCLU - Cambridge CLU. G. Hamilton et al, CUCL. CLU extended to support concurrency, distributed programming, remote procedure calls. contact: Jean Bacon CCP - Concurrent Constraint Programming. Not a language, but a general 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). 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 Definition Language. "CDL: A Compiler Implementation Language", in Methods of Algorithmic Language Implementation, C.H.A Koster, LNCS 47, Springer 1977, pp.341-351. "Using the CDL Compiler Compiler", C.H.A. Koster, 1974. Variant: CDLM used at Manchester. 4. Common Design Language. "Common Design Language", IBM, Software Engineering Inst, Sept 1983. Cedar - Superset of Mesa, adding garbage collection, dynamic types and a universal pointer type (REF ANY). A large complex language designed for custom Xerox hardware and the Cedar OS/environment. Data types: atoms, lists, ropes ("industrial strength" strings), conditions. Multiprocessing features include threads, monitors, signals and catch phrases. "A Description of the Cedar Language", Butler Lampson, Xerox PARC, CSL-83-15 (Dec 1983). "The Structure of Cedar", D. Swinehart et al, SIGPLAN Notices 20(7):230-244 (July 1985). CELIP - A cellular language for image processing. "CELIP: A cellular Language for Image Processing", W. Hasselbring , Parallel Computing 14:99-109 (1990). CELLSIM - Modeling populations of biological cells. "CELLSIM II User's Manual", C.E. Donaghey, U Houston (Sep 1975). CELP - Computationally Extended Logic Programming. "Computationally Extended Logic Programming", M.C. Rubenstein et al, Comp Langs 12(1):1-7 (1987). CESP - Common ESP. AI Language Inst, Mitsubishi - Object-oriented extension of Prolog, a Unix-based version of ESP[3]. info: 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: CHARITY - Cockett, Spencer, Fukushima, 1990-1991. Functional language based purely on category theory. "About Charity", J.R.B. Cockett et al. Version for Sun4 available from Tom Fukushima . Charme - Bull, 1989. A language with discrete combinatorial constraint logic aimed at industrial problems such as planning and scheduling. Implemented in C. An outgrowth of ideas from CHIP. Semantically nondeterministic, with choice and backtracking, similar to Prolog. "Charme Reference Manual", AI Development Centre, Bull, France 1990. info: CHARYBDIS - LISP program to display math expressions. Related to MATHLAB. Sammet 1969, p.522. CHASM - CHeap ASseMbler. Shareware assembler for MS-DOS. CHI - A wide spectrum language, the forerunner of Refine. "Research on Knowledge-Based Software Environments at Kestrel Institute", D.R. Smith et al, IEEE Trans Soft Eng, SE-11(11) (1985). CHILI - PL/I-like language for systems proramming. "CHILI, An Algorithmic Language for Systems Programming", CHI-1014, Chi Corp (Sep 1975). CHILL - CCITT HIgh-Level Language. ca. 1980. Real-time language widely used in European telecommunications. "An Analytical Description of CHILL, the CCITT High Level Language", P. Branquart, LNCS 128, Springer 1982. 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. Introduced the domain-variable model. "The Constraint Logic Programming Language CHIP", M. Dincbas et al, Proc 2nd Intl Conf on Fifth Generation Computer Sys, Tokyo (Nov 1988), pp.249-264. "Constraint Satisfaction in Logic Programming", Van Hentenryck. Available from COSYTEC, 4 rue Jean Rostand, F91893 Orsay, France. CHIP-48 - Reimplementation of CHIP-8 for the HP-48 calculator. Andreas Gustafson , comp.sys.handhelds, Sep 1990. ftp:* 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: CHISEL - An extension of C for VLSI design, implemented as a C preprocessor. It produces CIF as output. "CHISEL - An Extension to the Programming language C for VLSI Layout", K. Karplus, PHD Thesis, Stanford U, 1982. CHOCS - Generalization of CCS. "A Calculus of Higer-Order Communicating Systems", B. Thomsen, 16th POPL pp.143-154 (1989). CIEL - Object-oriented Prolog-like language. "CIEL: Classes et Instances En Logique", M. Gandriau, Thesis ENSEEIHT (1988). CIF - Caltech Intermediate Form. Geometry language for VLSI design, in which the primitives are colored rectangles. Mead & Conway, "Introduction to VLSI Systems", A-W 1980, Section 4.5. CIL - Common Intermediate Language. "Construction of a Transportable, Milti-Pass Compiler for Extended Pascal", G.J. Hansen et al, SIGPLAN Notices 14(8):117-126 (Aug 1979). CIP-L - CIP Language. (CIP stands for Computer-aided Intuition-guided Programming.) Wide-spectrum language for incremental program transformation. There are ALGOL-like and Pascal-like variants. "The Munich Project CIP, v.I: The Wide Spectrum Language CIP-L", LNCS 183, Springer 1984. Version: CIP85. CIRCAL - "CIRCAL and the Representation of Communication, Concurrency and TIme", G.J. Mitre, ACM TOPLAS 7(2):270-298 (1985). CITRAN - Caltech's answer to MIT's JOSS. Sammet 1969, p.217. CL - Control Language. Batch language for the IBM RPG/38, used in conjunction with RPG III. (See OCL). CLAM - Symbolic math, especially General Relativity. Implemented in ATLAS assembly language first, LISP later. "CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark, King's College London, 1971. (See ALAM). Clarion - MS-DOS 4GL. CLASP - Subset of SPL[2]. Classic-Ada - Object-oriented extension to Ada, said to be Smalltalk-like. Implemented as a preprocessor. Clean - Subset of Lean. Experimental lazy higher-order functional language with no syntactic sugaring (not even infix expressions or complex lists.) Also used as an intermediate language. Implemented via graph rewriting on the ABC abstract machine. "Clean - A Language for Functional Graph Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987. (See Concurrent 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, Academic Press 1981, pp.185-213. C-Linda - The most widely used variant of Linda, with C as the base language. Available from Sci Comp Assocs . 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 forward- chaining rule-based language with LISP-like syntax that has the inferencing and representation capabilities of OPS5. A language for developing expert systems, now with support for three paradigms: rule-based, object-oriented and procedural. Available for MS-DOS, comes with source code in C. COSMIC, U Georgia, (404) 542-3265. Austin Code Works (512)258-0785. Versions: CLIPS 5.1, CLIPS/Ada 4.3. (See PCLIPS). info: telnet: ftp: 4.20 list: CLIPS-LIST@UGA.BITNET CLIX - "Overview of a Parallel Object-Oriented Language CLIX", J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987, pp.265-273. CLOS - Common LISP Object System. Object-oriented extension to Common LISP, based on generic functions, multiple inheritance, declarative method combination and a meta-object protocol. A descendant of CommonLoops. "Common LISP Object System Specification X3J13 Document 88-002R", D.G. Bobrow et al, SIGPLAN Notices 23 (Sep 1988). (See PCL[2]). ftp: CLP - 1. Cornell List Processor. Extension of CORC for list processing. Sammet 1969, p.461. 2. Constraint Logic Programming. A programming framework based (as Prolog) on LUSH (or SLD) resolution, but in which unification has been replaced by a constraint solver. A CLP interpreter contains a Prolog-like inference engine and an incremental constraint solver. The engine sends constraints to the solver one at a time. If the new constraint is consistent with the collected constraints it will be added to the set. If it was inconsistent, it will cause the engine to backtrack. "Constraint Logic Programming", J. Jaffar et al, 14th POPL, ACM 1987. CLP(R) - Constraint Logic Programming (Real). Joxan Jaffar, TJWRC & S. Michaylov, Monash U, 1986. A constraint-logic programming language with real-arithmetic constraints. A superset of Prolog. "The CLP(R) Language and System", J. Jaffar et al, IBM RR RC16292 (#72336) (Nov 1990). Version: 1.2 for Unix, MS-DOS and OS/2, available from the author. info: CLP* - Derivative of CLP. "CLP* and Constraint Abstraction", T. Hickey, 16th POPL, pp.125-133, 1989. CLU - CLUster. 1974-1975. CLU is an object-oriented language of the Pascal family designed to support data abstraction, similar to Alphard. Introduced the iterator: a coroutine yielding the elements of a data object, to be used as the sequence of values in a 'for' loop. A CLU program consists of separately compilable procedures, clusters and iterators, no nesting. A cluster is a module naming an abstract type and its operations, its internal representation and implementation. Clusters and iterators may be generic. Supplying actual constant values for the parameters instantiates the module. There are no implicit type conversions. In a cluster, the explicit type conversions 'up' and 'down' change between the abstract type and the representation. There is a universal type 'any', and a procedure force[] to check that an object is a certain type. Objects may be mutable or immutable. Exceptions are raised using 'signal' and handled with 'except'. Assignment is by sharing, similar to the sharing of data objects in LISP. Arguments are passed by call-by-sharing, similar to call by value, except that the arguments are objects and can be changed only if they are mutable. CLU has own variables and multiple assignment. "CLU Reference Manual", Barbara Liskov et al, LNCS 114, Springer 1981. ftp: - versions for Sun, VAX/VMS. contact: Paul R. Johnson Cluster 86 - Shang, Nanjing U ca1986. Distributed object-oriented language. A cluster is a metatype. "Cluster: An Informal Report", L. Shang , SIGPLAN Notices 26(1):57-76 (Jan 1991). Versions for MS-DOS, Unix. CMAY - "A Microkernel for Distributed Applications", R. Bagrodia et al, Proc 5th Intl Conf Distrib Comp Sys IEEE 1985, pp.140-149. CML - 1. A query language. "Towards a Knowledge Description Language", A. Borgida et al, in On Knowledge Base Management Systems, J. Mylopoulos et al eds, Springer 1986. 2. Concurrent ML. J. Reppy, Cornell 1990. A concurrent extension of SML/NJ, supporting dynamic thread creation and synchronous message passing on typed channels. Threads are implemented using first-class continuations. "CML: A Higher-Order Concurrent Language", John H. Reppy, SIGPLAN Notices 26(6):293-305 (June 1991). ftp: info: CMS-2 - General purpose language used for command and control applications in the US Navy. "CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San Diego CA (Oct 1976). CO2 - (a blend of C and O2). Object-oriented database language. GIP Altair, Versailles, France. Francois Bancilhon et al, in Advances in Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988. 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. COBOL-1961 Extended - Short-lived separation of COBOL specifications. Sammet 1969, p.339. CoCoA - [Symbolic math? On a Radio Shack CoCo??? I have no idea.] Cocol - Coco Language. A language for writing left-attributed LL(1) grammars. Syntactic resemblance to Modula-2. Used as the input language for the Coco LL(1) parser generator, which produces Modula-2 output. "A Compiler Generator for Microcomputers", P. Rechenberg et al, P-H 1989. Version: Cocol-2 for the Coco-2 generator. CODIL - COntext Dependent Information Language. Early language for non- numerical business problems. "CODIL, Part1. The Importance of Flexibility", C.F. Reynolds et al, Computer J 14(3):217-220 (May 1971). COFF - Common Object File Format. Binary file format used by Unix System V Release 3. COGENT - COmpiler and GENeralized Translator. Compiler writing language with pattern-directed string and list processing features, for CDC 3600 and CDC 3800. A program consists of productions defining a context-free language, plus analysis and synthesis function generators, "COGENT Programming Manual", J.C. Reynolds, ANL-7022, Argonne, Mar 1965. Sammet 1969, p.638. "An Introduction to the COGENT System", J.C. Reynolds, Proc ACM 20th Natl Conf, 1965. COGO - Co-ordinate geometry problems in Civil Engineering. A subsystem of ICES. "Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug 1967). Coherent Parallel C - Data parallel language. "Coherent Parallel C", E. Felten et al in Third Conf on Hypercube Concurrent Computers and Appls, ACM, 1988, pp.440-450. COIF - FORTRAN with interactive graphic extensions for circuit design, on UNIVAC 1108. "An Interactive Software System for Computer-Aided Design: An Application to Circuit Projects", CACM 9(13) (Sep 1970). COLASL - Early system for numerical prolems on IBM 7030. Special character set for input of natural math expressions. Sammet 1969, pp.265-271. COLD - A sugared version of COLD-K. COLD-K - Formal design kernel language for describing (sequential) software systems in intermediate stages of their design. "An Introduction to COLD- K", H.B.M. Jonkers in Algebraic Methods: Theory, Tools and Applications, M. Wirsing et al eds, LNCS 394, Springer 1989, pp.139-205. COLINGO - Compile On-LINe and GO. MITRE Corp. English-like query system for IBM 1401. "The COLINGO System Design Philosophy", Information System Sciences, Proc Second Congress, 1965. Sammet 1969, p.664. COMAL - Benedict Loefstedt & Borge Christensen, 1973. A language for beginners, popular in Europe and Scandinavia. Pascal-like structure added to BASIC. COMAL-80 has been adopted as an introductory language in Denmark. "Beginning COMAL", B. Christensen, Ellis Harwood 1982. COMAL User's Group, 5501 Groveland Terr, Madison WI 53716. Version for Amiga. COMIT - 1957-8. The first string-handling and pattern-matching language, designed for applications in natural language translation. The user has a workspace organized into shelves. Strings are made of constituents (words), accessed by subscript. A program is a set of rules, each of which has a pattern, a replacement and goto another rule. "COMIT Programmer's Reference Manual", V.H. Yngve, MIT Press 1961. Sammet 1969, pp.416-436. COMIT II - "Computer Programming with COMIT II", Victor H. Yngve, MIT Press, 1963. Comma - COMputable MAthematics. Esprit project at KU Nijmegen. COMMEN - L.J. Cohen. Proc SJCC 30:671-676, AFIPS (Spring 1967). Commercial Translator - English-like pre-COBOL language for business data processing. Sammet 1969, p.378. Common LISP - An effort begun in 1981 to provide a common dialect of LISP. The result is a large and complex language, fairly close to a supeset of Maclisp. Lexical binding, data structures using defstruct and setf, closures, multiple values, types using declare, a variety of numerical types. Function calls allow optional, keyword and &rest arguments. Generic sequence can either be a list or an array. Formatted printing using escape characters. "Common LISP: The Language", Guy L. Steele, Digital Press 1984, ISBN 0-932376-41-X. "Common LISP: The Language, 2nd Edition", Guy L. Steele, Digital Press 1990, ISBN 1-55558-041-6. (See AKCL, CCL, DCL, KCL) list: ftp: CMU Common LISP Version 16e Draft proposed ANS Common Lisp CommonLoops - "CommonLoops: Merging Lisp and Object-Oriented Programming", D.G. Bobrow et al, SIGPLAN Notices 21(11):17-29 (Nov 1986). (See CLOS, PCL). ftp: - Pcl (Portable CommonLoops) info: CommonObjects - "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 Dewsign Language", Y. Chu, CACM 8(10) (Oct 1965). COMSL - COMmunication System Simulation Language. "COMSL - A Communication System Simulation Language", R.L. Granger, Proc FJCC 37 (1970). COMTRAN - "Communications Computer Language COMTRAN", D.W. Clark et al, RADC-TR-69-190, Rose Air Development Center, Griffiss AFB, NY (July 1969). Sammet 1969, p.324, 331. ConC - Concurrent extension of C based on DPN (decomposed Petri nets), using 'handshake' and 'unit' constructs. "ConC: A Language for Distributed Real-Time Programming", V.K. Garg et al, Computer Langs 16(1):5-18 (1991). CONCUR - "CONCUR, A Language for Continuous Concurrent Processes", R.M. Salter et al, Comp Langs 5(3):163-189 (1981). Concurrent C - 1. Extension of C with rendezvous-based concurrency. "Concurrent C", N.H. Gehani et al, Soft Prac & Exp 16(9):821-844 (1986). "The Concurrent C Programming Language", N. Gehani et al, Silicon Press 1989. Versions for most Unix systems available commercially from AT&T. 2. Extension of C with asynchronous message passing. [NOT the same as above] "Concurrent C: A Language for Distributed Systems", Y. Tsujino et al, Soft Prac & Exp 14(11):1061-1078 (Nov 1984). Concurrent C++ - "Concurrent C++: Concurrent Programming with Class(es)", N. Gehani, Bell labs 1986. Concurrent Clean - An implementation of CFP. A version of Clean for loosely coupled parallel architectures. Lazy, purely functional. Strongly typed (Milner/Mycroft), modules, functional I/O (including windows and mouse). Compiles to the PABC machine, based on graph rewriting. "Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U Nijmegen, Netherlands, 1989. Version: 0.8.1, October 1992. ftp: - simulator for Mac, Sun3, Sun4 info: Concurrent CLU - Hamilton, 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. Concurrent Pascal - Brinch Hansen, 1972-75. Extension of a Pascal subset, Sequential Pascal. The first language to support monitors. Access to hardware devices through monitor calls. Also processes and classes. "The Programming Language Concurrent Pascal", Per Brinch Hansen, IEEE Trans Soft Eng 1(2):199-207 (Jun 1975). Concurrent Prolog - Ehud "Udi" Shapiro, Yale . Guarded clauses and committed-choice [= dont-care] nondeterminism. A subset's been implemented, but not the full language. "Concurrent Prolog: Collected Papers", E. Shapiro, V.1-2, MIT Press 1987. (See Mandala). Concurrent Scheme - M. Swanson . A parallel Lisp, for the Mayfly. "Concurrent Scheme", R.R. Kessler et al, in Parallel Lisp: Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989. ConcurrentSmalltalk - Concurrent variant of Smalltalk (what did you expect). "Concurrent Programming in ConcurrentSmalltalk", Y. Yokote et al in Object-Oriented Concurrent Programming, A. Yonezawa et al eds, MIT Press 1987, pp.129-158. CONIC - "Dynamic Configuration for Distributed Systems", J. Kramer et al, IEEE Trans Soft Eng SE-11(4):424-436 (Apr 1985). Connection Machine LISP - LISP with a parallel data structure, the 'xapping', an array of values assigned to an array of sites. G.L. Steele et al, "Connection Machine LISP: Fine-Grained Parallel Symbolic Processing", in Proc 1986 ACM Conf on LISP and Functional Prog, Aug 1986, pp.279-297. "Connection Machine LISP Reference Manual", Thinking Machines Corp, Feb 1987. CONNIVER - AI language for automatic theorem proving. An outgrowth of PLANNER. Allowed multiple database contexts with hypothetical assertions. "The CONNIVER Reference Manual", D. McDermott & G.J. Sussman , AI Memo 259, MIT AI Lab, 1973. ConstraintLisp - Object-oriented constraint language based on CSP. An extension of Common Lisp and CLOS. "ConstraintLisp: An Object-Oriented Constraint Programming Language", Bing Liu et al, SIGPLAN Notices 27(11):17-26 (Nov 1992). CONSTRAINTS - Constraints using value inference. "CONSTRAINTS: A Language for Expressing Almost-Hierarchical Descriptions", G.J. Sussman et al, Artif Intell 14(1):1-39 (Aug 1980). Consul - Constraint-based [future-based?] language with LISP-like syntax. "Consul: A Parallel Constraint Language", D. Baldwin, IEEE Software 6(4):62-71. CONVERT - 1. String processing language, an extension of LISP with pattern matching and transformation operations. "Convert", A. Guzman et al, CACM 9(8):604- 615 (Aug 1966). 2. Early language to convert programs and data from one language to another. "CONVERT Manual", OLI Systems Inc (Oct 1976). COOL - 1. Concurrent Object-Oriented Language. A parallel version of C++. "COOL: A Language for Parallel Programming", R. Chandra et al in Languages and Compilers for Parallel Computing, D. Gelernter et al eds, MIT Press 1990, pp.126-148. 2. CLIPS Object-Oriented Language? CORAL - Class Oriented Ring Associated Language. L.G. Roberts, MIT 1964. Graphical display and systems programming on the TX-2. Used "rings" (circular lists) from Sketchpad. "Graphical Communication and Control Languages", L.B. Roberts, Information System Sciences: Proc Second Congress, 1965. Sammet 1969, p.462. CORAL 66 - Real-time system programming language, a derivative of JOVIAL and ALGOL-60. It was adopted as the British military standard from 1970 until the arrival of Ada. "Official Definition of CORAL 66", P.M. Woodward et al, HMSO, London, 1970. CORBIE - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). CORC - CORnell Compiler. Simple language for student math problems. "The Cornell Computing Language", R.W. Conway et al, CACM 6(6):317-320 (Jun 1963) Sammet 1969, p.294-296. Coroutine Pascal - "Control Separation in Programming languages", Lemon et al, ACM Ann Conf 1977. CORREGATE - Based on IT. Sammet 1969, p.139. Correlatives and Conversions - Data description language used in the Pick OS. "Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986. Coursewriter III - ca. 1976. Simple CAI language. "Coursewriter III, Version 3 Author's Guide", SH20-1009, IBM. COWSEL - COntrolled Working SpacE Language. Burstall et al, U Edinburgh, 1964-66. LISP-like semantics with FORTH-like stack. Written in reverse Polish form. Forerunner of POP. EPU-R-12, U Edinburgh (Apr 1966). CP - A concurrent Prolog. "The Concurrent Logic Programming Language CP": Definition and Operational Semantics", V. Saraswat, 14th POPL, ACM 1987, 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: CPL - Combined Programming Language. U Cambridge and U London. Similar to ALGOL 60 but quite complex. Never fully implemented, died with the Atlas computer. Led to the much simpler BCPL. "The Main Features of CPL", D.W. Barron et al, Computer J 6(2):134-143 (Jul 1963). C-Prolog - F. Pereira et al, Jul 1982. An implementation of Prolog in C. No garbage collection. ftp: 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: comp.sources.reviewed: crefine CRISP - Jeff Barnett, SDC, Santa Monica CA, early 70's. A LISP-like language and compiler for the IBM 370. Differences from LISP included a generalization of 2-part cons nodes to n-part. CRL - Carnegie Representation Language. (c)Carnegie Group Inc. Frame language derived from SRL. Written in Common LISP. Used in the product Knowledge Craft. CROSSTABS - Simple language for statistical analysis of tabular data. "User's Manual for the CROSSTABS System", Cambridge Computer Assoc (Feb 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 - [?] Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980). CS-Prolog - Distributed logic language. "CS-Prolog on Multi-Transputer Systems", I. Futo et al, Microprocessors & Microsystems, March 1989. C-Scheme - Joe Bartlett at DEC/WRL? Dialect of Scheme implemented in and embeddable in C. csh - C-Shell. William Joy. Command shell interpreter and script language for Unix. 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. "Control and Simulation Language", J.N. Buxton et al, Computer J 5(3):194-199 (Oct 1962). Version: CSL II. CSM - "CSM - A Distributed Programming Language", S. Zhongxiu et al, IEEE Trans Soft Eng SE-13(4):497-500 (Apr 1987). CSMP - Continuous System Modeling Program. Simulation of dynamics of continuous systems. Similar to CSSL. "A Guide to Using CSMP - The Continuous System Modeling Program", Frank H. Speckhart et al, P-H 1976. CSP - Communicating Sequential Processes. 1978. A notation for concurrency based on synchronous message passing and selective communications. cobegin/coend. "Communicating Sequential Processes", A.R. Hoare, P-H 1985. CSP/80 - Based on CSP. "CSP/80: A Language for Communicating Processes", M. Jazayeri et al, Proc Fall COMPCON80, IEEE pp.736-740 (Sept 1980). CS/PCode - Used at Microsoft. CSP/k - Concurrent SP/k. A PL/I-like concurrent language. "Structured Concurrent Programming with Operating System Applications", R.C. Holt et al, A-W 1978. CSP-S - "Implementation of CSP-S for Description of Distributed Algorithms", L. Patniak et al, Comput Lang 9(3):193-202 (1984). CSPS - "Toward Comprehensive Specification of Distributed Systems", G. Roman et al, Proc 7th Intl Conf on Distrib Comp Sys, IEEE 1987, pp.282-289. CS/QCode - Used at Microsoft. CSS/II - Computer System Simulator II. Like GPSS, for IBM 360. "Computer System Simulator II (CSS II) Program Description and Operations Manual", SH20-0875, IBM. CSSA - Object-oriented language. "Key Concepts in the INCAS Multicomputer Project", J. Nehmer et al, IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987). CSSL - Continuous System Simulation Language. Versions include ACSL, HYTRAN, SL-I, S/360 and CSMP. "The SCi Continuous System Simulation Language (CSSL)", Simulation, 9(6) (Dec 1967). CSTools - Concurrency through message-passing to named message queues. CTL - 1. Checkout Test language. "Checkout Test Language: An Interpretive Language Designed for Aerospace Checkout Tasks", G.S. Metsker, Proc FJCC 33(2) (1968). 2. Compiler Target Language. Intermediate language used by the ALICE parallel machine. "The Design and Implementation of ALICE: A Parallel Graph Reduction Machine", M.D. Cripps et al, Proc Workshop on Graph Reduction, Springer 1987. Cube - Three-dimensional visual language for higher-order logic. "The Cube Language", M. Najork et al, 1991 IEEE Workshop on Visual Langs, Oct 1991, 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 Datablase", N. McDonald, PhD Thesis, CS Dept, UC Berkeley 1975. CUPL - Cornell University Programming Language. Simple math problems, based on CORC, with PL/I-like syntax. "An Instruction Language for CUPL", R.J. Walker, Cornell U, Jul 1967, CWIC - Compiler for Writing and Implementing Compilers. Val Schorre. One of the early metacompilers. (cf. Meta-II). CYBIL - Control Data's system programming language in the 80's. Major parts of CDC systems written in this. CYCL - Frame language. "Building Large Knowledge-Based Systems", D.B. Lenat et al, A-W 1990. CypherText - Interactive language for text formatting and typesetting. "CypherText: An Extensible Composing and Typesetting Language", C.G. Moore et al, Proc FJCC 37, AFIPS (Fall 1970). D - 1. "The Data Language." MS-DOS 4GL. 2. A Haskell-like language, with type classes. info: DACAPO - Broad-range hardware specification language. "Mixed Level Modelling and Simulation of VLSI Systems", F.J. Rammig in Logic Design and Simulation, E. Horbst ed, N-H 1986. DACTL - Declarative Alvey Compiler Target Language. U East Anglia. An intermediate language. "DACTL - A Computational Model and Compiler Target Language Based on Graph Reduction", J.R.W. Glauert et al, ICL Tech J 5(3) (1987). Version: Dactl0. (See Lean, Parallel SML). Daisy - Functional. "Daisy Programming Manual", S.D. Johnson, CS Dept TR, Indiana U, 1988. DAISY 201 - Early system on G-15. Listed in CACM 2(5):16 (May 1959). DAP Fortran - "Efficient High Speed Computing with the Distributed Array Processor", P.M. Flanders et al, pp.113-127 (1977). [same as Fortran- 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). Data Parallel C - Hatcher & Quinn [?] Data Structures Language - MAD dialect with extensions for lists and graphics, on Philco 212. "A Compiler Language for Data Structures", N. Laurance, Proc ACM 23rd Natl Conf 36 (1968). DATA-TEXT - Harvard. Numerical computations in the Social Sciences. "DATA-TEXT Primer", D.J. Armor, Free Press 1972. DataVis - Dataflow language for scientific visualization. "Data Flow Visual Programming Languages", D. Hils, J Vis Langs and Comput, Dec 1991. dBASE - Language used by the dBASE system. First release was dBASE II, ca 1980. (There never was a "dBASE I") Later versions: dBASE III, dBASE III+, and dBASE IV. DBC - Data-parallel Bit-serial C. SRC, Bowie MD. Based on MPL. info: 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. 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. 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 preprocessor for COBOL. Sammet 1969, p.315. Versions: DETAB 65, DETAB X. DETOL - Directly Executable Test Oriented Language. Simple language to control a specific type of test equipment. "Improved DETOL Programming Manual for the Series 5500 Automatic Test System, Pub. 5500-31-0-1, AAI Corp. (Sep 1973). DEX - W. van Oortmerssen. A cross between Modula-2 and C. ftp: Version 1.2 for Amiga DFC - Dataflow language. DG/L - 1. Descriptive Geometry Language. Early CAD/CAE language, used light pen. "Interactive Graphic Consoles - Environment and Software", R.L. Beckermeyeer, Proc FJCC 37 (1970). 2. Data General ca 1973-1974. Derivative of ALGOL 60, developed from DG's Algol-5, used as the systems language under AOS and RDOS for the DG Eclipse family of computers. Replaced by PL/I in the early 80's. Data General manual 093-000229-01. DIALOG - Illinois Inst Tech, 1966. Interactive math using graphics tablet. "DIALOG: A Conversational Programming System with a Graphical Orientation", S.H. Cameron et al, CACM 10:349-357 (1967). Sammet 1969, p.255-258. DIAMAG - An interactive extension of ALGOL. Sammet 1969, p.195. Diamond - One of five pedagogical languages based on Markov algorithms, used in "Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). (cf. Brilliant, Nonpareil, Pearl[3], Ruby[2]). DIANA - Descriptive Intermediate Attributed Notation for Ada. Goos & Wulf, CMU 1981. A de facto standard intermediate representation for Ada programs. A tree-structured representation with an abstract interface defined in IDL. Resulted from a merger of AIDA and TCOL.Ada. "DIANA - An Intermediate Language for Ada", G.T. Goos et al, LNCS 161, Springer 1983. DIBOL - DIgital Business Oriented Language. DEC for RT-11. FORTRAN syntax with BCD arithmetic. Dictionary APL - nickname for Sharp APL. Dijkstra's guarded command language - Edsger Dijkstra, ca. 1974. Introduced the concept of guards and committed choice [=don't care] nondeterminism. Described and used in A Discipline of Programming, E. Dijkstra, P-H 1976. DIMATE - Depot Installed Maintenance Automatic Test Equipment. For automatic equipment tests, on RCA 301. "A Simple User-Oriented Source Language for Programming Automatic Test Equipment", B.H. Scheff, CACM 9(4) (Apr 1966). Sammet 1969, p.647. Dino - Data parallel language, a superset of C. "Dino: Summary and Examples", M. Rosing et al, "Third Conf on Hypercube Concurrent Computers and Appls", pp. 472-481, ACM 1988. ftp: Disiple - DSP language. "A Compiler that Easily Retargets High Level Language Programs for Different Signal Processing Architectures", J.E. Peters & S.M. Dunn, Proc ICASSP 89, pp.1103-1106, (May 1989). Dislang - "Dislang: A Distributed Programming Language/System", C. Li et al, Proc 2nd Intl Conf Distrib Comp Sys, IEEE 1981, pp.162-172. Distributed Eiffel - "Distributed Eiffel: A Language for Programming Multi- Granular Distributed Objects on the Clouds Operating System", L. Gunaseelan et al, IEEE Conf Comp Langs, 1992. Distributed Processes - (Also "DP"). First concurrent language based on remote procedure calls. "Distributed Processes: A Concurrent Programming Concept", P. Brinch Hansen CACM 21(11):934-940 (Nov 1978). Distributed Smalltalk - "The Deisgn and Implementation of DIstributed Smalltalk", J. Bennett, SIGPLAN Notices 22(12):318-330 (Dec 1980). DL/1 - Query language, linear keyword. DMAD - Diagnostic Machine Aid-Digital. Functional testing of digital devices. "DMAD M/MM Manual", BR-8392, Raytheon Co. (Oct 1973). DMALGOL - ALGOL with extensions to interface to DMS II, the Burroughs database. DML - 1. Data Management Language. Early ALGOL-like language with lists, graphics, on Honeywell 635. "DML: A Data Management Language", D.W. Bray et al, GE, Syracuse NY. 2. "DML: A Meta-language and System for the Generation of Practical and Efficient Compilers from Denotational Specifications", M. Pettersson et al, IEEE Conf Comp Langs, 1992. Doc - Directed Oc. "Programming Language Doc and Its Self-Description, or 'X=X Is Considered Harmful'", M. Hirata, Proc 3rd Conf Japan Soc Soft Sci Tech, pp.69-72 (1986). DOCUS - Display Oriented Computer Usage System. Interactive system using push buttons. Sammet 1969, p.678 DOUGLAS - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). DOL - Display Oriented Language. Subsystem of DOCUS. Sammet 1969, p.678. DOW COMPILER - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). d-Prolog - Prolog extended with defeasible reasoning. ftp: for MS-DOS and Unix DPL-82 - "DPL-82: A LAnguage for Distributed Processing", L. Ericson, PRoc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.526-531. DPS - Real-time language with direct expression of timing requests. "Language Constructs for Distributed Real-Time PRogramming", I. Lee et al Proc IEEE Real-Time Sys Symp pp.57-66 (Dec 1985). draco - Chris Gray, 1987. A blend of Pascal, C and ALGOL 68. Implemented for CP/M-80 and Amiga. DRAGON - Implementation language used by BTI Computer Systems. info: Pat Helland DRAGOON - Colin Atkinson, Imperial College 1989. (current address: , U Houston-Clear Lake). Ada-based language, bringing object-oriented programming to embeddable systems. Presently implemented as a preprocessor to Ada. "Object-Oriented Reuse, Concurrency and Distribution: An Ada-Based Approach", C. Atkinson, A-W 1991, ISBN 0-2015-6- 5277. info: DRUCO I - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). DSL - 1. Digital Simulation Language. Extensions to FORTRAN to simulate analog computer functions. "DSL/90 - A Digital Simulation Program for Continuous System Modelling", Proc SJCC 28, AFIPS (Spring 1966). Version: DSL/90 for the IBM 7090. Sammet 1969, p.632. 2. Denotational Semantics Language. Specification language used by the SIS compiler generator. "SIS - Semantics Implementation System", P.D. Mosses, TR DAIMI MD-30, Aarhus U, Denmark. DSM - 1. Data Structure Manager. J.E. Rumbaugh and M.E. Loomis, GE. Object- oriented language similar to C++, used in implementation of CAD/CAE software. DSM is written in itself and C, and produces C as output. "DSM: An Object-Relationship Modeling Language", A. Shah et al, SIGPLAN Notices 24(10):191-202 (OOPSLA '89) (Oct 1989). 2. DIGITAL Standard MUMPS. DEC. (See MUMPS). DSP/C - Numerical extension to C, for DSP applications. "DSP/C: A Standard High Level Language for DSP and Numeric Processing", K. Leary & W. Waddington, Proc ICASSP 90, Apr 1990, pp.1065-1068. DSP32 Assembly Language - A high-level assembly language for the DSP32 Programmable DSP Chip. DSPL: Digital Signal Processing Language. A C-derived DSP language. "The Programming Language DSPL", A. Schwarte & H. Hanselmann, Proc PCIM 90, 1990. DTALGOL - Decision Table Algol. Victoria U, Wellington. An ALGOL superset that added Decision Tables. On Burroughs Large System. DUAL-607 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Dual FCP - [?] Durra - "Durra: A Task-level Description Language", M.R. Barbacci et al, CMU/SEI-86-TR-3, CMU 1986. DYANA - DYnamics ANAlyzer. Early specialized language for vibrational and other dynamic systems. Sammet 1969, p.628. Dylan - (named for Dylan Thomas) Advanced Technology Group East, Apple Computer. A simple object-oriented LISP dialect, most closely resembles CLOS and Scheme. "Dylan, an Object-Oriented Dynamic Language", Apple 1992. ftp: - compiler implemented in Scheme info: DYNAMO - DYNamic MOdels. Phyllis Fox & A.L. Pugh, 1959. Continuous simulation including economic, industrial and social systems. Versions: DYNAMO II, DYNAMO II/370, DYNAMO II/F, DYNAMO III and Gaming DYNAMO. "DYNAMO User's Manual", A.L. Pugh, MIT Press 1976. DYSAC - Digital Simulated Analog Computer. Sammet 1969, p.629. DYSTAL - DYnamic STorage ALlocation. Adds lists, strings, sorting, statistics and matrix operations to FORTRAN. Sammet 1969, p.388. "DYSTAL: Dynamic Storage Allocation Language in FORTRAN", J.M. Sakoda, in Symbol Manipulation Languages and Techniques, D.G. Bobrow ed, N-H 1971, pp.302- 311. E - An extension of C++ with database types and persistent objects. Used in the Exodus database system. "Persistence in the E Language: Issues and Implementation", J.E. Richardson et al, Soft Prac & Exp 19(12):1115-1150 (Dec 1989). Eagle - dBASE-like dialect bundled with Emerald Bay, sold by Migent from 1986-1988, later renamed Vulcan when Wayne Ratliff reacquired the product. Ease - General purpose parallel programming language, combining the process constructs of CSP and the distributed data structures of Linda. "Programming with Ease: Semiotic Definition of the Language", S.E. Zenith, Yale U TR-809, Jul 1990. EASE II - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). EASIAC - Early system on Midac computer. Listed in CACM 2(5):16 (May 1959). EASY FOX - Early system on JOHNNIAC computer. Listed in CACM 2(5):16 (May 1959). EBASIC - Gordon Eubanks, now at Symantec. Form of BASIC that led to CBASIC. ECAP II - Electronic Circuit Analysis Program. Simple language for analyzing electrical networks. "Introduction to Computer Analysis: ECAP for Electronics Technicians and Engineers", H. Levin, P-H 1970. Echidna - Constraint logic programming embedded in an object-oreinted language. The syntax is an extension of Edinburgh Prolog. "Hierarchical Arc Consistency Applied to Numeric Processing in Constraint Logic Programming", G. Sidebottom et al, TR-91-06, CSS-IS, Simon Fraser U, and Comp Intell 8(4) (1992). info: ECL - Extensible CL. Wegbreit, ca 1970. "The ECL Programming System", B. Wegbreit, Proc FJCC 39:253-261, AFIPS (Fall 1971). "ECL Programmer's Manual", B. Wegbreit, TR 23-74, Harvard U (Dec 1974). ECMA - Subset of ALGOL. Sammet 1969, p.180. ECP - Extended Concurrent Prolog. Concurrent Prolog with OR parallelism, set abstraction and meta-inference features. "AND-OR Queuing in Extended Concurrent Prolog", J. Tanaka et al, Proc Logic Prog Conf '85, LNCS 193, Springer 1985. [???] ECRC-Prolog - Evidently Prolog with coroutine extensions. "ECRC-Prolog User's Manual Version 1.0", K. Estenfeld, TR-LP-08 ECRC, Feb 1986. (See SEPIA). ECSP - An extension to CSP, supporting dynamic communication channels and nested processes. "Static Type Checking of Interprocess Communication in ECSP", F. Baiardi et al, SIGPLAN Notices 19(6):290-299 (June 1984). ECSS II - Extendable Computer System Simulator. An extension of SIMSCRIPT II. "The ECSS II Language for Simulating Computer Systems", D.W. Kosy, R- 1895-GSA, Rand Corp. ECSSL - Formerly APSE. Equation-oriented specifications for continuous simulations. The compiler outputs HYTRAN, which must be run on an analog processor. Eden - Concurrent object-oriented language with both synchronous and asynchronous message passing. "The Eden System: A Technical Review", G. Almes et al, IEEE Trans Soft Eng SE-11(1):43-59 (Jan 1985). EDIF - 1. Electronic Design Interchange Format. Not a programming language, but a format to simplify data transfer between CAD/CAE systems. LISP-like syntax. "EDIF Electronic Design Interchange Format Version 200", ANSI/EIA Standard 548. info: ftp: 2. VLSI design specification language. "Designer's Guide to EDIF", E. Marx et al, EDN 1987. [?] Edinburgh Prolog - Prolog dialect which eventually developed into the standard, as opposed to Marseille Prolog. (The difference is largely syntax.) Clocksin & Mellish describe Edinburgh Prolog. Version: C-Prolog. Edison - 1. (named for the American inventor Thomas Edison (1847-1931)) Brinch Hansen. A simplified Pascal, with modules and concurrency (cobegin/coend). "Edison - A Multiprocessor Language", P. Brinch Hansen, CS Dept, USC, Sep 1980. "Programming a Personal Computer", Brinch Hansen, P-H 1977. 2. Adds an OPS5-like system to C. Translated by preprocessor into C. "Edison, A Unix and C Friendly Rete Based Production System", B. Thirion, SIGPLAN Notices 27(1):75-84 (Jan 1992). EDL - 1. Experiment Description Language. J.S. Jenkins. "A Programmable System for Acquisition and Reduction of Respiratory Physiological Data", J.S. Jenkins et al, Ann Biomed Eng, 17:93-108 (1989). 2. Event Description Language. "EDL: A Basis for Distributed System Debugging Tools", P.C. Bates et al, in Proc Hawaii Intl Conf on Sys Sci, Jan 1982, pp.86-93. EFL - Extended FORTRAN Language. Preprocessor for FORTRAN to provide structured programming much like C. A descendant of RATFOR, written in C. "An Informal Description of EFL", S.I. Feldman. Eh - "A". Software Portability Group, U Waterloo. A typeless language derived from (and similar to) B. Provides guaranteed order of evaluation for side effects in expressions. Also character indexing operators. "Eh Reference Manual", R.S.C. Braga, RR CS-76-45, U Waterloo, Nov 1976. (See Zed.) Eiffel - Bertrand Meyer ca. 1986. An object- oriented language. Classes with multiple and repeated inheritance, deferred classes (like Smalltalk's abstract class), and clusters of classes. Objects can have both static and dynamic types. The dynamic type must be a descendant of the static (declared) type. Dynamic binding resolves clashes from the multiple inheritance. Flattened forms of classes, in which all of the inherited features are added at the same level. Generic classes parametrized by type. Persistent objects, garbage collection, exception handling, interface to routines written in other languages. Implemented as a preprocessor to C. "Eiffel: the Language", Bertrand Meyer, P-H 1990. Interactive Software Eng, Goleta CA, (805) 685- 1006. Version 2.3, Eiffel-3 (See Sather). info: EL1 - Extensible Language One. B. Wegbreit, Harvard ca 1974. An extensible language, internally somewhat LISP-like, but fully typed with records and pointers. The external syntax is Algol-like and extensible, supporting user-defined data structures, control structures and operations. The parser is table-driven, with a modifiable set of productions. Used as the basis for the ECL operating system. "Studies in Extensible Programming Languages", B. Wegbreit, Garland Pub 1980. el(alpha) - Aims to be a high-level language that knows about real hardware, for systems programming. "Essential Language el(alpha) - A Reduced Expression Set Language for Systems Programming", T. Watanabe et al, SIGPLAN Notices 26(1):85-98. Elan - "Top-down Programming with Elan", C.H.A. Koster, Ellis Horwood 1987. ELF - Binary format used by System V Release 4 Unix. ELI - 1. Early system on IBM 705, IBM 650. Listed in CACM 2(5):16 (May 1959). 2. Embedded Lisp Interpreter. Bob Glickstein Small Common Lisp-like interpreter embedded in the Andrew mail system. ELISP - Chuck Hedrick, Rutgers. Implemented originally for DEC-20's, later used as the LISP in EMACS. Elk - Extension Language Kit. Oliver Laumann , Tech U Berlin. A Scheme interpreter, easily extendable with new types and primitive procedures. First-class environments, dynamic-wind, fluid-let, macros, dynamic loading of object files, autoloading, and a dump. ftp: ELLA - Hardware description language. "The Design Rationale of ELLA, A Hardware Design and Description Language", J.D. Morison et al, in Computer Hardware Description Languages and their Applications, C.J. Koomen et al eds, N-H 1985. Ellie - Object-oriented language with fine-grained parallelism for distributed computing. Based on BETA, Smalltalk, and others. Parallelism by unbounded RPC and 'future' objects. Synchronization by 'dynamic interfaces. Classes, methods, blocks and objects all modeled by first- class 'Ellie objects'. Genericity, polymorphism and delegation/inheritance. "Ellie Language Definition Report", Birger Andersen , SIGPLAN Notices 25(11):45-65 (Nov 1990). doc: ELLIS - EuLisp LInda System. An object-oriented Linda system written for EuLisp. "Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery et al, in Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991. ELP - 1. English Language Programs. Language for testing avionics equipment, on Varian 620/i. "Multiband Automatic test Equipment - A Computer Controlled Checkout System", T. Kuroda et al, Proc SJCC, 38 (1971). 2. Equational Logic Programming. O'Donnell . Semantically pure, fully lazy. "Equational Logic as a Programming Language", M.J. O'Donnell, MIT Press 1985. Current version: 4.2. ftp: for Sun and DEC. ELSIE - A distributed version of ELLIS. "Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery et al, in Linda- Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991. EM-1 - A stack-oriented intermediate language, used by the Amsterdam Compiler Kit. info: Andrew Tanenbaum , Vrije U, Amsterdam. EMA - Extended Mercury Autocode. (See Autocode). EMACS LISP - Richard Stallman. Variant of LISP used by the EMACS editor. (This is the "offical" name, based on the EMACS FAQ file. See ELISP.) Emerald - U Washington, early 80's. The successor of EPL[3]. An object-oriented distributed programming language/environment. Strongly typed, uses signatures and prototypes rather than inheritance. "Distribution and Abstract Types in Emerald", A. Black et al, IEEE Trans Soft Eng SE-13(1):65-76 (Jan 1987). EML - Extended ML. A language for formally specifying SML programs. "Formal Program Development in Extended ML for the Working Programmer", D. Sannella, Proc 3rd BCS/FACS Workshop on Refinement", Springer 1990. English - Database language used in the Pick OS. "Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986. EOL - Expression Oriented Language. A low-level language for strings. "EOL - A Symbol Manipulation Language", L. Lukaszewicz, Computer J 10(1):53 (May 1967). Versions: EOL-1, EOL-2, EOL-3. EPILOG - 1. Extended Programming In LOGic. PROLOG with several AND's having different time constraints. "Epilog: A Language for Extended Programming in Logic", A. Porto in Implementations of Prolog, J.A. Campbell ed, Ellis Horwood 1984. 2. A data-driven PROLOG, with both AND and OR parallelism. "EPILOG = PROLOG + Data Flow", M.J. Wise, SIGPLAN Noices 17:80-86 (1982). EPL - 1. Early PL/I. McIlroy, Morris et al. PL/I subset dialect, the first running PL/I compiler. Used by Bell Labs and MIT to write Multics, EPL had extensions to handle the segment/offset nature of Multics pointers. "EPL Reference Manual", Project MAC, April 1966. Sammet 1969, p.542. (See REPL, TMG) 2. Experimental Programming Language. David May. Influenced occam. "EPL: An Experimental Language for Distributed Computing", D.C. May, in Trends and Applications: Distributed Processing Proceedings, NBS, pp.69-71. 3. Eden Programming Language. U Washington. Based on Concurrent Euclid and used with the Eden distributed OS. Influenced Emerald and Distributed Smalltalk. "EPL Programmer's Guide", A. Black et al, U Washington June 1984. 4. Equational Programming Language. Szymanski, RPI. Equational language for parallel scientific applications. "EPL - Parallel Programming with Recurrent Equations", B. Szymanski in Parallel Functional Languages and Compilers, B. Szymanski et, A-W 1991. EPROS - A specification/prototyping language. Implemented in Franz Lisp. "Software Prototyping, Formal Methods and VDM", Sharam Hekmatpour et al, A- W 1988. EPSIMONE - Concurrent simulation language derived from Simone. "EPSIMONE Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978. EqL - An equational language. Bharat Jayaraman . "EqL: The Language and its Implementation", B. Jayaraman et al, IEEE Trans Soft Eng SE-15(6):771-780 (June 1989). EQLog - OBJ2 plus logic programming based on Horn logic with equality. "EQLog: Equality, Types and Generic Modules for Logic Programming", J. Goguen et al in Functional and Logic Programming, D. DeGroot et al eds, pp.295-363, P-H 1986. Eqn - Language for typesetting mathematics. "A System for Typesetting Mathematics", B.W. Kernighan and L.L. Cherry, CACM 18(3):151-157 (Mar 1975). Equel - Embedded Quel. INGRES, Inc. Combines QUEL theories with C code. Erlang - Armstrong, Williams & Virding, Ellemtel, Sweden. Concurrent functional programming language for real-time systems. Explicit concurrency, asynchronous message passing. "Erlang - an Experimental Telephony Programming Language", J.L. Armstrong et al, 13th Intl Switching Symposium, Stockholm 1990. Interpreter in SICStus Prolog, compilers in C and in Erlang, for several Unix platforms. info: ERFPI - Early system on LGP-30 computer. Listed in CACM 2(5):16 (May 1959). ES-1 - Early text editing interpreter. Sammet 1969, p.684. ESCAPE - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). ESI - Dialect of JOSS. Sammet 1969, p.217. esim - A simulation language for VLSI, at the switch level. Primitives are nodes and transistors. C.M. Baker et al, "Tools for Verifying Integrated CIrcuit Design", Lambda 1(3):22-30 (1980). ESP - 1. Extra Simple Pascal. Subset of Pascal. 2. Econometric Software Package. Statistical analysis of time series. "Econometric Software Package, User's Manual", J.P. Cooper, Graduate School of Business, U Chicago. Sammet 1978. 3. Extended Self-containing Prolog. Chikayama. An object-oriented extension of KL0. Backtracking-based control, unification-based parameter passing, object-oriented calling. An object in ESP is an axiom set. A class definition consists of nature definitions (inheritance), slot definitions (class variables) and clause definitions. Multiple inheritance similar to Flavors. Implemented for ICOT's PSI Sequential Inference machine. "Unique Features of ESP", T. Chikayama, Proc Intl Conf 5th Gen Comp Sys, ICOT 1984. (See CESP) info: 4. Early symbolic math system. A. Rom, Celest Mech 3:331-345 (1971). ESPOL - An ALGOL superset used to write the MCP (Master Control Program) on Burroughs 6700. Superseded by NEWP. "The B6700 ESPOL Reference Manual", Burroughs, 1970. Estelle - A Pascal extension for specification of computer network protocols. Protocols are described by modules which are communicating NFA's. Modules are arranged in a dynamic hierarchy and communicate at named interaction points. "The Formal Description Technique Estelle", M. Diaz et al eds, N-H 1989. Adopted by CCITT. ISO standard IS 9074. ftp: Compiles Estelle into C petdingo Translates Estelle into C++ Esterel - Distributed language for synchronous interaction of real-time systems with their environment. Uses explicit timing requests. Esterel programs are compiled into finite automata. "The ESTEREL Programming Language and its Mathematical Semantics", G. Berry & L. Cosserat, TR 327, INRIA, 1984. ET - Bernd Gersdorf, U Bremen. An integration of functional and logic programming. ET++ - Weinand, UBILAB Zurich. A smalltalk-like system built on C++. ftp: ETC - ExTendible Compiler. FORTRAN-like, macro extendible. "ETC - An Extendible Macro-Based Compiler", B.N. Dickman, Proc SJCC 38 (1971). ETHER - Concurrent object-oriented language? Euclid - (named for the Greek geometer, fl ca 300 BC.) A Pascal descendant for development of verifiable system software. No goto, no side effects, no global assignments, no functional arguments, no nested procedures, no floats, no enumeration types. Pointers are treated as indices of special arrays called collections. To prevent aliasing, Euclid forbids any overlap in the list of actual parameters of a procedure. Each procedure gives an imports list, and the compiler determines the identifiers that are implicitly imported. Iterators. "Report on the Programming Language Euclid", B.W. Lampson et al, SIGPLAN Notices 12(2):1-79 (Feb 1977). EULER - (named for the Swiss mathematician Leonhard Euler (1707-1783)) Revision of ALGOL. A small predecessor of Pascal. "EULER: A Generalization of ALGOL and Its Formal Definition", N. Wirth, CACM 9(1) (Jan 1966) and 9(2) (Feb 1966). EuLisp - 1985-present. LISP dialect intended to be a common European standard, with influences from Common LISP, Le LISP, Scheme and T. First- class functions, classes and continuations, both static and dynamic scope, modules, support for parallelism. The class system (TELOS) incorporates ideas from CLOS, ObjVLisp and Oaklisp. info: ftp: (Free and Eventually Eulisp) Eva - A toy ALGOL-like language used in Formal Specification of Programming Languages: A Panoramic Primer, F. G. Pagan, P-H 1981. EXAPT - EXtended APT. EXEC - Early batch language for IBM VM/CMS systems. SC19-6209 Virtual Machine/ System Product CMS Command and Macro Reference (Appendix F. CMS EXEC Control Statements) EXEC2 - IBM, late 70's. SC24-5219 Virtual Machine/System Product EXEC 2 Reference. Superseded by REXX. Express - Concurrency through message-passing to named message queues. Extended ALGOL - Used to write the ESPOL compiler on Burroughs B5500, B6700. "Burroughs B6700 Extended ALGOL Language Information Manual", No. 5000128 (Jul 1971) Sammet 1969, p.196. Extended C++ - G. Masotti Extensions to C++ including preconditions, postconditions, class invariants, parametrized classes, exception handling and garbage collection. Implemented as a preprocessor to C++. ftp: Extended ML - Don Sanella, Edinburgh. Algebraic specification meets functional programming. "Program Specification and Development in Standard ML", D. Sannella et al, 12th POPL, ACM 1985. EXTRA - Object-oriented, Pascal style, handles sets. "A Data Model and Query Language for EXODUS", M.J. Carey et al, SIGMOD 88 Conf Proc, pp.413- 423, ACM SIGMOD Record 17:3 (Sept 1988). EZ - High-level string-processing language derived from SNOBOL4, SL5 and Icon. "The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U Arizona, 1984. FAC - Functional Array Calculator. APL-like but purely functional and lazy, allowing infinite arrays. "FAC: A Functional APL Language", H.-C. Tu and A.J. Perlis, IEEE Trans Soft Eng 3(1):36-45 (Jan 1986). Facile - ECRC. A concurrent extension of ML. "Facile: A Symmetric Integration of Concurrent and Functional Programming", A. Giacalone et al, Intl J Parallel Prog 18(2):121-160 (Apr 1989). FACT - Fully Automated Compiling Technique. ca. 1959. Pre-COBOL English-like business DP language for Honeywell 800. (Aka Honeywell-800 Business Compiler.) Sammet 1969, p.327. FAD - "FAD, A Simple and Powerful Database Language", F. Bancilon et al, Proc 13th Intl Conf on VLDB, Brighton England, Sept 1987. FAIR - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). FAP - Assembly language for Sperry-Rand 1103 and 1103A. Listed in CACM 2(5):16 (May 1959). FAS - General purpose language sponsored by the Finnish government in the 70's and 80's. FASE - Fundamentally Analyzable Simplified English. L.E. McMahon, Bell Labs. Sammet 1969, p.720. FAST - FORTRAN Automatic Symbol Translator. Assembly language on IBM 650 by MITRE Corp. Listed in CACM 2(5):16 (May 1959). Sammet 1969, p.526. FC - Functional language. "FC Manual", L. Augustsson, Memo 13, Programming Methodology Group, Chalmers U, Sweden 1982. F-code - Code for the FPM abstract machine, an optimized SECD machine. "FP/M Abstract Syntax Description", R. Bailey, Dept Computing, Imperial College, U London, 1985. FCP - Flat Concurrent Prolog. "Design and Implementation of Flat Concurrent Prolog", C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984. Feel - Free and Eventually EuLisp. An initial implementation of EuLisp. ftp: FEL - Function Equation Language. Programs are sets of definitions. Sequences are lists stored in consecutive memory. "FEL Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March 1982. FFP - Formal FP. Similar to FP, but with regular sugarless syntax, for machine execution. "Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978). (See FP, FL). FGHC - Flat GHC. A variant of GHC in which guard calls can be only to primitives. (See KL1). FGL - 1. Flow Graph Lisp. A distributed dataflow language for AMPS (Applicative Multi-Processing System). "A Loosely-Coupled Applicative Multi-Processing System", R. Keller et al, NCC, AFIPS June 1979, pp.613- 622. 2. Function Graph Language. Related to FEL. FGL+LV - "Functional Programming and the Logical Variable", G. Lindstrom, POPL 1985, pp.266-280. FGRAAL - FORTRAN extended GRAph Algorithmic Language. A FORTRAN extension for handling sets and graphs. "On a Programming Language for Graph Algorithms", W.C. Rheinboldt et al, BIT 12(2) 1972. FIDO - FInite DOmains. A constraint language implemented on top of Prolog. ftp: File Composition - Typesetting language. "File Composition System Reference Manual", No. 90388, Information Intl. F+L - Equational clauses within function definitions to solve for logical variable bindings. ""Functions plus Logic in Theory and Practice", R.B. Kieburtz, Feb 1987, unpublished. FL - Function Level. John Backus, ca. 1985. Successor to FP. Dynamically typed. Adds higher-order functions, exceptions, user-defined types, and other features. "FL Language Manual, Parts 1 & 2", J. Backus et al, IBM Research Report RJ 7100 (1989). (See FP, FFP). FLAIR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). FLAP - Symbolic math, for IBM 360. "FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971) U.S. Naval Weapons Lab. Sammet 1969, p.506. Flavors - D. Weinreb & D.A. Moon 1980. LISP with object-oriented features. "Object-Oriented Programming with Flavors", D.A. Moon, SIGPLAN Notices 21(11):1-8 (OOPSLA '86) (Nov 1986). Fleng - Parallel logic language. "Massively Parallel Implementation of Flat GHC on the Connection Machine", M. Nilsson, Proc Intl Conf on 5th Gen Comp Sys, 1988, pp.1031-1040. FLEX - 1. Faster LEX. (Faster and free.) "The FLEX Scanner Generator", Vern Paxson , Real Time Systems, LBL, CA. (See Lex). ftp: comp.sources.unix/Volume23 with Ada output 2. Real-time language for dynamic environments. "FLEX: Towards Flexible Real-Time Programs", K. Lin et al, Computer Langs 16(1):65-79 (Jan 1991). Flex 2 - ca. 1980. A preprocessor designed to make FORTRAN look more like Pascal. DECUS? FLIC - Functional Language Intermediate Code. Intermediate language used in the Chalmers LML compiler. "FLIC - A Functional Language Intermediate Code", S. Peyton Jones et al., RR 148, U Warwick, Sep 1989. FLIP - 1. Early assembly language on G-15. Listed in CACM 2(5):16 (May 1959). 2. "FLIP User's Manual", G. Kahn, TR 5, INRIA 1981. 3. Formal LIst Processor. Early language for pattern-matching on LISP structures. Similar to CONVERT. "FLIP, A Format List Processor", W. Teitelman, Memo MAC-M-263, MIT 1966. FLIP-SPUR - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). F-Logic - "F-Logic: A Higher-Order Language for Reasoning about Objects, Inheritance and Scheme", ACM SIGMOD May 1989, pp.134-146. FLOP - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). FLOW-MATIC or FLOWMATIC - (originally B-0). Remington Rand, 1958. Possibly the first English-like DP language. For UNIVAC I. Sammet 1969, pp.316-324. FLPL - FORTRAN List Processing Language. H. Gelernter et al, ca 1960. Package of FORTRAN subroutines for handling lists. Sammet 1969, p.388. FMPL - Frobozz Magic Programming Language. Experimental Computing Facility, UC Berkeley. A prototype-based object-oriented language with functional features. Event-driven. ftp: list: FOCAL - 1. FOrmula CALculator. BASIC-style interpreter from DEC, designed 1969 for PDP-5/PDP-8's. Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for PDP-11 under RT-11). 2. Forty-One CAlculator Language. Programming language of the HP-41 calculator line. FOCUS - Hierarchical database language. Information Builders Inc. FOIL - File Oriented Interpretive Language. CAI language. "FOIL - A File Oriented Interpretive Language", J.C. Hesselbart, Proc ACM 23rd National Conf (1968). foogol - Per Lindberg. A tiny ALGOL-like language based on the VALGOL I compiler, G.A. Edgar, DDJ May 1985. ftp: comp.sources.unix/V8 /systems/amiga/fish/fish/ff066 FOOL - Fool's Lisp. A small Scheme interpreter. ftp: FOOP - OBJ2 plus object-orientation. "Extensions and Foundations for Object-Oriented Programming", J. Goguen et al, in Research Directions in Object-Oriented Programming, B. Shriver et al eds, MIT Press 1987. FORC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). Force - dBASE dialect for MS-DOS. The Force - Data parallel language. "The Force", H. Jordan in The Characteristics of Parallel Algorithms, L. Jamieson et al eds, MIT Press 1987, pp.395-436. ForceOne - Andrew K. Wright. "Polymorphism in the Compiled Language ForceOne", G.V. Cormack et al, Proc 20th Annual Hawaii Intl Conf on System Sciences, 1987, pp.284-292. "Design of the Programming Language ForceOne", A.K. Wright, MS Thesis, U Waterloo 1987. ForceTwo - Andrew K. Wright. An unofficial successor to ForceOne. FORM - Jos Vermaseren 1989. Designed for speedy handling of very large-scale symbolic math calculations. A descendant of Schoonschip. Available for many PC's and workstations. ftp:, info: FORMAC - FORmula MAnipulation Compiler. J. Sammet & Tobey, IBM Boston APD, 1962. Extension of FORTRAN for symbolic math. "Introduction to FORMAC", J.E. Sammet et al, IEEE Trans Elec Comp (Aug 1964). Versions: PL/I-FORMAC and FORMAC73. Sammet 1969, pp.474-491. FORMAL - 1. FORmula MAnipulation Language. An early FORTRAN extension for symbolic math. "FORMAL, A Formula Manipulation Language", C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971). 2. IBM LASC. Data manipulation language for nonprogrammers. "FORMAL: A Forms-Oriented and Visual-Directed Application System", N.C. Shu, IEEE Computer 18(8):38-49 (1985). FORMAT-FORTRAN - FORTRAN Matrix Abstraction Technique FORTRAN. Manipulation, printing and plotting of large matrices. "FORMAT-FORTRAN Matrix Abstraction Technique (Vol. V)" AFFDL-TR-66-207, Douglas Aircraft Co (Oct 1968). Formes - Object-oriented language for music composition and synthesis, written in VLISP. "Formes: Composition and Scheduling of Processes", X. Rodet & P. Cointe, Computer Music J 8(3):32-50 (Fall 1984). Formula - 1. FORTH Music Language. An extension of FORTH with concurrent note- playing processes. "Formula: A Programming Language for Expressive Computer Music", D.P. Anderson et al Computer 24(7):12 (Jul 1991). For Mac and Atari ST, with MIDI output. 2. Preprocessor language for the Acorn Archimedes, allowing inline high- level statements to be entered in an assembly program. Written in nawk. Formula ALGOL - ALGOL extension for symolic math, strings and lists. Carnegie, CDC G-20, 1962. A.J. Perlis & R. Iturriaga. Sammet 1969, p.583. "An Extension of ALGOL for Manipulating Formulae", A.J. Perlis et al, CACM 7(2):127-130 (Feb 1964). Forsythe - An ALGOL-like language. "Preliminary Design of the Programming Language Forsythe", J.C. Reynolds, CMU-CS-88-159, 1988. ftp: FORTH - Fourth. Charles H. Moore, 1960's. An interactive extensible language using postfix syntax and a data stack. A program is a set of recursive functions ("words") which are compiled by an outer interpreter into bytecodes. FORTH is small and efficient, but programs can be difficult to read. Used first to guide the telescope at NRAO, Kitt Peak. Versions include FORTH 79 and FORTH 83. FORTH Interest Group, Box 1105, San Carlos CA 94070. FORTRAN - FORmula TRANslator. The first and still the most widely used language for numerical calculations. Nonrecursive, efficient. FORTRAN I - John Backus, IBM for the IBM 704. Design begun 1954, compiler released April 1957. FORTRAN II - 1958. Added subroutines. FORTRAN III - This was only distributed to ca. 20 sites. See Wexelblat. FORTRAN IV - IBM 1962. For the IBM 7090/94. Many implementations went well beyond the original definition. FORTRAN V - Preliminary work on adding character handling facilities by IBM ca. 1962. This name never really used. FORTRAN VI - Internal IBM name for early PL/I work ca. 1963. Sammet 1969, p.540. FORTRAN 66 - FORTRAN IV standardized. ASA X3.9-1966. FORTRAN 77 - Block IF, PARAMETER, SAVE statements added, still no WHILE. Fixed-length character strings, format-free I/O, arrays with lower bounds. ANSI X3.9-1978. ftp: for Amiga Fortran 90 - Previously Fortran 8x and Fortran Extended. An extensive enlargement of FORTRAN 77. Derived types, assumed shape arrays, array sections, functions returning arrays, case statement, module subprograms and internal subprograms, optional and keyword subprogram arguments, recursion, and dynamic allocation. ISO 1539:1991, soon to be adopted by ANSI. "Fortran 90 Explained", M. Metcalf et al, Oxford University Press 1990. Fortran D - Ken Kennedy, Rice U. A data-parallel Fortran. TR 90-141, Rice U. Fortran-Linda - Scientific Computer Assocs . FORTRAN-Plus - FORTRAN for the DAP parallel machine, implements many Fortran 90 features. FORTRANSIT - FORTRAN Internal Translator. Subset of FORTRAN translated into IT on the IBM 650. Sammet 1969, p.141. FORTRUNCIBLE - A cross between FORTRAN and RUNCIBLE for the IBM 650. Listed in CACM 2(5):16 (May 1959). FOSIL - Fredette's Operating System Interface Language. A portable job control language, for IBM OS360, UNIVAC EXEC 8 and Honeywell GCOS. "Fredette's Operating System Interface Language (FOSIL)", G.N. Baird in Command Languages, C. Unger ed, N-H 1973. FoxBASE+ - dBASE III+-like product from Fox Software, Perrysburg, OH. FoxPRO - dBASE IV-like product from Fox Software, Perrysburg, OH. FP - Functional Programming. Backus. Combinator based. "Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978). (See FFP, FL, IFP). ftp: Berkeley FP - distributed with 4.2BSD ftp: comp.sources.unix/Volume20: fpc translates FP programs to C. comp.sources.unix/volume13: FP by Andy Valencia FP2 - Functional Parallel Programming. Term rewrite rules used to specify algebraic data types and parallel processes. "Term Rewriting as a Basis for the Design of a Functional and Parallel Programming Language. A Case Study: The Language FP2", Ph. Jorrand in Fundamentals of Artificial Intelligence, LNCS 258, Springer 1986, pp.221-276. FP/M - An intermediate language for functional languages, used to implement Hope. "The Compilation of FP/M Programs into Conventional Machine Code", A.J. Field, Imperial College, London, 1985. "Functional Programming", A.J. Field & M.C. Harrison, A-W 1988. FQL - Functional database language. "An Implementation Technique for Database Query Languages", O.P. Buneman et al, ACM Trans Database Sys 7(2):164-186 (June 1982). FrameKit - Frame language. "The FrameKit User's Guide", E. Nyberg, TR CMU- CMT-88-MEMO, CMU 1988. FRANK - "Using BINS for Interprocess Communication", P.C.J. Graham, SIGPLAN Notices 20(2):32-41 (Feb 1985). Franz Lisp - (named for the Hungarian composer Franz Liszt (1811-1886)) R. Fateman et al, UC Berkeley ca 1980. A subdialect of MACLISP. "The FRANZ LISP Manual", J.K. Foderaro et al. UC Berkeley 1980. Version: Opus 38.22. Liszt (the compiler) Version 8.08. ftp: FRED - Robert Carr. Language used by Framework, Ashton-Tate. Fresh - "Fresh: A Higher-Order Language Based on Unification", G. Smolka, in Logic Programming: Functions, Relations and Equations", D. DeGroot et al, P-H 1986, pp.469-524. FRINGE - C. Katz, GE, 1961. Subcomponent of GE-255 GECOM system. Sorting and merging of data, reports and file maintenance. FRL - Frame Representation Language. MIT. "The FRL Manual", R. Roberts et al, AI Memo 409, MIT AI Lab, 1977. FRMT-FTRN - Scientific language, listed [?] 1976. FSL - Formal Semantics Language. Language for compiler writing. "A Formal Semantics for Computer Languages and its Application in a Compiler- Compiler", J.A. Feldman, CACM 9(1) (Jan 1966). Sammet 1969, p.641. Fugue - Music language, implemented in Xlisp. "Fugue: A Functional Language for Sound Synthesis", R.B. Dannenberg et al, Computer 24(7):36-41 (Jul 1991). Fun - A typed lambda-calculus, similar to SOL[2]. "On Understanding Types, Data Abstractions and Polymorphism", L. Cardelli et al, ACM Comp Surveys 17(4) (Dec 1985). FUNLOG - Functional programming plus unification. "Lazy" in the sense that expressions are reduced only if they are not unifiable. "FUNLOG: A Computational Model Integrating Logic Programming and Functional Programming", P.A. Subrahmanyam et al, in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986. FX-87 - Effects. A polymorphic language based on Scheme, allowing side effects and first-class functions. Attempts to integrate functional and imperative programming. Expressions have types, side effects (e.g. reading, writing or allocating) and regions (stating where the effects may occur). "The FX-87 Reference Manual", D.K. Gifford et al, MIT/LCS/TR-407, Oct 1987. Version: FX-89. ftp: FX-90 - Partial type and effect reconstruction and first-class modules. G - 1. "G: A Functional Language with Generic Abstract Data Types", P.A.G. Bailes, Computer Langs 12(2):69-94 (1987). 2. Oregon State U 1988. Combines functional, object-oriented, relational, imperative and logic programming (you name it we got it). "The Multiparadigm Language G", J. Placer, Computer Langs 16:235-258(1991). G++ - GNU's implementation of C++. ftp: for Unix Gabriel - Graphical DSP language for simulation and real systems. "A Design Tool for Hardware and Software for Multiprocessor DSP Systems," E.A. Lee, E. Goei, J. Bier & S. Bhattacharyya, DSP Systems, Proc ISCAS-89, 1989. GADS - Picture retrieval language. "Integrated Geographical Databases: The GADS Experience", P.E. Mantey et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp.193-198. Gaelic - For automated test programs. Used in military, essentially replaced by ATLAS. Galaxy - An extensible language in the vein of EL/1 and RCC. "Introduction to the Galaxy Language", Anne F. Beetem et al, IEEE Software 6(3):55-62. Galileo - "Galileo: A Strongly Typed Interactive Conceptual Language", A. Albano et al, ACM Trans Database Sys 10(2):230-260 (June 1985). Gambit - A variant of Scheme R3.99 supporting the 'future' construct of Multilisp. Implementation includes a compiler portable across 680x0 systems. Version: 1.7.1. GAMMA - 1. language for matrices and generation of mathematical programming reports. "GAMMA 3.3 for MPS/MPSX, IBM System:/360", Bonnor & Moore Assocs (Mar 1975). 2. A high-level parallel language. Research Directions in High-Level Parallel Languages, LeMetayer ed, Springer 1992. GAN - Generating and Analyzing Networks. "GAN - A System for Generating and Analyzing Acivity Networks", A. Schurmann, CACM 11(10) (Oct 1968). GAP - Groups Algorithms and Programming. Johannes Meier, Alice Niemeyer, Werner Nickel, Martin Schonert, Aachen 1988. Symbolic math for computational group theory. ftp:, version for Sun. GAPLog - General Amalgamated Programming with Logic. LOGPRO group, Linkoping Sweden. Restricted version of constraint loic programming, using S-unification but not restricted to a single domain. [Chapter in forthcoming Springer book on ESPRIT] Gargoyle - For compiler writing. J.V. Garwick, CACM 7(1):16-20, (Jan 1964). GARP - Graphical language for concurrent programming. "Visual Concurrent Programmint in GARP", S.K. Goering er al, PARLE '89 v.II, LNCS 366, pp.165- 180. GASP - Graph Algorithm and Software Package. PL/I extension for programming graph algorithms. "GASP - Gprah Algorithm Software Package", S. CHase, TR CS Dept, U Illinois, Dec 1969. GAT - Generalized Algebraic Translator. Improved version of IT. On IBM 650 RAMAC. Sammet 1969, p.142. GATE - GAT Extended? Based on IT. Sammet 1969, p.139. GAWK - GNU's implementation of AWK. ftp: GCL - General Control Language. A portable job control language. "A General Control Interface for Satellite Systems", R.J. Dakin in Command Languages, C. Unger ed, N-H 1973. G-Code - 1. Johnsson & Augustsson, Chalmers Inst Tech. Intermediate language used by the G-machine, an implementation of graph reduction based on supercombinators. "Efficient Compilation of Lazy Evaluation", T. Johnsson, SIGPLAN Notices 19(6):58-69 (June 1984). 2. A machine-like language for the representation and interpretation of attributed grammars. Used as an intermediate language by the Coco compiler generator. "A Compiler Generator for Microcomputers", P. Rechenberg et al, P-H 1989. GDPL - Generalized Distributed Programming Language. "GDPL - A Generalized Distributed Programming Language", K. Ng et al, Proc 4th Intl Conf Distrib Comp Sys, IEEE 1984, pp.69-78. GEA - Graph Extended ALGOL. Extension of ALGOL-60 for graph manipulation, on UNIVAC 1108. "A Language for Treating Graphs", S. Crespi-Reghizzi et al, , CACM 13(5) (May 1970). GECOM - For the GE-255. Somewhat akin to COBOL with some ALGOL features added. Comprised of ALGOL, COBOL, FRINGE and TABSOL. FRINGE and TABSOL may not have actually been implemented. Sammet 1969, p.329. Gedanken - John Reynolds, 1970. "GEDANKEN - A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept", J.C. Reynolds, CACM 13(5):308-319 (May 1970). General Purpose Graphic Language - "A General Purpose Graphic Language", H.E. Kulsrud, CACM 11(4) (Apr 1968). Gentleman's Portable Coroutine System - Coroutine package in FORTRAN. "A Portable Coroutine System", W.M. Gentleman, Info Proc 71, C.V. Freiman ed, 1972. GEPURS - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Gerald - "Gerald: An Exceptional Lazy Functional Programming Language", A.C. Reeves et al, in Functional Programming, Glasgow 1989, K. Davis et al eds, Springer 1990. GHC - Guarded Horn Clauses. K. Ueda. Parallel logic language similar to Parlog. Guards and commited-choice nondeterminism. (See FGHC, KL1). GIM-1 - Generalized Information Management Language. Nelson, Pick, Andrews. Proc SJCC 29:169-73, AFIPS (Fall 1966). GIN - Special-purpose macro assembler used to build the GEORGE 3 operating system for ICL1900 series machines. GIRL - Graph Information Retrieval Language. Handling directed graphs. "Graph Information Retrieval Language", S. Berkowitz, Report 76-0085, Naval Ship Res Dev Center, (Feb 1976). GKS - Graphical Kernel System. Glammar - A pattern transformation language for text-to-text translation, Used for compiler writing and linguistics. ftp: GLASS - General LAnguage for System Semantics. Esprit project at KU Nijmegen. ftp: Glisp - Generalized LISP. D.C. Smith, Aug 1990. A coordinated set of high-level syntaxes for Common LISP. Contains Mlisp, Plisp and ordinary LISP, with an extensible framework for adding others. Written in Plisp. ftp: GLOS - Graphics Language Object System. Dan Johnston> and Brian Hicks , U Queensland, St. Lucia 1978. Graphics objects correspond to language statements (e.g. line, circle, polygon etc). New objects defined using procedures. 2-D Transformations are context dependent and may be nested. GLOW - A POP-11 variant with lexical scope. Reviewed in Byte's UK edition, May 1992. Available from Andrew Arnblaster, Bollostraat 6, B-3140 Keerbergen, Belgium, for Mac or MS-DOS. Glypnir - 1966. An ALGOL-like language with parallel extensions. Similar to Actus. "GLYPNIR - A Programming Language for the Illiac IV", D.H. Lawrie et al, CACM 18(3) (Mar 1975). GMAP - GCOS Macro Assembler Program - Macro assembler for the GCOS 8 operating system on Honeywell/Bull DPS-8 machines. "GCOS8 OS GMAP User's Guide", Bull. Goedel - Declarative language for AI, based on many-sorted logic. Strongly typed, polymorphic, declarative, with a module system. Supports bignums and sets. Partial implementation available on SISCtus Prolog. ftp: info: Gofer - Mark Jones , Oxford 1991. An interpreted language similar to Haskell 1.1. Lazy evaluation, higher order functions, pattern matching, and type classes. Lambda, case, conditional and let expressions, and wildcard, as and irrefutable patterns. Lacks modules, arrays, standard classes. "Introduction to Gofer 2.20", M.P. Jones. ftp: GOL - General Operating Language. Subsystem of DOCUS. Sammet 1969, p.678. GOM - Good Old MAD. Don Boettner, U Mich. MAD for the IBM 360. Parts of the MTS Time-sharing system were written in GOM. GOOD - Graph-Oriented Object Database. A graph manipulation language for use as a database query language. "A Graph-Oriented Object Database Model", M. Gyssens et al, Proc ACM Symp Princs of Database Sys, Mar 1990. GOSPL - Graphics-Oriented Signal Processing Language. A graphical DSP language for simulation. "Graphic Oriented Signal Processing Language - GOSPL", C.D. Covington et al, Proc ICASSP-87, 1987. GP - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). GPL - 1. Generalized Programming Language. General purpose language akin to ALGOL. Sammet 1969, p.195. 2. "A Sample Management Application Program in a Graphical Data-driven Programming language", A.L. Davis et al, Digest of Papers, Compcon Spring 81, Feb 1981, pp.162-167. GPM - General Purpose Macro-generator. Early text-processing language similar to TRAC, implemented on Atlas 2. "A General Purpose Macrogenerator", C. Strachey, Computer J 8(3):225-241 (Oct 1965). GPSS - General Purpose Systems Simulator. Geoffrey Gordon, 1960. Discrete simulations. "The Application of GPSS V to Discrete System Simulation", G. Gordon, P-H 1975. Versions include GPSS II (1963), GPSS III (1965), GPS/360 (1967), and GPSS V (1970). GPX - Early system on UNIVAC II. Listed in CACM 2(5):16 (May 1959). GRAAL - ("Grail") General Recursive Applicative and Algorithmic Language. FP with polyadic combinators. "Graal: A Functional Programming System with Uncurryfied Combinators and its Reduction Machine", P. Bellot in ESOP 86, G. Goos ed, LNCS 213, Springer 1986. GRAF - GRaphic Additions to FORTRAN. FORTRAN plus graphic data types. "GRAF: Graphic Additions to FORTRAN", A. Hurwitz et al, Proc SJCC 30 (1967). Sammet 1969, p.674. GRAIL - Graphical Input Language. Flowchart language entered on a grphics tablet. "The GRAIL Language and Operations", T.O. Ellis et al, RM-6001- ARPA, RAND, Sept 1969. GRAIN - Pictorial query language. "Pictorial Information Systems", S.K. Chang et al eds, Springer 1980. GRAM - An extension of BNF used by the SIS compiler generator. "SIS - Semantics Implementation System", P.D. Mosses, TR DAIMI MD-30, Aarhus U, Denmark. Graphic ALGOL - Generation of shaded perspective picures in real time. "An Extended ALGOL-60 for Shaded Computer Graphics", B. Jones, Proc ACM Symp on Graphic Languages, Apr 1976. Graphic Language - For specifying graphic operations. "A Problem Oriented Graphic Language", P.J. Schwinn, proc ACM 22nd Natl Conf, 1967. Sammet 1969, p.677. GRAPPLE - GRAPh Processing LanguagE. 1968. "A Directed Graph Representation for Computer Simulation of Belief Systems", L.G. Tesler et al, Math Biosciences 2:19-40 (1968). GREEN - A proposed language to meet the DoD Ironman requirements which led to Ada. This language was the winner. "On the GREEN Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):16-21 (Oct 1978). GRIND - GRaphical INterpretive Display. Graphical input language for PDP- 9. "GRIND: A Language and Translator for COmputer Graphics", A.P. Conn, Dartmouth, June 1969. Groff - GNU's implementation of roff. (See nroff, troff). GSBL - "GSBL: An Algebraic Specification Language Based on Inheritance", S. Clerici et al in in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988, pp.78-92. GSPL - Greenberg's System Programming Language. Bernard Greenberg. GVL - Graphical View Language. T.C.N. Graham & J.R. Cordy, Queen's U. Canada. A visual language for specifying interactive graphical output. "GVL: A Graphical, Functional Language for the Specification of Output in Programming Languages", J.R. Cordy & T.C.N. Graham, Proc IEEE Intl Conf on Comp Lang ICCL'90 (March 1990). GW-BASIC - "Gee Whiz" BASIC. Microsoft's BASIC with graphic extensions. Gypsy - Specification and verification of concurrent systems software. Message passing using named mailboxes. Separately compilable units: routine (procedure, function, or process), type and constant definition, each with a list of access rights. "Report on the Language Gypsy", A.L. Ambler et al, UT Austin ICSCS-CMP-1 Aug 1976. HAL/S - Real-time language used by NASA for onboard shuttle software. "Two-Dimensional Characteristics of HAL, A Language for Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10) (Oct 1972). HALGOL - Hewlett-Packard. A simple language for communicating with devices such as modems and X.25 PADs. HALMAT - Intermediate language used by HAL/S. Haskell - (named for the logician Haskell B. Curry). April 1990. Designed by a committee from the functional programming community. A lazy purely functional language largely derived from Miranda. Static polymorphic typing, higher-order functions, user-defined algebraic data types, and pattern-matching list comprehensions. Innovations include a class system, operator overloading, functional I/O system, functional arrays, and separate compilation. "Report on the Programming Language Haskell Version 1.1", Paul Hudak & P. Wadler eds, CS Depts, U Glasgow and Yale U. (Aug 1991). Version 1.2: SIGPLAN Notices 27(5) (Apr 1992). list:, HASKLD-L@YALEVM.BITNET. Yale Haskell - beta 2.0, a full Haskell 1.2 system built on Common Lisp. info: Glasgow Haskell - Version 0.10 for Sun4's ftp:* info: Haskell B. - Haskell 1.2 implemented in LML, for Sun 3's and 4's, DECstation 3100 and Sequent Symmetry. ftp:* info: HASL - SASL plus conditional unification. "A Prological Definition of HASL, A Purely Functional Language with Unification Based Conditional Binding Expressions", H. Abramson in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986. HCLP - Hierarchical CLP. "Constraint Hierarchies and Logic Programming", A. Borning et al, in Proc Sixth Intl Logic Prog Conf, June 1989, pp. 149- 164. HCPRVR - "HCPRVR: An Interpreter for Logic Programs", D. Chester in Proc First Natl Conf on AI, Stanford, 1980. HDFL - Single assignment language. "Methods for Handling Structures in Data-Flow Systems", J.L. Gaudiot, Proc 12th Intl Symp Comp Arch, June 1985. HDM - See SPECIAL. HELP - DEA. Language for industrial robots. HEQS - E. Derman. Constraint language for financial modeling. Uses an extension of the equation solver in IDEAL. "A Simple Equation Solver and Its Application to Financial Modeling", E. Derman et al, Soft Prac & Exp 14(12):1169-1181 (Dec 1984). HERAKLIT - A distributed object-oriented language. "Definition einer objektorientierten Programmiersprache mit hierarchischem Typkonzept", B. Hindel, diss U Erlangen-Nuernberg, Dec 1987. Hermes - IBM, June 1990. An imperative, strongly typed process-oriented language for complex distributed systems. A follow-on effort to NIL[2]. Threads, relational tables, typestate checking, capability-based access, dynamic configuration. "Hermes: A Language for Distributed Computing", R. Strom et al, P-H 1991, ISBN 0-13-389537-8. ftp: 0.7alpha for Unix info: HIBOL - A variant of DIBOL, used in Infotec computers. HiLog - W. Chen et al, Stony Brook, 1989. Logic programming in higher order logic. "HiLog as a Platform for Database Languages (Or Why Predicate Calculus is Not Enough)", W. Chen et al, 2nd Intl Workshop on Database Prog Langs, Morgan Kaufmann, 1989. ftp: HINT - Hierarchical Information NeTs. For CDC 3600. "HINT: A Graph Processing Language", R.D. Hart, Michigan State U, Apr 1970. HLISP - "Monocopy and Associative Algorithms in an Extended Lisp", E. Goto, U Tokyo May 1974. HOL - Higher Order Logic. A proof-generating system for higher order logic based on LCF. "HOL: A Machine Oriented Formulation of Higher Order Logic", M.J.C. Gordon, Report 68, Comp Lab U Cambridge (1985). "Introduction to HOL", M.J.C. Gordon et al, Cambridge U Press 1993 ISBN 0-521-441897 HOL-88 built on ML, from Mike Gordon ftp: list: HOL-90 built on SML/NJ, from Brian Graham ftp: for Sun 4 list: Honeywell-800 Business Compiler - Another name for FACT. Sammet 1969, p.327. HOOK - ? Object Oriented Kernel. Delphia. An object-oriented extension of Delphia Prolog. Hope - ("springs eternal" and so forth.) R.M. Burstall, U Edinburgh 1978. Functional language with polymorphic types and lazy lists. First language to use call-by-pattern. "HOPE, an Experimental Applicative Language", R.M. Burstall et al, Conf Record 1980 LISP Conf, p.136-143 (Aug 1980), "A HOPE Tutorial", R. Bailey, BYTE Aug 1985, pp.235-258. "Functional Programming with Hope", R. Bailey, Ellis Horwood 1990. ftp: PC Hope, plus a lazy variant for Unix, Mac Hope+ - Alvey Flagship project, Imperial College. An extension of Hope with real numbers, vectors, call-by-WHNF. "Hope+", N. Perry, Imperial College, IC/FPR/LANG/2.5.1/7, 1988. Hope+C - Alvey Flagship project, Imperial College. Further evolution of Hope+ with continuation-based I/O, coroutines, and RFC's. For Sun-3's with Motorola FPU's. (See Massey Hope). info: John Darlington HOS-STPL - Hospital Operating System - STructured Programming Language. A FORTRAN-like language with structured extensions. "HOS-STPL User Manual", Health Services Research, US Public Health Service (Jan 1975). HPcode - Stack-based intermediate language used by HP in many of its compilers for RISC and stack-based architectures. Supports Fortran, Ada, Pascal, COBOL and C++. Descended from Stanford's U-code. HPCode-Plus - Descendant of HPcode with data types, developed to be an ANDF language. "ANDF: Finally an UNCOL After 30 Years", M.E. Benitez, Jack Davidson et al, CS TR-91-05 U Virginia (Mar 1991). (See ANDF). HP-GL - Hewlett-Packard Graphics Language. Vector graphics language used by HP plotters. HP-GL/2 - "HP-GL/2 Programmer's Guide", No. 5959-9733, HP. (See PCL.) HPL - Language used in HP9825A/S/T "Desktop Calculators", 1978(?) and ported to the early Series 200 family (9826 and 9836, MC68000). Fairly simple and standard, but with extensive I/O support for data acquisition and control (BCD, Serial, 16 bit custom and IEEE-488 interfaces), including interrupt handling. Currently owned by Structured Software Systems. "HPL Operating Manual for Series 200, Models 216, 226 and 235\6", HP 98614- 90010, Jan 1984. HSL-FX - Hierarchical Specification Language - Function Extension. HUGO - Geac. A bytecode-interpreted transaction handler. Hybrid - Concurrent object-oriented language. "Active Objects in Hybrid", O.M. Nierstrasz, SIGPLAN Notices 22(12):243-253 (OOPSLA '87) (Dec 1987). Hyperscript - Informix. The object-based programming language for Wingz, used for creating charts, graphs, graphics, and customized data entry. HyperTalk - The programming language for Macintosh HyperCard. HyTime - A hypermedia extension of SGML. "The HyTime Hypermedia/Time-based Document Structuring Language", S. Newcomb et al, CACM 34(11):67-83 (Nov 1991). IAL - International Algebraic Language. Original name of ALGOL 58. "Preliminary report - International Algebraic Language", CACM 1(12):8 (1958). IAM - Interactive Algebraic Manipulation. Interactive symbolic math for PDP-10. "IAM, A System for Interactive Algebraic Manipulation", C. Christensen et al, Proc Second Symp Symb Alg Manip, ACM Mar 1971. IBEX - Command language for Honeywell's CP-6 OS. ICES - Integrated Civil Engineering System. Subsystems include COGO, STRUDL, BRIDGE, LEASE, PROJECT, ROADS and TRANSET. Internal langguages include ICETRAN and CDL. "An Integrated Computer System for Engineering Problem Solving", D. Roos, Proc SJCC 27(2), AFIPS (Spring 1965). Sammet 1969, pp.615-620. ICETRAN - An extension of FORTRAN IV. Component of ICES. Sammet 1969, p.617. ici - Tim Long. Similar to C. Dynamic arrays, database features, screen handling. ftp: Icon - Griswold, 1970's. A descendant of SNOBOL4 with Pascal-like syntax. Icon is a general-purpose language with special features for string scanning. Dynamic types. The central theme of Icon is the generator: when an expression is evaluated it may be suspended and later resumed, producing a result sequence of values until it fails. Resumption takes place implicitly in two contexts: iteration which is syntactically loop-like ('every-do'), and goal-directed evaluation in which a conditional expression automatically attempts to produce at least one result. Expressions that fail are used in lieu of Booleans. Data backtracking is supported by a reversible assignment. Icon also has co-expressions, which can be explicitly resumed at any time. "The Icon Programming Language", Ralph & Marge Griswold, 2nd ed P-H 1990. ftp: list: Iconicode - 1990-1992. Visual dataflow language, token-based with hierarchical, recursive and iterative constructs. Version: IDF with extensions for image processing. "IDF: A Graphical Data Flow Programming Language for Image Processing and Computer Vision", Neil Hunt, Proc IEEE Conf on Systems Man & Cybernetics, IEEE, Nov 1990. Available from Iconicon . IC-Prolog - Clark & McCabe, Imperial College 1979. Logic language with coroutining. "IC-Prolog Language Features", K.L. Clark et al in Logic Programming, K.L. Clark et al eds, pp.253-266, Academic Press 1982. IC Prolog ][ - Imperial College. A Prolog with multithreading, TCP primitives for interprocess communication, mailboxes, and an interface to Parlog. "IC Prolog ][: A Language for Implementing Multi-Agent Systems", Y. Cosmadopoulos et al, in Tutorial and Workshop on Coperating Knowledge Based Systems, Keele U 1992. info: Y. Cosmadopoulos Damien Chew Id - Irvine Dataflow. Arvind & Gostelow. Single assignment language, used on MIT's Tagged-Token Dataflow Architecture (and soon on Motorola's Monsoon). Incrementally compiled, non-strict. "An Asynchronous Programming Language for a Large Multiprocessor Machine", Arvind et al, TR114a, Dept ISC, UC Irvine, Dec 1978. "The U-Interpreter", Arvind et al, Computer 15(2):42-50 (1982). (See Id Nouveau). IDAMS - Pictorial retrieval language, implemented in APL. "Concept of the Diagnostic Image Workstation", D. Meyer-Ebrecht, Proc 2nd Conf on Picture Archiving (PACS II), SPIE 418, pp.180-183 (1983). IDEA - Interactive Data Entry/Access. Data General. A language in which you designed the screen first, and then wrote the program around the predefined fields. Precursor to the DG COBOL Screen Section. IDEAL - Van Wyk, Stanford 1980. Numerical constraint language for typesetting graphics into documents. Inspired partly by Metafont. "A High-Level Language for Specifying Pictures", C.J. Van Wyk, ACM Trans Graphics 1(2):163-182 (Apr 1982). Distributed as part of Troff. IDL - 1. Interactive Data analysis Language. Xerox. Built on Interlisp-D. 2. Interface Description Language. Nestor, Lamb & Wulf, CMU 1981. Description of data structures to be passed between the components of an application, to provide a language-independent intermediate representation. "The Interface Description Language", R. Snodgrass, Computer Science Press 1989. Also SIGPLAN Notices 22(11) (Nov 1987) special issue. list: 3. Interface Definition Language. Project DOE, SunSoft, Inc. Part of an effort to integrate distributed object technology into the Solaris OS. IDL provides the standard interface between objects, and is the base mechanism for object interaction. info: or Mache Creeger, SunSoft Inc (415)336-5884. ftp: IDMS - Pictorial query language, an extension of Sequel2. "A Management System for an Integrated Database of Pictures and Alphanumeric Data", G.Y. Tang, Computer Graphics Image Processing 16:270-286 (1981). Id Nouveau - Arvind & Nikhil , LCS MIT, ca. 1986. Dataflow language, began as a functional language, added streams, resource managers and I-structures (mutable arrays). Loops are syntactic sugar for tail recursion. "Id Nouveau Reference Manual", R.S. Nikhil, CS TR, MIT, March 1988. "Id (Version 90.1) Reference Manual", R.S. Nikhil, CSG Memo 284-2, LCS MIT, July 15, 1991. (See Id). IDOL - Icon-Derived Object Language. Object-oriented preprocessor for Icon. "Programming in Idol: An Object Primer", C.L. Jeffery, U Arizona CS TR #90-10. ftp: IDS/I - Integrated Data Store. Extension to COBOL involving "chains" (circular lists), for GE computers. "A General Purpose Programming System for Random Access Memories", C.W. Bachman et al, Proc FJCC 26(1), AFIPS (Fall 1964). Sammet 1969, p.376. IF1 - Graph language used as an intermediate language for dataflow hardware. Used by the OSC SISAL compiler. "The Manchester Prototype Dataflow Computer", J.R. Gurd et al, CACM 28(1):34-52 (Jan 1985). IF2 - Graph language used by the OSC SISAL compiler. IFIP - Subset of ALGOL. Sammet 1969, p.180. IFP - Illinois FP. Arch Robinson. Variant of FP with Algol-like syntax. "The Illinois Functional Programming Interpreter", A.D. Robison, Proc 1987 SIGPLAN Conf on Interpreters and Interpretive Techniques (June 1987). "Illinois Functional Programming: A Tutorial", A.D. Robison, BYTE Feb 1987. ftp: - Versions for Unix and MS-DOS IFX - "Type Reconstruction with First-Class Polymorphic Values", J. O'Toole et al, SIGPLAN Notices 24(7):207-217 (Jul 1989). IGL - Interactive Graphic Language. Used primarily by Physics Dept at Brooklyn Poly, uses numerical methods on vectors to approximate continuous function problems that don't have closed form solutions. [Is this being confused with Tektronix's graphics library by the same name?] IIS - Idealized Instruction Set. Assembly language for the Flagship parallel machine. "An Idealized Instruction Set for a Packet Rewrite Machine", J. Sargeant, Manchester U, 1988. IITRAN - Simple PL/I-like language for students, on IBM 360. "The IITRAN Programming Language", R. Dewar et al, CACM 12(10):569-575 (Oct 1969). ILIAD - Real time language. "On the Design of a Language for Programming Real-Time Concurrent Processes", H.A. Schutz, IEEE Trans Soft Eng SE- 5(3):248-255 (May 1979). ILLIAC - Assembly language for the ILLIAC computer. Listed in CACM 2(5):16, (May 1959) p.16. ILOC - Rice U. Register-oriented intermediate language targeted to PC/RT. Source languages include FORTRAN and Russell. IMP - 1. IMProved Mercury Autocode. Used to code the Edinburgh Multi Access System (EMAS), one of the first OS's written in a high-level language, apparently predating Unix. References are in J British Computer Soc. (See Autocode). 2. Extensible dialect of ALGOL-60, on CDC 1604. "Experience with an Extensible Language", Edgar T. Irons, CACM 13(1):31-39 (Jan 1970). 3. Interpretive Menu Processor. Used to implement much of the user interface of the Alis office automation package from Applix, Inc. Ina Jo - [FDM?] "The Ina Jo Specification Language Reference Manual", J. Scheid et al, TR TM-(L)-6021/001/00, SDC Mar 1985. Info BASIC - Variant of Pick BASIC used with PRIME's PRIMOS. Information Algebra - Theoretical formalism for DP, never resulted in a language. Language Structure Group of CODASYL, ca. 1962. Sammet 1969, 709. Inglish - English-like language used for Adventure games like "The Hobbit" (could distinguish between "take the rope and axe" and "take the money and run"). InnovAda - Object-oriented extension to Ada, said to be LISP-like. Implemented as a preprocessor. INTCODE - Intermediate language used in the implementation of BCPL. "BCPL - The Language and its Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979. (See OCODE). INTELLECT - Larry Harris, 1977. A query language, close to natural English. INTERCAL - (Allegedly stands for "Compiler Language With No Pronounceable Acronym"). Woods & Lyon, Princeton U, May 26, 1972. Claims to have nothing in common with any other major programming language. "The INTERCAL Programming Language Reference Manual", Donald R. Woods & James M. Lyon. C-INTERCAL implementation as a C preprocessor by Eric Raymond. ftp:, also comp.sources.misc/Volume16 INTERCOM - Assembly language for the G-15. Listed in CACM 2(5):16 (May 1959). Versions: INTERCOM 101, INTERCOM 1000. INTERLISP - Once INTERLISP was one of two main branches of LISP (the other being MACLISP). In 1981 Common LISP was begun in an effort to combine the best features of both. INTERLISP includes a LISP programming environment. Dynamically scoped. "INTERLISP Programming Manual", W. Teitelman, TR, Xerox Rec Ctr 1975. Version: INTERLISP-D. Intermediate Programming Language - Arthur W. Burks. A very early attempt to express machine language at a higher level of abstraction. Like Plankalkul, it used a right-handed style of assignment, in which the new value appears on the right. Interpress - Xerox. Interpretive FORTH-like graphics language, possibly the first page description language, predating PostScript. Both are descendants of JaM. Used on Xerox printers. "Interpress, The Source Book", Steven Harrington et al, P-H 1988. Iota - Specification language. "The Iota Programming System", R. Nakajima er al, Springer 1983. IPL - Information Processing Language. Allen Newell, J.C. Shaw, H. Simon, Carnegie ca. 1956. Said to be the first list-processing language, also the first language to support recursion. Very low level. Sammet 1969, pp.388- 400. "Information Processing Language-V Manual", A. Newell ed, P-H 1965. Versions: IPL-I (never implemented), IPL-II (1957 for JOHNNIAC), IPL-III (existed briefly), IPL-IV, IPL-V (1958, for IBM 650, 704, 7090, many others. Widely used), IPL-VI. IPS - Threaded language. "IPS, An Unorthodox High Level Language", K. Meinzer, BYTE pp.146-159 (Jan 1979). IQ - Pictorial query language, implemented in Ratfor. "Structured Implementation of an Image Query Language", Y.E. Lien et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp.416-430. IRDATA - Industrial Robot DATA. A standardized robot control code. "IRDATA, Industrial Robot Data", DIN 66313, Beuth-Verlag 1991. IRL - Industrial Robot Language. A high-level language for programming industrial robots. "IRL, Industrial Robot Language", DIN 66312, Beuth- Verlag 1992. Ironman - HOLWG, DoD, 1978. Fourth of the series of DoD requirements that led to Ada. "Department of Defense Requirements for High Order Computer Programming Languages", SIGPLAN Notices 12(12):39-54 (Dec 1977). (See Strawman, Woodenman, Tinman, Steelman). Isabelle-92 - A generic theorem prover, supporting a wide variety of logics. A system of type classes allows polymorphic object-logics with overloading and automatic type inference. ftp: ISBL - Mathematical query language. ISETL - Interactive SETL. Gary Levin , Clarkson U. "An Introduction to ISETL Version 1.9", G.M. Levin, Dept MCS, Clarkson U. Current version: 3.0. ftp:, for MS-DOS, Mac, Unix, VAX/VMS, and source. ISIS - 1. Dialect of JOSS. Sammet 1969, p.217. 2. Concurrent language? ISO Pascal - Pascal standard, ISO 7185-1982. Changes from Jensen & Wirth's Pascal include: name equivalence; names must be bound before they are used; loop index must be local to the procedure; formal procedure parameters must include their arguments; conformant array schemas. ISP - Instruction Set Processor. A family of languages for describing the instruction sets of computers. "Computer Structures: Readings and Examples", D.P. Siewiorek et al, McGraw-Hill 1982. ISPL - Instruction Set Processor Language. ca 1971. Original ISP language, written in BLISS. "Computer Structures: Readings and Examples", D.P. Siewiorek et al, McGraw-Hill 1982. ISPS - Instruction Set Processor Specifications. Operational hardware specification language. Successor to ISPL. IEEE Trans Computers, C- 30(1):24-80 (1981). [Bell, Newell, Siewiorek, Barbacci 1982?] ISWIM - If You See What I Mean. Landin 1966. ISWIM is purely functional, a sugaring of lambda calculus, and the ancestor of most modern applicative languages. An ISWIM program is a single expression qualified by 'where' clauses (auxiliary definitions including equations among variables), conditional expressions and function definitions. ISWIM was the first language to use lazy evaluation, and introduced the offside rule for indentation. "The Next 700 Programming Languages", P.J. Landin, CACM 9(3):157-166 (Mar 1966). IT - Internal Translator. A.J. Perlis et al, Carnegie Tech ca 1957. Early compiler for math originally for Burroughs 205, then IBM 650. Forerunner of RUNCIBLE, GATE, CORRELATE and GAT. IT source code was converted to PIT, thence to SPIT. Sammet 1969, pp.139-141. Versions: IT-2 produced machine language directly, IT-3 developed at Carnegie added double-precision floating point. CACM 1(5):22 (1958). Ivan - A Diana-like language making up part of VHDL. "VHDL - The Designer Environment", A. Gilman, IEEE Design & Test 3, (Apr 1986). Iverson's Language - APL, which went unnamed for many years. Sammet 1969, p.770. IVTRAN - 1966. Parallel FORTRAN for the Illiac IV. J - Derivative and redesign of APL. Purely functional with lexical scope and more conventional control structures, plus several new concepts such as function rank and function arrays. "APL\?"", Roger K.W. Hui et al, APL90 Conf Proc, Quote Quad 20(4):192-200. Version 4.1 for MS-DOS, Sun, Mac, Archimedes. Source available in C from Iverson Software, (416)925-6096. ftp: J3 - Dialect of JOVIAL. "Military Standard JOVIAL (J3)", MIL-STD-1588 (USAF), June 1976. J73 - Yep, another JOVIAL dialect. "Military Standard JOVIAL (J73)", MIL-STD-1589 (USAF), Feb 1977. JACAL - JAffer's CAnonical ALgebra. A. Jaffer. Symbolic math program, written in Scheme. ftp: Jade - 1. U Washington, late 80's. A strongly-typed language, object-oriented but without classes. For type research. The compiler output is Smalltalk. [Submitter claimed that Jade has exactly one user!] 2. Implicit coarse-grained concurrency. The constructs 'withth', 'withonly' and 'without' create tasks with specified side effects to shared data objects. Implemented as a C preprocessor. "Coarse-Grain Parallel Programming in Jade", M.S. Lam et al, SIGPLAN Notices 26(7):94-105 (Jul 1991). JaM - John and Martin. J. Warnock & M. Newell, PARC 1978. Interpretive FORTH-like graphics language, forerunner of both Interpress and PostScript. Mentioned in PostScript Language reference Manual, Adobe Systems, A-W 1985. Janus - 1. Distributed language with an ask/tell constraint system. "Janus: A Step Towards Distributed Constraint Programming", V. Saraswat et al in Logic Programming: Proc 1990 North Am Conf, S. Debray et al eds, MIT Press 1990. ftp:, a sequential implementation built on SICStus Prolog. 2. "Experience with the Universal Intermediate Language Janus", B.K. Haddon et al, Soft Prac & Exp 8(5):601-616 (Sep 1978). JAZ - Early system on LGP-30. Listed in CACM 2(5):16 (May 1959). JCL - Job Control Language. Batch language on IBM OS/360 systems. Notoriously difficult to program in. JCS-13 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). JEAN - A dialect of JOSS. JOSS - JOHNNIAC Open Shop System. Charles L. Baker, RAND 1964. An early simple interactive calculator language. "JOSS Users' Reference Manual", R.L. Clark, Report F-1535/9, RAND Corp (Jan 1975) Sammet 1969, pp.217-226. Versions: JOSS I and JOSS II. JOVIAL - Jule's Own Version of IAL. Jules I. Schwartz 1959-1960. Based on ALGOL 58, with extensions for large scale real-time programming. Saw extensive use by the US Air Force. The data elements were items, entries (records) and tables. CACM 6(12):721 (Dec 1960)[?]. Versions include JOVIAL I (IBM 709, 1960), JOVIAL II (IBM 7090, 1961) and JOVIAL 3 (1965). Dialects: J3, JOVIAL J73, JS, JTS. Joyce - Brinch Hansen. Distributed language based on Pascal and CSP. "Joyce - A Programming Language for Distributed Systems", Per Brinch Hansen, Soft Prac & Exp 17(1):29-50 (Jan 1987). JPL - JAM Programming Language. Imperative string-based language, part of the JAM tool for developing screen (non-window) applications. JYACC Corp. JPLDIS - Jet Propulsion Laboratory Display Information System. Jack Hatfield, George Masters, W. Van Snyder, Jeb Long et al, JPL. Query system for UNIVAC 1108 [or PDP's?] written in FORTRAN, based on Tymshare's "Retrieve". Indirectly led to Vulcan[1] which led to dBASE II. JS - Dialect of JOVIAL. Sammet 1969, p.639. JTS - Simple dialect of JOVIAL. Sammet 1969, p.528. Juno - Numerical constraint-oriented language for graphics applications. Solves its constraints using Newton-Raphson relaxation. Inspired partly by Metafont. "Juno, a Constraint-Based Graphics System", G. Nelson in SIGGRAPH '85 Conf Readings, B.A. Barsky ed, Jul 1985, pp.235-243. Jym - Patrick Bellot, France. A predecessor to Graal. K5 - Early system on Larc computer. Listed in CACM 2(5):16 (May 1959). Kaleidoscope - Freeman-Benson , U Washington and Universite de Nantes, 1989; U Victoria, 1992. Object-oriented language which mixes imperative and constraint-oriented features. Similar to Siri. Vaguely related to Prose[2]. "Kaleidoscope: Mixing Objects, Constraints and Imperative Programming", B.N. Freeman-Benson, SIGPLAN Notices 25(10):77-88 (OOPSLA/ECOOP '90) (Oct 1990). "Constraint Imperative Programming", B.N. Freeman-Benson, Ph.D. Thesis, TR 91-07-02, U Wash (1991). "Constraint Imperative Programming", Freeman-Benson et al, IEEE Conf on Comp Lang, Apr 1992. Versions: Kaleidoscope '90, Kaleidoscope '91. Kali - Data parallel language. "Supporting Shared Data Structures on Distributed Memory Architecures", C. Koelbel et al in Second ACM SIGPLAN Symp on Princ and Prac of Parallel Programming, pp.177-186, Mar 1990. KAP - Kernel Andorra Prolog. "Kernel Andorra Prolog and its Computation Model", S. Haridi et al, in Logic Programming: Proc 7th Intl Conf, MIT Press 1990. Predecessor to AKL. Karel - Language featured in Karel the Robot: A Gentle Introduction to Computer Programming, Richard E. Pattis, Wiley 1981. ftp: KBMS - Expert system. KCL - Kyoto Common LISP. Compiles to ANSI C. "Design and Implementation of Kyoto Common Lisp", T. Yuasa, J Info Proc 13(3):284-295 (1990). "Kyoto Common Lisp Report", T. Yuasa & M. Hagiya. list: KEE - Knowledge Engineering Environment. Frame-based expert system. Supports dynamic inheritance, multiple inheritance, polymorphism. Classes, meta-classes and objects are all treated alike. A class is an instance of a meta-class. Can control rules for merging of each field when multiple inheritance takes place. Methods are written in LISP. Actions may be triggered when fields are accessed or modified. Extensive GUI integrates with objects. Can easily make object updates to be reflected on display or display selections to update fields. This can in turn trigger other methods or inference rules which may then update other parts of the display. Intellicorp, for TI Explorer. "The Role of Frame-Based Representation in Reasoning", R. Fikes et al, CACM 28(9):904- 920 (Sept 1985). Kernel Parlog - Modeless intermediate language for Parlog compilation. "Notes on the Implementation of Parlog", K.L. Clark et al, J Logic Prog 2(1):17-42 (1985). Kevo - S. Taivalsaari Prototype-based object-oriented system. Kid - Kernel language for Id. A refinement of P-TAC, used as an intermediate language for Id. Lambda-calculus with first-class let-blocks, plus I-structures. "A Syntactic Approach to Program Transformations", Z. Ariola et al, SIGPLAN Notices 26(9):116-129 (Sept 1991). KISS - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). KL0 - Sequential logic language based on Prolog, for the ICOT project, Japan. KL1 - Kernel Language 1. An experimental AND-parallel version of KL0 for the ICOT project, Japan. An implementation of FGHC. "Design of the Kernel Language for the Parallel Inference Machine", U. Kazunori et al, Computer J (Dec 1990). Klerer-May System - Columbia U. Early system with special math symbols. Its reference manual was two pages long! "Further Advances in Two- Dimensional Input-Output by Typewriter Terminals", M. Klerer et al, Proc FJCC 31 (1967). Sammet 1969, pp.284-294. KL-ONE - Frame language. "An Overview of the KL-ONE Knowledge Representation System", R.J. Brachman and J. Schmolze, Cognitive Sci 9(2), 1985. KMODEL - An ancestor of Model-K. "Preliminary Results on the BEHAVIOR Specifications Language KMODEL-0", BEHAVIOR Memo 5-91, 1991, GMD, Sankt Augustin, Germany KOMPILER - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Versions: KOMPILER 2 for IBM 701, KOMPILER 3 for IBM 704. K&R C - C as originally described in The C Programming Language, B. Kernighan and D. Ritchie, in contrast to the proposed ANSI standard C. KRC - Kent Recursive Calculator. Turner 1981. Lazy functional language based on SASL, with pattern matching, ZF expressions. "Functional Programming and its Applications", David A. Turner, Cambridge U Press 1982. KRL - Frame language. "An Overview of KRL, a Knowledge Representation Language", D.G. Bobrow and T. Winograd, Cognitive Sci 1:1 (1977). KRS - Frame-based language built on Common LISP. KRYPTON - Frame language. "An Essential Hybrid Reasoning System: Knowledge and Symbol Level Acounts of of KRYPTON", R.J. Brachman et al, Proc IJCAI- 85, 1985. ksh - Korn Shell command interpreter for Unix. L6 - Bell Telephone Laboratories Low-Level Linked List Language. Ken Knowlton, 1965. List processing language, typeless. "A Programmer's Description of L6, Bell Telephone Laboratories' Low-Level Linked List Language", K. Knowlton CACM 9(8):616-625 (Aug 1966). Sammet 1969, pp.400- 405. LADY - "Key Concepts in the INCAS Multicomputer Project", J. Nehmer et al IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987). Lakota - Scripting language, extends existing OS commands. info: Richard Harter SMDS Inc. LAMBDA - A version of typed lambda calculus, used to describe semantic domains. "Outline of a Mathematical Theory of Computation", D.S. Scott, TM PRG-2, PRG, Oxford U, 1971. lambda-Prolog - An extension of standard Prolog, in which terms are typed lambda-terms. Prolog/Mali compiler uses the MALI abstract memory system. ftp: info: list: LAMINA - Concurrent object-oriented language. "Experiments with a Knowledge-based System on a Multiprocessor", Third Intl Conf Supercomputing Proc, 1988. "ELINT in LAMINA, Application of a Concurent Object language", Delagi et al, KSL-88-3, Knowledge Sys Labs, Stanford U. Language H - Early business-oriented language developed by NCR. Laning and Zierler - J.H. Laning Jr and N. Zierler, 1953-1954. Possibly the first true working algebraic compiler. On MIT's Whirlwind computer. Sammet 1969, pp.131-132. LAP - LISP Assembly Program. Assembly language embedded into early LISP. Sammet 1969, p.597. Also used by the Liar compiler for MIT Scheme. LAP4 - Early assembly language for Linc-8 machine. LAPSE - Single assignment language for the Manchester dataflow machine. "A Single Assignment Language for Data Flow Computing", J.R.W. Glauert, M.Sc Diss, Victoria U Manchester, 1978. Larch - The Larch Project develops aids for formal specifications. Each Larch specification has two components: an interface containing predicates written in the LIL (Larch Interface Language) designed for the target language and a 'trait' containing assertions about the predicates written in LSL, the Larch Shared Language common to all. "The Larch Family of Specification Languages", J. Guttag et al, IEEE Trans Soft Eng 2(5):24-365 (Sep 1985). LARCH/CLU - Larch specification language for CLU. Used in Abstraction and Specification in Program Development, B. Liskov & J. Guttag, MIT Press 1986. LaTeX - see TeX. LAU - Langage a Assignation Unique. Single assignment language for the LAU dataflow machine, Toulouse. "Pipelining, Parallelism and Asynchronism in the LAU System", J.C. Syre et al, Proc 1977 Intl Conf Parallel Proc, pp.87- 92. LAURE - A language for knowledge representation combining object orientation and logic programming. Object-oriented exception handling and a polymorphic type system. info: Yves Caseau LAVA - A language for VLSI that deals with "sticks", i.e. wires represented as lines with thickness. R.J. Matthews et al, "A Target Language for Silicon Compilers", IEEE COMPCON, 1982, pp.349-353. LAX - LAnguage eXample. Toy language used to illustrate problems in compiler design. "Compiler Construction", W.M. Waite et al, Springer 1984. LCC - Language for Conversational Computing. CMU 1960's. Similar to JOSS, with declarations, pointers and block structure from ALGOL-60. Implemented for IBM 360/370 under TSS. "LCC Reference Manual", H.R. Van Zoeren, CMU 1969. LCL - 1. The Larch interface language for ANSI standard C. J.V. Guttag et al, TR 74, DEC SRC, Palo Alto CA, 1991. 2. Liga Control Language. Controls the attribute evaluator generator LIGA, part of the Eli compiler-compiler. "LCL: Liga Control Language", U. Kastens, U Paderborn. LCS - Language for Communicating Systems. Bernard Barthomieu. A concurrent SML with behaviors and processes, based upon higher order CCS. Implemented as a bytecode interpreter. Version 3.1 ftp: for Sun 3, Sun 4 info: Bernard Berthomieu list: LDL - "LDL: A Logic-Based Data-Language", S. Tsur et al, Proc VLDB 1986, Kyoto Japan, Aug 1986, pp.33-41. LDT - Logic Design Translator. Computer system design analysis. Sammet 1969, p.621. LE/1 - Langage External. "An Evaluation of the LE/1 Network Command Language Designed for the SOC Network", J. du Masle, in Command Languages, C. Unger ed, N-H 1973. LEAF - 1. LISP Extended Algebraic Facility. "An Algebraic Extension to LISP", P.H. Knowlton, Proc FJCC 35 (1969). 2. "LEAF: A Language which Integrates Logic, Equations and Functions", R. Barbuti et al in Logic Programming, Functions Relations and Equations, D. DeGroot et al eds, P-H 1986, pp.201-238. Lean - U Nijmegen and U East Anglia. An experimental language based on graph rewriting, useful as an intermediate language. Descendant of Dactl0. "Towards an Intermediate Languae Based on Graph Rewriting", H.P. Barendregt et al in PARLE: Parallel Architectures and Languages Europe, G. Goos ed, LNCS 259, Springer 1987, pp.159-175. (See Clean). LEAP - Language for the Expression of Associative Procedures. ALGOL-based formalism for sets and associative retrieval, for TX-2. Became part of SAIL. "An ALGOL-based Associative Language", J.A. Feldman et al, CACM 12(8):439-449 (Aug 1969). LECOM - Version of COMIT on GE 225 ca. 1966. Sammet 1969, p.419. LEDA - Combines imperative, object-oriented, and logic programming language. Tim Budd, Oregon State U. . LeFun - MCC, Austin. Integration of logic and functional programming. "LeFun: Logic, Equations and Functions", H. Ait-Kaci et al, Proc 1987 Symp on Logic Programming, San Francisco. LEGOL - "Application of MP/3 to the Design and Implementation of LEGOL, A Legally Oriented Language", S.H. Mandil et al, Intl Symp Programming, paris 1974. Le-Lisp - Jerome Chailloux and Emmanuel St James, INRIA, France. A LISP dialect close to Common Lisp, lexically scoped, with a CLOS-like object system. Uses both packages and modules. "le-lisp: A Portable and Efficient Lisp System", J. Chailloux et al, Proc 1984 ACM Symp on Lisp and Functional Programming, ACM. Version v.16, available from ILOG, France. Leo - General-purpose systems language, syntactically like Pascal and Y, semantically like C. "The Leo Programming Language", G. Townsend, CS TR 84-7, U Arizona 1984. Lex - Input language to the Lex scanner generator. "Lex - A Lexical Analyzer Generator", M.E. Lesk, CS TR 39, Bell Labs (Oct 1975). (See Flex). Implementation: ML-lex - Implementation and output in SML/NJ. ftp: LG - Simple language for analyic geometry, with graphic output. "LG: A Language for Analytic Geometry", J. Reymond, CACM 12(8) (Aug 1969). [???] LGDF - Large-Grain DataFlow. "A Large-grain Data Flow Scheduler for Parallel Processing on Cyberplus", R.G. Babb et al, Proc 1986 Intl Conf on Paralllel Proc, Aug 1986. LGEN - Bell Labs. A logic language for VLSI implementation. S.C. Johnson, "Code Generation for Silicon", Proc 10th POPL, 1983. LGN - Linear Graph Notation. A linearized representation of TCOL trees. B.W. Leverett et al, "An Overview of the Production Quality Compiler- Compiler Projects", TR CMU-CS-79-105, Carnegie Mellon 1979. (See TCOL) LIDO - Input language for the attribute evaluator generator LIGA (a successor of GAG and a subsystem of the Eli compiler-compiler). LIDO is derived from GAG's input language ALADIN. "LIDO: A Specification Language for Attribute Grammars", U. Kastens, Fab Math-Inf, U Paderborn (Oct 1989). LIFE - Logic of Inheritance, Functions and Equations. Hassan Ait-Kacy et al, MCC, Austin, 1987. Object-oriented, functional, and constraint-based. Integration of ideas from LOGIN and LeFun. "Is There a Meaning to LIFE?", H. Ait-Kacy et al, Intl Conf on Logic Prog, 1991. ftp: - Wild_LIFE interpreter from Paradise project at DEC's Paris Research Lab list: Lila - Patrick Salle'. A small assembly-like language used for implementation of Actor languages. [Plasma perhaps?] LIMDEP - Linear programming language used by economists. LIMP - "Messages in Typed Languages", J. Hunt et al, SIGPLAN Notices 14(1):27-45 (Jan 1979). Linc - Burroughs/Unisys 4GL. Designed in New Zealand. Lincoln Reckoner - ca 1965. Interactive math including matrix operations, on TX-2. "The Lincoln Reckonere: An Operation-Oriented On-line Facility with Distributed Control", A.N. Stowe et al, Proc FJCC 29 (1966). Sammet 1969, pp.245-247. Linda - Yale. A "coordination language", providing a model for concurrency with communication via a shared tuple space. Usually implemented as a subroutine library for a specific base language. "Generative Communication in Linda", D. Gelernter ACM TOPLAS 7(1):80-112 (1985). "Linda in Context", N. Carreiro et al, CACM 32(4):444-458 (Apr 1989). (See C-Linda, Ease, Fortran-Linda, LindaLISP, Lucinda, Melinda, Prolog-Linda). LindaLISP - Yep, you guessed it. Lingo - An animation scripting language. MacroMind Director V3.0 Interactivity Manual, MacroMind 1991. LINGOL - LINguistics Oriented Language. Natural language processing. "A Linguistics Oriented Programming Language", V.R. Pratt, Third Intl Joint Conf on AI, 1973. LIPL - Linear IPL. A linearized (i.e. horizonal format) version of IPL-V. Sammet 1969, p.394. R. Dupchak, "LIPL - Linear Information Processing Language", Rand Memo RM-4320-PR, Feb 1965. LIS - Langage Implementation Systeme. "The System Implementation Language LIS", J.D. Ichbiah et al, CII Honeywell-Bull, TR 4549 E/EN, Louveciennes France (Dec 1974). LISA - Statistical data analysis. Similar to S. ftp: LISP - LISt Processing. John McCarthy et al, MIT late 50's. Symbolic functional recursive language based on lambda- calculus, used especially for AI and symbolic math. Many dialects. Atoms and lists. Dynamic scope. Both programs and data are represented as list structures. Versions include LISP 1 (Original version), LISP 1.5 (MIT 1959), LISP 1.75, LISP 1.9. LISP 2 - LISP 1.5 with an ALGOL60-like surface syntax. Also optional type declarations, new data types including integer-indexed arrays and character strings, partial-word extraction/insertion operators and macros. A pattern-matching facility similar to COMIT was proposed. "The LISP 2 Programming Language and System", P.W. Abrahams et al, Proc FJCC 29:661- 676, AFIPS (Fall 1966). LISP70 - LISP dialect, a descendant of MLISP and MLISP2. Also known as PLISP and VEL. Useful for parsing. Only the pattern-matching system was published and fully implemented. According to Alan Kay, LISP70 had an influence on Smalltalk-72. "The LISP70 Pattern Matching System, Larry Tesler et al, IJCAI 73. LISP A - "LISP A: A LISP-like System for Incremental Computing", E.J. Sandewall, Proc SJCC 32 (1968). Lispkit Lisp - Purely functional version of LISP. "Functional Programming, Application and Implementation", P. Henderson, P-H 1980. Lisp-Linda - P. Dourish, U Edinburgh 1988. LISP Machine LISP - Zetalisp. Lisptalk - "Concurrent Programming Language Lisptalk", C. Li, SIGPLAN Notices 23(4):71-80 (Apr 1988). LITTLE - Typeless language used to produce machine-independent software. LITTLE has been used to implement SETL. "Guide to the LITTLE Language", D. Shields, LITTLE Newsletter 33, Courant Inst (Aug 1977). Little Smalltalk - A line-oriented near-subset of Smalltalk-80. "A Little Smalltalk", Timothy Budd, A-W 1987. ftp:, source in C. LLM3 - J. Chailloux. Assembly language for a virtual machine, the implementation language for Le-Lisp. LM-Prolog - Lisp Machine Prolog. K. Kahn et al, 1983. "LM-Prolog User Manual", M. Carlsson et al, Uppsala Dec 1983. ftp: archive/lm-prolog.tar.Z - Prolog interpreter in Zetalisp LM3 - The Larch interface language for Modula-3. (See Larch). "LM3: A Larch/Modula-3 Interface Language", Kevin D. Jones, TR 72, DEC SRC, Palo Alto CA. LML - 1. Chalmers U Tech, Goteborg, Sweden. Lazy, completely functional variant of ML[2]. Implemented on the G-machine. ftp: 2. Logical ML. Adds to Lazy ML a data type of 'theories' whose objects represent logic programs. "Logic Programming within a Functional Framework", A. Brogi et al, in Programming Language Implementation and Logic Programming, P. Deransart et al eds, LNCS 456, Springer 1990. LNF - "A Fully Lazy Higher Order Purely Functional Programming Language With Reduction Semantics", K.L. Greene, CASE Center TR 8503, Syracuse U 1985. L&O - Logic and Objects. Implemented as a front end for IC Prolog. "Logic and Objects", Frank McCabe, Prentice-Hall. info: Zacharias Bobolakis ftp:,90.tar.Z LO - Linear Objects. Concurrent logic programming language based on "linear logic", an extension of Horn logic with a new kind of OR- concurrency. "LO and Behold! Concurrent Structured Processes", J. Andreoli et al, SIGPLAN Notices 25(10):44-56 (OOPSLA/ECOOP '90) (Oct 1990). LogC - C extension ncorporating rule-oriented programming, for AI applications. Production rules are encapsulated into functional components called rulesets. Uses a search network algorithm similar to RETE. "LogC: A Language and Environment for Embedded Rule Based Systems", F. Yulin et al, SIGPLAN Notices 27(11):27-32 (Nov 1992). Version: LogC 1.6. Logic Design Language - Language for computer design. "A System Description Language Using Parametric Text Generation", R.H. Williams, TR 02.487, IBM San Jose, Aug 1970. LOGIN - Integration of logic programming and inheritance. "LOGIN: A Logic Programming Language with Built-In Inheritance", H. Ait-Kaci et al, J Logic Programming 3(3):185-215 (1986). LOGLAN - Inst Informatics, Warsaw U. Object-oriented. "LOGLAN '88 - Report on the Programming Language", LNCS 414, Springer, ISBN 3-540-52325- 1. LOGLISP - Robertson & Sibert, Syracuse 1980. A Prolog-like language called LOGIC, embedded in LISP. "LOGLISP: An Alternative to Prolog", J. Alan Robinson et al in Machine Intelligence 10, D. Michie ed, Ellis Horwood 1982. LOGO - Developed 1966-1968 by a group at Bolt, Beranek & Newman headed by Wally Fuerzeig and including Seymour Papert . A LISP-like language aimed at children and other beginning programmers, noted for its "turtle graphics" used to draw geometric shapes. ftp: Logo interpreters for Mac, Unix, PC, X LOGOL - Strings are stored on cyclic lists or 'tapes', which are operated upon by finite automata. J. Mysior et al, "LOGOL, A String manipulation Language", in Symbol Manipulations Languages and Techniques, D.G. Bobrow ed, N-H 1968, pp.166-177. LOLITA - Language for the On-Line Investigation and Transformation of Abstractions. Extension of Culler-Fried system for symbolic math. "An On- line Symbol Manipulation System", F.W. Blackwell, Proc ACM 22nd Natl Conf (1967). Sammet 1969, p.464. Lolli - (named for the "lollipop" operator "-o") Based on linear logic, in which clauses can be used exactly once. All the operators of lambda- Prolog plus linear variations. Implemented in SML/NJ. Josh Hodas et al, "Logic Programming in a Fragment of Intuitionistic Linear Logic", Information and Computation, to appear. ftp: LOOK - Specification language. "A Look at Algebraic Specifications", S.N. Zilles et al, IBM RR, 1982. LOOKS - "LOOKS: Knowledge-Representation System for Designing Expert Systems in a Logical Programming Framework", F. Mizoguchi, Proc Intl Conf 5th Gen Comp Sys, ICOT 1984. LOOPN - U Tasmania. An object-oriented language for simulation of Petri nets. ftp: LOOPS - Object-oriented LISP extension, used in development of knowledge- based systems. "The LOOPS Manual", D.G. Bobrow & M. Stefik, Xerox Corp 1983. (See CommonLoops). Lore - Object-oriented language for knowledge representation. "Etude et Realisation d'un Language Objet: LORE", Y. Caseau, These, Paris-Sud, Nov 1987. LOTIS - LOgic, TIming, Sequencing. Describes a computer via its data flow. Sammet 1969, p.620. LOTOS - Specification language based on temporal ordering. "The Formal Description Technique LOTOS", P.H.J. van Eijk et al eds, N-H 1989. Lout - J. Kingson The language embedded in the document preparation system lout. ftp: LPC - ca 1988. Variant of C used to program the LP MUDs, programmable multi-user adventures. LPG - 1. Linguaggio Procedure Grafiche (Italian for "Graphical Procedures Language"). dott. Gabriele Selmi. Roughly a cross between FORTRAN and APL, with graphical-oriented extensions and several peculiarities. Underlies the products of CAD.LAB Spa. "Graphical Procedure Language User's Guide and Reference Manual", CAD.LAB , Bologna, Italy, 1989, order code GO89/9. 2. Langage de Programmation Generique. An applicative language, both specification and functional. Special emphasis on parametrized declarations. "Design and Implementation of a Generic, Logic and Functional Programming Language", D. Bert et al, ESOP 86, LNCS 213, Springer 1986. LPL - List Programming Language. LISP-like language with ALGOL-like syntax, for IBM 360. "LPL - LISP Programming Language", F.W. Blair et al, RC 3062, IBM TJWRC, Sep 1970. LRLTRAN - Lawrence Radiation Laboratory TRANslator. FORTRAN extension with vector arithmetic and dynamic storage, used for scientific work and systems programming, including the LTSS OS. "The LRLTRAN Compiler", S.F. Mendicino, CACM 11(11):747-775 (Nov 1969). LSL - 1. Larch Shared Language. An assertion language. (See Larch). 2. Link and Selector Language. Graphic query language. "LSL: A Link and Selector Language", D.C. Tsichritzis, Proc Intl Conf Management of Data, ACM 1976, pp.123-134. LSYD - Language for SYstems Development. PL/I-like language with data structure and character extensions. "Systems Programming Languages", R.D. Bergeron et al, in Advances in Computers 1971, A-P. LT-2 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). LTR - Langage Temps-Reel. A French predecessor to Ada, Modula-like with a set of special-purpose real-time constructs based on an event model. Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp 10:851- 887 (1980). LTR2 - LTR3 - Parayre, France. Saw wide use by French military and avionics. "The LTR3 Reference Manual", A. Parayre, Delegation Generale pour l'Armement, France. LUCID - 1. Early query language, ca. 1965, System Development Corp, Santa Monica, CA. Sammet 1969, p.701. 2. Ashcroft & Wadge , 1981. A dataflow language descended from ISWIM, lazy but first-order. Statements are regarded as equations defining a network of processors and communication lines, through which the data flows. Every data object is thought of as an infinite stream of simple values, every function as a filter. Lucid has no data constructors such as arrays or records. Iteration is simulated with 'is current' and 'fby' (concatenation of sequences). "Lucid, the Dataflow Programming Language", W. Wadge, Academic Press 1985. Lucinda - Combines Russell-like polymorphism with Linda-like concurrency. Implemented as a threaded interpreter written in C, for a Sun network and a Meiko Computing Surface. "Lucinda - An Overview", P. Butcher, U York et al, SIGPLAN Notices 26(8):90-100 (Aug 1991). Lucy - Distributed constraint programming language. An actor subset of Janus. "Actors as a Special Case of Concurrent Constraint Programming", K. Kahn et al, SIGPLAN Notices 25(10):57-66 (OOPSLA/ ECOOP '90) (Oct 1990). LUSTRE - Real-time dataflow language for synchronous systems, especially automatic control and signal processing. A Lucid subset, plus timing operators and user-defined clocks. "Outline of a Real-Time Data-Flow Language", J.-L. Bergerand et al, Proc IEE-CS Real Time Systems Symp, San Diego, IEEE Dec 1985, pp.33-42. "LUSTRE: A Declarative Language for Programming Synchronous Systems", P. Caspi et al, Conf Rec 14th Ann ACM Symp on Princ Prog Langs, 1987. LYaPAS - (Russian acronym for "Logical Language for the Representation of Synthesis Algorithms"). For the URAL-1 computer. Coded in octal! "LYaPAS: A Programming Language for Logic and Coding Algorithms", M.A. Gavrilov et al eds, Academic Press 1969. LYNX - U Wisc 1984. Language for large distributed networks, using remote procedure calls. "The Lynx Distributed Programming Language: Motivation, Design and Experience", M.L. Scott, Computer Langs 16:209-233 (1991). LYRIC - Language for Your Remote Instruction by Computer. CAI language implemented as a FORTRAN preprocessor. "Computer Assisted Instruction: Specification of Attributes for CAI Programs and Programmers", G.M. Silvern et al, Proc ACM 21st Natl Conf (1966). M - 1. Alternative name for MUMPS. 2. Silicon Compiler Systems. A C-like language for multilevel hardware description. Currently available in the GDT package from Mentor Graphics. M3 - Macro processor, forerunner of M4, for the AP-3 mini. M4 - Macro processor for Unix and GCOS. "The M4 Macro Processor", Kernighan & Ritchie, Jul 1977. ftp: M5 - A. Dain, U Cincinnati 1992. Macro processor, a generalization of M4. For Unix and DOS. ftp: MAC - Early system on Ferranti Mercury. Listed in CACM 2(5):16 (May 1959). Mac-1 - Assembly language used in Structured Computer Organization, A.S. Tanenbaum, 3rd Edition, P-H 1989, Sect. 4.3. [See Mic-1] MAC-360 - ca. 1967. Solving numerical problems using equation-like input. "User's Guide to MAC-360", Charles Stark Draper Lab, Cambridge MA (Aug 1973) Sammet 1969, p.264. Macaulay - Mike Stillman and Dave Bayer 1977. Symbolic math package for commutative algebra, algebraic geometry, cohomology. ftp:, Version 3 for Sun, Mac and Amiga, source in C MACE - Concurrent object-oriented language.[?] Machiavelli - Peter Buneman & Atsushi Ohori, U Pennsylvania, 1989. An extension of Standard ML based on orthogonal persistence. "Database Programming in Machiavelli: A Polymorphic Language with Static Type Inference", A. Ohori, Proc SIGMOD Conf, ACM, June 1989. MACL - Macintosh Allegro CL. list: MACLISP - Project MAC. Was once one of two main branches of LISP (the other being INTERLISP). In 1981 Common LISP was begun in an effort to combine the best features of both. "MACLISP Reference Manual", D.A. Moon , TR Project MAC, MIT 1974. MACRO - 1. Assembly language for VAX/VMS. 2. PL/I-like language with extensions for string processing. "MACRO: A Programming Language", S.R. Greenwood, SIGPLAN Notices 14(9):80-91 (Sep 1979). Macro SAP - Macro processing modification of SAP. D.E. Eastwood and D.M. McIlroy, unpublished memorandum, Bell Labs 1959. Led to TRAC. MACSYMA - Project MAC's SYmbolic MAnipulator. Joel Moses MIT 1969, later Symbolics, Inc. The first comprehensive symbolic math system, written in LISP. "MACSYMA - The Fifth Year", J. Moses, SIGSAM Bulletin 8(3) (Aug 1974). Versions: Symbolics Macsyma, DOE Maxima (ANL), Vaxima. info: ftp: DOE Maxima in Common LISP MAD - 1. Michigan Algorithm Decoder. Developed at U Michigan by R. Graham, Bruce Arden and Bernard Galler , 1959. Based on IAL. For the IBM 704, 709 and 7090, later ported to Philco, Univac and CDC machines. MAD was one of the first extensible languages: the user could define his own operators and data types. "Michigan Algorithm Decoder (The MAD Manual)", U Michigan Computing Center, 1966. Sammet 1969, p.205. 2. Dataflow language. "Implementation of Data Structures on a Data Flow Computer", D.L. Bowen, Ph.D. Thesis, Victoria U Manchester, Apr 1981. Mad/1 - A later, much enhanced version of MAD, for the IBM 360. Michigan's answer to PL/I. MADCAP - Math and set problems, for the Maniac II and CDC 6600. "MADCAP - A Scientific Compiler for a Displayed Formula Texbook Language", M.B. Wells, CACM 4(1):31-36 (Jan 1961). Sammet 1969, pp.271-281. MADTRAN - Early preprocessor that translated FORTRAN to MAD, for gain in speed. MAGIC - Early system on Midac computer. Listed in CACM 2(5):16 (May 1959). Magic Paper - Early interactive symbolic math system. Sammet 1969, p.510. Magma2 - Language that allows programmability of the control environment, e.g. recursion, backtracking, coroutines, nondeterminism, etc. "Magma2: A Language Oriented Toward Experiments in Control", Franco Turini, ACM TOPLAS 6(4):468-486 (Oct 1984). MagmaLISP - Predecessor of Magma2. "MagmaLISP: A Machine Language for Artificial Intelligence", C. Mantagero et al, Proc 4th Intl Joint Conf Artif Intell, 1975, pp.556-561. MAGNUM - Tymshare Inc, late 70's. Database language for DEC-10's, used internally by Tymshare. Magritte - J. Gosling. Constraint language for interadctive graphical layout. Solves its constraints using algebraic transformations. "Algebraic Constraints", J. Gosling, PhD Thesis, TR CS-83-132, CMU, May 1983. MAINSAIL - MAchine INdependent SAIL. From XIDAK, Palo Alto CA, (415) 855- 9271. Make - Language for the Unix file maintenance utility Make. "Make - A Program for Maintaining Computer Programs", A.I. Feldman, TR No 57, Bell Labs Apr 1977. MAL - Micro Assembly Language - Microprogramming language with high-level syntax, used in Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H 1989, Sect 4.4. [See Mic-1, Mac-1]. Manchester Autocode - Predecessor of Mercury Autocode. "The Programming Strategy Used with the Manchester University Mark I Computer", R.A. Brooker, Proc IEE 103B Suppl:151-157, 1956. Mandala - ICOT, Japan. A system based on Concurrent Prolog. "Mandala: A Logic Based Knowledge Programming System", K. Furukawa et al, Intl Conf 5th Gen Comp Sys 1984. MAO - Early symbolic math system. A. Rom, Celest Mech 1:309-319 (1969). MAP - Mathematical Analysis without Programming. On-line system under CTSS for math. Sammet 1969, p.240. Maple - B. Char, K. Geddes, G. Gonnet, M. Monagan & S. Watt, U Waterloo, Canada 1980. Symbolic math system. Waterloo Maple Software. Current version: Maple V. info: list: Marseille Prolog - One of the two main dialects of Prolog, the other being Edinburgh Prolog. The difference is largely syntax. The original Marseille Interpreter (1973) was written in FORTRAN. MARSYAS - MARshall SYstem for Aerospace Simulation. Simulation of large physical systems. "MARSYAS - A Software System for the Digital Simulation of Physical Systems", H. Trauboth et al, Proc SJCC, 36 (1970). MARY - Norwegian research language, somewhat ALGOL68-like. No operator precedence. The back cover of the manual bears the (well-hidden) fragment: MARY HAD A LITTLE LAMB - COERCION IMPOSSIBLE. MAS - Modula-2 Algebra System. "Modula-2 Algebra System", H. Kredel, Proc DISCO 90 Capri, LNCS 429, Springer 1990, pp270-271. ftp:, for PC, Atari, Amiga MASM - Microsoft Assembler for MS-DOS. Massey Hope - Massey U, NZ. Refinement of Hope+C with improved syntax, and no stream I/O. info: Nigel Perry Matchmaker - A language for specifying and automating the generation of multi-lingual interprocess communication interfaces. MIG is an implementation of a subset of Matchmaker that generates C and C++ remote procedure call interfaces for interprocess communication between Mach tasks. "MIG - The Mach Interface Generator", R.P. Draves et al, CS CMU, (4 Aug 1989). Mathcad - Symbolic math environment. Mathematica - (name suggested by Steve Jobs). Wolfram Research, 1988. Symbolic math and graphics system. The language emphasizes rules and pattern-matching. "Mathematica: A System for Doing Mathematics by Computer", Stephen Wolfram, A-W 1988. ftp:, list: info: MATHLAB - Symbolic math system, MITRE, 1964. Later version: MATHLAB 68 (PDP-6, 1967). "The Legacy of MATHLAB 68", C. Engelman, Proc 2nd Symp on Symbolic and Algebraic Manip, ACM (Mar 1971). Sammet 1969, p.498. MATH-MATIC or MATHMATIC - Alternate name for AT-3. Early, pre-FORTRAN language for UNIVAC I or II. Sammet 1969. Matrix Compiler - Early matrix computations on UNIVAC. Sammet 1969, p.642. MATRIX MATH - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). mawk - Mike Brennan 1991. An implementation of nawk, distributed under GNU license but distinct from GNU's gawk. ftp: MAXIMOP - "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS Symp on Job Control Languages--Past Present and Future, NCC, Manchester, ENgland 1974. MBASIC - Microsoft BASIC. MC - "Design and Implementation of a C-Based Language for Distributed Real- Time Systems", A. Rizk et al, SIGPLAN Notices 22(6):83-96 (June 1987). McG360 - Interactive, similar to PAL[5], for IBM 360. "McG360 Programmer's Guide", RC 2693, IBM TJWRC, Nov 1969. MCL - Macintosh Common LISP. M-Code - 1) Intermediate code produced by the Modula-2 compiler. [which one?] 2) Intermediate language for an SECD-like machine, used by the Concert implementation of MultiLISP. MCS - Meta Class System. A portable object-oriented extension of Common LISP. ftp: MDL - (originally "Muddle"). C. Reeve, C. Hewitt & G. Sussman, MIT ca. 1971. Basically LISP 1.5 with data types and arrays. Many of its features were advanced at the time, and were incorporated into later LISP dialects. In the mid 80's there was an effort to use bytecoding to make the language portable. CLU was first implemented in MDL. Infocom wrote Zork in MDL, and used it as the basis for the ZIL interpreter. "The MDL Programming Language", S.W. Galley et al, Doc SYS.11.01, Project MAC, MIT (Nov 1975). Implementations exist for ITS, TOPS-20, BSD 4.3, Apollo Domain, SunOS and A/UX. me too - Peter Henderson, 1984. Functional language for executable specifications. Like LispKit Lisp, but with sets, maps and sequences to describe the specification. "Functional Programming, Formal Specification and Rapid Prototyping", IEEE Trans Soft Eng, SE-12(2):241-250 (Feb 1986). MELD - Concurrent, object-oriented, dataflow, modular and fault-tolerant! Comparable to SR. "MELDing Multiple Granularities of Parallelism", G. Kaiser et al, ECOOP '89, pp.147-166, Cambridge U Press 1989. MeldC - Columbia U, 1990. A C-based concurrent object-oriented coordination language built on a reflective architecture. A redesign of MELD. Version 2.0 or Sun4's and DECstations. info: Melinda - "Melinda: Linda with Multiple Tuple Spaces", S. Hupfer, YALEU/DCS/RR-766, Yale U Feb 1990. Mentat - U Virginia. Object-oriented distributed language, an extension of C++, portable to a variety of MIMD architectures. "Mentat: An Object- Oriented Macro Data Flow System", A. Grimshaw et al, SIGPLAN Notices 22(12):35-47 (Dec 1987) (OOPSLA '87). Available now for Sun 3 & 4 and iPSC/2, and soon Mach, iPSC860, RS/6000 and Iris. info: MENTOR - CAI language. "Computer Systems for Teaching Complex Concepts", Report 1742, BBN, Mar 1969. MENYMA/S - "A Message Oriented Language for System Applications", A. Koch et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.824-832. Mercury Autocode - Autocode for the Ferranti Mercury machine. (See Autocode). Mesa - Xerox PARC, ca 1977. System and application programming for proprietary hardware: Alto, Dolphin, Dorado and Dandelion. Pascal-like syntax. Its modules with separately compilable definition and implementation parts directly led to Wirth's design for Modula. Threads, coroutines (fork/join), exceptions, and monitors. Type checking may be disabled. Originally for internal use, Mesa was released to a few universitites in 1985. "Mesa Language Manual", J.G. Mitchell et al, Xerox PARC, CSL-79-3 (Apr 1979). "Early Experience with Mesa", Geschke et al, CACM 20(8):540-552 (Aug 1977). META - CDC, ca 1977. Assembly language for the CYBER 200. CDC Pub 60256020. META 5 - Early syntax-directed compiler-compiler, used for translating one high-level language to another. "META 5: A Tool to Manipulate Strings of Data", D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966. Sammet 1969, p.638. Versions: META II, META-3. Meta-II - An early compiler-compiler. "Meta-II: a Syntax Oriented Compiler Writing Language", V. Schorre, Proc 19th ACM Natl Conf 1964. Meta-IV - "The Vienna Development Method: The Meta Language", D. Bjorner et al, eds, LNCS 61 Springer 1978. Meta-Crystal - A language for transformations of Crystal programs. Implemented in T. "Meta-Crystal- A Metalanguage for Parallel-Program Optimization", J.A. Yang et al, TR YALEU/DCS/TR-786, Yale Apr 1990. (See Crystal). METAFONT - Knuth. A system for the design of raster-based alphabets. Companion to TeX. "The METAFONT Book," Donald Knuth, A-W 1986. Version 2.0, March 1990. Meta-Vlisp - E. St.James France. A Lisp dialect with many innovations. METEOR - Successor to COMIT. "METEOR - A List Interpreter for String Transformation", D.G. Bobrow in The Programming Language LISP and its Interpretation, E.D. and D.G. Bobrow eds, 1964. Methods - Digitalk, ca 1985. Line-oriented Smalltalk for PC's, predecessor of Smalltalk/V. MHDL - 1. MIMIC Hardware Description Language. 2. Microwave Hardware Description Language. Incorporates Haskell 1.2. Intermetrics. info: David Barton Mic-1, Mic-2 - Microprogramming languages, used in Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H 1989, Sect 4.4, 4.5. [See Mac- 1]. microPLANNER - G.J. Sussman et al, MIT. Subset of PLANNER, implemented in LISP. Superseded by Conniver. Important features: goal-oriented, pattern- directed procedure invocation, embedded knowledge base, automatic backtracking. "microPLANNER Reference Manual", G.J. Sussman et al, AI Memo 203, MIT AI Lab, 1970. MIDAS - Digital simulation language. Sammet 1969, p.627. MIIS - ("Meese"). Interpreted. One-letter keywords. Similar to MUMPS? MILITRAN - Discrete simulation for military applications. Sammet 1969, p.657. MIMIC - J.H. Andrews, NIH 1967. Early language for solving engineering problems such as differential equations that would otherwise have been done on an analog computer. "MIMIC, An Alternative Programming Language for Industrial Dynamics, N.D. Peterson, Socio-Econ Plan Sci. 6, Pergamon 1972. MIMOLA - Operational hardware specification language. "A Retargetable Compiler for a High-Level Microprogramming Language", 17th Ann Workshop on Microprogramming, P. Marwedel, IEEE 1984, pp.267-274. Mini-ML - "A Simple Applicative Language: Mini-ML", D. Clement et al, Proc 1986 ACM Conf on LISP and Functional Prog, (Aug 1986). MINITAB II - Interactive solution of small statistical problems. "MINITAB Student Handbook", T.A. Ryan et al, Duxbury Press 1976. MINT - Mint Is Not TRAC. Version of TRAC used as the extension language in the Freemacs editor. ftp: Miracula - Stefan Kahrs , LFCS. An implementation of a subset of Miranda, no modules or files. Can be interactively switched between eager and lazy evaluation. Portable source in C from the author. Miranda - (latin for "admirable", also the heroine of Shakespeare's Tempest). David A. Turner , U Kent early 1980's. Lazy, purely functional. A commercial descendant of SASL and KRC, with ML's type system. Terse syntax using the offside rule for indentation. Type declarations are optional. Nested pattern-matching, list comprehensions, modules. Sections rather than lambda abstractions. User types are algebraic, may be constrained by laws. Implemented by SKI reduction. The KAOS operating system is written entirely in Miranda. "Miranda: A Non Strict Functional Language with Polymorphic Types", D.A. Turner, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer 1985. "Functional Programming with Miranda", Holyer, Pitman Press 0-273-03453-7. (See Miracula, Orwell). info: Research Software Ltd, or MIRFAC - Mathematics in Recognizable Form Automatically Compiled. Early interactive system resembling BASIC, typewriter output with special math symbols. Sammet 1969, pp.281-284. MISHAP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16, (May 1959). MITILAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). MIXAL - MIX Assembly Language. Assembly language for Knuth's hypothetical MIX machine, used in The Art of Computer Programming v.1, Donald Knuth, A-W 1969. MJS - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). ML - 1. Manipulator Language. IBM language for handling robots. 2. Meta Language. R. Milner et al, 1973. A strict higher-order functional language with statically-checked polymorphic types, garbage collection and a formal semantics. It began as the metalanguage for the Edinburgh LCF proof assistant. (LCF="Logic for Computable Functions") "A Metalanguage for Interactive Proof in LCF", M.J.C. Gordon et al, 5th POPL, ACM 1978. (See SML). LCF ML was implemented in Stanford LISP. Cardelli's implementation (1981) in Pascal, using the FAM. MLAB - Modeling LABoratory. Interactive mathematical modeling. "MLAB, An On-Line Modeling Laboratory", NIH (Mar 1975). ML/I - Early macro translating system. P.J. Brown, CACM 10(10):618-623, (Oct 1967). MLISP - 1. M-expression LISP. J. McCarthy, 1962. The original "meta-language" syntax of LISP, intended for external use in place of the parenthesized S- expression syntax. "LISP 1.5 Programmer's Manual", J. McCarthy et al, MIT Press 1962. 2. Meta-LISP. D.C. Smith & H. Enea. LISP variant with ALGOL-like syntax. Not just a surface syntax, a full language. "MLISP", D.C. Smith, TR CS-179, CS Dept, Stanford (Oct 1970). Version: MLISP2. 3. A hybrid of M-expression LISP and Scheme. "M-LISP: Its Natural Semantics and Equational Logic", R. Muller, SIGPLAN Notices 26(9):234-242 (Sept 1991) (PEPM '91). ML-Linda - U Edinburgh, under development. ML Threads - Greg Morrisett . SML/NJ with mutual exclusion primitives similar to those in Modula-2+ and Mesa. Lightweight threads are created using 'fork'. They are pre-emptively scheduled, and communicate via shared memory which can be protected by a 'mutex' (monitor). "Adding Threads to Standard ML", E. Cooper et al, CMU-CS-90- 186, CMU Dec 1990. Implementations for 68020, SPARC and MIPS, and also VAX- and MIPS-based multiprocessors. Mma - R. Fateman, 1991. A fast Mathematica-like system, in Allegro CL. ftp: MOBSSL-UAF - Merritt and Miller's Own Block-Structured Simulation Language-Unpronounceable Acronym For. Interactive continuous simulations. "MOBSSL - An Augmented Block Structured Continuous System Simulation Language for Digital and Hybrid Computers", M.J. Merritt et al, Proc FJCC 35, AFIPS (Fall 1969). Mock Lisp - The LISP used by the Gosling Emacs editor. MODCAL - Version of HP-PASCAL enhanced with system programming constructs, used internally by HP. Mode - Object-oriented. "The Programming Language Mode: Language Definition and User Guide", J. Vihavainen, C-1987-50, U Helsinki, 1987. MODEF - Pascal-like language with polymorphism and data abstraction. "Definition of the Programming Language MODEF", J. Steensgard-Madsen et al, SIGPLAN Notices 19(2):92-110 (Feb 1984). MODEL - Pascal-like language with extensions for large-scale system programming and interface with FORTRAN applications. Generic procedures, and a "static" macro-like approach to data abstraction. Produced P-code. Used to implement DEMOS operating system on Cray-1. "A Manual for the MODEL Programming Language", J.B. Morris, Los Alamos 1976. MODSIM II - 1986. Object-oriented modular language for discrete simulation, with multiple inheritance, strong typing, integrated 2D and 3D graphics. Compiles to C. CACI, La Jolla, (619) 457-9681. list: Modula - MODUlar LAnguage. Wirth, 1977. Predecessor of Modula-2, more oriented towards concurrent programming but otherwise quite similar. "Modula - A Language for Modular Multiprogramming", N. Wirth, Soft Prac & Exp 7(1):3-35 (Jan 1977). Modula-2 - Wirth, ETH 1978. Developed as the system language for the Lilith workstation. The central concept is the module which may be used to encapsulate a set of related subprograms and data structures, and restrict their visibility from other portions of the program. Each module has a definition part giving the interface, and an implementation part. The language provides limited single-processor concurrency (monitors, coroutines and explicit transfer of control) and hardware access (absolute addresses and interrupts). "Programming in Modula-2", N. Wirth, Springer 1985. Modula-2* - M. Philippsen , U Karlsruhe. Modula-2 extension. Uses a superset of data parallelism, allowing both synchronous and asynchronous programs, both SIMD and MIMD. Parallelism may be nested to any depth. Version for MasPar and simulator for SPARC. ftp: Modula-2+ - DEC SRC, Palo Alto CA. Exceptions and threads. "Extending Modula-2 to Build Large, Integrated Systems", P. Rovner, IEEE Software 3(6):46-57 (Nov 1986). Modula-3 - 1988. A descendant of Modula-2+ and Cedar, designed for safety. Objects, threads, exceptions and garbage collection. Modules are explicitly safe or unsafe. As in Mesa, any set of variables can be monitored. "Modula-3 Report", Luca Cardelli et al, TR 52, DEC SRC, and Olivetti Research Center, Aug 1988. "System Programming with Modula-3", Greg Nelson ed, P-H 1991, ISBN 0-13-590464-1. Version: SRC Modula-3 V1.5. ftp: uucp: osu-cis Modula-P - "Modula-P: A Language for Parallel Programming Definition and Implementation on a Transputer Network", R. Hoffart et al, IEEE Conf Comp Langs 1992. Modula-Prolog - Adds a Prolog layer to Modula-2. "Modula-Prolog: A Software Development Tool", C. Muller IEEE Software pp.39-45 (Nov 1986). Modula/R - Modula with relational database constructs added. LIDAS Group (J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt, C.A. Zehnder) "Modula/R Report", LIDAS Memo 091-83, ETH Zurich, Sep 1983. Modular Prolog - An extension of SB-Prolog (version 3.1) extended with ML- style modules. For Sun-4. ftp: Modulex - Based on Modula-2. Mentioned by M.P. Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989. MooZ - Object-oriented extension of Z. "Object Orientation in Z", S. Stepney et al eds, Springer 1992. MOPS - Michael Hore. A derivative of Neon. MORAL - Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980). MORTRAN - A public domain FORTRAN preprocessor for structured programming. Mouse - Peter Grogono, 1975. A mighty small macro language. "Mouse, A Language for Microcomputers", P. Grogono Petrocelli Books, 1983. Moxie - Language for real-time computer music synthesis, written in XPL. "Moxie: A Language for Computer Music Performance", D. Collinge, Proc Intl Computer Music Conf, Computer Music Assoc 1984, pp.217-220. MP-1 - Assembly language for the MasPar machine. MPL - 1. Early possible name for PL/I. Sammet 1969, p.542. 2. MasPar. A data-parallel version of C. 3. Motorola Programming Language. A low-level PL/I-like language, similar to PL/M, but for the Motorola 6800. 4. MicroProgramming Language. Simple language for microprogramming. Statements on the same line represent register transfers caused by one microinstruction, and are executed in parallel. "Structured Computer Organization", A.S. Tanenbaum, First Edition, P-H 1976. (replaced in later editions by Mic-1) MPL II - Burroughs VMS MPL II Language Reference Manual. MPPL - Early possible name for PL/I. Sammet 1969, p.542. M-Prolog - 1. Marseille Prolog. 2. An extension to Prolog involving modules. "The MProlog System", J. Bendl et al, Proc Logic Prog Workshop, 1980. MPS III - Solving matrices and producing reports. "MPS III DATAFORM User Manual", Management Science Systems (1976). MPSX - Mathematical Programming System Extended. Solution strategy for mathematical programming. "Mathematical Programming System Extended (MPSX) Control Language User's Manual", SH20-0932, IBM. Sammet 1978. MRS - An integration of logic programming into LISP. "A Modifiable Representation System", M. Genesereth et al, HPP 80-22, CS Dept Stanford U 1980. MSG.84 - "Analysis and Design in MSG.84: Formalizing Functional Specifications", V. Berzins et al IEEE Trans Soft Eng SE-11(8):657-670 (Aug 1985). Muddle - Original name of MDL. muFP - Functional language for hardware design, predecessor to Ruby. Mul-T - An implementation of Multilisp built on T, for the Encore Multimax. "Mul-T: A High-Performance Parallel Lisp", SIGPLAN Notices 24(7):81-90 (Jul 1989). multiC - Wavetracer. A data-parallel version of C. MultiLisp - Parallel extension of Scheme, with explicit concurrency. The form (future X) immediately returns a 'future', and creates a task to evaluate X. When the evaluation is complete, the future is resolved to be the value. "MultiLisp: A Language for Concurrent Symbolic Computation", R. Halstead, TOPLAS pp.501-538 (Oct 1985). MultiScheme - An implementation of Multilisp built on MIT's C-Scheme, for the BBN Butterfly. "MultiScheme: A Paralled Processing System Based on MIT Scheme", J. Miller, TR-402, MIT LCS, Sept 1987. MUMPS - Massachusetts General Hospital Utility Multi-Programming System. A database-oriented OS and the language that goes with it. Used originally for medical records. Only data type is the character string. Current versions for IBM RT and R6000, DSM (Digital Standard Mumps) for DEC, Datatree MUMPS for IBM PC, Unix MUMPS from PFCS . "MUMPS Language Standard", ANS X11.1-1977. MUMPS User's Group, Box 208, Bedford MA 01730. list: MUMPS-L@UGA.BITNET. MU-Prolog - L. Naish, U Melbourne 1982. Prolog with 'wait' declarations for coroutining. "Negation and Control in Prolog", L. Naish, TR 85/12, U Melbourne (1985). (See NU-Prolog). MuSimp - LISP variant used as the programming language for the PC symbolic math package MuMath. Muse - OR-parallel logic programming. Music - Bell Labs, 60's. A series of early languages for musical sound synthesis. Versions: Music I through Music V. "An Acoustical Compiler for Music and Psychological Stimuli", M.V. Mathews, Bell Sys Tech J 40 (1961). MUSL - Manchester University Systems Language. MYSTIC - Early system on IBM 704, IBM 650, IBM 1103 and 1103A. Listed in CACM 2(5):16 (May 1959). NASTRAN - NAsa STRess ANalysis program. Large stress analysis problems. "The NASTRAN User's Manual", SP-222(C3), NASA. Napier - Atkinson & Morrison, St Andrews U; design began ca. 1985, first implementation Napier88, 1988. Based on orthogonal persistence, permits definition and manipulation of namespaces. "The Napier88 Reference Manual", R. Morrison et al, CS Depts St Andrews U and U Glasgow, Persistent Programming Research Report PPRR-77-89, 1989. NAPLPS - North American Presentation-Level-Protocol Syntax. Language for sending text and graphics over communication lines. Used by videotex systems. NAPSS - Numerical Analysis Problem Solving System. Purdue ca. 1965. "NAPSS - A Numerical Analysis Problem Solving System", J.R. Rice et al, Proc ACM 21st Natl Conf, 1966. Sammet 1969, p.299. NASTRAN - Engineering language, listed [?] 1976. NATURAL - Integrated 4GL used by the database system ADABAS. Menu-driven version: SUPER/NATURAL. Natural English - Used to mean programming in normal, spoken English. Sammet 1969, p.768. Nawk - New AWK. AT&T. Pattern scanning and processing language. An enhanced version of AWK, with dynamic regular expressions, additional built-ins and operators, and user-defined functions. NB - ("New B"?) Original name of C. NDL- Network Definition Language. Used to program the DCP (Data Communications Processor) on Burroughs Large System. Version: NDL II. Nebula - ICL. Early business-oriented language for Ferranti Orion computer. "NEBULA - A Programming Language for Data Processing", T.G. Braunholtz et al, Computer J 4(3):197-201 (1961). NELIAC - Navy Electronics Laboratory International ALGOL Compiler. 1958- 1959. Numeric and logical computations, based on IAL. "Neliac - A Dialect of Algol", H.D. Huskey et al, CACM 3(8):463-468 (Aug 1960). Version: BC NELIAC. Neon - Charles Duff. An object-oriented extension of FORTH, for the Mac. Inheritance, SANE floating point, system classes and objects for Mac interfacing, overlays. Sold by Kriya Systems, 1985-1988. Modified, made PD and renamed Yerk. NETL - Semantic network language, for connectionist architectures. NEWP - NEW Programming language. Replaced ESPOL on Burroughs Large System. NewsClip - Clarinet article filter language. Newspeak - J.K. Foderaro. Inspired by Scratchpad. "The Design of a Language for Algebraic Computation", Ph.D. Thesis, UC Berkeley, 1983. Newsqueak - "Newsqueak: A Language for Communicating with Mice", R. Pike CSTR143, Bell Labs (March 1989). Newton - ALGOL-like language used for undergraduate teaching at Federal Tech U Lausanne (EPFL). "Programming in Newton", Wuetrich and Menu, EPFL 1982. Nexpert Object - Expert system. NFQL - "NFQL: The Natural Forms Query Language", D. Embley, Trans Database Sys 14(2):168-211 (June 1989). NGL - Dialect of IGL. NIAL - Nested Interactive Array Language. Queen's U, Canada. High-level array-oriented language, based on Array Theory as developed by Trenchard More Jr. (Papers on this subject are available from the IBM Cambridge Scientific Center, Cambridge MA.) "Programming Styles in NIAL", M.A. Jenkins et al, IEEE Software 3(1):46-55 (Jan 1986). (See Q'NIAL). NICOL I - 1. Small subset of PL/I by (Massachusetts) Computer Assoc, ca. 1965. Version: NICOL II (1967). Sammet 1969, p.542. 2. ICL, 1968. [same as 1?] NIKL - Frame language. "Recent Developments in NIKL", T.R. Kaczmarek et al, Proc AAAI-86, 1986. NIL - 1. A forerunner of Common LISP. "NIL: A Perspective", Jon L. White, MACSYMA Users' Conf Proc, 1979. 2. Network Implementation Language. Strom & Yemini, TJWRC, IBM. Implementation of complex networking protocols in a modular fashion. "NIL: An Integrated Language and System for Distributed Programming", R. Strom et al, SIGPLAN Notices 18(6):73-82 (June 1983). NJCL - Network Job Control Language. "NJCL - A Network Job Control Language", J. du Masle et al, IFIP Congress 1974. Noddy - A simple (hence the name) language to handle text and interaction on the Memotech home computer. Has died with the machine. nML - Specification language for instruction sets, based on attribute grammars, for back-end generators. "The nML Machine Description Formalism", M. Freericks TR TU Berlin, FB20, Bericht 1991/15. NOMAD - Database language. "NOMAD Reference Manual", Form 1004, National CSS Inc (Dec 1976). Version: NOMAD2, Must Software Intl. list: NOMAD2-L@TAMVM1.BITNET Nonpareil - One of five pedagogical languages based on Markov algorithms, used in "Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). (cf. Brilliant, Diamond, Pearl[3], Ruby[2]). NORC COMPILER - Early system on NORC machine. Listed in CACM 2(5):16 (May 1959). NORD PL - Intermediate language for Norsk Data computers. Sintran III (OS of the ND 10, late 70's) was written in NORD PL. "NORD PL User's Guide", ND-60.047.03. Nother - Parallel symbolic math. info: NPL - 1. New Programming Language. IBM's original (temporary) name for PL/I, changed due to conflict with England's "National Physical Laboratory." MPL and MPPL were considered before settling on PL/I. Sammet 1969, p.542. 2. Burstall, 1977. A predecessor of HOPE. Pattern matching and set comprehensions. 3. NonProcedural Language. 1980. A relational database language. "An Introduction to Nonprocedural Languages Using NPL", T.D. Truitt et al, McGraw-Hill 1983. Versions for Apple II, MS-DOS. NPPL - Network Picture Processing Language. Interactive language for manipulation of digraphs. "A Graph Manipulator for On-line Network Picture Processing", H.A. DiGiulio, Proc FJCC 35 (1969). N-Prolog - Prolog extended with explicit negation. Dov Gabbay, J Logic Programming. Nqthm - Language[?] used in the Boyer-Moore theorem prover. "Proving Theorems About LISP Functions", R.S. Boyer et al JACM 22(1):129-144 (Jan 1975). Nroff - Text formatting language/interpreter, based on Unix roff. (See Troff, Groff.) NUCLEOL - List processing language, influenced by EOL. J. Nievergelt, Computer J 13(3) (Aug 1970). Nuprl - (pronounced "new pearl") Nearly Ultimate PRL. Interactive creation of formal mathematics, including definitions and proofs. An extremely rich type system, including dependent functions, products, sets, quotients and universes. Types are first-class citizens. Built on Franz Lisp and Edinburgh ML. "Implementing Mathematics in the Nuprl Proof Development System", R.L. Constable et al, P-H 1986. NU-Prolog - L. Naish, U Melbourne. A Prolog with 'when' declarations, the successor to MU-Prolog. Type-checked. "NU-Prolog Reference Manual - Version 1.3", J.A. Thom et al eds, TR 86/10, U Melbourne (1988). Available (but not free). info: NYAP - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). NYU OMNIFAX - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). O2 - ("Object-Oriented"). Object-oriented database language used in the Altair project. Implemented as an interpreter. GIP Altair, Versailles, France. Francois Bancilhon et al, in Advances in Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988. (See CO2). Oaklisp - K. Lang and B. Perlmutter. A portable object-oriented Scheme, syntactically a Scheme superset. Based on generic operations rather than functions. Anonymous classes. "Oaklisp: An Object-Oriented Scheme with First-Class Types", K. Lang et al, SIGPLAN Notices 21(11):30-37 (Nov 1986) (OOPSLA '86). ftp: for Amiga OBE - Office By Example. Moshe Zloof, IBM, early 1980's. Sequel to QBE, descriptions published but apparently never implemented. Oberon - Wirth, 1988. A descendant of Modula-2 eliminating many things: variant records, enumeration types, subranges, lower array indices and 'for' loops. Additions are extensible record types, multidimensional open arrays and garbage collection. "The Programming Language Oberon", N. Wirth, Soft Prac & Exp 18(7):671-690 (July 1988). ftp: for MacII, MS-DOS for MS-DOS for Amiga Oberon-2 - H. Moessenboeck, 1991. A superset of Oberon-1 to include object-orientation. A redesign of Object Oberon. Type-bound procedures (equivalent to methods), read-only export of variables and record fields, open array variables, and a 'with' statement with variants. The 'for' statement is reintroduced. Second Intl Modula-2 Conf, Sept 1991. ftp: for SPARC, DECstation, RS/6000, DOS386, MacII doc: OBJ - Joseph Goguen 1976. A family of declarative "ultra high level" languages. Abstract types, generic modules, subsorts (subtypes with multiple inheritance), pattern-matching modulo equations, E-strategies (user control over laziness), module expressions (for combining modules), theories and views (for describing module interfaces). For the massively parallel RRM (Rewrite Rule Machine). "Higher-Order Functions Considered Unnecessary for Higher-Order Programming", J.A. Goguen, in Research TOpics in Functional Programming. OBJ0 - Tardo. Based on unsorted equational logic. OBJT - Tardo. Error algebras plus an image construct. OBJ1 - OBJ2 - Clear-like parametrized modules. A functional system based on equations. "Principles of OBJ2", K. Futatsugi et al, 12th POPL, ACM 1985, pp.52-66. OBJ3 - Based on order-sorted rewriting. Agent-oriented. "Introducing OBJ3", J. Goguen et al, SRI-CSL-88-9, SRI Intl (1988). Runs on AKCL. info: Object CHILL - "Object CHILL - An Object Oriented Language for Systems Implementation", J. Winkler et al, ACM Comp Sci Conf 1992, pp.139-147. ObjectLOGO - A variant of LOGO with object-oriented extensions. Lexical scope. Version 2.6, for the Mac. Paradigm Software (617)576-7675. Object Oberon - H. Moessenboeck & J. Templ, 1989. Adds classes and methods to Oberon. "Object Oberon - An Object-Oriented Extension of Oberon", H. Moessenboeck et al, ETH TR 109 (Apr 1990). "Object Oberon - A Modest Object-Oriented Language", H. Moessenboeck & J. Templ, in Structured Programming 10(4), 1989. (See Oberon-2). Object-Oriented Turing - under development. Adds objects and classes to Turing Plus. info: Object Pascal - Developed jointly by Apple Computer and Niklaus Wirth. An object-oriented Pascal. "Object Pascal Report", Larry Tesler, Structured Language World 9(3):10-17 (1985). Object Z - U Queensland. "Object Orientation in Z", S. Stepney et al eds, Springer 1992. Objective C - Brad Cox, Productivity Products. An object-oriented superset of ANSI C, incorporating many ideas from Smalltalk. Implemented as a preprocessor for C. No operator overloading, no multiple inheritance, no class variables. Does have run-time binding. Used as the system programming language on the NeXT. "Object-Oriented Programming: An Evolutionary Approach", Brad Cox, A-W 1986. Versions for MS-DOS, Macs, VMS and Unix workstations. Language versions by Stepstone, NeXT and GNU are slightly different. Stepstone Corp, (203) 426-1875. Objective Turing - Objlog - CNRS, Marseille. Frame-based language combining objects and Prolog II. "The Inheritance Processes in Prolog", C. Chouraki et al, GRTC/187bis/Mars 1987 (CNRS). ObjVlisp - 1984. An object-oriented extension of Vlisp. Reflective architecture. "Metaclasses are First Class: The ObjVlisp Model", P. Cointe, SIGPLAN Notices 22(121):156-167 (Dec 1987) (OOPSLA '87). ObjVProlog - Logic programming and object-orientation, an adaptation of the ObjVlisp model to Prolog. "ObjVProlog: Metaclasses in Logic", J. Malenfant, ECOOP '89, Cambridge U Press 1989, pp.257-269. Oblog - Object-oriented extension to Prolog. Small, portable. info: Margaret McDougall, EdCAAD, Dept Arch, U Edinburgh, EH1 1JZ. OBSCURE - "A Formal Description of the Specification Language OBSCURE", J. Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985. Oc - ("Oh see!") Parallel logic language. "Self-Description of Oc and its Applications", M. Hirata, Proc 2nd Natl Conf Japan Soc Soft Sci Tech, pp.153-156 (1984). OCAL - On-Line Cryptanalytic Aid Language. "OCAS: On-line Cryptanalytic Aid System", D.J. Edwards, MAC-TR-27, MIT Project MAC, May 1966. Sammet 1969, p.642. occam - (named for the English philosopher William of Occam (1300-1349)) Now known as "occam 1". David May et al, 1982. Concurrent algorithms, based on CSP and EPL. Designed for the INMOS transputer and vice versa. Expressions are processes, which may be combined in serial and parallel. Processes communicate via named unidirectional channels. There is no operator precedence. "Occam", D. May, SIGPLAN Notices 18(4):69-79 (1983). ftp:, simulator for VAX, Tahoe list: occam 2 - 1987. An extension of occam1. Occam 2 adds floating point, functions and a type system. "occam 2 Reference Manual", INMOS, P-H 1988, ISBN 0-13-629312-3. OCL - Operator Control Language. Batch language for the IBM System/36, used specifically with the RPG II compiler. (See CL). OCODE - Intermediate language used by the Cambridge BCPL compiler. "The Portability of the BCPL Compiler", M. Richards, Soft Prac & Exp 1(2) (1971). OIL - 1. "The Architecture of the FAIM-1 Synbolic Multiprocessing System", A. Davis et al, 9th Intl Joint Conf in Artif Intell, 1985, pp.32-38. 2. Operator Identification Language. Used for overload resolution by the Eli compiler-writing system. OLC - On-Line Computer system. UCSB ca. 1966. Predecessor of Culler-Fried System. Sammet 1969, p.253. OLDAS - On-line Digital Analog Simulator. Interactive version of MIMIC, for IBM 360. "OLDAS: An On-line Continuous System Simulation Language", R.P. Cullen, in Interactive Systems for Experimental Applied Mathematics, A-P 1968. Omega - Prototype-based object-oriented language. "Type-Safe Object- Oriented Programming with Prototypes - The Concept of Omega", G. Blaschek, Structured Programming 12:217-225 (1991). OMNICODE - Thompson, 1956. Ran on IBM 650. Sammet 1969, p.5. OMNIFAX - Alternate name for NYU OMNIFAX? Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). OMNITAB - Statistical analysis and desk calculator. "OMNITAB II User's Reference Manual", NBS Tech Note 552 (Oct 1971). Sammet 1969, pp.296-299. Version: OMNITAB II. Ondine - "Concurrency Introduction to an Object-Oriented Language System Ondine", T. Ogihara et al, 3rd Natl Conf Record A-5-1, Japan Soc for Soft Sci Tech, Japan 1986. Ontic - Object-oriented language for an inference system. LISP-like appearance, but based on set theory. "Ontic: A Knowledge Representation System for Mathematics", D.A. McAllester, MIT Press 1989. OOF - Object-Oriented Fortran. Data items can be grouped into objects, which can be instantiated and executed in parallel. Available now for Suns, Iris, iPSC, soon for nCUBE. info: OOPS - "OOPS: A Knowledge Representation Language", D. Vermeir, Proc 19th Intl Hawaii Conf on System Sciences, IEEE (Jan 1986) pp.156-157. OOZE - Object oriented extension of Z. "Object Orientation in Z", S. Stepney et al eds, Springer 1992. Opal - 1. DSP language. "OPAL: A High Level Language and Environment for DSP boards on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989. 2. Language of the object-oriented database GemStone. "Making Smalltalk a Database System", G. Copeland et al, Proc SIGMOD'84, ACM 1984, pp.316- 325. 3. Simulation language with provision for stochastic variables. An extension of Autostat. "C-E-I-R OPAL", D. Pilling, Internal Report, C.E.I.R. Ltd (1963). 4. Language for compiler testing said to be used internally by DEC. OPS - 1. On-line Process Synthesizer. M. Greenberger, MIT ca. 1964. Discrete simulation under CTSS. Sammet 1969, p.660. Versions: OPS-3, OPS-4. "On- line Computation and Simulation: The OPS-3 System", M. Greenberger et al, MIT Press 1965. 2. Official Production System. CMU, 1970. The first production-system (i.e. rule-based) programming language, used for building expert systems. Written originally in Franz Lisp, later ported to other LISP dialects. OPS5 - Charles L. Forgy. 1977 version of OPS[2], publicly available from the author . "Programming Expert Systems in OPS5", L. Brownston et al, A-W 1985. Other versions: OPS4, OPS5+, OPS83 ftp: an OPS5 interpreter in Common LISP. C5 - An OPS5 implementation in C. "Rule-Based Programming in the Unix System", G.T. Vesonder, AT&T Tech J 67(1), 1988. ftp: OPS5 in Common LISP Orca - Vrije Universiteit, Amsterdam, 1986. Similar to Modula-2, but with support for distributed programming using shared data objects, like Linda. A 'graph' data type removes the need for pointers. Version for the Amoeba OS, comes with Amoeba. "Orca: A Language for Distributed Processing", H.E. Bal et al, SIGPLAN Notices 25(5):17-24 (May 1990). Orient84/K - Y. Ishikawa, Keio U, Yokohama. "A Concurrent Object-Oriented Knowledge Representation Language Orient84/K", Y. Ishikawa et al, SIGPLAN Notices 21(11):232-241 (OOPSLA '86) (Nov 1986). ORTHOCARTAN - A. Krasinski, Warsaw, early 80's. Symbolic math, especially General Relativity. Orwell - Lazy functional language, Miranda-like. List comprehensions and pattern matching. "Introduction to Orwell 5.00", P.L. Wadler et al, Programming Research Group, Oxford U, 1988. OSCAR - 1. Oregon State Conversational Aid to Research. Interactive numerical calculations, vectors, matrices, complex arithmetic, string operations, for CDC 3300. "OSCAR: A User's Manual with Examples", J.A. Baughman et al, CC, Oregon State U. 2. Object-oriented language used in the COMANDOS Project. "OSCAR: Programming Language Manual", TR, COMANDOS Project, Nov 1988. OSSL - Operating Systems Simulation Language. "OSSL - A Specialized Language for Simulating Computer Systems", P.B. Dewan et al, Proc SJCC 40, AFIPS (Spring 1972). Ottawa Euclid - Variant of Euclid. OWHY - Functional? "A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana Scott, Oxford U 1969. Owl - Original name of Trellis. P+ - "Experience with Remote Procedure Calls in a Real-Time Control System", B. Carpenter et al, Soft Prac & Exp 14(9):901-907 (Sep 1984). P4 - Rusty Lusk . A macro/subroutine package for parallel programming, using monitors on shared memory machines, message passing on distributed memory machines. Implemented as a subroutine library for C and Fortran. An enhancement of the "Argonne macros", PARMACS. ftp: PACT I - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Version: PACT IA for IBM 704. PACTOLUS - Digital simulation. Sammet 1969, p.627. Paddle - Language for transformations leading from specification to program. Used in POPART, a grammar-driven programming environment generator. "POPART: Producer of Paddles and Related Tools, System Builders' Manual", D.S. Wile TR RR-82-21, ISI, Marina del Rey, CA 1982. PAGE - Typesetting language. "Computer Composition Using PAGE-1", J.L. Pierson, Wiley 1972. PaiLisp - Parallel Lisp built on Scheme. 1986. "A Parallel Lisp Language PaiLisp and its Kernel Specification", T. Ito et al, in Parallel Lisp: Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989. PAISley - Bell Labs. Operational specification language. "An Operational Approach to Requirements Specification for Embedded Systems", P. Zave, IEEE Trans Soft Eng SE-8(3):250-269 (May 1982). PAL - 1. Paradox Application Language. Language for Paradox, Borland's relational database. 2. For the AVANCE distributed persistent OS. "PAL Reference Manual", M. Ahlsen et al, SYSLAB WP-125, Stockholm 1987. "AVANCE: An Object Management System", A. Bjornerstedt et al, SIGPLAN Notices 23(11):206-221 (OOPSLA '88) (Nov 1988). 3. Object-oriented Prolog-like language. "Inheritance Hierarchy Mechanism in Prolog", K. Akama, Proc Logic Prog '86, LNCS 264, Springer 1986, pp.12-21. 4. PDP Assembly Language. Assembly language for PDP-8 and PDP-11. 5. Pedagogic Algorithmic Language. "PAL - A Language for Teaching Programming Linguistics", A. Evans Jr, Proc ACM 23rd Natl Conf, Brandon/Systems Press (1968). Pam - Toy ALGOL-like language used in "Formal Specification of Programming Languages: A Panoramic Primer", F.G. Pagan, P-H 1981. Pandora - Parlog extended to allow "don't-know" non-determinism. "Pandora: Non-Deterministic Parallel Logic Programming", R. Bahgat et al, Proc 6th Intl Conf Logic Programming, MIT Press 1989 pp.471-486. PANON - A family of pattern-directed string processing languages based on generalized Markov algorithms. "String Processing Languages and Generalized Markov Algorithms", A. C. Forino, Proc IFIP Working Conf on Symb Manip Languages, pp.141-206, Amsterdam 1968. PANON-1, based on Simple GMA's and PANON-2 based on Conditional Functional GMA's. Paragon - IEEE Software (Nov 1991). [?] Paralation - PARALlel reLATION. Sabot, MIT 1987. A framework for parallel programming. A "field" is an array of objects, placed at different sites. A paralation is a group of fields, defining nearness between field elements. Operations can be performed in parallel on every site of a paralation. "The Paralation Model: Architecture Independent Programming", G.W. Sabot , MIT Press 1988. Paralation LISP - Embeds the paralation model in Common LISP. Available from MIT Press, (800)356-0343. Paralation C - Paralation embedded in C. Under development. ParAlfl - Hudak, Yale. Parallel functional language, a superset of Alfl. Used by the Alfalfa system on Intel iPSC and Encore Multimax. "Para- Functional Programming", P. Hudak, Computer 19(8):60-70 (Aug 1986). "Alfalfa: Distributed Graph Reduction on a Hypercube Multiprocessor", B. Goldberg & P. Hudak, TR, Yale U, Nov 1986. Parallaxis - U Stuttgart. Data-parallel (SIMD) language, based on Modula- 2. "User Manual for Parallaxis Version 2.0", T. Braunl, U Stuttgart. Simulator for workstations, Mac and PC. ftp: info: Parallel C - Never implemented, but influenced the design of C*. Parallel FORTH - For the MPP. Parallel Pascal - Data-parallel language, similar to Actus and Glypnir. "Parallel Pascal: An Extended Pascal for Parallel Computers", A. Reeves, J Parallel Dist Computing 1:64-80 (1984). Parallel SML - "Parallel SML: A Functional Language and its Implementation in Dactl", Kevin Hammond, Pitman Press 1990. Pari - Symbolic math, especially number theory. Version 1.37 for Unix, Macintosh, MS-DOS, Amiga. info: ftp: Paris - PARallel Instruction Set. Low-level language for the Connection Machine. Parlance - Concurrent language. "Parallel Processing Structures: Languages, Schedules, and Performance Results", P.F. Reynolds, PhD Thesis, UT Austin 1979. Parlog - Clark & Gregory, Imperial College 1983. An AND-parallel Prolog, with guards and committed choice [=don't care] nondeterminism. Shallow backtracking only. "Parlog: A Parallel Logic Programming Language", K.L. Clark and S. Gregory, Imperial College, London, May 1983. ("Parlog83", in which the ouput mechanism was assignment). "Parallel Logic Programming in PARLOG, The Language and Its Implementation", S. Gregory, A-W 1987. ("Parlog86", in which the output mechanism was unification, as in GHC). (See Strand). Implementations: MacParlog and PC-Parlog from Parallel Logic Programming Ltd, Box 49 Twickenham TW2 5PH, UK. ftp: info: Parlog++ - Andrew Davison , then Imperial College now U Melbourne. Object orientation plus parallel logic, built on top of MacParlog. "Parlog++: A Parlog Object-Oriented Language", A. Davison, Parlog Group, Imperial College 1988. Sold by PLP Ltd. info: PARMACS - Argonne Natl Lab. The "Argonne macros". A package of macros written in m4 for portable parallel programming, using monitors on shared memory machines, and message passing on distributed memory machines. E. Lusk et al, "Portable Programs for Parallel Processors", HRW 1987. (See p4.) ftp: ParMod - "Parallel Programming with ParMod", S. Eichholz, Proc 1987 Intl Conf on Parallel Proc, pp.377-380. PARSEC - Extensible language with PL/I-like syntax, derived from PROTEUS. "PARSEC User's Manual", Bolt Beranek & Newman (Dec 1972). PARULEL - "The PARULEL Parallel Rule Language", S. Stolfo et al, Proc 1991 Intl Conf Parallel Proc, CRC Press 1991, pp.36-45. Pascal - (named for the French mathematician Blaise Pascal (1623-1662)) N. Wirth, ca. 1970. Designed for simplicity, in reaction to the complexity of ALGOL 68, and intended as a teaching language. Innovations: enumeration types, subranges, sets, variant records, case statement. Missing from standard Pascal: strings, adjustable arrays, abstract data types, random-access files, and separate compilation. Pascal has been extremely influential in programming language design, and has led to a great number of variations and descendants. "PASCAL User Manual and Report", K. Jensen & N. Wirth, Springer 1975. BS 6192, "Specification for Computer Programming Language Pascal", British Standards Institute 1982. Pascal- - Pascal subset used in Brinch Hansen on Pascal Compilers, P. Brinch Hansen, P-H 1985. Pascal-2 - [?] Pascal-80 - A successor of Platon. Developed at RC International for systems programming. Later it was renamed Real-Time Pascal. "PASCAL80 Report", J. Staunstrup, RC Intl, Denmark Jan 1980. Pascal+CSP - "Pascal+CSP, Merging Pascal and CSP in a Parallel Processing Oriented Language", J. Adamo, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.542-547. Pascal-F - Pascal extended to include fixed-point arithmetic. E. Nelson, "Pascal-F: Programming Language for Real-Time Automotive Control", IEEE ElectroTechnol. Rev. (USA), 2:39, 1968. Pascal-FC - Derived from Pascal-S, provides several types of concurrency: semaphores, monitors, both occam/CSP-style and Ada-style rendezvous. "The Teaching Language Pascal-FC", G.L. Davies et al, Computer J 33(2):147-154 (Apr 1990). Pascal/L - A SIMD parallel extension of Pascal. "Implementation of an Array and Vector Processing Language", C. Fernstrom, Intl Conf Parallel Proc, IEEE, pp.113-127 (1982) Pascal-Linda - Ian Flockhart, U Edinburgh, 1991. Under development. Pascal-m - "Pascal-m: A Language for Loosely Coupled Distributed Systems", S. Abramsky et al in Distributed Computing Systems, Y. Paker et al eds, Academic Press 1986, pp.163-189. Pascal-P - Variant of Pascal used by the UCSD p-system environment. Extended string and array operations, random access files, separate compilation, etc. Available from Pecan. Pascal Plus - Jim Welsh & D. Bustard, Queens U, Belfast. Pascal with extensions for object-oriented multiprogramming, uses an 'envelope' construct for both packages and classes. "Pascal Plus - Another Language for Modular Multiprogramming", J. Welsh et al, Soft Prac & Exp 9:947 (1979). "Sequential Program Structures", J. Welsh et al, P-H ISBN 0-13- 806828-3. Pascal/R - Pascal with relational database constructs added. The first successful integrated database language. "Pascal/R Report", J.W. Schmidt et al, U Hamburg, Fachbereich Informatik, Report 66, Jan 1980. Pascal-S - Simplified Pascal. Source for a complete Pascal-S compiler is in "Pascal-S: A Subset and Its Implementation", N. Wirth in Pascal - The Language and Its Implementation, by D.W. Barron, Wiley 1979. Pascal-SC - ESPRIT DIAMOND Project. An extension of Pascal for numerical analysis, with controlled rounding, overloading, dynamic arrays and modules. "PASCAL-SC, A Computer Language for Scientific Computation", G. Bohlender et al, Academic Press 1987. PASRO - PAScal for RObots. "PASRO - Pascal for Robots", C. Blume et al, Springer 1985. PAT - Personalized Array Translator. Small subset of APL. Sammet 1969, p.252. Path Pascal - Parallel extension of Pascal. Processes have shared access to data objects. Constraints on their synchronization are specified in a path expression. "An Overview of Path Pascal's Design", R.H. Campbell, SIGPLAN Notices 15(9):13-24 (Sep 1980). pc - Parallel C. U Houston. ftp: PCF - Simply typed, functional. "Fully Abstract Translations Between Functional Languages", J. Riecke, 18th POPL, pp.245-254 (1991). "LCF Considered as a Programming Language", Theor CS 5:223 (1977). PCL - 1. Printer Control Language. Document description language used by Hewlett-Packard Laserjet printers, a superset of HP-GL/2. LaserJet III/IIID Printer Technical Reference Manual, HP 33459-90903. Versions: PCL 3, PCL 5. 2. Portable CommonLoops. Started out as an implementation of CommonLoops. Is now being converted to CLOS, but currently implements only a subset of the CLOS specification. 3. Peripheral Control Language. Command language for I/O on the CP-V OS. 4. "PCL - A Process Oriented Job Control Language", V. Lesser et al, Proc 1st Intl Conf Distrib Comp Sys, IEEE 1979, pp.315-329. PCN - Program Composition Notation. A specification language. info: P-code - The intermediate code produced by the Pascal-P compiler. Assembly language for a hypothetical stack machine, the P-machine, said to have been an imitation of the instruction set for the Burroughs Large System. The term was first used in Algorithms + Data Structures = Programs, N. Wirth, P-H 1976. A series of Byte articles about writing a Pascal Compiler in Northstar BASIC (ca Aug 1978) also used the term. Later used in Apple Pascal, and as the intermediate language in the UCSD P-system. "A Comparison of PASCAL Intermediate Languages", P.A. Nelson, SIGPLAN Notices 14(8):208-213 (Aug 1979). Variants: P-2 P-code, P-4 P-code, UCSD P-code, LASL P-code. info: USUS, Box 1148, La Jolla, CA 92038 PC-TILES - A visual language. PCLIPS - Parallel CLIPS - U Lowell. Concurrent independent CLIPS expert systems. They use 'rassert' (remote assert) to enter facts into each other's database. "PCLIPS: A Distributed Expert System Environment", R. Miller, CLIPS Users Group Conf, Aug 1990. info: PDEL - Partial Differential Equation Language. Preprocessor for PL/I. "PDEL - A Language for Partial Diferential Equations", A.F. Cardenas, CACM 13(3):184-191 (Mar 1970). PDELAN - Partial Differential Equation LANguage. "An Extension of FORTRAN Containing Finite Difference Operators", J. Gary et al, Soft Prac & Exp 2(4) (Oct 1972). PDL2 - Process Design Language. Developed for the TI ASC computer. "Texas Instruments Process Design Methodology - Design Specification: Process Design Language", Volume I (Sep 1976). Mentioned in "An Overview of Ada" J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980). PDS/MaGen - Problem Descriptor System. Generation of matrices and reports for mathematical programming and operations research. "PDS MaGen User Information Manual", Haverly Systems (Dec 1977). PEARL - 1. Constable, Cornell U, 80's. Constructive mathematics. 2. Process and Experiment Automation Real-Time Language. A real-time language for programming process control systems, widely used in Europe. Size and complexity comparable to Ada. DIN 66253 Teil 2, "Programmiersprache PEARL", Beuth-Verlag, Nov 1980. 3. One of five pedagogical languages based on Markov algorithms, used in "Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). (cf. Brilliant, Diamond, Nonpareil, Ruby[2]). Pebble - Polymorphic. "A Kernel Language for Abstract Data Types and Modules", R.M. Burstall & B. Lampson, in Semantics of Data Types, LNCS 173, Springer 1984. Pebbleman - DoD requirements that led to APSE. PECOS - Constraint-based language, built on the object-oriented module of Le-Lisp. "Pecos Reference Manual", ILOG, 1990. ILOG, 12 av Raspail, BP 7, F94251 Gentilly, France. PEEL - Used to implement version of EMACS on PRIME computer. [?] PENCIL - Pictorial ENCodIng Language. On-line system to display line structures. Sammet 1969, 675. Pepper - Chris Dollin . Variant of POP-11. PEPsy - Prolog extended with parallel modules within which explicit OR- parallelism can be used. "PEPsy: A Prolog for Parallel Processing", M. Ratcliffe et al, ECRC TR CA-17, 1986. Perl - Practical Extraction and Report Language. Larry Wall An AWK-like scripting language for scanning text and printing reports. "Programming Perl", Larry Wall et al, O'Reilly & Assocs. ftp: for Unix, MS-DOS, Amiga for Mac uucp: osu-cis pf - Parallel Fortran. U Houston. Under development. info: PFL - Holmstrom, Matthews. A concurrent extension of ML, using CCS. "PFL: A Functional Language for Parallel Programming", S. Holmstrom in Proc Declarative Language Workshop, London 1983. PHOCUS - Object-oriented Prolog-like language. "PHOCUS: Production Rules, Horn Clauses, Objects and Contexts in a Unification Based System", D. Chan et al, Actes du Sem Prog et Logique, Tregastel (May 1987), pp.77-108. PIC - Brian Kernighan. Graphics meta-language for textually describing pictures, for use with troff. Featured in Jon Bentley's "More Programming Pearls." "PIC - A Language for Typesetting Graphics", B.W. Kernighan, Soft Prac & Exp 12(1):1-21 (Jan 1982). "PIC - A Graphics Language for Typesetting, Revised User Manual", Bell Labs TR 116, Dec 1984. Pick BASIC - see Data/BASIC. PIE - CMU. Similar to Actus. PIL - Procedure Implementation Language, subsytem of DOCUS. Sammet 1969, p.678. PIL/I - Variant of JOSS. Sammet 1969, p.217. PILE - 1. Polytechnic's Instructional Language for Educators. Similar in use to an enhanced PILOT, but structurally more like Pascal with Awk-like associative arrays (optionally stored on disk). Distributed to about 50 sites by Initial Teaching Alphabet Foundation for Apple II and CP/M. "A Universal Computer Aided Instruction System," Henry G. Dietz & Ronald J Juels, Proc Natl Educ Computing Conf '83, pp.279-282. 2. "PILE _ A Language for Sound Synthesis", P. Berg, Comput Music J 3,1 (1979). PILOT - Programmed Inquiry Learning Or Teaching. CAI language, many versions. "Guide to 8080 PILOT", J. Starkweather, Dr Dobb's J (Apr 1977). PINBOL - Decision table language for controlling pinball machines used at Atari. Included a multi-tasking executive and an interpreter that worked on data structures compiled from condition:action lists. PIRL - Pattern Information Retrieval Language. Language for digraph manipulation, embeddable in FORTRAN or ALGOL, for IBM 7094. "PIRL - Pattern Information Retrieval Language", S. Berkowitz, Naval Ship Res Dev Ctr, Wash DC. PIT - Language for IBM 650. (See IT). PL-11 - High-level machine-oriented language for the PDP-11. (May have been from CERN.) PL/360 - Assembly language for IBM 360 and 370, with a few high-level constructs. "PL/360, A Programming Language for the 360 Computers", N. Wirth, J ACM 15(1):37-74 (Jan 1968). PL-6 - PL/I-like system language for the Honeywell OS CP-6. PL.8 - A systems dialect of PL/I, developed originally for the IBM 801 RISC mini, later used internally for IBM RT and R/6000 development. "An Overview of the PL.8 Compiler", M. Auslander et al, Proc SIGPLAN '82 Symp on Compiler Writing. Pla - High-level music programming language, written in SAIL. Includes concurrency based on message passing. "Pla: A Composer's Idea of a Language", B. Schottstaedt, Computer Music J 7(1):11-20 (Winter 1983). PLACE - Programming Language for Automatic Checkout Equipment. "The Compiler for the Programming Language for Automatic Chekcout Equipment (PLACE)", AFAPL TR-68-27, Battelle Inst, Columbus, May 1968. PLAIN - Programming LAnguage for INteraction. Pascal-like, with extensions for database, string handling, exceptions and pattern matching. "Revised Report on the Programming Language PLAIN", A. Wasserman, SIGPLAN Notices 6(5):59-80 (May 1981). PLAN - Assembly language for ICL1900 series machines. Planet - "An Experiment in Language Design for Distributed Systems", D. Crookes et al, Soft Prac & Exp 14(10):957-971 (Oct 1984). PLANIT - Programming LANguage for Interaction and Teaching. CAI language. "PLANIT - A Flexible Language Designed for Computer-Human Interaction", S.L. Feingold, Proc FJCC 31, AFIPS (Fall 1967) Sammet 1969, p.706. Plankalkul - Konrad Zuse, ca. 1945. The first programming language, never implemented. Included arrays and records. Much of his work may have been either lost or confiscated in the aftermath of WWII. "The Plankalkul of Konrad Zuse", F.L. Bauer et al, CACM 15(7):678-685 (Jul 1972). PLANNER - C. Hewitt MIT 1967. A language for writing theorem provers. Never fully implemented, see microPLANNER. "PLANNER: A Language for Proving Theorems in Robots", Carl Hewitt, Proc IJCAI-69, Wash DC, May 1969. PLANS - Programming Language for Allocation and Network Scheduling. A PL/I preprocessor, used for developing scheduling algorithms. "A User's Guide to the Programming Language for Allocation and Network Scheduling", H.R. Ramsey et al, TR SAI-77-068-DEN, Science Applications Inc (Jun 1977). Plasma - Carl Hewitt, 1976. The first actor language. "Viewing Control Structures as Patterns of Passing Messages", C. Hewitt, AI Memo 410, MIT 1976. Platon - Distributed language based on asynchronous message passing. "Message Passing Communication Versus Procedure Call Communication", J. Staunstrup, Soft Prac & Exp 12(3):223-234 (Mar 1982). "Platon Reference Manual", S. Soerensen et al, RECAU, U Aarhus, Denmark. PLAY - 1977. Language for real-time music synthesis. "An Introduction to the Play Program", J. Chadabe ete al, Computer Music J 2,1 (1978). Playground - A visual language for children, developed for Apple's Vivarium Project. OOPSLA 89 or 90? PL/C - Subset of PL/I for student use. "User's Guide to PL/C", S. Worona et al, Cornell, June 1974. "PL/C - A High Performance Compiler" H.L. Morgan et al, Proc SJCC, AFIPS 38:503-510 (1971). PL/I - Programming Language I. George Radin, 1964. Oriinally named NPL. An attempt to combine the best features of FORTRAN, COBOL and ALGOL 60. Result is large but elegant. One of the first languages to have a formal semantic definition, using the Vienna Definition Language. EPL, a dialect of PL/I, was used to write almost all of the Multics OS. PL/I has no reserved words. Types are fixed, float, complex, character strings with max length, bit strings, and label variables. Arrays have lower bounds, and may be dynamic. Summation, multi-level structures, structure assignment, untyped pointers, side effects, aliasing. Control flow goto, do-end groups, do-to-by-while-end loops, external procedures and internal nested procedures and blocks, procedures may be declared recursive. Generic procedures. Many implementations support concurrency ('call task' and 'wait(event)' amount to fork/join) and compile-time statements. Exception handling. "A Structural View of PL/I", D. Beech, Computing Surveys, 2,1 33-64 (1970). ANS X3.53-1976, X3.74-1981. PL/I is still widely used internally at IBM. list: PL1-L@UIUCVMD.BITNET ftp:, PL/I interpreter version: LPI for PC's and workstations PL/I SUBSET - Early 70's version of PL/I for minis. PL/I Subset G - The commercial PL/I subset (i.e., what was actually implemented by most vendors). PL/I-FORMAC - Variant of FORMAC. "The PL/I-FORMAC Interpreter", J. Xenakis, Proc 2nd Symp Symbolic and Algebraic Manip, ACM (Mar 1971). Sammet 1969, p.486. Plisp - Pattern LISP. 1990. A pattern-matching rewrite-rule language, optimized for describing syntax translation rules. (See LISP70). PLITS - Programming Language In The Sky. A computational model for concurrency with communication via asynchronous message-passing. "High Level Programming for Distributed Computing", J.A. Feldman, CACM 22(6):353- 368 (Jun 1979). PL/M - Programming Language/Microcomputers. MAA (later Digital Research) for Intel, 1972. A very low level language incorporating ideas from PL/I, ALGOL and XPL. Integrated macro processor. Originally the implementation language for CP/M. "PL/M-80 Programming Manual", Doc 98-268B, Intel 1976. "A Guide to PL/M Programming for Microcomputer Applications", D. McCracken, A-W 1978. Versions: PL/M-80, PL/M-86, PL/M-286. PL/P - Programming Language, Prime. Russ Barbour, PRIME Computer, late 70's. Subset of PL/I used internally for implementation of PRIMOS. (See SPL[4]). PL/PROPHET - PL/I-like language for the PROPHET system, used by pharmacologists. "The Implementation of the PROPHET System", P.A. Castleman et al, NCC 43, AFIPS (1974). PL/S - Programming Language/Systems. IBM late 60's. Apparently a hybrid of PL/I and ASM. Much of IBM/360 OS/MFT/MVT/SVS/MVS was written in it. Documented by various IBM internal ZZ-? publications. Versions: PLS1, PLSII. PL/Seq - Programming Language for Sequences. A DSP language. "A General High Level Language for Signal Processors", J. Skytta & O. Hyvarinen, Digital Signal Processing 84, Proc Intl Conf, Fiorence, Italy, Sep 1984, pp.217-221. PLUSS - Proposition of a Language Useable for Structured Specifications. Algebraic specification language, built on top of ASL. "A First Introduction to PLUSS", M.C. Gaudel, TR, U Paris Sud, Orsay 1984. PM - "PM, A System for Polynomial Manipulations", G.E. Collins, CACM 9(8):578-589 (Aug 1966). PLZ - [?] PML - Parallel ML. "Synchronous Operations as First-Class Values", J.H. Reppy , Proc SIGPLAN 88 Conf Prog Lang Design and Impl, June 1988, pp.250-259. POGO - Early system on G-15. Listed in CACM 2(5):16 (May 1959). Polka - Object orientation plus parallel logic, built on top of Parlog. "Polka: A Parlog Object-Oriented Language", Andrew Davison , TR, Parlog Group, Imperial College, London 1988. info: Poly - 1. D.C.J. Matthews, Cambridge, early 80's. Polymorphic, block-structured. "An Overview of the Poly Programming Language", D.C.J. Matthews , in Data Types and Persistence, M.P. Atkinson et al eds, Springer 1988. 2. St Andrews U, Scotland. Software Prac & Exp, Oct 1986.[?] 3. Polymorphic language used in Polymorphic Programming Languages, David M. Harland, Ellis Horwood 1984. POLYGOTH - Distributed language integrating classes with a parallel block structure, including multiprocedures and fragments. "Operational Semantics of a Distributed Object-Oriented Language and its Z Formal Specification", M. Benveniste , TR532, IRISA/INRIA-Rennes. Ponder - Jon Fairbairn, . Polymorphic, non-strict functional language. Has a type system similar to Girard's System F ("Proofs and Types", J-Y. Girard, Cambridge U Press 1989), also known as Lambda-2 or the polymorphic lambda calculus. Ponder adds extra recursive 'mu' types to those of F, allowing more general recursion. "Ponder and its Type System", J. Fairbairn, TR 31, Cambridge U Computer Lab, Nov 1982. Also "Subtyping in Ponder", V. Paiva, TR 203. POOL2 - Parallel Object-Oriented Language. Philips Research Labs, 1987. Strongly typed, synchronous message passing, designed to run on DOOM (DOOM = Decentralized Object-Oriented Machine). "POOL and DOOM: The Object- Oriented Approach", J.K. Annot, PAM den Haan, in Parallel Computers, Object-Oriented, Functional and Logic, P. Treleaven ed. "Issues in the Design of a Parallel Object-Oriented Language", P. America, Formal Aspects of Computing 1(4):366-411 (1989). POOL-I - Latest in the line of POOL languages. "A Parallel Object-Oriented Language with Inheritance and Subtyping", P. America et al, SIGPLAN Notices 25(10):161-168 (OOPSLA/ECOOP '90) (Oct 1990). POOL-T - Object-oriented, concurrent, synchronous. Predecessor of POOL2. "Definition of the Programming Language POOL-T", Esprit Project 415, Doc. 0091, Philips Research Labs, Eindhoven, Netherlands, June 1985. POP-1 - Package for On-Line Programming. 1966. First of the POP family of languages. Used reverse Polish notation. EPU-R-17, U Edinburgh (Jul 1966). POP-2 - Robin POPplestone, Edinburgh 1967. An innovative language incorporating many of Landin's ideas, including streams, closures, and functions as first-class citizens. The first implementation was named Multi-POP. "POP-2 Papers", R.M. Burstall et al, Oliver & Boyd 1968. "Programming in POP-2", R.M. Burstall et al, Edinburgh U Press 1971. POP-10 - Julian Davies, 1973. Descendant of POP-2, for the PDP-10. "POP- 10 User's Manual", D.J.M. Davies, CS R25, U West Ontario, 1976. POP-11 - Robin POPplestone, 1975. Originally for the PDP-11. In some ways, POP is like FORTH (stack-oriented, extensible, efficient). It's also like LISP (functional, dynamically typed, interactive, garbage-collected). And the syntax is like Pascal (block-structured). "Programming in POP-11", J. Laventhol , Blackwell 1987. Implementations: AlphaPop for Mac (Computable Functions Inc, 413-253-7637). PopTalk [?] POPLOG (U Sussex) available for VAX/VMS and most workstations. info: Robin Popplestone (413)253-7637 POP-9X - Proposed BSI standard for POP-11. POP++ - An extension of POPLOG. Available from Integral Solutions. POPCORN - AI system built on POP-2. "The POPCORN Reference Manual", S. Hardy, Essex U, Colchester, 1973. Poplar - Morris, 1978. A blend of LISP with SNOBOL4 pattern matching and APL-like postfix syntax. Implicit iteration over lists, sorting primitive. "Experience with an Applicative String-Processing Language", J.H. Morris et al, 7th POPL, ACM 1980, pp.32-46. POPLER - A PLANNER-type language for the POP-2 environment. "Popler 1.6 Reference Manual", D. Davies et al, U Edinburgh, TPU Report No 1 (May 1973). POPLOG - U Sussex. Language for the two-stack virtual machine (PVM) which underlies the POPLOG interactive environment. POPLOG supports POP-11, LISP, Prolog and ML via shared data structures and incremental compilation. "POPLOG's Two-Level Virtual Machine Support for Interactive Languages", R. Smith et al, in Research Directions in Cognitive Science, v.5 (1992). PopTalk - A commercial object-oriented derivative of POP, used in the Expert System MUSE. Cambridge Consultants. Port - Waterloo Microsystems (now Hayes Canada) ca. 1979. Imperative language descended from Zed. "Port Language" document in the Waterloo Port Development System. Portable Standard Lisp - "A Portable Lisp System", M.L. Griss et al, Proc 1982 ACM Symp on Lisp and Functional Prog, Aug 1982. PORTAL - Process-Oriented Real-Time Algorithmic Language. "PORTAL - A Pascal-based Real-Time Programming Language", R. Schild in Algorithmic Languages, J.W. deBakker et al eds, N-H 1981. Port Language - "Communicating Parallel Processes", J. Kerridge et al, Soft Prac & Exp 16(1):63-86 (Jan 1986). POSE - 1967. An early query language. "POSE: A Language for Posing Problems to Computers", S. Schlesinger et al, CACM 10:279-285 (May 1967). POSTQUEL - POSTGRES QUERy Language. Language used by the database system POSTGRES. "The Design of POSTGRES", M. Stonebraker et al, Proc ACM SIGMOD Conf, June 1986. ftp: Version 4.0 PostScript - J. Warnock et al, Adobe Systems, ca. 1982. Interpretive FORTH-like language used as a page description language by Apple LaserWriter, and now many laser printers and on-screen graphics systems. "PostScript Language Reference Manual" ("The Red Book"), Adobe Systems, A-W 1985. POSYBL - PrOgramming SYstem for distriButed appLications. Ioannis Schoinas. A Linda implementation for Unix networks. ftp: info: PowerFuL - Combines functional and logic programming, using "angelic Powerdomains". PPL - Polymorphic Programming Language. Harvard U. Interactive and extensible, based on APL. "Some Features of PPL - A Polymorphic Programming Language", T.A. Standish, SIGPLAN Notices 4(8) (Aug 1969). PPLambda - Essentially the first-order predicate calculus superposed upon the simply-typed polymorphic lambda-calculus. The object language for LCF. "Logic and Computation: Interactive Proof with Cambridge LCF", L. Paulson, Cambridge U Press, 1987. P-Prolog - Parallel logic language. "P-Prolog: A Parallel Logic Language Based on Exclusive Relation", R. Yang et al, Third Intl Conf on Logic Prog, 1986, pp.255-269. pre-cc - PREttier Compiler Compiler. PREP - PRogrammed Electronics Patterns. Language for designing integrated circuits. "Computer Assisted Mask Production", R.L. Rosenfeld, Proc IEEE 57(9) Sep 1969. PRESTO - Bershad et al, U Washington 1987. A parallel language for shared- memory multiprocessors, built on top of C++. Provides classes for threads and spinlocks. Also Mesa-style monitors and condition variables. "PRESTO: A Kernel for Parallel Programming Environments", B.N. Bershad et al, U Wash CS TR, Jan 1987. info: ftp: PRINT - PRe-edited INTerpreter. Early math for IBM 705. Sammet 1969, p.134. PRINT I - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). PRISM - Distributed logic language. "PRISM: A Parallel Inference System for Problem Solving", S. Kasif et al, Proc 1983 Logic Prog Workshop, pp.123-152. PRL - Proof Refinement Logic. "PRL: Proof Refinement Logic Programmer's Manual", CS Dept, Cornell, 1983. Versions: micro-PRL, lambda-PRL, nu-PRL. (See NUPRL). Probe - Object-oriented logic language based on ObjVlisp. "Proposition d'une Extension Objet Minimale pour Prolog", Actes du Sem Prog en Logique, Tregastel (May 1987), pp.483-506. PROC - Job control language used in the Pick OS. "Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986. PROCOL - J. Van Den Bos, Erasmus U, Rotterdam. Constraints and distributed delegation. "PROCOL: A Parallel Object Language with Protocols", J. Van Den Bos et al, SIGPLAN Notices 24(10):95-102 (OOPSLA '89) (Oct 1989). PROFILE - Simple language for matching and scoring data. "User's Manual for the PROFILE System", Cambridge Computer Assoc (May 1974). PROGENY - 1961. Report generator for UNIVAX SS90. Prograph - Technical U, Halifax. Visual language, a blend of dataflow and object orientation. Available for Mac. TGS Systems (902) 429-5642. PROJECT - Subsystem of ICES. Sammet 1969, p.616. Prolog - PROgrammation en LOGique. (Original name: SYSTEM Q). Alain Colmerauer and Phillipe Roussel, U Aix-Marseille 1971. First implemented in ALGOL-W in 1972. Designed originally for natural-language processing. LUSH (or SLD) resolution theorem proving based on the unification alorithm. No user-defined functions, and no control structure other than the built-in depth-first search with backtracking. "Programming in Prolog", W.F. Clocksin & C.S. Mellish, Springer 1985. Early collaboration between Marseille and R. Kowalski at U Edinburgh continued until about 1975. (See LM-Prolog, SB-Prolog). Draft ISO standard. ftp: - Prolog interpreter in Scheme ESL Prolog for MS-DOS Open Prolog for Mac - Prolog interpreter in Common LISP. Prolog-2 - An implementation of Edinburgh Prolog. "An Advanced Logic Programming Language", Anthony Dodd. info: Nick Henfrey, ESL (Expert Systems Ltd, Magdalen Centre, Oxford Science Park, Oxford, OX4 4GA, tel 0865 784474). Prolog-II - Prolog with two new predicates: 'dif' for coroutines and 'freeze' for delayed evaluation. "Prolog II Reference Manual and Theoretical Model", A. Colmerauer, Internal Report, GroupeIA, U Aix- Marseille (Oct 1982). Available from ExperIntelligence, Santa Barbara CA. Prolog-III - A. Colmerauer, U Aix-Marseille, ca 1984. Marseille Prolog, with unification replaced by constraint resolution. [deferred goals too?] (Not to be confused with Prolog 3, a commercial product.) "Opening the Prolog-III Universe", BYTE 12(9):177-182 (Aug 1987). "An Introduction to Prolog III", A. Colmerauer, CACM 33(7):69-90 (1990). Prolog++ - Phil Vasey, Logic Programming Associates. Prolog with object- oriented features added. For MS-DOS and X-windows. Distributed by AI Intl Ltd in England and Quintus (800)542-1283. Prolog-D-Linda - Embeds the Linda parallel paradigm into SISCtus Prolog. ftp: info: Prolog-Linda - 1. Prolog extended with Linda-style parallelism. Proc 4th Australian Conf on Artif Intell. ftp: 2. Neil MacDonald, U Edinburgh 1989. Another Prolog extended with Linda, implemented on a Computing Surface. PROMAL - Computer Language, Mar 1986, pp.128-134. [?] Pronet - "The Design of a Programming Language Based on Connectivity Networks", R. LeBlanc et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.532-541. Proposal Writing - Extension of FORTRAN for proposal writing. Sammet 1969, p.170. PROSE - 1. PROblem Solution Engineering. Numerical problems including differentiation and integration. "Computing in Calculus", J. Thames, Research/Development 26(5) (May 1975). 2. A constraints-and-sequencing system similar to Kaleidoscope. "Reflexive Constraints for Dynamic Knowledge Bases", P. Berlandier et al in Proc First Intl CS Conf '88: AI: Theory and Appls, Dec 1988. PROSPER - "PROSPER: A Language for Specification by Prototyping", J. Leszczylowski, Comp Langs 14(3):165-180 (1989). ProTalk - Quintus. An object-oriented Prolog. PROTEUS - Extensible language, core of PARSEC. "The Design of a Minimal Expandable Computer Language", J.R. Bell, PhD Thesis, CS, Stanford U (Dec 1968). Protosynthex - Query system for English text. Sammet 1969, p.669. PS-ALGOL - Persistent Algol. ca 1981, released 1985. A derivative of S- Algol. Database capability derived from the longevity of data. "The PS- Algol Reference Manual", TR PPR-12-85, CS Dept, U Glasgow 1985. IBM PC version available from CS Dept, U Strathclyde, Glasgow. Psather - Parallel version of Sather, under development. PSML - Processor System Modeling Language. Simulating computer systems design. A preprocessor to SIMSCRIPT. "Processor System Modeling - A Language and Simulation System", F. Pfisterer, Proc Symp on Simulation of Computer Systems (Aug 1976). P-TAC - Parallel Three Address Code. "P-TAC: A Parallel Intermediate Language", Z. Ariola et al, Fourth Intl Conf Func Prog Langs and Comp Arch, ACM Sept 1989. (See Kid). PUB - PUBlishing. 1972. An early text-formatting language for TOPS-10, with syntax based on SAIL. Inluenced TeX and Scribe. "PUB: The Document Compiler", Larry Tesler, Stanford AI Proj Op Note, Sept 1972. PUFFT - "The Purdue University Fast FORTRAN Translator", Saul Rosen et al, CACM 8(11):661-666 (Nov 1965). PVM - Concurrent language? Python - 1. Guido van Rossum 1991. A high-level interpreted language combining ideas from ABC, C, Modula-3, Icon, etc. Intended for prototyping or as an extension language for C applications. Modules, classes, user-defined exceptions. "Linking a Stub Generator (AIL) to a Prototyping Language (Python)", Guido van Rossum et al, Proc 1991 EurOpen Spring Conf. Available for Unix, Amoeba and Mac. Version 0.9.8. ftp: list: 2. Compiler for CMU Common LISP. Q'NIAL - Queen's U, Canada. A portable incremental compiler for NIAL, written in C. "The Q'NIAL Reference Manual", M.A. Jenkins, Queen's U Report, Dec 1983. Versions for Unix and MS-DOS, from NIAL Systems Ltd, Ottawa Canada, (613)234-4188. QA4 - Question-answering language. A procedural calculus for intuitive reasoning. A LISP-based pattern-matching language for theorem proving. "QA4, A Language for Writing Problem-Solving Programs", J.F. Rulifson et al, Proc IFIP Congress 1968. QBE - Query By Example. Moshe Zloof, IBM 1975. A user-friendly query language. "QBE: A Language for Office and Business Automation", M.M. Zloof, Computer pp.13-22 (May 1981). Qlambda - "Queue-based Multi-processing Lisp", R. Gabriel & J. McCarthy, Proc 1984 Symp Lisp and Functional Prog, pp.25-44. QLISP - 1. SRI 1973. General problem solving, influenced by PLANNER. QA4 features merged with INTERLISP. "QLISP - A Language for the Interactive Development of Complex Systems", E. Sacerdoti et al, NCC 45:349-356, AFIPS (1976). 2. A parallel LISP. "Qlisp", R. Gabriel et al in Parallel Computation and Computers for AI, J. Kowalik ed, 1988, pp.63-89. QLOG - An integration of logic programming into LISP. "QLOG - The Programming Environment for Prolog in LISP", H.J. Komorowski in Logic Prgramming, K.L. Clark et al eds, Academic Press 1982. QPE - Two-dimensional pictorial query language. "Pictorial Information Systems", S.K. Chang et al eds, Springer 1980. QUEASY - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). QUEL - Query language used by the database management system INGRES. Quest - 1. A language designed for its simple denotational semantics. "The Denotational Semantics of Programming Languages", R. Tennent, CACM 19(8):437-453 (Aug 1976). 2. Language with a sophisticated type system. Written in Modula-3. "Typeful Programming", Luca Cardelli , RR 45, DEC SRC 1989. QUICK - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Quicksilver - dBASE-like compiler for MS-DOS from WordTech, Orinda, CA. QUIKTRAN - FORTRAN-like, interactive with debugging facilities. Sammet 1969, p.226. QUIN - Pyle 1965. Interactive language. Sammet 1969, p.691. Quintec-Objects - Based on Quintec (not Quintus) Prolog. British. Quty - Functional plus logic. "Quty: A Functional Language Based on Unification", M. Sato et al, in Conf Fifth Gen Computer Systems, ICOT 1984, pp.157-165. QX - (meaning "OK", from E.E. Smith SF books). Richard Gillmann, SDC, Santa Monica. Language for digital signal processing of digitized speech. Was part of SDC's speech recognition project. Raddle - "On the Design of Large Distributed Systems", I.R. Forman, Proc 1st IEEE Intl Conf Comp Langs, pp.25-27 (Oct 1986). RAIL - Automatix. High-level language for industrial robots. RAISE - Rigorous Approach to Industrial Software Engineering. A specification and design language. ESPRIT project 315, CRI A/S, Denmark. RAL - Expert system. RAMIS II - Rapid Access Management Information System. Database system. On-Line Software Intl. Rapidwrite - Method for translating set of abbreviations into the much more verbose COBOL code. Sammet 1969, p.338. RAPT - "An Interpreter for a Language for Describing Assemblies", R.J. Popplestone et al, Artif Intell 14:79-107 (1980). RASP - "RASP - A Language with Operations on Fuzzy Sets", D.D. Djakovic, Comp Langs 13(3):143-148 (1988). RATEL - Raytheon Automatic Test Equipment Language. For analog and digital computer controlled test centers. "Automatic Testing via a Distributed Intelligence Processing System", S.J. Ring, IEEE AUTOTESTCON 77 (Nov 1977). RATFIV - Successor to RATFOR. RATFOR - RATional FORTRAN. Kernighan. FORTRAN preprocessor to allow programming with C-like control flow. "Ratfor - A Preprocessor for a Rational Fortran", B.W. Kernighan, Soft Prac & Exp 5:395-406 (Oct 1975). Featured in Software Tools, B.W. Kernighan & P.J. Plauger, A-W 1976. ftp: mirrors/unix-c/languages/ratfor.tar-z RAWOOP-SNAP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). R:BASE - MS-DOS 4GL from Microrim. Based on Minicomputer DBMS RIM. Was Wayne Erickson the author? RBCSP - "A Communicating Sequential Process Language and Implementation", T. Roper & J. Barter, Soft Prac & Exp 11(11):1215-1234 (Nov 1981). rc - Tom Duff. AT&T Plan 9 shell. Lookalike by Byron Rakitzis ftp: RCC - An extensible language. [?] RCL - Reduced Control Language. A simplified job control language for OS360, translated to IBM JCL. "Reduced Control Language for Non- Professional Users", K. Appel in Command Languages, C. Unger ed, N-H 1973. RDL - Requirements and Development Language. "RDL: A Language for Software Development", H.C. Heacox, SIGPLAN Notices 14(9):71-79 (Sep 1979). Real-Time Euclid - Real-time language, restriction to time-bounded constructs. "Real-Time Euclid: A Language for Reliable Real-Time Systems", E. Kligerman et al, IEEE Trans Software Eng SE-12(9):941-949 (Sept 1986). Real-Time Mentat - An extension of C++. "Real-Time Mentat: A Data-Driven Object-Oriented System", A.S. Grimshaw et al, Proc IEEE Globecom, Nov 1989 pp.232-241. Real-Time Pascal - Later name for Pascal-80 by RC Intl, Denmark. REC - Regular Expression Converter. See CONVERT. Recital - dBASE-like language/DBMS from Recital Corp. Versions include VAX/VMS. RECOL - REtrieval COmmand Language. CACM 6(3):117-122 (Mar 1963). RED - (Also "REDL"). Intermetrics. A language proposed to meet the Ironman requirements which led to Ada. "On the RED Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):27 (Oct 1978). REDCODE - Proposed as a language for "battle programs" in corewars. (See Computer Recreations column in Scientific American.) RediLisp - R.M. Keller, U Utah. Dialect of Lisp used on the Rediflow machine, a derivative of FEL. REDUCE - Anthony Hearn, 1963. Symbolic math, ALGOL-like syntax, written in LISP. "REDUCE, Software for Algebraic Computation", G. Rayna, Springer 1987. Version: Reduce 2, based on Portable Standard LISP. list: REDUCE-L@DEARN.BITNET info: server: REF-ARF - "REF-ARF: A System for Solving Problems Stated as Procedures", R.E. Fikes, Artif Intell J 1(1) (Spring 1970). REFINE - "Research on Knowledge-Based Software Environments at Kestrel Institute", D.R. Smith et al, IEEE Trans Soft Eng, SE-11(11) (1985). info: Refined C (RC) - An extension of C to directly specify data access rights so that flow analysis, and hence automatic parallelization, is more effective. Research implementations only. "Refining A Conventional Language For Race-Free Specification Of Parallel Algorithms," H.G. Dietz et al, Proc 1984 Intl Conf Parallel Proc, pp.380-382. Refined Fortran (RF) - Similar to Refined C. Research implementations only. "Refined FORTRAN: Another Sequential Language for Parallel Programming," H.G. Dietz et al, Proc 1986 Intl Conf Parallel Proc, pp.184-191. REG-SYMBOLIC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). Relational Language. Clark & Gregory. First parallel logic language to use the concept of committed choice. Forerunner of PARLOG. "A Relational Language for Parallel Programming", K.L. Clark et al, Proc ACM Conf on Functional Prog Langs and Comp Arch, pp.171-178, ACM 1981. RELATIVE - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). RELCODE - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). REL English - Rapidly Extensible Language, English. A formal language based on English. "Practical Natural Language Processing: The REL System as Prototype", Adv in Computers 13, Academic Press 1975. RenderMan Shading Language. "The RenderMan Companion", S. Upstill, A-W 1989, chaps 13-15. RENDEZVOUS - Query language, close to natural English. "Seven Steps to Rendezvous with the Casual User", E. Codd in Data Base Management, J.W. Klimbie et al eds, N-H 1974, pp.179-199. REPL - Restricted EPL. A subset of EPL (the efficient part) used to write the core of Multics. Required-COBOL - 1961. Minimal subset of COBOL. Later dropped entirely. Sammet 1969, p.339. Retrieve - Tymshare Corp, 1960's. Query language, inspired JPLDIS which lead to Vulcan[1] and then to dBASE II. Revised ALGOL 60 - Alternate name for ALGOL 60 Revised. Sammet 1969, p.773. REXX - Restructured EXtended eXecutor. Cowlishaw, IBM ca. 1979. (Original name: REX. They also call it "System Product Interpreter"). Scripting language for IBM VM and MVS systems, replacing EXEC2. "Modern Programming Using REXX", R.P. O'Hara et al, P-H 1985. "The REXX Language: A Practical Approach to Programming", M.F. Cowlishaw, 1985. Versions: PC-Rexx for MS- DOS, and AREXX for Amiga. list: REXX-L@UIUCVMD.BITNET. ftp: REXX interpreters for Unix RIGAL - Language for compiler writing. Data strucures are atoms, lists/trees. Control based on pattern-matching. "Programming Language RIGAL as a Compiler Writing Tool", M.I. Augustson, Inst of Math and CS of Latvia U, 1987. Rigel - Database language? Based on Pascal. Listed by M.P. Atkinson & J.W. Schmidt in a tutorial presented in Zurich, 1989. RLL - Representation Language Language. A frame language. "A Representation Language Language", R. Greiner and D.B. Lenat, Proc AAAI-80, 1980. RMAG - Recursive Macro Actuated Generator. Robert A. Magnuson, NIH ca 1970. Stand-alone macroprocessor for IBM 360/370 under VS or OS. Many built-in features and a library of several hundred macros. Several large systems were written in RMAG to generate source code for languages such as IBM JCL, IBM assembly language, COBOL. There was also a system (SLANG: Structured Language Compiler) which would generate 370 assembly language from a pseudo-structured-programming language, based on Michael Kessler's structure programming macros developed at IBM. "Project RMAG--RMAG22 User's Guide", R.A. Magnuson, NIH-DCRT-DMB-SSS-UG103, NIH, DHEW, Bethesda, MD 20205 (1977). ROADS - Subsystem of ICES. Sammet 1969, p.616. ROBEX - ROBot EXapt. Aachen Tech College. Based on EXAPT. Version: ROBEX-M for micros. Roff - Text formatting language/interpreter associated with Unix. (See groff, nroff, troff). ROME - Experimental object-oriented language. "The Point of View Notion for Multiple Inheritance", B. Carre et al, SIGPLAN Notices 25(10):312-321 (OOPSLA/ECOOP '90) (Oct 1990). Rossette - MCC. Concurrent object-oriented language. RPG - Report Program Generator. IBM 1965. For easy production of sophisticated large system reports. Versions: RPG II, RPG III, RPG/400 for the IBM AS/400. MS-DOS versions by California Software and Lattice. (See CL, OCL). RPL-1 - Data reduction language. Proc SJCC 30:571-575, AFIPS (Spring 1967). RPL - Reverse Polish LISP. Language used by HP-28 and HP-48 calculators. RTC++ - Real-time extension of C++. "Object-Oriented Real-Time Language Design: Constructs for Timing Constraints", Y. Ishikawa et al, SIGPLAN Notices 25(10):289-298 (OOPSLA/ECOOP '90) (Oct 1990). RT-CDL - Real-Time Common Design Language. Real-time language for the design of reliable reactive systems. "RT-CDL: A Real-Time Description Language and Its Semantics", L.Y. Lin et al, 11th World Computer Congress IFIP '89 pp.19-26 (Sep 1989). RTL - Register Transfer Language. Chris Fraser & J. Davidson, U Arizona early 80's. Intermediate code for a machine with an infinite number of registers, used for machine-independent optimization. The GNU C compiler gcc uses a version of RTL with LISP-like syntax. RTL is also incorporated into Davidson's VPCC (Very Portable C compiler) at U Virginia. RTL/1 - Real Time Language. Barnes, ICI 1971. A real-time language, the predecessor of RTL/2. "Real Time Languages for Process Control, J.G.P. Barnes, Computer J 15(1):15-17 (Feb 1972). RTL/2 - Barnes, ICI 1972. Small real-time language based on ALGOL 68, with separate compilation. A program is composed of separately compilable 'bricks' (named modules) which may be datablock, procedure, or stack. A stack is a storage area for use as a workspace by a task. The language is block-structured and weakly typed. Simple types are byte, int, frac and real, no Boolean. Compound types may be formed from arrays, records and refs (pointers). There are no user-defined types. Control consists of if- then-elseif-else-end, for-to-by-do-rep, block-endblock, switch, goto, and label variables. "RTL/2: Design and Philosophy", J.G.P. Barnes, Hayden & Son, 1976. Ruby - 1. Hardware description language. "Ruby - A Language of Relations and Higher-Order Functions", M. Sheeran, Proc 3rd Banff Workshop on Hardware Verification, Springer 1990. 2. One of five pedagogical languages based on Markov algorithms, used in "Nonpareil, a Machine Level Machine Independent Language for the Study of Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). (cf. Brilliant, Diamond, Nonpareil, Pearl[3]). RUFL - Rhodes University Functional Language. Rhodes U, Grahamstown, South Africa. Miranda-like. RUNCIBLE - Early system for math on IBM 650. Listed in CACM 2(5):16 (May 1959). RUSH - Remote Use of Shared Hardware. ca 1966. Interactive dialect of PL/I, related to CPS[1]. "Introduction to RUSH", Allen-Babcock Computing 1969. Sammet 1969, p.309. Russell - (named for the British mathematician Bertrand Russell (1872- 1970)) A. Demers & J. Donahue. A compact, polymorphically typed functional language, with bignums and continuations. Types are themselves first-class values and may be passsed as arguments. "An Informal Description of Russell", H. Boehm et al, Cornell CS TR 80-430, 1980. ftp: RUTH - Harrison . Real-time language based on LispKit. Uses timestamps and real-time clocks. "RUTH: A Functional Language for Real-Time Programming", D. Harrison in PARLE: Parallel Architectures and Languages Europe, LNCS 259, Springer 1987, pp.297-314. S - AT&T. Statistical analysis. "S: An Interactive Environment for Data Analysis and Graphics", Richard A. Becker, Wadsworth 1984. S3 - ALGOL-like system language for the ICL 2900 computer. SAC - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). SAC-1 - G.E. Collins. Early symbolic math system, written in FORTRAN. Proc 2nd Symp Symb Alg Manip pp.144-152 (1971). SAC2 - Symbolic math system, compiles to FORTRAN or Common LISP. SAD SAM - Query language by Lindsay. Sammet 1969, p.669. SAFARI - ON-line text editing system by MITRE. Sammet 1969, p.685. SAIL - 1. Early system on Larc computer. Listed in CACM 2(5):16 (May 1959). 2. Stanford Artificial Intelligence Language. Dan Swinehart & Bob Sproull, Stanford AI Project, 1970. A large ALGOL-60-like language for the DEC-10 and DEC-20. Its main feature is a symbolic data system based upon an associative store (originally called LEAP). Items may be stored as unordered sets or as associations (triples). Processes, events and interrupts, contexts, backtracking and record garbage collection. Block- structured macros. "Recent Developments in SAIL - An ALGOL-based Language for Artificial Intelligence", J. Feldman et al, Proc FJCC 41(2), AFIPS (Fall 1972). (See MAINSAIL). SAINT - Symbolic Automatic INTegrator. J. Slagle, MIT 1961. Written in LISP. Sammet 1969, p.410. SAL - 1. Single Assignment Language. 2. Simple Actor Language. A minimal actor language, used for pedagogical purposes in Actors, A Model of Concurrent Computation in Distributed Systems, G. Agha, MIT Press 1986. SALEM - "SALEM - A Programming System for the Simulation of Systems Described by Partial Differential Equations", S.M. Morris et al, Proc SJCC 33(1), 1968. S-Algol - Orthogonal data structures on Algol-60. "S-Algol Language Reference Manual", R. Morrison, TR CS/79/1 U St Andrews, 1979. "An Introduction to Programming with S-Algol", A.J. Cole & R. Morrison, Cambridge U Press 1982. SALT - 1. Symbolic Assembly Language Trainer. Assembly-like language implemented in BASIC by Kevin Stock, now at Encore in France. 2. Sam And Lincoln Threaded language. A threaded extensible variant of BASIC. "SALT", S.D. Fenster et al, BYTE (Jun 1985) p.147. SAM76 - Claude Kagan. Macro language, a descendant of TRAC. Version for CP/M. Dr Dobbs J ca 1977. Sandman - DoD requirements that led to APSE. SAP - Symbolic Assember Program. IBM 704 assembly language, late 50's. SAS - Statistical Analysis System. Statistical and matrix language, PL/I-like syntax. "A User's Guide to SAS", A.J. Barr, SAS Inst 1976. SASL - Saint Andrews Static Language. Turner, 1976. A derivative of ISWIM with infinite data structures. Fully lazy and weakly typed. Designed for teaching functional programming, with very simple syntax. A version of the expert system EMYCIN has been written in SASL. "A New Implementation Technique for Applicative Languages", D.A. Turner, Soft Prac & Exp 8:31-49 (1979). ftp: SASL+LV - Unifies logic and functional programming. A more complete version of FGL+LV, in SASL syntax. "Combinator Evaluations of Functional Programs with Logical Variables", G. Bage et al, TR UUCS-87-027, U Utah, Oct 1987. SASL-YACC - Simon Peyton-Jones. A version of Yacc written in SASL. [?] Sather - (named for the Sather Tower at UCB, as opposed to the Eiffel Tower) Steve M. Omohundro, ICSI, Berkeley. Eiffel-like, but smaller and faster. Clean and simple syntax, parameterized classes, multiple inheritance, strong typing, garbage collection. Compiles to C code. ftp: list: SB-Prolog - Stony Brook Prolog. PD Prolog implementation for Unix. ftp: pub/sbprolog/v3.0 amiga/fish/ff140 and ff141 Version 2.3.2 for Amiga SCAN - 1. "A Parallel Implementation of the SCAN Language", N.G. Bourbakis, Comp Langs 14(4):239-254 (1989). 2. DEC. A real-time language. [same as 1?] SCEPTRE - Designing and analyzing circuits. "SCEPTRE: A Computer Program for Circuit and Systems Analysis", J.C. Bowers et al, P-H 1971. Scheme - G.L. Steele & G.J. Sussman, 1975. A LISP dialect, small and uniform, with clean semantics. Scheme is applicative-order and lexically scoped, and treats both functions and continuations as first-class objects. "The Revised^4 Report on the Algorithmic Language Scheme", W. Clinger et al, MIT (Nov 1991) (ftp from Implementations: Scheme84 (Indiana U), MacScheme (Semantic Microsystems), PC Scheme (TI). (See T). "Orbit: An Optimizing Compiler for Scheme", D.A. Kranz et al, SIGPLAN Notices 21(7):281-292 (Jul 1986). ftp: (SCM, Aubrey Jaffer ) in C for Amiga, Atari-ST, Mac, MS-DOS, NOS/VE, VMS, Unix. Conforms to Revised^4 Report and IEEE P1178 (MIT-Scheme, Liar compiler) (for Suns) (compiler for 68K's) (Scheme In One Defun, George Carrette ) list: repository: Scheme-Linda - Ulf Dahlen, U Edinburgh, 1990. On the Computing Surface and the Symmetry. "Scheme-Linda", U. Dahlen et al, EPCC-TN-90-01 Edinburgh 1990. Schoonschip - (Dutch for "beautiful ship") M. Veltman, CERN, 1964. Symbolic math, especially High Energy Physics. Algebra only, no derivatives. Originally implemented in CDC-6600 and 7600 assembly language, currently in 680x0 assembly language. Latest versions (Oct 1991) include Amiga, Atari ST, Sun 3/60, NeXT. info: David Williams ftp: SCL - Systems Control Language. ICL2900 VME/B O/S command shell. Block structured, strings, superstrings (lists of strings), int, bool, array types. Can trigger a block whenever a condition on a variable value occurs. Macros supported. Commands are treated like procedure calls. Default arguments. "VME/B SCL Syntax", Intl Computers Ltd 1980. Scode - Internal representation used by the Liar compiler for MIT Scheme. SCOOP - Structured Concurrent Object-Oriented Prolog. "SCOOP, Structured Concurrent Object-Oriented Prolog", J. Vaucher et al, in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988, pp.191-211. SCOOPS - Scheme Object-Oriented Programming System. TI, 1986. Multiple inheritance, class variables. ftp: Scratchpad I - Richard Jenks, Barry Trager, Stephen M. Watt & Robert S. Sutor, IBM Research, ca 1971. General-purpose language originally for interactive symbolic math. It features abstract parametrized datatypes, multiple inheritance and polymorphism. Implementations for VM/CMS and AIX. "Scratchpad User's Manual", RA 70, IBM (June 1975). Version: Scratchpad II. "Scratchpad II Programming Language Manual", R.D. Jenks et al, IBM, 1985. (See AXIOM.) Scratchpad II Newsletter: Computer Algebra Group, TJWRC, Box 218, Yorktown Hts, NY 10598. Screenwrite - Simple query language. Honeywell late 70's, Level 6 minis. Scribe - Brian Reid. A text-formatting language. SCRIPT - 1. Early system on IBM 702. Listed in CACM 2(5):16 (May 1959). 2. Real-time language. "A Communication Abstraction Mechanism and its Verification", N. Francez et al, Sci Comp Prog 6(1):35-88 (1986). SCROLL - String and Character Recording Oriented Logogrammatic Language. "SCROLL - A Pattern Recording Language", M. Sargent, Proc SJCC 36 (1970). SDL - 1. System Software Development Language. System software for the B1700. "System Software Development Language Reference Manual", 1081346, Burroughs Corp (Dec 1974). 2. Specification and Description Language. CCITT. Specification language for discrete interactive systems such as industrial process control or traffic control. Said to have a visual component? Proc Plenary Assembly, Melbourne 14-25 Nov 1988, Fasc X.1, CCITT. "Telecommunications Systems Engineering Using SDL", R. Saracco et al, N-H 1989. (See XDL). 3. Shared Dataspace Language. "A Shared Dataspace Language Supporting Large-Scale Concurrency", G. Roman et al, Proc 8th Intl Conf Distrib Comp Sys, IEEE 1988, pp.265-272. 4. Structure Definition Language. A tool used internally by DEC to define and generate the symbols used for VMS internal data structures in various languages. SDMS - Query language. Sed - Stream editor. The Unix stream editor. SEESAW - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Sel - 1. Self-Extensible Language. "SEL - A Self-Extensible Programming Language", G. Molnar, Computer J 14(3):238-242 (Aug 1971). 2. Bharat Jayaraman. "Towards a Broader Basis for Logic Programming", B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990. "Set Abstraction in Functional and Logic Programming", F.S.K. Silbermann et al, ACM Proc [?] 1989. Self - Small, dynamically-typed object-oriented language, based purely on prototypes and delegation. Allows objects to inherit state, and to dynamically change their patterns of inheritance. Threads. "Self: The Power of Simplicity", David Ungar et al, SIGPLAN Notices 22(12):227-242 (OOPSLA '87) (Dec 1987). Version: 2.0 ftp: list: request: Seneca - R. Griesemer, 1990. Descendant of Oberon designed for numerical applications on supecomputers, especially vector or pipelined architectures. Includes a standard COMPLEX type and special aray expressions. Still under development. "Seneca - A Language for Numerical Applications on Vectorcomputers", Proc CONPAR 90 - VAPP IV Conf. SEPIA - Standard ECRC Prolog Integrating Applications. Prolog with many extensions including attributed variables ("metaterms") and declarative coroutining. "SEPIA", Micha Meier et al, TR-LP-36 ECRC, March 1988. Version 3.1 available for Suns and VAX. (See ECRC-Prolog). info: Seque - "Seque: A Programming Language for Manipulating Sequences", R.E. Griswold et al, Comp Langs 13(1):13-22 (1988). Sequel - Precursor to SQL. "System R: Relational Approach to Database Management", IBM Res Lab, San Jose, reprinted in Readings in Database Systems. SETL - SET Language. Courant Inst, early 70's. A very high level set-oriented language. Data types include sets (unordered collections), tuples (ordered collections) and maps (collections of ordered pairs). Expressions may include quantifiers ('for each' and 'exists'). The first Ada translator was written in SETL. "Programming With Sets - An Introduction to SETL", Jacob T. Schwartz et al, Springer 1986. SETL2 - SETL with more conventional Ada-like syntax, lexical scoping, full block structure, first-class functions and a package and library system. Kirk Snyder . "The SETL2 Programming Language", W. Kirk Snyder, Courant Inst TR 490, Jan 1990. ftp:, for MS-DOS, OS/2, Mac, Unix workstations SETL/E - U Essen. Another derivative of SETL with Ada-like syntax. "SETL/E, A Prototyping System Based on Sets", E.E. Doberkat et al, in Tagungsband TOOL90, W. Zorn ed, pp.109-118, U Karlsruhe, Nov 1990. SETS - Set Equation Transformation System. Symbolic manipulation of Boolean equations. "Efficient Ordering of Set Expressions for Symbolic Expansion", R.G. Worrell et al, J ACM 20(3):482-488 (Jul 1973). SEXI - String EXpression Interpreter. Early name of SNOBOL. SFD-ALGOL - System Function Description-ALGOL. Extension of ALGOL for synchronous systems. Sammet 1969, p.625. SFL - "SFL Language Definition Manual", TR 6413, Intl Computers Ltd. SFLV - Unifies logic and functional programming. SASL+LV with unification moved from actual/formal parameter matching to equational clauses. "Static Analysis of Functional Programs with Logical Variables", G. Lindstrom in Programming Languages Implementation and Logic Programming, P. Deransart et al eds, LNCS 348, Springer 1988. SGML - Standard Generalized Markup Language. "SGML - The User's Guide to ISO 8879", J.M. Smith et al, Ellis Harwood, 1988. ISO/IEC 8879-1986. ftp: an SGML parser another SGML parser sh - (or "Shellish"). S.R. Bourne. Command shell interpreter and script language for Unix. "Unix Time-Sharing System: The Unix Shell", S.R. Bourne, Bell Sys Tech J 57(6):1971-1990 (Jul 1978). SHACO - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SHADOW - Barnett & Futrelle, 1962. Syntax-directed compiler. Predecessor to SNOBOL? Sammet 1969, p.448, 605. Sharp APL - "A Dictionary of the APL Language", K. Iverson, Pub 0402, Sharp Assocs, Toronto, 1985. ftp: SHEEP - Symbolic math, especially tensor analysis and General Relativity. Inge Frick, Stockholm, late 70's to early 80's. Implemented in DEC-10 assembly language, then in several LISPs. Current version for Sun-3, based on Portable Standard LISP. info: Tevian Dray SHELL - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). Short Code or SHORTCODE - John Mauchly, 1949. Pseudocode interpreter for math problems, on Eckert and Mauchly's BINAC, later on UNIVAC I and II. Possibly the first attempt at a higher level language. Sammet 1969, p.129. Show-And-Tell - Visual dataflow language designed for use by elementary school children. "A Visual Language for Keyboardless Programming", T. Kimura et al, TR WUCS-86-6, CS Dept Washington U, Mar 1986. "Show and Tell: A Visual Language", T.D. Kimura et al in Visual Programming Environments: Paradigms and Systems, E.P. Glinert ed, IEEE Comp Sci Press, 1990, pp.397-404. SICStus Prolog - SICS (Swedish Inst of Comp Sci), Sweden. info: list: SIFT - SHARE Internal FORTRAN Translator. Translation utility designed for converting FORTRAN II to FORTRAN IV. The word "sift" was often used as a verb to describe converting code from one language to another. Sammet 1969, p.153. Sig - Signal Processing, Analysis, and Display program. This is an environment with an associated programming language. Jan Carter, Argonne Natl Lab, (312)972-7250. SIGLA - SIGma LAnguage. Olivetti. Language for industrial robots. "SIGLA: The Olivetti Sigma Robot Programming Language", M. Salmon, Proc 8th Intl Symp on Industrial Robots, 1978, pp.358-363. SIGNAL - Synchronous language. Le Guernic et al, INRIA. "SIGNAL - A Data Flow-Oriented Language for Signal Processing," P. le Guernic, IEEE Trans Acoustics Speech & Signal Proc, ASSP-34(2):362-374 Apr 1986. SIL - "SIL - A Simulation Language", N. Houbak, LNCS 426, Springer 1990. Sil/2 - Language for implementation of portable interpreters. "The Design of Transportable Interpreters", F. Druseikis, SNOBOL4 Project Document S4D49, U Arizona (Feb 1975). Silage - Synchronous DSP specification language. "Silage Reference Manual, Draft 1.0", D.R. Genin & P.N. Hilfinger, Silvar-Lisco, Leuven 1989. Simone - A. Hoare et al. Simulation language based on Pascal. "Quasiparallel Programming", W.H. Kaubisch et al, Soft Prac & Exp 6:341-356 (1976). SIMPLE - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). SIMPL-T - Base language for a family of languages and compilers. "SIMPL-T, A Structured Programming Language", V.R. Basili, Paladin House 1976. SIMSCRIPT - Rand Corp 1963. Large discrete simulations, influenced Simula. "SIMSCRIPT: A Simulation Programming Language", P.J. Kiviat et al, CACI 1973. Versions: SIMSCRIPT I.5, SIMSCRIPT II, SIMSCRIPT II.5. CACI, (619)457-9681. SIMULA - SIMUlation LAnguage. Kristen Nygaard & Ole-Johan Dahl, designed 1962, implemented 1964. Extension to ALGOL for discrete simulation. Sammet 1969, p.659. SIMULA 67 - Introduced the class concept, leading the way to data abstraction and object-oriented programming. Also coroutines. Simula a.s., Postboks 4403 - Torshov, N-0402 Oslo 4, Norway, versions for DOS, OS/2 and UNIX/386. ftp:, Mac version Simulating Digital Systems - FORTRAN-like language for describing computer logic design. Sammet 1969, p.622. SINA - "An Implementation of the Object-Oriented Concurrent Programming Language SINA", A. Tripathi et al, Soft Prac & Exp 19(3):235-256 (1989). SIPLAN - SIte PLANning computer language. Interactive language for space planning. "Formal Languages for Site Planning", C.I. Yessios in Spatial Synthesis for Computer-Aided Design, C. Eastman ed, Applied Science Publ 1976. Siprol - Signal Processing Language. A DSP language. "SIPROL: A High Level Language for Digital Signal Processing", H. Gethoffer, Proc ICASSP-80, 1980, pp.1056-1059. SIR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). Siri - Horn , CMU 1991. Object-oriented constraint language using a single abstraction mechanism. A conceptual blend of BETA and Bertrand. Similar to Kaeidoscope. "Constraint Patterns as a Basis for Object-Oriented Constraint Programming", B. Horn, OOPSLA '92 (Sept 1992). SISAL - Streams and Iteration in a Single Assignment Language. James McGraw et al, U Manchester, Lawrence Livermore, DEC and CSU 1983. Single assignment language with strict semantics, automatic parallelization, efficient execution. Outputs a dataflow graph in IF1 (Intermediary Form 1). Derived from VAL, adds recursion and finite streams. Pascal-like syntax. Designed to be a common high-level language for numerical programs on a variety of multiprocessors. "A Report on the SISAL Language Project", J.T. Feo et al, J Parallel and Distrib Computing 10(4):349-366 (Dec 1990). Implementations exist for Cray X-MP, Y-MP, Cray-2, Sequent, Encore Alliant, dataflow architectures, transputers and systolic arrays. contact: David Cann , Rod Oldehoeft . ftp: Sketchpad - I. Sutherland, 1963. Computer-aided design. Constraints using value inference. Introduced the "ring" list structure. "Sketchpad: A Man- Machine Graphical Communication System", I.E. Sutherland, MIT Lincoln Lab, TR 296 (Jan 1963). Sammet 1969, p.678. Skim - Alain Deutsch et al, France. Scheme implementation with packages and other enhancements. SKOL - FORTRAN pre-processor for COS (Cray Operating System). SL5 - String and list processing language with expression-oriented syntax. Coroutines. "An Overview of SL5", Ralph E. Griswold, SIGPLAN Notices 12(4):40-50 (Apr 1977). SLANG - 1. R.A. Sibley. CACM 4(1):75-84 (Jan 1961). 2. Set LANGuage. Jastrzebowski, ca 1990. A C extension with set- theoretic data types and garbage collection. "The SLANG Programming Language Reference Manual, Version 3.3", W. Jastrzebowski , 1990. 3. Structured LANGuage. Michael Kessler, IBM. A language based on structured programming macros for IBM 370 assembly language. "Project RMAG: SLANG (Structured Language) Compiler", R.A. Magnuson, NIH- DCRT-DMB-SSS-UG105, NIH, DHEW, Bethesda, MD 20205 (1980). 4. "SLANG: A Problem Solving Language for Continuous-Model Simulation and Optimization", J.M. Thames, Proc 24th ACM Natl Conf 1969. 5. Embedded language in the JED editor. info: John E. Davis SLIM - A VLSI language for translating DFA's into circuits. J.L. Hennessy, "SLIM: A Simulation and Implementation Language for VLSI Microcode", Lambda, Apr 1981, pp.20-28. SLIP - Symmetric LIst Processsor. J. Weizenbaum, early-60's. List processing subroutine package for FORTRAN, later also embedded in MAD and ALGOL. "Symmetric List Processor", J. Weizenbaum CACM 6:524-544(1963). Sammet 1969, p.387. SLIPS - "An Interpreter for SLIPS - An Applicative Language Based on Lambda-Calculus", V. Gehot et al, Comp Langs 11(1):1-14 (1986). SLLIC - Intermediate language developed at HP. An infinite-register version of the Precision Architecture instruction set? Sloop - "Parallel Programming in a Virtual Object Space", S. Lucco, SIGPLAN Notices 22(12):26-34 (OOPSLA '87) (Dec 1987). SMALGOL - SMall ALGOL. Subset of ALGOL 60. "SMALGOL-61", G.A. Bachelor et al CACM 4(11):499-502 (Nov 1961). Sammet 1969. SMALL - 1. Functional, lazy, untyped. "SMALL - A Small Interactive Functional System", L. Augustsson, TR 28, U Goteborg and Chalmers U, 1986. 2. A toy language used to illustrate denotational semantics. "The Denotational Description of Programming Languages", M.J.C. Gordon, Springer 1979. Small-C - A subset of C. Compiler source in C producing 8080 code in Dr Dobb's J, May 1980 and Dec 1982. "The Small-C Handbook," James Hendrix, Reston 1984. ftp: Smalltalk - Software Concepts Group, Xerox PARC, led by Alan Kay, early 70's. Took the concepts of class and message from Simula-67 and made them all-pervasive, the quintessential object-oriented language. Innovations included the bitmap display, windowing system and use of mouse. Early versions: Smalltalk-72, Smalltalk-74, Smalltalk-76 (inheritance taken from Simula, and concurrency), and Smalltalk-78. "The Smalltalk-76 Programming System Design and Implementation", D.H. Ingalls, 5th POPL, ACM 1978, pp.9- 16. Smalltalk-80 - "Smalltalk-80: The Language and Its Implementation" ("The Blue Book"), Adele Goldberg et al, A-W 1983. BYTE 6(8) (Aug 1981). archive: ftp: GNU Smalltalk v1.1 archive: mail server: Smalltalk/V - First widely available version of Smalltalk, for PC, Mac. Digitalk, 1986. SmallWorld - Object-oriented language. "SW 2 - An Object-based Programming Environment", M.R. Laff et al, IBM TJWRC, 1985. SMART - For MS-DOS? SMIL - Machine language for a Swedish computer. ftp: SML - 1. Standard ML. R. Milner ca. 1984. Aimed to unify the dialects of ML, has evolved into a robust general-purpose language. Functional, with imperative features. Environment based, strict. Adds to ML the call-by-pattern of Hope, recursive data types, reference types, typed exceptions, and modules. (The "core" language excludes the modules.) "A Proposal for Standard ML", R. Milner, ACM Symp on LISP and Functional Prog 1984, pp.184-197. Implementations: SML/NJ - Standard ML of New Jersey, Version 0.75 ftp: and POPLOG ML - U Sussex. For the Poplog system. Poly/ML - Implemented in Poly[1], for MC68020 and SPARC. Abstract Hardware Ltd . Edinburgh SML - Core language only. Byte-code interpreter in C. info: ftp: EdML V 0.44 ANU ML - Aust Natl U. For MC68020, VAX and Pyramid. Micro ML - U Umea, Sweden. Interpreter of an ML subset, for MS-DOS. list: ftp:, a lazy version sml2c - portable, written in SML. Language extensions include first- class continuations, asynchronous signal handling. info: ftp: 2. Small Machine Language. Barnes, ICI 1969. Real-time language, an ALGOL variant, and the predecessor of RTL. "SML User's Guide", J.G.P. Barnes, ICI, TR JGPB/69/35 (1969). SML/NJ - Standard ML of New Jersey. An implementation of SML by Andrew Appel at Princeton and Dave MacQueen at AT&T . "Standard ML of New Jersey", A. Appel et al, "Proc Third Intl Symp on Prog Lang Impl and Logic Programming", LNCS Springer 1991. Versions for Unix, Mac ftp: SMoLCS - Specification metalanguage used for a formal definition of Ada. "An Introduction to the SMoLCS Methodology", E. Astesiano, U Genova 1986. SMP - Steven Wolfram's earlier symbol manipulation program, before he turned to Mathematica. "SMP Handbook", C. Cole, S. Wolfram et al, Caltech 1981. SNAP - 1. Early interpreted text-processing language for beginners, close to basic English. "Computer Programming in English", M.P. Barnett, Harcourt Brace 1969. 2. "Some Proposals for SNAP, A Language with Formal Macro Facilities", R.B. Napper, Computer J 10(3):231-243 (1967). [same as 1?] SNOBOL - StriNg Oriented symBOlic Language. David Farber, Ralph Griswold & I. Polonsky, Bell Labs 1962-3. String processing language for text and formula manipulation. "SNOBOL, A String Manipulating Language", R. Griswold et al, J ACM 11(1):21 (Jan 1964). SNOBOL3 - 1965. SNOBOL with user-defined functions. "The SNOBOL3 Programming Language", D.J. Farber et al, Bell Sys Tech J 45(6):895-944 (Jul 1966). SNOBOL4 - Griswold et al, 1967. Quite distinct from its predecessors. Declarative with dynamic scope. Patterns are first-class data objects that can be constructed by concatenation and alternation. Success and failure used for flow control. Delayed (unevaluated) expressions can be used to implement recursion. Table data type. Strings generated at run-time can be treated as programs and executed. "The SNOBOL4 Programming Language", Ralph E. Griswold et al, P-H 1971. ftp: FASBOL - "FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC Berkeley 1971. SITBOL - "SITBOL Version 3.0", J.F. Gimpel, TRS4D30b, Bell Labs 1973. SNOOPS - Craske, 1988. An extension of SCOOPS with meta-objects that can redirect messages to other objects. "SNOOPS: An Object-Oriented language Enhancement Supporting Dynamic Program Reeconfiguration", N. Craske, SIGPLAN Notices 26(10): 53-62 (Oct 1991). SO 2 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SOAP - Symbolic Optimal Assembly Program. IBM 650 assembly language. "Optimal" refers to rearranging instructions on slowly rotating drum memory. Listed in CACM 2(5):16 (May 1959). Versions: SOAP I, SOAP II, CASE SOAP III. SOAR - State, Operator And Result. A. Newell, early 80's. A general problem-solving production system architecture, intended as a model of human intelligence. Originally implemented in LISP and OPS5, currently in Common Lisp. "Soar: An Architecture for General Intelligence", J.E. Laird et al, Art Intell 33(1) (1987). Version: Soar6 info: doc: SOCRATIC - [Not a language?] Bolt, Beranek & Newman. Early interactive learning system. Sammet 1969, p.702. SODAS - D.L. Parnas & J.A. Darringer. Proc FJCC 31:449-474, AFIPS (Fall 1967). SOHIO - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). SOL - 1. Simulation Oriented Language. Discrete simulation. Sammet 1969, p.656. 2. Second-Order Lambda calculus. A typed lambda calculus. "Abstract Types have Existential Type", J. Mitchell et al, 12th POPL, ACM 1985, pp.37-51. Solve - Parallel object-oriented language. "Message Pattern Specifications: A New Technique for Handling Errors in Parallel Object- Oriented Systems", J.A. Purchase et al, SIGPLAN Notices 25(10):116-125 (OOPSLA/ECOOP '90) (Oct 1990). SP - Simplicity and Power. Prolog-like. "Simplicity and Power - Simplifying Ideas in Computing", J.G. Wolff, Computer J 33(6):518-534 (Dec 1990). SPADE - Specification Processing And Dependency Extraction. Specification language. G.S. Boddy, ICL Mainframes Div, FLAG/UD/3DR.003 SPAR - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). SPARKS - FORTRAN superset, used in Fundamentals of Data Structures, E. Horowitz & S. Sahni, Computer Science Press 1976. Speakeasy - Simple array-oriented language with numerical integration and differentiation, graphical output, aimed at statistical analysis. "Speakeasy", S. Cohen, SIGPLAN Notices 9(4), (Apr 1974). "Speakeasy-3 Reference Manual", S. Cohen et al. 1976. Spec - Specification language. Expresses black-box interface specifications for large distributed systems with real-time constraints. It incorporates conceptual models, inheritance and the event model. A descendant of MSG.84. "An Introduction to the Specification Language Spec", V. Berzins et al, IEEE Software 7(2):74-84 (Mar 1990). SPECIAL - SRI specification language. [HDM?] "SPECIAL - A Specification and Assertion Language", L. Robinson et al, TR CSL-46, SRI, Jan 1987. SPECOL - "SPECOL - A Computer Enquiry Language for the Non-Programmer", B.T. Smith, Computer J 11:121 (1968). SPEED - Early system on LGP-30. Listed in CACM 2(5):16 (May 1959). Speedcoding - John Backus, 1953. A pseudocode interpreter for math on IBM 701, IBM 650. Sammet 1969, p.130. Speedcoding 3 - Listed in CACM 2(5):16 (May 1959). SPEEDEX - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SP/k - Subset PL/I, k=1..8. A series of PL/I subsets, simplified for student use. "SP/k: A System for Teaching Computer Programming", R.C. Holt et al, CACM 20(5):301-309 (May 1977). SPG - System Program Generator. A compiler-writing language. "A System Program Generator", D. Morris et al, Computer J 13(3) (1970). SPIT - Language for IBM 650. (See IT). SPITBOL - SPeedy ImplemenTation of snoBOL. "Macro SPITBOL - A SNOBOL4 Compiler", R.B.K. Dewar et al, Soft Prac & Exp 7:95-113, 1971. Current versions: SPITBOL-68000, Sparc SPITBOL from Catspaw Inc, (719)539-3884. SPL - 1. Synchronous Programming Language. A DSP language. "Introduction to the SPL Compiler", Computalker Consultants, 1986. 2. Space Programming Language. For spaceflight and aerospace software. Similar to JOVIAL. Aka SPL/J6. A subset is known as CLASP. "Space Programming Language Development", SAMSO TP 70-325, System Development Corp (Sep 1970). 3. System Programming Language. HP, 1977. An ALGOL-like language for the HP3000 computer allowing inline assembly code. MPE, the OS for the HP3000 was written in SPL. Pub.No.30000-90024, HP. 4. Systems Programming Language. PRIME Computer, 80's. A variant of PL/I used on PRIME computers. PL/I subset G, less I/O plus a few extensions. SPL User's Reference Guide, Prime. (See PL/P.) SPLash! - 1. Software Research Northwest, 1987. Compiler for SPL[3]. 2. Systems Programming LAnguage for Software Hackers. Mentioned in TeX for the Impatient, Paul W. Abrahams, A-W 1990. SPL/I - Signal Processing Language I. Intermetrics. General language designed for acoustic signal processing. Graphics and multiprocessing features. "SPL/I Language Reference Manual", M.S. Kosinski, Intermetrics Report 172-1 (July 1976). SPLINTER - PL/I interpreter with debugging features. Sammet 1969, p.600. SPLX - Specification Language for Parallel cross-product of processes and sequential modules. "Parallel Module Specification on SPLX", C.F. Nourani, SIGPLAN Notices 27(1):114-115 (Jan 1992). Spool - Object-oriented logic. "An Experience with a Prolog Based Language", K. Fukunaga et al, SIGPLAN Notices 21(11):224-231 (Nov 1986) (OOPSLA '86). SPRING - String PRocessING language. "From SPRING to SUMMER: Design, Definition and Implementation of Programming Languages for String Manipulation and Pattern Matching", Paul Klint, Math Centre, Amsterdam 1982. SPRINT - List processing language involving stack operations. "SPRINT - A Direct Approach to List Processing Languages", C.A. Kapps, Proc SJCC 30 (1967). Sammet 1969, p 462. SPS - Symbolic Programming System. Assembly language for IBM 1620. SPSS - Statistical Programs for the Social Sciences. "SPSS X User's Guide", SPSS Inc. 1986. SPUR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). SQL - Structured Query Language. IBM, 1970's, for use in System R. The de facto standard relational database interface language, often embedded in other programming languages. "A Guide to the SQL Standard," C.J. Date, A-W 1987. Square - Query language, precursor to SQL. "Specifying Queries as Relational Expressions: The SQUARE Data Sublanguage", R.E. Boyce et al, CACM 18(11):621-628 (Nov 1975). Squeak - "Squeak: A Language for Communicating with Mice", L. Cardelli et al, Comp Graphics 19(3):199-204 (July 1985) (See Newsqueak). SR - Synchronizing Resources. A programming language for distributed systems. A 'resource' is the encapsulation of a process and its variables in two parts: specification and body. Processes interact via the rendezvous, in which one calls an 'operation' in the other. The call can be either blocking or nonblocking. The operation names can be changed dynamically. "An Overview of the SR Language and Implementation", G. Andrews, ACM TOPLAS 10:51-86 (Jan 1988). "The SR Programming Language: Concurrency in Practice", G.R. Andrews et al, Benjamin/Cummings 1993, ISBN 0-8053-0088-0. ftp:, SRC Modula-3 - From DEC/SRC, Palo Alto, CA. "Modula-3 Report (revised)" Luca Cardelli et al. ftp: SRDL - Small algebraic specification language, allows distfix operators. "A Constructive Method for Abstract Algebraic Software Specification", H. Klaeren, Theor Computer Sci 30, pp.134-204, 1984. Srl - 1. Bharat Jayaraman. "Towards a Broader Basis for Logic Programming", B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990. 2. Schema Representation language. "SRL/2 Users Manual", J.M. Wright et al, Robotics Inst, CMU, 1984. 3. Structured Robot Language. C. Blume & W. Jacob, U Karlsruhe. SSL - 1. Synthesizer Specification Language. The definition language for the Cornell Program Synthesizer Generator. "Generating Language Based Environments", T. Reps, MIT Press 1984. 2. Syntax Semantic Language. R.C. Holt & J. Cordy. A specification language for recursive descent parsers. "An Introduction to S/SL: Syntax/Semantic Language", R.C. Holt et al, ACM TOPLAS 4(2):149-178 (Apr 1982). ftp: STAB-11 - "The Translation and Interpretation of STAB-11", A.J.T. Colin et al, Soft Prac & Exp 5(2):123-138 (Apr 1975). STAGE2 - Macro language. Standard ML - See SML. STAR 0 - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). StarLISP - See *LISP. StarMOD - See *MOD. Steelman - DoD, 1979. Fifth and last of the series of DoD requirements that led to Ada. "Requirements for High Order Programming Languages, 'Steelman'", June 1978. SIGPLAN Notices 13(12) (Dec 1978). (See Strawman, Woodenman, Tinman, Ironman). STENSOR - L. Hornfeldt, Stockholm, mid-80's. Symbolic math, especially General Relativity. Implemented on top of SHEEP and MACSYMA. Sticks&Stones - Hardware description language. Functional, polymorphic, loosely based on ML. "An Algebraic Approach to Hardware Description and Verification", L. Cardelli, Thesis, Edinburgh U, 1982. "Sticks&Stones II: A Functional Language VLSI Layout Generation Tool", Andrew Butterfield , Thesis, Trinity College, 1990. STIL - STatistical Interpretive Language. "STIL User's Manual", C.F. Donaghey et al, Indust Eng Dept, U Houston (Aug 1969). STOIC - STring Oriented Interactive Compiler. Smithsonian Astrophysical Observatory. Similar to FORTH for strings, includes many VAX-specific items. Stoneman - HOLWG, DoD, Feb 1980. DoD requirements that led to APSE, the Ada Programming Support Environment. STP4 - Statistical language. Strand - 1. AND-parallel logic programming language. Essentially flat Parlog83 with sequential-and and sequential-or eliminated. "Strand: New Concepts on Parallel Programming", Ian Foster et al, P-H 1990. Strand88, available commerically from Strand Software, Beaverton, OR. info: 2. Query language, implemented on top of INGRES (an RDBMS). "Modelling Summary Data", R. Johnson, Proc ACM SIGMOD Conf 1981. Strawman - HOLWG, DoD, 1975. The first of the series of DoD requirements that led to Ada. (See Woodenman, Tinman, Ironman, Steelman). STREAM - "STREAM: A Scheme Language for Formally Describing Digital Circuits", C.D. Kloos in PARLE: Parallel Architectures and Languages Europe, LNCS 259, Springer 1987. STRESS - STRuctual Engineering Systems Solver. Structural analysis problems in Civil Engineering. Superceded by STRUDL. "STRESS: A User's Manual", S.J. Fenves et al, MIT Press 1964. Sammet 1969, p.612. STROBES - Shared Time Repair of Big Electronic Systems. Computer testing. Sammet 1969, p.699. STRUDL - STRUctured Design Language. Dynamic and finite-element analysis, steel and concrete structures. Subsystem of ICES. "ICES STRUDL-II Engineering User's Manual", R68-91, CE Dept MIT (Nov 1968) Sammet 1969, p.613. STSC APL - Implementation of APL by Scientific Time-Sharing Corp. STUDENT - D.G. Bobrow 1964. Early query system. Sammet 1969, p.664. SuccessoR - Language for distributed computing derived from SR. "SuccessoR: Refinements to SR", R.A. Olsson et al, TR 84-3, U Arizona 1984. SUGAR - Westfield College, U London. Simple lazy functional language used in Principles of Functional Programming, Hugh Glaser et al, P-H 1984. SUIF - Stanford University Intemediate Format. Register-oriented intermediate language. SUMMER - Klint & Sint, CWI late 70's. String manipulation and pattern matching. Recently used as the input and implementation language for the Dataflow Compiler Project at CWI. "An Overview of the SUMMER Programming Language", Paul Klint, 7th POPL, ACM 1980, pp.47-55. SUMMER SESSION - Early system on MIT's Whirlwind. Listed in CACM 2(5):16 (May 1959). SUPER - Successor to LOGLISP, based on LNF. "New Generation Knowledge Processing: Final Report on the SUPER System", J Alan Robinson et al, CASE Center TR 8707, Syracuse U, 1987. SUPERMAC - General-purpose macro language, embeddable in existing languages as a run-time library. "SUPERMAC - A Macro Facility That can be Added to Existing Compilers", P.J. Brown, Soft Prac & Exp 10(6):431-434. Super Pascal - Pascal variant used in Data Structures and Algorithms, A. Aho, Hopcroft & Ullman, A-W 1983. Adds nonnumeric labels, return statement, expressions as names of types. SuperTalk - Silicon Beach Software. A superset of HyperTalk used in SuperCard. Sure - Bharat Jayaraman. "Towards a Broader Basis for Logic Programming", B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990. SURGE - Sorter, Updater, Report Generator, Etc. IBM 704, 1959. Sammet 1969, p.8. SweetLambda - Sugared lambda-calculus? SYGMA - "SYGMA, A Symbolic Generator and Macroassembler", A.P. Ershov et al, in Symbol Manipulation Languages and Techniques, D.G. Bobrow ed, N-H 1968, pp.226-246. Sylvan - [Distributed language?] SYMBAL - SYMbolic ALgebra. Max Engeli, late 60's. Symbolic math language with ALGOL-like syntax. Implemented for CDC6600. "User's Manual for the Formula Manipulation Language SYMBAL", M. Engeli, TRM-8.00, Comp Ctr UT Austin, June 1968. SymbMath - Small symbolic math package for MS-DOS. Has the ability to learn new facts. Version 2.1.1 ftp: simtel20:calculator/ SYMBOLANG - Lapidus & Goldstein, 1965. Symbol manipulating FORTRAN subroutine package for IBM 7094, later CDC6600. "Some Experiments in Algebraic Manipulation", CACM 8:501-508 (1965). SYMBOLIC ASSEMBLY - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). Symbolic Mathematical Laboratory - On-line system under CTSS for symbolic math. Used display screen and light pen. Sammet 1969, p.514. Symmetric LISP - A parallel LISP in which environments are first-class objects. Implemented in Common LISP. "Parallelism, Persistence and Meta- Cleanliness in the Symmetric Lisp Processor", D. Gelernter et al, SIGPLAN Notices 22(7):274-282 (July 1987). SYMPL - SYsteMs Programming Language. CDC. A derivative of Jovial. Non-reentrant block structured language with extensive bit manipulation facilities and linkable with FORTRAN. Major parts of CDC systems during the 70's were written in SYMPL. T - 1. True. Rees, 1982. LISP dialect with static scope, a near-superset of Scheme. "The T Manual", Johnathan A. Rees et al, Yale U, 1984. Maintained by David Kranz . ftp: Unix source 2. Functional. "T: A Simple Reduction Language Based on Combinatory Term Rewriting", Ida et al, Proc of Prog Future Generation Computers, 1988. TABLET - Query language. "Human Factor Comparison of a Procedural and a Non-procedural Query Language", C. Welty et al, ACM Trans Database Sys 6(4):626-649 (Dec 1981). TABSOL - T.F. Kavanaugh. Early system oriented language. Proc FJCC 18:117-136, AFIPS (Fall 1960). (See GECOM). TAC - Translator Assembler-Compiler. For Philco 2000. TACL - Tandem Advanced Command Language. Tandem, about 1987. The shell language used in Tandem computers. TACPOL - PL/I-like language used by US Army for command and control. TAL - Tandem Application Language. A cross between C and Pascal. Primary system programming language on Tandem computers. (Tandem has no assembler and until recently did not have C or Pascal.) Derived from SPL[3]? TALL - TAC List Language. "TALL - A List Processor for the Philco 2000", J. Feldman, CACM 5(9):484-485 (Sep 1962). TAO - Lisp dialect with concurrency, object-orientation and logic. "Concurrent Programming in TAO - Practice and Experience", I. Takeuchi in Parallel Lisp: Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989, pp.271-299. TARTAN - A simpler proposed language to meet the Ironman requirements. "TARTAN - Language Design for the Ironman Requirement", Mary Shaw et al, SIGPLAN Notices 13(9):36 (Sep 1978). TASM - Turbo Assembler. MS-DOS assembler from Borland. TASS - Template ASSembly language. Intermediate language produced by the Manchester SISAL compiler. TAWK - Tiny AWK. Taxis - "A Language Facility for Designing Database-Intensive Applications", J. Mylopoulos et al, ACM Trans Database Sys 5(2):185-207 (June 1980). TBIL - Tiny Basic Interpreter Language. Inner interpreter of Tom Pittman's set of Tiny Basics in Dr Dobb's J. Tbl - M.E. Lesk. Language for laying out tables. tcl - 1. ("tickle") Tool Command Language. John Ousterhout, UCB. A string language for issuing commands to interactive programs. Each application can extend tcl with its own set of commands. "Tcl: An Embeddable Command Language", J. Ousterhout, Proc 1990 Winter USENIX Conf. ftp: 2. Terminal Control Language. The command language used in the Pick OS. "Exploring the Pick Operating System", J.E. Sisk et al, Hayden 1986. 3. Tymshare Conversational Language. "Interactive Languages: Design Criteria and a Proposal", R.K. Moore et al, Proc FJCC 33(1) (1968). Tcode - Intermediate language used by the Spineless Tagless G-machine (an abstract machine based on graph reduction) designed as a target for compilation of non-strict functional languages. "The Spineless tagless G- machine", S. Peyton Jones et al, Fourth Intl Conf Func Prog Langs and Comp Arch pp.184-201, ACM Sept 1989. TCOL - CMU. Tree-based intermediate representation produced by the PQCC compiler generator. "An Overview of the Production Quality Compiler- Compiler Projects", B.W. Leverett et al, IEEE Computer 13(8): 38-49 (Aug 1980). (See LG). TCOL.Ada - CMU, 1980. An intermediate representation for Ada, was merged with AIDA to form Diana. "TCOL.Ada: Revised Report on an Intermediate Representation for the DOD Standard Programming Language", J.M. Newcomer et al, CMU-CS-79-128 (June 1979). tcsh - Command language for Unix, a dialect of csh. Tcsim - Time (Complex) Simulator. Complex arithmetic version of Tsim. ZOLA Technologies, TDF - Intermediate language, a close relative of ANDF. A TDF program is an ASCII stream describing an abstract syntax tree. "TDF Specification", Defence Research Agency/Electronics Division, Great Malvern, England, +44 684 895314. info: Nic Peeling TECO - Text Editor and COrrector. (Originally "Tape Editor and COrrector"). Macro language for text editing, screen handling and keyboard management. Has a reputation for being cryptic and hard to learn. (TECO programs are said to resemble line noise.) The first EMACS editor was written in TECO. ftp:, for VAX/VMS, Unix, MS-DOS, Mac, Amiga TELCOMP - Variant of JOSS. Sammet 1969, p.217. Telon - by Panasophic [?] TELOS - 1. The EuLisp Object System. The object-oriented core of EuLisp. Incorporates ideas from CLOS, ObjVLisp and OakLisp. Total merging of types with classes, and message-passing with normal function application. (See EuLisp). 2. Pascal-based AI language. "Design Rationale for TELOS, a Pascal-based AI Language", Travis et al, SIGPLAN Notices 12(8) (Aug 1977). TELSIM - Busch, ca 1966. Digital simulation. Sammet 1969, p.627. TempLog - A clausal subset of first-order temporal logic, with discrete time. "Temporal Logic in Programming", M. Abadi et al, INtl Symp Logic Prog pp.4-16 (1987). TEMPO - Simple syntax and semantics. Designed for teaching semantic and pragmatic aspects of programming languages. "TEMPO: A Unified Treatment of Binding Time and Parameter Passing Concepts in Programming Languages", N.D. Jones et al, LNCS 66, Springer 1978. Tempura - Language based on temporal logic. "Executing Temporal Logic Programs", B. Moszkowski, Camb U Press 1986. Ten15 - A universal intermediate language, predecessor to TDF. Polymorphic? "Ten15: An Overview", P. Core et al, Royal Signals Radar Establishment TR 3977 (Sept 1986). TERMAC - Interactive matrix language. "Users Guide to TERMAC", J.S. Miller et al, MIT Dec 1968. Terse - Language for decription of hardware logic. "Hardware Logic Simulation by Compilation", C. Hansen, 25th ACM/IEEE Design Automation Conf, 1988. TeX - Donald Knuth, 1978. Language for formatting and typesetting text, expecially mathematical formulas. Macro extensible. Version 3.0, March 1990. TeX-78 - The original version of TeX. TeX-82 - The version of TeX described in The TeXbook, Donald Knuth, A-W 1984. ftp: Well-known extensions to TeX: BibTeX - for bibliographies. Distributed with LaTeX. LaTeX - Lamport TEX. Incorporates document styles. "LaTeX, A Document Preparation System", Leslie Lamport , A-W 1986. MuTeX - for typesetting music. ftp: PiCTeX - for pictures. ftp: SliTeX - for slide preparation. Distributed with LaTeX. TFDL - "TFDL : A Task-level Dataflow Language", P.A. Suhler et al, J Parallel and Distrib Comput 9:103-115 (1990). TGS-II - Translator Generator System. Contained TRANDIR. Sammet 1969, p.640. THEO - Frame language. "Theo: A Framework for Self-Improving Systems", Mitchell et al, in Architectures for Intelligence, K. VanLehn ed, Erlbaum, 1989. Theseus - Based on Euclid, never implemented. "Theseus - A Programming Language for Relational Databases", J.E. Shopiro, ACM Trans Database Sys 4(4):493-517 (Mar 1979). ThingLab - Simulation system written in Smalltalk-80. Solves constraints using value inference. "The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory", A. Borning, ACM TOPLAS 3(4):353-387 (Oct 1981). Version: ThingLab II. Tinman - HOLWG, DoD, 1976. Third of the series of DoD requirements that led to Ada. (See Strawman, Woodenman, Ironman, Steelman). TINT - Interpreted version of JOVIAL. Sammet 1969, p.528. Tiny - Concurrency through message-passing to named message queues. TIP - TI Pascal. TIPL 1. Teach IPL. Interpretive IPL teaching system. Sammet 1969, p.393. 2. Dialect of IGL.[?] TK!Solver - Software Arts 1983. Numerical constraint-oriented language. "The TK!Solver Book", M. Konopasek et al, McGraw-Hill 1984. TL0 - Thread Language Zero. The instruction set of the TAM (Threaded Abstract Machine), used to implement Id. "Fine-grain Parallelism with Minimal Hardware Support", David Culler et al, SIGPLAN Notices 26(4):164- 175 (ASPLOS-IV Proc) (Apr 1991). TMDL - Target-Machine Description Language. Machine-desription language used in the Graham-Glanville code generator. "Table-Driven Code Generation", S.L. Graham, IEEE Computer 13(8):25-34 (Aug 1980). TMG - Transmogrifier. Language for an early compiler-compiler. Macro'd from the IBM 1604 to the 709 to the 7094 to the GE635, where it was used to write the EPL compiler for Multics development. "TMG - A Syntax-Directed Compiler", R.M. McClure, Proc ACM 20th Natl Conf (1965). Sammet 1969, p.636. TOK - Referred to in Ursula K. LeGuin's "Always Coming Home." Seems to be similar to the original BASIC. Toronto Euclid - The standard dialect of Euclid, as compared to Ottawa Euclid. TPL - 1. Table Producing Language. "The Bureau of Labor Statistics Table Producing Language (TPL)", R.C. Mendelssohn, Proc ACM Annual Conf (1974). 2. Fleming Nielson. Concurrent, functional. [?] 3. Terminal Programming Language. Texas Inst, late 70's. Used on the TI-990/1 Small Business Computer and the TI-771 Intelligent Terminal. TPS - Tree Pruning System. "An Adaptive Tree Pruning System: A Language for Programming Heuristic Tree Searches", E.W. Kozdrowicki, Proc ACM 23rd Natl Conf 1968. TPU - Text Processing Utility. DEC. Language for creation of text- processing interfaces, used to implement DEC's Extensible VAX Editor (EVE). TRAC - Text Reckoning And Compiling. Calvin N. Mooers and Peter Deutsch . An interactive macrogenerator language for string manipulation. Derived ideas from Macro SAP. "TRAC: A Procedure- Describing Language for the Reactive Typewriter", Calvin N. Mooers, CACM 9(3):215-219 (Mar 1966). Rockford Research Inst, 1972. Sammet 1969, pp.448-454. Macro Processors, A.J. Cole, Cambridge U Press. Versions for PDP-1, PDP-8, PDP-10, PDP-11 (See MINT, SAM76) info: Preston Briggs Trafola-H - A specification language for program transformations. Functional, statically typed, polymorphic, with extended constructs for pattern-matching. "Trafola-H Reference Manual", R. Heckmann et al, U Saarlandes, Saarbrucken 1991. TRANDIR - TRANslation DIRector. A language for syntax-directed compiling. Sammet 1969, p.640. TRANQUIL - 1966. ALGOL-like language with sets and other extensions, for the Illiac IV. "TRANQUIL: A Language for an Array Processing Computer", N.E. Abel et al, Proc SJCC 34 (1969). TRANS - TRAffic Network Simulation Language. "A Model for Traffic Simulation and a Simulation Language for the General Transportation Problem", Proc FJCC 37 (1970). TRANS-USE - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). TRANSCODE - Early system on Ferut computer. Listed in CACM 2(5):16 (May 1959). TRANSIT - Subsystem of ICES. Sammet 1969, p.616. TREET - E.C. Haines, 1964. An experimental variant of LISP1.5, implemented on the STRETCH computer. Basic structure was a trinary tree. "The TREET Time-Sharing System", H.A. Bayard et al, Proc 2nd Symp Symb and Alg Manip, ACM (Mar 1971). Sammet 1969, pp.457-461. TREETRAN - FORTRAN IV subroutine package for tree manipulation. Trellis - (formerly named Owl). DEC. Object-oriented, with static type- checking and encapsulation. "Persistent and Shared Objects in trellis/owl", P. O'Brien et al, Proc 1986 IEEE Workshop on Object-Oriented Database Systems, IEEE, NY 1986. info: Jerry Smith TRIGMAN - Symbolic math, especially Celestial Mechanics. Trilogy - Paul Voda, UBC, 1988. Logic programming language with numerical constraint-solving over the natural numbers. Syntactically a blend of Prolog, LISP and Pascal. Contains three types of clauses: predicates (backtracking but no assignable variables), procedures (if-then-else but no backtracking; assignable variables), and subroutines (like procedures, but with input and system calls; callable only from top level or from other subroutines). "The Constraint Language Trilogy: Semantics and Computations", P. Voda , Complete Logic Systems, 741 Blueridge Ave, North Vancouver BC, V7R 2J5. Papers by Voda, and BYTE review.[?] Troff - Text formatting language/interpreter, a variant of Unix roff. (See groff, nroff). TROLL - Array language for continuous simulation, econometric modeling, statistical analysis. "TROLL Reference Manual", D0062, Info Proc Services, MIT (1973-76). True BASIC - John Kemeny & Thomas E. Kurtz. A compiled BASIC requiring no line numbers. Tsim - Time Simulator. Stack-based simulation language. ZOLA Technologies, TSL-1 - Task Sequencing Language. Language for specifying sequences of tasking events in Ada programs. "Task Sequencing Language for Specifying Distributed Ada Systems", D.C. Luckham et al in PARLE: Parallel Architectures and Langs Europe, LNCS 259, Springer 1987, pp.444-463. Tui - Functional. "Tui Language Manual", B. Boutel, TR CSD-8-021, Victoria U of Wellington, 1988. Tuki - An intermediate code for functional languages. "Another Implementation Technique for Applicative Languages", H. Glaser et al, ESOP86, LNCS 213, Springer 1986. Tuple Space Smalltalk - "Using Tuple Space Communication in Distributed Object-Oriented Languages", S. Matsuoka et al, SIGPLAN Notices 23(11):276- 284 (Nov 1988). Turbo Pascal - Borland Intl's Pascal. Perhaps the first integrated development environment for MS-DOS. Versions 1.0-3.0: standard Pascal with a few extensions Versions 4.0 (1987) and 5.0: separate compilation Version 5.5: object-oriented facilities Version 6.0: Turbo Vision OOP library Turbo Prolog - 1986. A Prolog-like language with strong typing and user- defined domains. Programs are arranged in sections: DOMAINS, CLAUSES, PREDICATES, DATABASE and GOAL. Currently known as PDC Prolog, and distributed by Prolog Development Center, Atlanta (404)873-1366 ? Turing - R.C. Holt & J.R. Cordy , U Toronto, 1982. Descendant of Concurrent Euclid, an airtight super-Pascal. "Turing Language Report", R.C. Holt & J.R. Cordy, Report CSRI-153, CSRI, U Toronto, Dec 1983. "The Turing Programming Language", R.C. Holt & J.R. Cordy, CACM 31(12) (Dec 1988). Available from Holt Software Assocs, Toronto. Versions for Sun, VAX/VMS, MS-DOS, Mac, VM/CMS. info: Turing Plus - Systems programming language, a concurrent descendant of Turing. "The Turing Plus Report", R.C. Holt & J.R. Cordy, CSRI, U Toronto, Feb 1987. Available from Holt Software Assocs, Toronto . Turtle - The subset of LOGO dealing directly with turtle graphics. TUTOR - Scripting language on PLATO systems from CDC. "The TUTOR Language", Bruce Sherwood, Control Data, 1977. Twentel - Functional. "The TWENTEL System (Version 1).", H. Kroeze, CS Dept TR, U Twente, 1986. TWIG - Tree-Walking Instruction Generator. A code-generator language. "Twig Language Manual", S.W.K. Tijang, CS TR 120, Bell Labs, 1986. A variant, ML-Twig in SML by Jussi Rintanen comes with SML/NJ. TXL - Tree Transformation Language. J.R. Cordy et al, Queens U, Canada, 1988. A general language for implementing source-to-source translation and program transformation tasks. "TXL: A Rapid Prototyping System for Programming Language Dialects", J.R. Cordy et al, Comp Langs 16(1) (Jan 1991). Specification and Automatic Prototype Implementation of Polymorphic Objects in Turing Using the TXL Dialect Processor", J.R. Cordy & E.M. Promislow, Proc IEEE Intl Conf on Comp Lang ICCL'90 (Mar 1990). ftp:, Vers 5.3, source in ANSI C Typed Smalltalk - Ralph Johnson, U Illinois . TYPOL - A specialized logic programming language. "TYPOL: A Formalism to Implement Natural Semantics", T. Despeyroux, RR 94, INRIA, 1988. UAN - User Action Notation. VPI. A notation for representation of graphical user interfaces, e.g. mice and icons, H. Hartson et al, ACM Trans on Info Sys, July 1990. UBASIC - Y. Kida . Extension of BASIC oriented for symbolic math and number theory. Includes bignums, fractions, complex numbers and polynomials, integer factorization. Version for MS-DOS, written in assembly language. Reviewed by W.D. Neumann, Notices of AMS (Mar 1991). ftp: uC++ - Micro-C++. U Waterloo. A concurrent extension of C++ with coroutines and mutual exclusion. Soft Prac & Exp (Feb 1992). Version 3.4.4 for Unix using GCC. ftp: UCSD Pascal - see Pascal-P. U-Code - Universal Pascal Code. Intermediate language, a generalization of P-code for easier optimization. Developed originally for the Los Alamos Cray-1 and the Lawrence Livermore S-1. A refined version currently used by MIPS compilers is descended from one at Stanford U. "Machine Independent Pascal Code Optimization", D.R. Perkins et al, SIGPLAN Notices 14(8): 201- 201 (1979). "A Transporter's Guide to the Stanford U-Code Compiler System", P. Nye et al, TR CSL Stanford U, June 1983. (See HPcode). UHELP - Linear programming. "UHELP User's Manual", D. Singh, Indus Eng Dept, U Houston (Oct 1969). UGLIAC - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). UHELP - Mathematical language, listed [?] 1976. ULP - Small structured language for use in microprocessors. "User's Guide to the ULP Language for the PDP-11", CS TR 536, U Maryland (May 1977). uML - Micro ML. An interpreter for a subset of SML that runs on MS-DOS. ftp: UNCOL - UNiversal Computer Oriented Language. A universal intermediate language, discussed but never implemented. "A First Version of UNCOL", T.B. Steel, Proc JCC 19:371-378 (Winter 1961). Sammet 1969, p.708. UNICODE - Pre-FORTRAN on the IBM 1103, similar to MATH-MATIC. Sammet 1969, p.137. UNIQUE - A portable job control language, used. "The UNIQUE Command Language - Portable Job Control", I.A. Newman, Proc DATAFAIR 73, 1973, pp.353-357. UNISAP - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). UNITY - A high-level parallel language. "Parallel Program Design", K.M. Chandry et al, A-W 1988. USE - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). USL - Query language, close to natural English. USSA - B. Burshteyn, Pyramid, 1992. Object-oriented state language. doc: utility-coder - Data manipulation and report generation. "User's Manual for utility-coder", Cambridge Computer Assoc (Jul 1977). V - Wide-spectrum language used in the knowledge-based environment CHI. "Research on Knowledge-Based Software Environments at Kestrel Inst", D.R. Smith et al, IEEE Trans Soft Eng SE-11(11):1278-1295 (1985). VAL - 1. Value-oriented Algorithmic Language. J.B. Dennis, MIT 1979. Single assignment language, designed for MIT dataflow machine. Based on CLU, has iteration and error handling, lacking in recursion and I/O. "A Value- Oriented Algorithmic Language", W.B. Ackermann et al, MIT LCS TR-218, June 1979. "The VAL Language: Description and Analysis", J.R. McGraw, TOPLAS 4(1):44-82 (Jan 1982). 2. Variable Assembly Language. Unimation. Language for industrial robots. Version: VAL II - "VAL II: A New Robot Control System for Automatic Manufacturing", B.E. Shimano et al, Proc IEEE Intl Conf on Robotics 1984, pp.278-292. 3. VHDL Annotation Language. Stanford. ftp: source in Ada available from Larry M. Augustin Valid - Dataflow language. "A List-Processing-Oriented Data Flow Machine architecture", Makoto Amamiya et al, AFIPS NCC, June 1982, pp.143-151. VDM - Specification method based on predicate logic, an outgrowth of VDL. "The Vienna Development Method: The Meta-Language", D. Bjorner et al eds, LNCS 61, Springer 1978. Version: BSI/VDM. Jones's books, 1980, 1986.[?] Vector C - CMU? Variant of C similar to ACTUS. VECTRAN - FORTRAN with array extensions. "The VECTRAN Language: An Experimental Language for Vector/Matrix Array Processing, Report G320- 3334, IBM (Aug 1975). Verdi - (named for the Italian composer Giuseppe Verdi (1813-1901)) Provable systems language. Descendant of Ottawa Euclid. VEL - See LISP70. Verilog - Cadence Design Systems. A hardware description language. "The Verilog Hardware Description Language", Donald E. Thomas & Philip Moorby, Kluwer 1991. info: VGQF - Query language. VHDL - VHSIC Hardware Description Language. (VHSIC = Very High Speed Integrated Circuit) The DoD standard for hardware description. "VHSIC Hardware Description Language", M.R. Shahdad et al, IEEE Computer 18(2):94- 103 (Feb 1985). Vienna Definition Language - IBM Vienna Labs. A language for formal definition via operational semantics. Used to specify the semantics of PL/I. "The Vienna Definition Language", P. Wegner, ACM Comp Surveys 4(1):5-63 (Mar 1972). Vienna Fortran - Hans Zima, U Vienna. Data-parallel. Views - A Smalltalk extension for computer algebra. "An Object Oriented Approach to Algebra System Design", K. Abdali et al, in Symp Symb Alg Manip, ACM 1986, pp.24-30. Viron - "Five Paradigm Shifts in Programming Language Design and Their Realization in Viron, a Dataflow Programming Environment", V. Pratt, 10th POPL, ACM 1983, pp.1-9. VITAL - Semantics language using FSL. Mondshein, 1967. Sammet 1969, p.641. VIVID - Numerical constraint-oriented language. "VIVID: The Kernel of a Knowledge Representation Environment Based on the Constraints Paradigm of Computation", J. Maleki, Proc 20th Annual Hawaii Intl Conf on System Sciences (Jan 1987) pp.591-597. viz - Visual language for specification and programming. "viz: A Visual Language Based on Functions", C.M. Holt, 1990 IEEE Workshop on Visual Langs, Oct 1990, pp.221-226. Vlisp - Patrick Greussay ca 1973. Lisp dialect widely used in France. (See ObjVlisp). VPL - Dataflow language for interactive image processing. "VPL: An Active, Declarative Visual Programming System, D. Lau-Kee et al, 1991 IEEE Workshop on Vis Langs, Oct 1991, pp.40-46. VULCAN - 1. Wayne Ratliff ca. 1980. CP/M port of JPLDIS which evolved into dBASE II. 2. The dBASE-like interpreter and compiler sold by RSPI with their Emerald Bay product. [same as 1?] 3. Early string manipulation language. "VULCAN - A String Handling Language with Dynamic Storage Control", E.P. Storm et al, Proc FJCC 37, AFIPS (Fall 1970). 4. Kahn et al, Xerox PARC. Concurrent object orientation and logic programming. An object-oriented preprocessor for FCP. "Vulcan: Logical Concurrent Objects", K. Kahn et al in Research Directions in Object- Oriented Programming, A.B. Shriver et al eds, MIT Press 1987. WAFL - WArwick Functional Language. Warwick U, England. LISP-like. WAM - Intermediate language for compiled Prolog, used by the Warren Abstract Machine. "An Abstract Prolog Instruction Set", D.H.D. Warren, TR 309, SRI 1983. WATBOL - WATerloo COBOL, for MVS. WATFIV - WATerloo Fortran IV. U Waterloo, Canada. Student-friendly variant of FORTRAN IV. WATFOR - WATerloo FORtran. U Waterloo, Canada. Student-friendly variant of FORTRAN. "WATFOR - The University of Waterloo FORTRAN IV Compiler", P.W. Shantz et al, CACM 10(1):41-44 (Jan 1967). WAVE - Robotics language. "WAVE: A Model-Based Language for Manipulator Control", R.P. Paul, Ind Robot 4(1):10-17 (1979). WEB - Knuth's self-documenting brand of programming, with algorithms and documentation intermixed in one file. They can be separated using Weave and Tangle. Versions exist for Pascal, C etc. Spiderweb can be used to create versions for other languages (ftp "Literate Programming", D.E. Knuth, Computer J 27(2):97-111 (May 1984). WFL - Work Flow Language. Burroughs, ca 1973. A job control language for the B6700/B7700 under MCP. WFL was a compiled block-structured language similar to ALGOL-60, with subroutines and nested begin-end's. "Work Flow Management User's Guide", Burroughs Manual 5000714 (1973). "Burroughs B6700/B7700 Work Flow Language", R.M. Cowan in Command Languages, C. Unger ed, N-H 1975. Wisp - "An Experiment with a Self-Compiling Compiler for a Simple List- Processing Language", M.V. Wilkes, Ann Rev Automatic Programming 4:1-48 (1964). Woodenman - HOLWG, DoD, 1975. Second of the series of DoD requirements that led to Ada. (See Strawman, Tinman, Ironman, Steelman). WOOL - Colas Nahaboo Small Common Lisp-like extension language. Claims to be the fastest interpreted language in C with run-time types. Version 1 used by the GWM window manager. Version 2 has an object system. WPOP - WonderPop. Robert Rae , Edinburgh 1976. An implementation of POP for the PDP-10 that used cages for different data types. Introduced processes, properites, and some typed identifiers WRITEACOURSE - CAI language, for IBM 360. "WRITEACOURSE: An Educational Programming Language", E. Hunt et al, Proc FJCC 33(2) (1968). WSFN - Which Stands For Nothing. Atari 1983. Beginner's language with emphasis on graphics, for Atari home computers. Version: Advanced WSFN. WSL - Waterloo Systems Language. A C-like systems programming language. "Waterloo Systems Language: Tutorial and Language Reference", F.D. Boswell, WATFAC Publications Ltd, Waterloo, Canada. ISBN 0-919884-00-8. X-1 - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). Xbase - Generic term for the dBASE family of languages. Coined in response to threatened litigation over use of the copyrighted trademark "dBASE." XC - Declarative extension of C++. "XC - A Language for Embedded Rule Based Systems", E. Nuutila et al, SIGPLAN Notices 22(9):23-32 (Sep 1987). XDL - An object-oriented extension to CCITT's SDL[2]. "XDL: An Object- Oriented Extension to SDL", S.J. Ochuodho et al in [?] Xfun - S. Dalmas , INRIA, 1991. A cross between SML and Russell, intended for computer algebra. "A Polymorphic Functional language Applied to Symbolic Computation", S. Dalmas, Proc Intl Symp Symb Alg Comp, Berkeley 1992. Xi - VLSI design language. "The Circuit Design Language Xi", S.I. Feldman, unpublished memo, Bell Labs, 1982. Mentioned in Computational Aspects of VLSI, J.D. Ullman, CS Press 1984. XLISP - eXperimental LISP. David Betz. LISP variant with object-oriented extensions, source in C. Versions exist for most PC's. BYTE article. ftp: XPC - eXplicitly Parallel C. Dialect of Parallel C which is mode independent, i.e. efficiently compilable to both SIMD and MIMD architectures. "Toward Semantic Self-Consistency in Explicitly Parallel Languages," M.J. Phillip & H.G. Dietz, Proc 4th Intl Conf on Supercomputing, Santa Clara, CA, May 1989, v.1, pp.398-407. Research implementations only. XPL - Stanford, 1967-69. Dialect of PL/I used for compiler writing. "A Compiler Generator," W.M. McKeeman et al, P-H 1970. Also JCC, AFIPS 1968. XPOP - Extensible macro assembly language with user-redefinable grammar, for use with FAP. "XPOP: A Meta-language Without Metaphysics", M.I. Halpern, Proc FJCC 25:57-68, AFIPS (Fall 1964). XScheme - David Betz. Scheme with object-oriented extensions. Source in C. Versions for PC, Macintosh, Atari, Amiga. ftp: comp.sources.amiga/volume90, version 0.28 for Amiga XTRAN - FORTRAN-like, interactive. Y - General purpose systems language, syntactically falls between RATFOR and C. "The Y Programming Language", D.R. Hanson, SIGPLAN Notices 16(2):59-68 (Feb 1981). y++ - "YACC Meets C++", S.C. Johnson, USENIX Spring '88 Conf. Yaa - Yet Another Assembler - Macro assembler for GCOS 8 and Mark III on Bull DPS-8 machines. Available from Bull as part of U Waterloo Tools package (maintained by ). Yacc - Yet Another Compiler Compiler. Language used by the Yacc LALR parser generator. "YACC - Yet Another Compiler Compiler", S.C. Johnson, CS TR 32, Bell Labs (Jul 1975). Implementations: ayacc - UC Irvine. written in Ada, produces Ada output ftp: Bison - from GNU ftp: Bison++ - produces C++ output. ftp: perl-byacc - produces perl output SASL-Yacc - "Yacc in SASL - An Exercise in Functional Programming", Simon Peyton-Jones, Software Prac & Exp 15:807-820 (1985). Mentions also a BCPL implementation. Yacc++ - 1990. An object-oriented rewrite of yacc, supports regular exp- ressions, produces an LR(1) parser. Chris Clark, Compiler Resources Inc, (508) 435-5016. MLYACC - Implementation and output in SML/NJ ftp: YAPS - Yet Another Production System? College Park Software. A commercial production rule language, simpler than OPS5. Allows knowledge bases to be attached to instances of CLOS objects. info: Liz Allen Yay - Yet Another Yacc - An extension of Yacc with LALR(2) parsing. Available from Bull as part of U Waterloo Tools package (maintained by ). YELLOW - A language proposed by SRI to meet the Ironman requirements which led to Ada. "On the YELLOW Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):22-26 (Oct 1978). Yerk - (named for Yerkes Observatory) A public domain reincarnation of Neon. ftp: info: Bob Lowenstein Z - 1. Programming Research Group, Oxford U, ca 1980. A specification language based on axiomatic set theory and first order logic. Must be written in LaTeX? Used in the IBM CICS project? "Understanding Z", J.M. Spivey, Cambridge U Press 1988. 2. A stack-based, complex arithmetic simulation language. ZOLA Technologies, Z++ - Object-oriented extension of Z. "Z++, an Object-Oriented Extension to Z", Lano, Z User Workshop, Oxford 1990, Springer Workshops in Computing, 1991, pp.151-172. ZAP - Language for expressing transformational developments. "A System for Assisting Program Transformation", M.S. Feather, ACM TOPLAS 4(1):1-20 (Jan 1982). Zed - 1978. Software Portability Group, U Waterloo. Eh, with types added. Similar to C. Implementation language for the Thoth realtime operating system. Added a few simple types for greater efficiency on byte-addressed machines. String constants in case statements. Enforces the naming convention: MANIFESTS, Externals and locals. "Porting the Zed Compiler", G.B. Bonkowski et al, SIGPLAN Notices 14(8):92-97 (Aug 1979). ZENO - Euclid with asynchronous message-passing. "Preliminary ZENO Language Description", J.E. Ball et al, SIGPLAN Notices 14(9):17-34 (Sep 1979). ZERO - Object oriented extension of Z. "Object Orientation in Z", S. Stepney et al eds, Springer 1992. ZEST - Object oriented extension of Z. "Object Orientation in Z", S. Stepney et al eds, Springer 1992. ZetaLisp - MACLISP dialect used on the LISP Machine. The many extensions to MACLISP include vectors, closures, flavors, stack groups, locatives and invisible pointers. "LISP Machine Manual", D. Weinreb and D. Moon, MIT AI Lab, 1981. ZIL - Zork Implementation Language. Language used by Infocom's Interactive Fiction adventure games. zmachine is an interpreter, for Unix and Amiga. ftp: zsh - Sh with list processing and database enhancements. ftp: ZOPL - Geac. A low-level Pascal. ZUG - Geac. A low-level Awk? Zuse - (named for Konrad Zuse, the designer of the first modern programming language Plankalkul.) Christian Collberg , PhD thesis 1991. A descendant of Ada, Modula-2, Mesa and Oberon-1 supporting several levels of information hiding. The Zuse type system includes fully hidden types (similar to Modula-2 opaque types but wihout any implementation restriction), semi-open pointer types (same as Modula-2 opaque types), extensible record types (similar to Oberon-1 public projection types but without the compiler hint), enumeration types, extensible enumeration types, and extensible subrange types. A type can also be protected by specifying the operations that particular modules may perform (similar to C++ friend classes and Ada private types). Zuse also includes hidden and extensible constants and hidden inline procedures. In order to support the higher levels of information hiding the implementation employs partial intermediate code linking. Version for Sun-3. APPENDIX A Selected Works on Computer Language History and Design ====================================================== AFIPS (American Federation of Information Processing Societies), SJCC (Spring Joint Computer Conference) and FJCC (Fall Joint Computer Conference), replaced after 1972 by the NCC (National Computer Conference). TK7885 .A1 J6 Andrews, G.R. and F.B. Schneider, "Concepts and Notations for Concurrent Programming", ACM Comp Surveys 15(1):1-43 (Mar 1983). Bal, H.E., "Programming Languages for Distributed Systems", ACM Comp Surveys 21(3):261-322 (Sep 1989). Blume, Christian, "Programming Languages for Industrial Robots", Springer 1986. Bobrow, D.G. & Raphael, "New Programming Languages for Artificial Intelligence Research", ACM Comp Surveys 6:155 (Nov 1974). Computer Languages QA 76.7 .C647 ISSN 0096-0551 Conference Record of the 19XX ACM Symposium on Lisp and Functional Programming, QA 76.73 .L23 A26 Horowitz, Ellis, "Programming Languages, A Grand Tour", 3rd ed, Springer 1987. QA76.7 .P78 Hudak, Paul, "Conception, Evolution and Application of Functional Programming Languages", ACM Comp Surveys 21(3):359-411 (Sep 1989). IEEE Transactions on Software Engineering, QA76 .I33x POPL - Conference Record of the [Nth] Annual ACM Symposium on Principles of Programming Languages. QA 76.7 .A25a Sammet, Jean E., "Programming Languages: History and Fundamentals", P-H 1969. QA76.5 .S213. The definitive work on early computer language development. Sammet, Jean E., "Programming Languages: History and Future", CACM 15(7):601-610 (Jul 1972). Sammet, Jean E., "Roster of Programming Languages" Computers & Automation 16(6):80-82 (June 1967) Computers & Automation 17(6):120-123 (June 1968) Computers & Automation 18(7):153-158 (June 1969) Computers & Automation 19(6B):6-11 (Nov 30, 1970) Computers & Automation 20(6B):6-13 (June 30, 1971) Computers & Automation 21(6B) (Aug 30, 1972) Computing Reviews 15(4): 147-160 (April 1974) CACM 19(12):655-669 (Dec 1976) SIGPLAN Notices 13(11):56 (Nov 1978). Shapiro, E., "The Family of Concurrent Logic Programming Languages", ACM Comp Surveys, 21(3):413-510 (Sep 1989). ACM SIGPLAN Notices, QA76.7 .A13 Software: Practice and Experience, QA 76.5 .S653 ACM TOPLAS (Transactions on Programming Languages and Systems) QA76.7 .A16 Wexelblat, R.L. ed, "Proceedings: ACM SIGPLAN History of Programming Languages Conference" (Los Angeles, July 1978). 758 pp. Academic Press 1981. An entertaining account of the history of roughly 15 major programming languages. Jean Sammet co-organized the conference. ACM No 548780. ACM Order Dept: (800)342-6626. QA76.7 .H56 APPENDIX B A Chronology of Influential Computer Languages ============================================== Konrad Zuse in Nazi Germany may have developed the first real computer programming language, "Plankalkul" ca. 1945. This is mentioned in the 1978 ACM History of Programming Languages FORTRAN session. According to Sammet, over 200 programming languages were developed between 1952 and 1972, but she considered only about 13 of them to be significant. 1957 FORTRAN 1958 ALGOL 1960 LISP 1960 COBOL 1962 APL 1962 SIMULA 1964 BASIC 1964 PL/I 1966 ISWIM 1970 Prolog 1972 C 1975 Pascal 1975 Scheme 1978 CSP 1978 FP 1979 Modula-2 1980 dBASE II 1983 Smalltalk-80 1983 Ada 1983 Parlog 1984 Standard ML 1986 C++ 1986 CLP(R) 1986 Eiffel 1988 Mathematica 1988 CLOS 1990 Haskell -- --Bill Kinnersley


E-Mail Fredric L. Rice / The Skeptic Tank