home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.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 <abc-list-
- request@cwi.nl>.
-
- 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 <anderson@uv4.eglin.af.mil> (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 <cunniff@fc.hp.com> & 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 <bliss@sp64.csrd.uiuc.edu> 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 <sverker@sics.se> 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
- <mfx@cs.tu-berlin.de> 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 <sxc@itd.dtso.oz.au>, 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 <hudak-paul@cs.yale.edu>, 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
- <chl@cs.man.ac.uk>, 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
- <mitsolid@cs2.nyu.edu>, 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
- <liskov@lcs.mit.edu> 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.
-
-