Article View: comp.lang.misc
Article #3682The Language List, Version 1.1 (Part 1 of 5)
From: Bill Kinnersley
Date: Sun, 28 Apr 1991 15:35
Date: Sun, 28 Apr 1991 15:35
746 lines
32620 bytes
32620 bytes
----
The Language List
Version 1.1
Collected information on over 900 languages, past and present.
Last Modified: April 27, 1991
Bill Kinnersley
Computer Science Department
University of Kansas
Lawrence, KS 66045
billk@hawk.cs.ukans.edu
First release: March 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
Introduction: This document is intended to become among the longest lists
of computer programming language names ever assembled or compiled. (But
not interpreted! HHOJ) It is more for fun than to be any sort of
scholarly, definitive list.
As of this writing, about 50 netters have contributed to it. Their names
and e-mail addresses appear at the end. It is my dream that this can
become a living document with at least one definitive reference work
included for each entry.
Most entries should ultimately contain the following information:
Name: An explanation of the language name, which, in perhaps 80% of the
cases, is some form of acronym or abbreviation.
Date of first implementation: When possible, a year in parentheses
indicates when a language first appeared. Since the design,
implementation, and wide acceptance of a language can take place over a
several year period, such dates should be considered approximate.
Definitive reference work or publisher: At least one reference work on the
language, in theory as definitive or as official as possible, should be
included. In the case of a commercial product, the software publisher and
city is often listed. Few people who see a language in this file should
ever have to ask: "How can I get more information on that language?"
"See also:" Related languages or terms that may also be of interest.
Some various comments or criticisms:
"YOU LEFT OUT LANGUAGE ___!" - If this is the case, e-mail the relevant
information to whoever is maintaining this list. (It may not be me by the
time you read this.) A citing of at least one published reference to the
language will help determine authenticity.
"Clutter" - When in doubt, languages are included. To compensate for this
"clutter" effect, more widespread languages such as C or FORTRAN should
have longer entries.
The "Published" Rule - In order to reduce clutter somewhat, a language
should be "published" to be included in this list. There is no precise
criterion here. To state a rough example, a language devised solely for a
PhD thesis would not necessarily be included. However, if material on that
language was published in a technical journal or otherwise distributed, or
if it formed the basis for additional research, it should be included.
In case it is unclear, a language does NOT have to be implemented (actually
running on at least one computer) to be included. Many theoretical
languages appearing in the ACM SIGPLAN Notices fall into this category.
One gray area, however, is Internet/Usenet or RBBS distribution. In
general, when in doubt, an entry will be included.
(Future builders of this list may be able to include a wider range of
academic "theory" languages. I do not have the research resources for
this. At minimum the author's name, university or company, and date should
be listed.)
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.
Languages vs. dialects - Again, when in doubt, a term was included. Thus,
languages with many variants or flavors will have many extra entries. This
is intended to make the document more useful to beginners, not to make
common languages appear more popular or "better." (In defense of this
practice, any two implementations of a given language almost invariably
have at least a few differences. Some have suggested that if there are
various command line arguments, each permutation of command line arguments
could also be considered a distinct language! Note also that some names
("ML", "Vulcan") have been used for two or more distinct languages.
Languages vs. versions - There has been criticism that there are separate
entries for ALGOL 58, ALGOL 60, etc, but not for C++ 1.0, C++ 1.2, C++ 2.0,
etc. This was simply an oversight on my part. (I personally feel it is
easier to have separate entries for each, however.) Any language that has
some sort of ANSI or IEEE standard should include the dates and versions
approved. Also, for specific brands such as Turbo Pascal the versions and
release dates could be added within that entry.
Classification - This document makes no attempt at classification except by
name. However, the following broad categories seem to apply: assemblers,
general purpose languages, specialized languages, query languages, 4GL's,
application sub-languages, specification languages, experimental languages,
and theoretical languages. The precise definitions of these categories can
be debated elsewhere.
Editorial Comments: Warning - as in the many Usenet jargon files, some
entries here contain remarks that could be construed as editorial in
nature. For instance, if one happened to called Pascal "ALGOL-like," it
might manage to offend both some ALGOL and some Pascal users. Also, some
historical origin questions are disputed to this day. This document is
intended to aid the student or researcher, not to ignite flame wars among
old-time hackers. The reader is encouraged to refer to other sources for
more definitive discussions of any particular language. When in doubt,
"supposedly" or a "(?)" may appear to warn that the material is uncertain.
Phrasing like "somewhat" or "roughly" is also used liberally.
Brand names - Some entries, such as "Turbo Pascal" have drawn early
concern. However, since many packages offer non-standard extensions to the
base language, it can be argued that from a BNF grammar point of view,
Microsoft C and Turbo C (for example) are two distinct languages. On the
other hand, this is not intended to become a catalog of commercial
programming products.
Material in "[ ]" brackets clearly needs editorial work or research.
* * * * * * *
473L Query - English-like query system for Air Force 473L system. Sammet
1969, p.665.
9 PAC - Early report generator, ca. 1961. Sammet 1969, p.314.
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.
ABC - Simple interactive language for beginners. Infinite precision
arithmetic, multiple workspaces. Indentation is significant. "The ABC
Programmer's Manual", Leo Geurts et al, P-H 1989.
ftp: hp4nl.nluug.nl UNIX source, MSDOS and Mac executables.
list: abc-list@cwi.nl maintained by Steven Pemberton <steven@cwi.nl>.
ABCL/+ - Family of languages from Aki Yonesawa, Tokyo.
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) (Nov 1978) p.56.
ACOM - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959).
ACT ONE - Specification language.
ACTUS - Language for the Illiac IV computer, derived from Glypnir.
Descendants include Parallel Pascal, Vector C, and most recently CMU's
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, arguably the world's first computer
programmer. Designed by Jean Ichbiah for the U.S. Department of Defense.
Ada is a large, complex block-structured language. Aimed primarily at
embedded computer applications, Ada 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)
repository - wsmr-simtel20.army.mil
Ada 9x - Revision of Ada currently under development.
ADAM - A DAta Management system.
Adaplex - An extension of Ada to incorporate the functional data model for
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.
ADES - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959).
Version: ADES II.
AED -
1. Automated Engineering Design. Systems implementation language with
features similar to PL/I. "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.
2. ALGOL Extended for Design. MIT ca. 1965. Mentioned in the "DYNAMO
User's Manual".
AED-JR - Subset of AED?
AESOP - An Evolutionary System for On-line Programming. On-line query
system used with light pen. Sammet 1969.
AFAC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959).
AIMACO - AIr MAterial Command compiler. Modification of FLOW-MATIC.
Supplanted by COBOL. Sammet 1969.
ALCOR - Subset of ALGOL. Sammet 1969, p.180.
Aldat - Based on extended Algebra. Listed by M.P. Atkinson & J.W. Schmidt
in a tutorial in Zurich, 1989.
ALEPH - A Language Encouraging Proram Hierarchy. "On the Design of ALEPH",
D. Grune, CWI, Netherlands 1986.
Alfl - Functional, weakly typed. For the Alfalfa system on the Intel iPSC.
"Alfl Reference Manual and Programmer's Guide", P. Hudak, Res Report
YALEU/DCS/RR-322, Yale U, Oct 1984.
ALGEBRAIC - Early system on 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, SIGPLAN Notices 12(1) 1977, with
erratum in Computer J 21(3):282 applicable 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. A. 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 and semaphores. Generators
heap and loc for dynamic allocation.
ALGOL 68 Revised - "Revised Report on the Algorithmic Language ALGOL 68,"
Aad Van Wijngaarden et al, Acta Informatica 5:1-236 (1975), also Springer
1976, and SIGPLAN Notices 12(5):1-70 (May 1977).
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, ALGOL Y - General term for several proposed successors to ALGOL
60, Sammet 1969, p.194.
ALGY - Early language for formal algebra. Sammet 1969.
ALJABR - Symbolic math. Fort Pond Research.
ALLOY - "The Design and Implementation of ALLOY, a Parallel Higher Level
Programming Language", Thanasis Mitsolides <mitsolid@cs2.nyu.edu>, PhD
Thesis NYU 1990.
ftp: cs.nyu.edu:pub/local/alloy.
ALPAK - Related to ALTRAN? Sammet 1969.
Alphard - Pascal-like. "Abstraction and Verification in Alphard: Defining
and Specifying Iteration and Generators", M. Shaw, CACM 20(8):553-563 (Aug
1977)
ALTAC - An extended FORTRAN II for Philco 2000, built on TAC. Sammet 1969,
p.146.
ALTRAN - W.S. Brown ca. 1968. An extension of FORTRAN for formal rational-
function algebra. "The ALTRAN System for Rational Function Manipulation -
A Survey", A.D. Hall, CACM 14(8):517-521 (Aug 1971).
Amber -
1. Derived from ML and Galileo. Concurrency, multiple inheritance.
Programs must be written in two type faces, roman and italics! Mac
implementation. Both static and dynamic types. "Amber", L. Cardelli, TR
Bell Labs 1984.
2. An object-oriented distributed programming language based on a subset
of C++. U Washington, late 80's.
AMBIT - Algebraic Manipulation by Identity Translation. String handling.
AMBIT/L - Acronym May Be Ignored Totally. 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)
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).
AMP - Symbolic math?
AMTRAN - Automatic Mathematical TRANslation. System allowing input of
equations in seminatural format.
ANCP - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May
1959).
Animated Movie - Preparing animated movies.
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 FORTH - Soon-to-be-adopted standard.
APL - A Programming Language. Ken Iverson & Adin Falkoff, 1962 for the
concise expression of mathematical algorithms. In fact APL programs tend
to be too concise. APL is an interacive array-oriented language with many
innovative features, and 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.
Applesoft BASIC - Version of BASIC on Apple computers.
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).
Argus - Distributed successor to CLU, under development. LCS, MIT.
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.
ARTSPEAK - Simple language for drawing artistic diagrams on a plotter.
"The Art of Programming, ARTSPEAK", Henry Mullish, Courant Inst (Nov 1974).
ASHMEDAI - Symbolic manipulation, mentioned as an influence on SMP.
ASL - A kernel language for algebraic specifications. "An Introduction to
ASL", E. Astesiano et al in Program Specification and Transformation,
Elsevier 1987.
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 - Specification language.
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 All Systems. _THE_ mil-spec language
for programs to control automatic test equipment. Replaced/upgraded Gaelic
and several other test languages. "IEEE Standard ATLAS Test Language",
IEEE Std 416-1976.
Atlas Autocode - Ferranti Atlas may have been first commercial machine with
hardware-paged virtual memory.
Aurora - "The Aurora Or-Parallel Prolog System", E. Lusk et al, Intl Conf
on 5th Generation Comp Systems. 1988 ICOT, A-W 1988.
AUTOCODE - Early system on Ferranti Pegasus. Listed in CACM 2(5):16 (May
1959).
AUTOCODER - Assembly languages on IBM 702, IBM 705. Listed in CACM 2(5):16
(May 1959).
AUTOCODING - Early system on Ferranti Mercury. Listed in CACM 2(5):16 (May
1959).
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. "The Mathematical Language AUTOMATH,
Its Usage and Some of its Extensions", N.G. deBruijn, in Symp on Automatic
Demonstration, LNM v.125, Springer 1970.
AUTO-PROMPT - Numerical control language from IBM for 3-D milling. Sammet
1969, p.606.
Avalon/C++ - Fault-tolerant distributed systems.
AWK - Aho Weinberger Kernigan. Simple yet powerful text processing/macro
language. "AWK - A Pattern Scanning and Processing Language," A. Aho, B.
Kernigan, P. Weinberger, Bell Labs, Sep 1978.
B - Ken Thompson, 1970. 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).
B-0 - Original name of FLOW-MATIC, Remington Rand. UNIVAC I or II ca.
1958.
BABEL - Mentioned in "The Psychology of Computer Programming," Weinberg,
1971 ed, p.241.
BACAIC - Boeing Airplane Company Algebraic Interpreter Coding system.
Pre-FORTRAN system on the IBM 701, IBM 650.
BAL - What most people called IBM 360 assembler.
BALGOL - ALGOL on Burroughs 220. Sammet 1969, p.174.
BALITAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).
BALM - Extensible language with LISP-like features but ALGOL-like syntax.
"The Balm Programming Language", Malcolm Harrison, Courant Inst (May 1973).
BAP - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959).
BASEBALL - Query system tied to baseball database.
bash - UNIX command shell?
BASIC - Beginner's All-purpose Symbolic Instruction Code. John G. Kemeny &
Thomas E. Kurtz, mid 1960's. 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 others are compiled, including the original Dartmouth
BASIC.
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 - Variant of AWK.
BC NELIAC - Version of NELIAC, post 1962. Sammet 1969, p.197.
BCPL - Basic Combined Programming Language. M. Richards. British systems
language, a predecessor of 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 - 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.
BETA - The successor of SIMULA.
BIOR - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959).
Bison - The GNU project's implementation of Yacc. [How different from
Yacc?]
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).
BLISS - Basic Language for Implementation of System Software. Developed at
CMU for the PDP-10. A low-level block-structured language, typeless,
expression-oriented, with exception handling facilities. Gained fame from
its lack of a goto. "BLISS: A Language for Systems Programming", W.A. Wulf
et al, CACM 14(12):780-790 (Dec 1971). Versions: BLISS-11 for PDP-11,
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.
BLUE - A proposed language 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).
BMDP - Statistical language, from UCLA.
BNF - Backus Normal Form later renamed Backus-Naur Form. Meta language to
define computer languages.
BOEING - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May
1959).
BOSS - Bridgport Operating System Software. Derivative of the ISO 1054
numerical machine control language for milling, etc.
BRIDGE - Component of ICES for civil engineers. Sammet 1969, p.616.
BSL - Variant of IBM's PL/S systems language. Versions: BSL1, BSL2.
BUGSYS - Pattern recognition and preparing animated movies. "BUGSYS: A
Programming System for Picture Processing - Not for Debugging", R.A. Ledley
et al, CACM 9(2) (Feb 1966).
C - Dennis Ritchie, Bell Labs, ca. 1972. Originally the systems language
for UNIX on the PDP-11, and briefly named NB. Influenced by BCPL through
B. Terse, low-level and permissive. Preprocessor. Has rapidly become the
most widely used language for software implementation. "The C Programming
Language", Brian Kernighan & Dennis Ritchie, P-H 1978.
C* - No details.
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.
C-10 - Improved version of COLINGO. Sammet 1969.
C-Linda - No details.
C-Scheme - No details.
CADET - Computer Aided Design Experimental Translator. Sammet 1969, p.683.
CAGE - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959).
CAL - Dialect of JOSS. Sammet 1969, p.217.
CAMAL - CAMbridge ALgebra system. Computer algebra system used in
Celestial Mechanics and General Relativity. Implemented in BCPL. "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.
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 - Categorical Abstract Machine Language. Lazy version of ML built on
the categorical abstract machine.
ftp: nuri.inria.fr
CASE SOAP III - Version of SOAP assembler for IBM 650. Listed in CACM
2(5):16 (May 1959).
CAYLEY - Computer algebra 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. Version: V3.7
info: cayley@maths.su.oz.au
CBASIC - A BASIC compiler.
CCalc - Symbolic math?
CCS - A specification language. [Denmark?]
CDL -
1. Computer Definition Language. A language for describing and designing
computer architecture. "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.
Cedar - A 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), condition. Multiprocessing
features include threads, monitors, signals and catch phrases. "A
Description of the Cedar Language", Butler Lampson, Xerox PARC, CSL-83-15
(Dec 1983)
CELLSIM - Modeling populations of biological cells. "CELLSIM II User's
Manual", C.E. Donaghey, U Houston (Sep 1975).
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)
CHARYBDIS - LISP program to display math expressions. Related to MATHLAB.
Sammet 1969, p.522.
CHASM - CHeap ASseMbler. MS-DOS shareware assembler.
CHILI - A 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. 1988. Standard in the telecomms
community, roughly Ada-like in scope but different in almost any detail you
might think of.
CHIP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May
1959).
CIP-L - ?
CITRAN - Caltech's answer to MIT's JOSS. Sammet 1969, p.217.
CLAM - Computer algebra system specialized in General Relativity. R.
d'Inverno & Russell-Clark in the early 70's. Implemented in ATLAS assembler
first, LISP later.
Clarion - MS-DOS 4GL.
CLEAR - A 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.
CLIP - Compiled Language for Information Processing. Based on ALGOL 58.
Influenced JOVIAL. Sammet 1969.
Clipper - Compiled dialect of MS-DOS dBASE from Nantucket Corp, Los
Angeles. Versions: Winter 85, Spring 86, Autumn 86, Summer 87, 4.5
(Japanese Kanji), 5.0.
CLIPS - An expert system language, NASA JSC.
CLOS - Common LISP Object System. Object-oriented extension to Common
LISP. X3J13 Doc 88-002R, D.G. Bobrow et al. SIGPLAN Notices 23 (spec
issue) Sep 1988.
CLP - Cornell List Processor. Extension of CORC for list processing.
Sammet 1969.
CLP-R - Constraint Language Programming - Real. Contains a built-in
constraint solver over the domain of real numbers. PROLOG-like syntax but
quite different semantics.
CLU - CLUster. Late 70's. 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 have parameters. 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.
---
End of Part 1
--
--Bill Kinnersley
billk@hawk.cs.ukans.edu
226 Transfer complete.
Technical Details
Message-ID:
<1991Apr28.153544.4615@hawk.cs.ukans.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!kuhub.cc.ukans.edu!hawk!billkShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!kuhub.cc.ukans.edu!hawk!billk Newsgroups: comp.lang.misc Subject: The Language List, Version 1.1 (Part 1 of 5) Message-ID: <1991Apr28.153544.4615@hawk.cs.ukans.edu> From: billk@hawk.cs.ukans.edu (Bill Kinnersley) Date: Sun, 28 Apr 1991 15:35:44 GMT Organization: University of Kansas Computer Science Dept Lines: 746