Path: newshub.ccs.yorku.ca!torn!cs.utexas.edu!sdd.hp.com!hplabs!ucbvax!HAWK.CS.UKANS.EDU!billk From: billk@HAWK.CS.UKANS.EDU (Bill Kinnersley) Newsgroups: comp.lang.misc Subject: The Language List Version 1.8 - Part 1 of 9 Message-ID: <9209011719.aa06181@hawk.cs.ukans.edu> Date: 1 Sep 92 22:19:45 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 915 The Language List - Version 1.8, September 1992 Collected information on about 1900 computer languages, past and present. Currently maintained by: Bill Kinnersley Computer Science Department University of Kansas Lawrence, KS 66045 billk@hawk.cs.ukans.edu Version 1.7: Apr 6, 1991 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: tomr@ashtate.A-T.com 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 or ISO 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 ...gn true? (gi's are the goals.) Further clauses are inferred using resolution. One clause is selected containing p as an assumption, another containing p as a consequence, and p is eliminated between them. If the two p's have different arguments they must be unified, using the 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: think.com:/public/starsim-f19-sharfile, a *LISP simulator. info: customer-support@think.com documentation-order@think.com *MOD - ("StarMOD") Concurrent language combining the modules of Modula and the communications of Distributed Processes. "*MOD - A Language for Distributed Programming", R.P. Cook, IEEE Trans Soft Eng SE-6(6):563-571 (Nov 1980). 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: mcsun.eu.net and uunet.uu.net Unix source, MS-DOS, Mac and Atari ST executables. info: abc@cwi.nl list: abc-list@cwi.nl 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: camille.is.s.u-tokyo.ac.jp info: matsu@is.s.u-tokyo.ac.jp ABCL/c+ - Concurrent object-oriented language, an extension of ABCL/1 based on C. "An Implementation of An Operating System Kernel using Concurrent Object Oriented Language ABCL/c+", N. Doi et al in ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988. ABCL/R - Yonezawa, Tokyo Inst Tech 1988. 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: adainfo@ajpo.sei.cmu.edu ftp repository: wsmr-simtel20.army.mil ftp info: ajpo.sei.cmu.edu ftp interpreters: stars.rosslyn.unisys.com:pub/ACE_8.0, for SunOS AdaEd compiler/interpreter for Unix, MS-DOS, Atari ST, Amiga ab20.larc.nasa.gov:amiga/languages/ada/AdaEd1.11.0a.bin.lzh for Amiga cs.nyu.edu:pub/adaed Ada 83 - The original Ada, as opposed to Ada 9X. Ada 9X - Revision of Ada currently under development. ftp: ajpo.sei.cmu.edu 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: gatekeeper.dec.com: pub/games/comp.sources.games/volume2 wuarchive.wustl.edu: /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. ADVSYS - David Betz, 1986. An adventure language, object-oriented and LISP-like. ftp: uunet.uu.net:comp.sources.games/Volume2 AE - Application Executive. Brian Bliss An embeddable language, written as a C interpreter. ftp: sp2.csrd.uiuc.edu:ae.tex.Z 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 - Hewlett Packard. Hpsim interpreter written in FORTRAN. 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: rascal.ics.utexas.edu 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 Languages 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. The 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, Proc ESOP88, LNCS 300, Springer 1988. 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 - The communication and efficient execution of algorithms. Adriaan van Wijngaarden et al. 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 (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: aljabr@fpr.com ALLOY - Combines functional, object-oriented and logic programming ideas, suitable for massively parallel systems. "The Design and Implementation of ALLOY, a Parallel Higher Level Programming Language", Thanasis Mitsolides , PhD Thesis NYU 1990. Version: ALLOY 2.0 ftp: cs.nyu.edu:pub/local/alloy. ALM - Assembly Language for Multics. Language on the GE645. The hardest 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). 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: anna.stanford.edu 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 of 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 - Symbolic math package. Never marketed. Allegedly had an influence on SMP. ASIS - Ada Semanic Interface Specification. An intermediate representation for Ada. (See Diana.) info: sblake@telesoft.com 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. Path: newshub.ccs.yorku.ca!torn!cs.utexas.edu!sdd.hp.com!hplabs!ucbvax!HAWK.CS.UKANS.EDU!billk From: billk@HAWK.CS.UKANS.EDU (Bill Kinnersley) Newsgroups: comp.lang.misc Subject: The Language List Version 1.8 - Part 2 of 9 Message-ID: <9209011720.aa06189@hawk.cs.ukans.edu> Date: 1 Sep 92 22:20:16 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 915 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 - A language for the description of neural networks. For use with the MIGRAINES system. ftp:polaris.cognet.ucla.edu:alexis/am4.tar.Z 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: minnehaha.rhrk.uni-kl.de:pub/languages/B.tar.Z B-0 - Original name of FLOW-MATIC, Remington Rand. UNIVAC I or II ca. 1958. BABEL - 1. Mentioned in "The Psychology of Computer Programming," Weinberg, 1971 ed, 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: prep.ai.mit.edu:pub/gnu/bash-1.10.tar.Z BASIC - Beginner's All-purpose Symbolic Instruction Code. John G. Kemeny & Thomas E. Kurtz, Dartmouth College, designed 1963, first ran on an IBM 704 on May 1, 1964. Quick and easy programming by students and beginners. BASIC exists in many dialects, and is popular on microcomputers with sound and graphics support. Most micro versions are interactive and interpreted, but the original Dartmouth BASIC was compiled. ANSI Minimal BASIC, ANS X3.60-1978. list: basic@ireq.hydro.qc.ca BASIC AUTOCODER - Early system on IBM 7070. Listed in CACM 2(5):16 (May 1959). Basic COBOL - Subset of COBOL from COBOL-60 standards. Sammet 1969, p.339. Basic FORTRAN - Subset of FORTRAN. Sammet 1969, p.150. Basic JOVIAL - Subset of JOVIAL, ca. 1965. Sammet 1969, p.529. bawk - Bob Brodt. AWK-like pattern-matching language, distributed with Minix. BC 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. M. 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. A variety of 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. BCPL has conditional expressions, pointers, and manifest constants. 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). 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. ftp:nexus.yorku.ca:/pub/scheme/scm/bevan.sha 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. list: usergroup@mjolner.dk BIOR - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). Bjorn - Constraint language? 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. Bob - David Betz. A tiny object-oriented language. Dr Dobbs J, Sep 1991, p.26. ftp: mv.mv.com:pub/ddj/bob15.arc BOEING - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). Booster - Data parallel language. "The Booster Language", E. Paalvast, TR PL 89-ITI-B-18, Inst voor Toegepaste Informatica TNO, Delft, 1989. 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: customer-support@think.com documentation-order@think.com C++ - Stroustrup . An object-oriented superset of C. In C++ a class is a user-defined type, syntactically a struct with member functions. Constructors and destructors are member functions called to create or destroy instances. A friend is a nonmember function that is allowed to access the private portion of a class. C++ allows implicit type conversion, function inlining, overloading of operators and function names, and default function arguments. It has streams for I/O and references. "The C++ Programming Language", Bjarne Stroustrup, A-W, 1986. (See G++). ftp: grape.ecs.clarkson.edu:/pub/msdos/djgpp/djgpp.zip 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. 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: nuri.inria.fr:lang/caml, Version 3.1 info: caml-light@margaux.inria.fr list:caml-list@margaux.inria.fr 2. Language for preparation of animated movies, listed [?] 1976. CAML Light - Xavier Leroy. CAML subset. A small portable implementation, uses a bytecode interpreter written in C. Runs on Unix, MS-DOS, Macs and Amiga. Version: 0.4 ftp: nuri.inria.fr info: caml-light@margaux.inria.fr 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: cayley@maths.su.oz.au 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 Language. A hardware description language. "Computer Organization and Microprogramming", Y. Chu, P-H 1970. 2. Command Defintion Language. Portion of ICES used to implement commands. Sammet 1969, p.618-620. 3. Compiler Definition Language. "Using the CDL Compiler Compiler", in C.H.A. Koster, pp.366-426. 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). CESSL - CEll Space Simulation Language. Simulating cellular space models. "The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS Dept, U Michigan (Sept 1971). CFD - Computational Fluid Dynamics. FORTRAN-based parallel language for the Illiac IV. CFP - Communicating Functional Processes. "Communicating Functional Processes", M.C. van Eekelen et al, TR 89-3, U Nijmegen, Netherlands, 1989. CGGL - ("seagull") Code-Generator Generator Language. A machine- description language based on modeling the computer as a finite-state machine. "A Code Generator Generator Language", M.K. Donegan et al, SIGPLAN Notices 14(8):58-64 (Aug 1979). CGOL - V.R. Pratt, 1977. A package providing ALGOL-like surface syntax for MACLISP. "CGOL - An Alternative Exernal Representation for LISP Users", V. Pratt, MIT AI Lab, Working Paper 89, 1976. ftp: mc.lcs.mit.edu:its/ai/lisp/cgol 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. info: cras@bull.fr CHARYBDIS - LISP program to display math expressions. Related to MATHLAB. Sammet 1969, p.522. CHASM - CHeap ASseMbler. Shareware assembler for MS-DOS. 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. 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: vega.hut.fi:pub/misc/hp48sx/asap/* CHIP-8 - RCA, Late 70's. Low-level language (really a high-level machine code) for video games on computers using RCA's CDP1802 processor: COSMAC VIP, DREAM 6800 and ETI-660. Now there's an interpreter for the Amiga. ftp: ux1.cso.uiuc.edu:pub/amiga/fish/f5/ff537 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). 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: service@cossack.cosmic.uga.edu telnet: cosline@cosmic.uga.edu ftp: earth.rs.itd.umich.edu:mac.bin/etc/compsci/Clips/CLIPS 4.20 ftp.ensmp.fr:/pub/clips/clips-5.1/dos ftp.ensmp.fr:mac-clips-50 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: parcftp.xerox.com:pcl 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.1 for Unix systems. 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: pion.lcs.mit.edu - 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 langauge. "Towards a Knowledge Description Language", A. Borgida et al, in On Knowledge Base Management Systems, J. Mylopoulos et al eds, Springer 1986. 2. Concurrent ML. J. Reppy, Cornell 1990. A concurrent extension of SML/NJ, supporting dynamic thread creation and synchronous message passing on typed channels. Threads are implemented using first-class continuations. "CML: A Higher-Order Concurrent Language", John H. Reppy, SIGPLAN Notices 26(6):293-305 (June 1991). ftp: ftp.cs.cornell.edu:/pub/CML-0.9.tar.Z info: cml-bugs@cs.cornell.edu 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.] 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 list processing features, for CDC 3600 and CDC 3800. "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 merge the MACLISP and INTERLISP dialects of LISP. The result is a large and complex language. 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. ftp: lisp-rt1.slisp.cs.cmu.edu CMU Common Lisp Version 16d list: common-list@mcc.com. 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: arisia.xerox.com - Pcl (Portable CommonLoops) info: CommonLoops@xerox.com 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. Compiles to the PABC machine. "Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U Nijmegen, Netherlands, 1989. ftp: phoibos.cs.kun.nl:pub/Clean simulator for Mac and Sun info: Ron Wichers 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 Path: newshub.ccs.yorku.ca!torn!cs.utexas.edu!sdd.hp.com!hplabs!ucbvax!HAWK.CS.UKANS.EDU!billk From: billk@HAWK.CS.UKANS.EDU (Bill Kinnersley) Newsgroups: comp.lang.misc Subject: The language List Version 1.8 - Part 3 of 9 Message-ID: <9209011720.aa06196@hawk.cs.ukans.edu> Date: 1 Sep 92 22:20:49 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 915 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. 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. CP - A concurrent Prolog. "The Concurrent Logic Programming Language CP": Definition and Operational Semantics", V. Saraswat, 14th POPL, ACM 1987, pp.49-62. CParaOps5 - Anurag Acharya, . Parallel version of OPS5, written in C and compiling to C. Available for Unix, Mach, Encore Multimaxen, and Sequent. Version: 5.4. ftp: dravido.soar.cs.cmu.edu:/usr/nemo/cparaops5/CParaOPS5-5.4.tar.Z CPL - 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: hpserv1.cs.uit.no:pub/languages/cprolog.tar.Z 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. 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: polar@cs.syr.edu 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: maya@super.org dBFAST - dBASE dialect for MS-DOS, MS-Windows. DBPL - Procedural language with relational database constructs. A successor to Pascal/R and Modula/R. "DBPL Report", J.W. Schmidt et al, DBPL-Memo 111-88, Fachbereich Informatik, Johann Wolfgang Goethe-Universitaet, Frankfurt, Germany, 1988. dBXL - dBASE-like interpreter/language for MS-DOS from WordTech, Orinda, CA. 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 - J.C. Cleaveland 1978. Expression-based. 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). 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: ftp.cs.colorado.edu:pub/cs/distribs/dino Disiple - DSP language. "A Compiler that Easily Retargets High Level Language Programs for Different Signal Processing Architectures", J.E. Peters & S.M. Dunn, Proc ICASSP 89, pp.1103-1106, (May 1989). Dislang - "Dislang: A Distributed Programming Language/System", C. Li et al, Proc 2nd Intl Conf Distrib Comp Sys, IEEE 1981, pp.162-172. Distributed Eiffel - "Distributed Eiffel: A Language for Programming Multi- Granular Distributed Objects on the Clouds Operating System", L. Gunaseelan et al, IEEE Conf Comp Langs, 1992. Distributed Processes - (Also "DP"). First concurrent language based on remote procedure calls. "Distributed Processes: A Concurrent Programming Concept", P. Brinch Hansen CACM 21(11):934-940 (Nov 1978). Distributed Smalltalk - "The 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: aisun1.ai.uga.edu:ai.prolog/dprolog 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: adimaio@vms.eurokom.ie DRUCO I - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). DSL - 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. 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 - Advanced Technology Group East, Apple Computer. An object-oriented dialect of Scheme. Recent AI Expert issue? info: dylan-manual-request@cambridge.apple.com 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 - Package of embeddable subroutines used in other languages. Sammet 1969, p.388. 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. 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: edif-support@cs.man.ac.uk 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 (See Sather). info: queries@eiffel.com 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. 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: export.lcs.mit.edu:contrib/elk-1.4.tar.Z 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. "Ellie Language Definition Report", Birger Andersen , SIGPLAN Notices 25(11):45-65 (Nov 1990). doc: diku.dk:ellie/papers 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: gargoyle.uchicago.edu 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 - Intermediate language used by the Amsterdam Compiler Kit. info: A.S. Tanenbaum, Vrije Univ 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.) 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-3 - Expression Oriented Language. A low-level language for strings. "EOL - A Symbol Manipulation Language", L. Lukaszewicz, Computer J 10(1) (May 1967). 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. EPROL - "Software Prototyping, Formal Methods and VDM", S. 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: erlang@erix.ericsson.se 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. 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. 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. info: k-hata@air.co.jp 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 - Language for specification of computer network protocols. Described in terms of communicating NFA's. The language itself is Pascal- like. "The Formal Description Technique Estelle", M. Diaz et al eds, N-H 1989. 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: cse.ogi.edu 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: eudist@maths.bath.ac.uk ftp: ftp.bath.ac.uk:pub/eulisp/feel-0.70.tar.Z (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. Path: newshub.ccs.yorku.ca!torn!cs.utexas.edu!sdd.hp.com!hplabs!ucbvax!HAWK.CS.UKANS.EDU!billk From: billk@HAWK.CS.UKANS.EDU (Bill Kinnersley) Newsgroups: comp.lang.misc Subject: The Language List Version 1.8 - Part 4 of 9 Message-ID: <9209011721.aa06201@hawk.cs.ukans.edu> Date: 1 Sep 92 22:21:21 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 915 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 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: ftp.bath.ac.uk:pub/eulisp/feel-0.70.tar.Z FEL - Function Equation Language. "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 - 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. 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: minnehaha.rhrk.uni-kl.de:pub/languages/fido/fido2 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 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. 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:xcf.berkeley.edu:src/local/fmpl list:fmpl@xcf.berkeley.edu 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 wuarchive.wustl.edu: /systems/amiga/fish/fish/ff066 FOOL - Fool's Lisp. A small Scheme interpreter. ftp: scam.berkeley.edu:src/local/fools.tar.Z 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: acm.princeton.edu, nikhefh.nikhef.nl info: form@can.nl 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