Programming Languages - C

Sample Program

C - Dennis Ritchie, Bell Labs, ca. 1972. Originally a systems language for Unix on the PDP-11, briefly named NB. Influenced by BCPL through Thompson's B. Terse, low-level and permissive. Preprocessor. Partly due to its distribution with Unix, C became the language most widely used for software implementation. K&R C - C as originally described. "The C Programming Language", Brian Kernighan & Dennis Ritchie, P-H 1978. ANSI C - Revision of C, adding function prototypes, structure passing and assignment, and standardized library functions. ANSI X3.159-1989.* GNU C - Many extensions: compound statement within an expression, pointers to labels, local labels, nested functions, typeof operator, compound and conditional expressions and casts allowed as lvalues, long long ints, arrays of variable lengthmacros with variable number of arguments, nonconstant initializers, constructor expressions, labeled elements in initializers, case ranges, variable attributes. "Using and Porting GNU CC", R.M. Stallman, 16 Dec 1992.

C* - Thinking Machines, 1987. Superset of ANSI C, object-oriented, data- parallel with synchronous semantics, for the Connection Machine. Adds a data type, the 'domain', and a selection statement for parallel execution in domains. J.R. Rose et al, "C*: An Extended C Language for Data Parallel Programming", in Proc Second Intl Conf on Supercomputing, L.P. Kartashev et al eds, May 1987, pp.2-16. "C* Programming Manual", Thinking Machines Corp, 1986. Version: 6.x info:

C++ - Stroustrup <>. An object-oriented superset of C. In C++ a class is a user-defined type, syntactically a struct with member functions. Constructors and destructors are member functions called to create or destroy instances. A friend is a nonmember function that is allowed to access the private portion of a class. C++ allows implicit type conversion, function inlining, overloading of operators and function names, default function arguments, and pass by reference. It has streams for I/O. "The C++ Programming Language", Bjarne Stroustrup, A-W 1986 (1st edition), 1991 (2nd edition). for MS-DOS for Unix draft ANSI C++ - X3J16 committee. Exceptions. C++ release 2.0 - May 1989. Added multiple inheritance, type-safe linkage, pointers to members, abstract classes. "C++ 2.0 Draft Reference Manual" C++ release 2.1 - Added nested types. "The Annotated C++ Reference Manual", M. Ellis et al, A-W 1990. C++ release 3.0 - Added templates.

C++Linda - "The AUC C++Linda System", C. Callsen et al, U Aalborg, in Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991.

C+@ - (formerly Calico). Bell Labs. Object-oriented language, uniformly represents all data as a pointer to a self-described object. Provides multiple inheritance with delegation, with control over which methods come from which delegated object. Default methodologies. Simple syntax, with emphasis on graphics. Originally used for prototyping of telecommunication services. "A Dynamic C-Based Object-Oriented System for Unix", S. Engelstad et al, IEEE Software 8(3):73-85 (May 1991). "The C+@ Programming Language", J. Fleming, Dr Dobbs J, Oct 1993, pp.24-32. Implementation for SunOS, compiles to Vcode. Unir Tech, (800)222-8647. info: Jim Vandendorpe <>

C-10 - Improved version of COLINGO. Sammet 1969, p.702.

C with Classes - Short-lived predecessor to C++. "Classes: An Abstract Data Type Facility for the C Language", B. Stroustrup, CSTR-84 Bell Labs, Apr 1980. Also in SIGPLAN Notices (Jan 1982).

CADET - Computer Aided Design Experimental Translator. Sammet 1969, p.683.

CAFE - "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS Symp on Job Control Languages--Past Present and Future, NCC, Manchester, England 1974.

CAGE - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959).

CAJOLE - Dataflow language. "The Data Flow Programming Language CAJOLE: An Informal Introduction", C.L. Hankin et al, SIGPLAN Notices 16(7):35-44 (Jul 1981).

CAL - Course Author Language. CAI language for IBM 360. "Design of a Programming Language for Computer Assisted Learning", F.M. Tonge, Proc IFIP Congress 1968, v2.

Caliban - Kelly, Imperial College. Declarative annotation language, controlling the partitioning and placement of the evaluation of expressions in a distributed functional language. "Functional Programming for Loosely- coupled Multiprocessors", P. Kelly <>, Pitman/MIT Press, 1989.

Calico - See C+@.

CAMAL - CAMbridge ALgebra system. Symbolic math used in Celestial Mechanics and General Relativity. Implemented in BCPL on Titan. "CAMAL User's Manual", John P. Fitch, Cambridge U, England (1975). "The Design of the Cambridge Algebra System", S.R. Bourne et al, Proc 2nd Symp of Symb & Alg Manip, SIGSAM 1971.

Camelot Library - "The Camelot Library", J. Bloch, in Guide to the Camelot Distributed Transaction Facility: Release I, A.Z. Spector et al eds, CMU 1988, pp.29-62.

CAMIL - Computer Assisted/Managed Instructional Language. Used for CAI at Lowry AFB, CO. "The CAMIL Programming Language", David Pflasterer, SIGPLAN Notices 13(11):43 (Nov 1978).


1. Categorical Abstract Machine Language. G. Huet and G. Cousineau. A dialect of ML intermediate between LCF ML and SML. Lazy data structures. Built on the Categorical Abstract Machine. "The CAML Reference Manual", P. Weis et al, TR INRIA-ENS, 1989. info:

2. Language for preparation of animated movies, listed [?] 1976.

CAML Light - Xavier Leroy. CAML subset. A small portable implementation, uses a bytecode interpreter written in C. Runs on Unix, MS-DOS, and Mac. Version: 0.6* info:

Candle - Language used in Scorpion environment development system. Related to IDL?* info:

Cantor - Object-oriented language with fine-grained concurrency. Athas, Caltech 1987. "Multicomputers: Message Passing Concurrent Computers", W. Athas et al, Computer 21(8):9-24 (Aug 1988).

CASE SOAP III - Version of SOAP assembly language for IBM 650. Listed in CACM 2(5):16 (May 1959).

CAT - Common Abstract Tree Language. R. Voeller & Uwe Schmidt, U Kiel, Germany 1983. Universal intermediate language, used by Norsk Data in their family of compilers. "A Multi-Language Compiler System with Automatically Generated Codegenerators, U. Schmidt et al, SIGPLAN Notices 19(6):202-2121 (June 1984).

CATO - FORTRAN-like CAI language for PLATO system on CDC 1604. "CSL PLATO System Manual", L.A. Fillman, U Illinois, June 1966.

C/ATLAS - DoD test language, variant of ATLAS.

CAYLEY - Symbolic math system for group theory. John Cannon, U Sydney, Australia, 1976. "An Introduction to the Group Theory Language CAYLEY", J. Cannon, Computational Group Theory, M.D. Atkinson ed, Academic Press 1984, pp.148-183. Current version: V3.7 for Sun, Apollo, VAX/VMS. info:

CBASIC - Gordon Eubanks, now at Symantec. A BASIC compiler. Evolved from/into EBASIC.

cc - Concurrent Constraints. A family of languages generalizing CLP, including concurrency, atomic tell and blocking ask. "Concurrent Constraint Programming", V. Saraswat, MIT Press 1993.

CC++ - Compositional C++. Extensions to C++ for compositional parallel programming. info: Carl Kesselman <>

CCalc - Symbolic math for MS-DOS, available from Simtel.


1. Coral Common LISP.

2. Computer Control Language. English-like query language based on COLINGO, for IBM 1401 and IBM 1410.

CCLU - Cambridge CLU. G. Hamilton et al, CUCL. CLU extended to support concurrency, distributed programming, remote procedure calls. contact: Jean Bacon <>

CCP - Concurrent Constraint Programming. Not a language, but a general approach.

CCS - Calculus of Communicating Systems. "A Calculus of Communicating Systems", LNCS 92, Springer 1980. "Communication and Concurrency", R. Milner, P-H 1989.

CCSP - Based on CSP. "Contextually Communicating Sequential Processes - A Software Engineering Approach", M. Hull et al, Software Prac & Exp 16(9):845-864 (Sept 1986).

CDIF - CASE Data Interchange Format. Used by Cadre and other CASE tool vendors.


1. Computer Definition [Design?] Language. A hardware description language. "Computer Organization and Microprogramming", Yaohan Chu, P-H 1970.

2. Command Definition Language. Portion of ICES used to implement commands. Sammet 1969, p.618-620.

3. Compiler Description Language. C.H.A. Koster, 1969. Intended for implementation of the rules of an affix grammar by recursive procedures. A procedure may be a set of tree-structured alternatives, each alternative is executed until one successfully exits. Used in a portable COBOL-74 compiler from MPB, mprolog system from SzKI, and the Mephisto chess computer. "CDL: A Compiler Implementation Language", in Methods of Algorithmic Language Implementation, C.H.A. Koster, LNCS 47, Springer 1977, pp.341-351. "Using the CDL Compiler Compiler", C.H.A. Koster, 1974. Versions: CDL2 (used in an Algol 68 compiler at TU Berlin), CDLM used at Manchester.

4. Common Design Language. "Common Design Language", IBM, Software Engineering Inst, Sept 1983.

5. Control Definition Language. Ideas which contributed to Smalltalk. "Control Structures for Programming Languges", David A. Fisher, PhD Thesis, CMU 1970.

Cecil - Object-oriented language combining multi-methods with a classless object model, object-based encapsulation, and optional static type checking. Distinguishes between subtyping and code inheritance. Includes both explicit and implicit parameterization of objects, types, and methods. "The Cecil Language: Specification and Rationale", C. Chambers, TR 93-03- 05, U Wash (Mar 1993).

Cedar - Xerox PARC. Superset of Mesa, adding garbage collection, dynamic types and a universal pointer type (REF ANY). A large complex language designed for custom Xerox hardware and the Cedar OS/environment. Data types: atoms, lists, ropes ("industrial strength" strings), conditions. Multiprocessing features include threads, monitors, signals and catch phrases. Used to develop the Cedar integrated programming environment. "A Description of the Cedar Language", Butler Lampson, Xerox PARC, CSL-83-15 (Dec 1983). "The Structure of Cedar", D. Swinehart et al, SIGPLAN Notices 20(7):230-244 (July 1985).

CEEMAC+ - Graphics language for DOS 3.3 on Apple ][.

CELIP - A cellular language for image processing. "CELIP: A cellular Language for Image Processing", W. Hasselbring <willi@informatik.uni->, Parallel Computing 14:99-109 (1990).

CELLAS - CELLular ASsemblies. A concurrent block-structured language. Mentioned in Attribute Grammars, LNCS 323, Springer, p.97.

CELLSIM - Modeling populations of biological cells. "CELLSIM II User's Manual", C.E. Donaghey, U Houston (Sep 1975).

CELP - Computationally Extended Logic Programming. "Computationally Extended Logic Programming", M.C. Rubenstein et al, Comp Langs 12(1):1-7 (1987).

CESP - Common ESP. AI Language Inst, Mitsubishi - Object-oriented extension of Prolog, a Unix-based version of ESP[3]. info:

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.

CHAMIL - Sperry Univac. A Pascal-like microprogramming language. "CHAMIL - A Case Study in Microprogramming Design", T.G. Weidner, SIGPLAN Notices 15(1):156-166 (Jan 1980).

CHARITY - Cockett, Spencer, Fukushima, 1990-1991. Functional language based purely on category theory. "About Charity", J.R.B. Cockett <> et al. Version for Sun4 available from Tom Fukushima <>.


1. An explicitly parallel programming language based on C, for both shared and nonshared MIMD machines. "The CHARM(3.2) Programming Language Manual", UIUC (Dec 1992)

2. Peter Nowosad, 1990. Block-structured imperative language, strongly typed, with ideas borrowed from Pascal, C, RTL2 and ARM Assembler. PD compiler for the Acorn. Review in Archive magazine?

CHARM++ - An object-oriented parallel programming system, similar to CHARM but based on C++. TR 1796, UIUC. info: Sanjeev Krishnan <>

Charme - Bull, 1989. A language with discrete combinatorial constraint logic aimed at industrial problems such as planning and scheduling. Implemented in C. An outgrowth of ideas from CHIP. Semantically nondeterministic, with choice and backtracking, similar to Prolog. "Charme Reference Manual", AI Development Centre, Bull, France 1990. info:

CHARYBDIS - LISP program to display math expressions. Related to MATHLAB. Sammet 1969, p.522.

CHASM - CHeap ASseMbler. Shareware assembler for MS-DOS.

CHI - A wide spectrum language, the forerunner of Refine. "Research on Knowledge-Based Software Environments at Kestrel Institute", D.R. Smith et al, IEEE Trans Soft Eng, SE-11(11) (1985).

CHILI - D.L. Abt. Language for systems programming, based on ALGOL 60 with extensions for structure and type declarations. "CHILI, An Algorithmic Language for Systems Programming", CHI-1014, Chi Corp (Sep 1975).

CHILL - CCITT HIgh-Level Language. ca. 1980. Real-time language widely used in European telecommunications. "An Analytical Description of CHILL, the CCITT High Level Language", P. Branquart, LNCS 128, Springer 1982. "CHILL User's Manual", ITU, 1986, ISBN 92-61-02601-X. CCITT/ISO/IEC International Standard ISO/IEC 9496, Recommendation Z.200, ISBN 82-61- 03801-8 ("The Blue Book", 1988?). Versions: CHILL-80, CHILL-84, CHILL-88. Forthcoming compiler by Cygnus, based on gcc.


1. Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959).

2. Constraint Handling In Prolog. M. Dincbas, ECRC Munich 1985. Constraint logic language, includes boolean unification and a symbolic simplex-like algorithm. Constraints over integers, rationals and booleans. Symbolic constraints, cumulative constraints, and update demons. Introduced the domain-variable model. "The Constraint Logic Programming Language CHIP", M. Dincbas et al, Proc 2nd Intl Conf on Fifth Generation Computer Sys, Tokyo (Nov 1988), pp.249-264. "Constraint Satisfaction in Logic Programming", Van Hentenryck. V4 available from COSYTEC, 4 rue Jean Rostand, F91893 Orsay, France. info: <>

CHIP-48 - Reimplementation of CHIP-8 for the HP-48 calculator. Andreas Gustafson <>, comp.sys.handhelds, Sep 1990.*

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.

CHISEL - An extension of C for VLSI design, implemented as a C preprocessor. It produces CIF as output. "CHISEL - An Extension to the Programming language C for VLSI Layout", K. Karplus, PHD Thesis, Stanford U, 1982.

CHOCS - Generalization of CCS. "A Calculus of Higer-Order Communicating Systems", B. Thomsen, 16th POPL pp.143-154 (1989).

CIAL - Interval constraint logic language. Contains a linear Gauss-Seidel constraint solver, in addition to the interval narrowing solver. Implemented as an extension to CLP(R). "Towards Practical Interval Constraint Solving in Logic Programming", C.K. Chiu et al, TR, Chinese U Hong Kong, 1994. Version 1.0 (beta) info: Jimmy Lee <>

CIEL - Object-oriented Prolog-like language. "CIEL: Classes et Instances En Logique", M. Gandriau, Thesis ENSEEIHT (1988).

CIF - Caltech Intermediate Form. Geometry language for VLSI design, in which the primitives are colored rectangles. Mead & Conway, "Introduction to VLSI Systems", A-W 1980, Section 4.5.

Cigale - A parser generator language with extensible syntax. "CIGALE: A Tool for Interactive Grammar Construction and Expression Parsing", F. Voisin, Sci Comp Prog 7:61-86 (1986).

CIL - Common Intermediate Language. "Construction of a Transportable, Milti-Pass Compiler for Extended Pascal", G.J. Hansen et al, SIGPLAN Notices 14(8):117-126 (Aug 1979).

CIMS PL/I - Courant Institute of Mathematical Sciences PL/I. A PL/I subset. "CIMS PL/I", P.W. Abrahams, Courant Inst.

CIP-L - CIP Language. (CIP stands for Computer-aided Intuition-guided Programming.) Wide-spectrum language for incremental program transformation. There are ALGOL-like and Pascal-like variants. "The Munich Project CIP, v.I: The Wide Spectrum Language CIP-L", LNCS 183, Springer 1984. Version: CIP85.

CIRCAL - "CIRCAL and the Representation of Communication, Concurrency and TIme", G.J. Mitre, ACM TOPLAS 7(2):270-298 (1985).

CITRAN - Caltech's answer to MIT's JOSS. Sammet 1969, p.217.

CL - Control Language. Batch language for the IBM RPG/38, used in conjunction with RPG III. (See OCL).


1. Symbolic math, especially General Relativity. Implemented in ATLAS assembly language first, LISP later. "CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark, King's College London, 1971. (See ALAM).

2. Constraint Language Abstract Machine. The underlying abstract machine in the implementation of CLP(R). Based on the WAM. "An Abstract Machine for CLP(R)", J. Joffar et al, Proc ACM SIGPLAN 92 COnf on Prog Lang and Impl, 1992, pp.128-139.

Clarion - MS-DOS 4GL.

CLASP - Computer Language for AeronauticS and Programming. NASA. Real- time language with focus on fixed-point math. Near subset of SPL[2], with some ideas from PL/I. "Flight Computer and Language Processor Study", Raymond J. Rubey, Management Information Services, Detroit, 1971.

Classic-Ada - Object-oriented extension to Ada, said to be Smalltalk-like. Implemented as an Ada preprocessor.

Clean - Subset of Lean. Experimental lazy higher-order functional language with no syntactic sugaring (not even infix expressions or complex lists.) Also used as an intermediate language. Implemented via graph rewriting on the ABC abstract machine. "Clean - A Language for Functional Graph Rewriting", T. Brus et al, IR 95, U Nijmegen, Feb 1987. (See Concurrent Clean).

CLEAR - Specification language based on initial algebras. "An Informal Introduction to Specification Using CLEAR", R.M. Burstall in The Correctness Problem in Computer Science, R.S. Boyer et al eds, A-P 1981, pp.185-213.

CLEO - Clear Language for Expressing Orders. ICL, 1960's. Used until early 1972 on Leo III mainframes.

C-Linda - The most widely used variant of Linda, with C as the base language. Available from Sci Comp Assocs <>.


1. Compiler Language for Information Processing. 1958-1959. Based on IAL, led to JOVIAL. One of the first languages used to write its own compiler. Sammet 1969, p.635.

2. Common LISP in Parallel. Allegro. Version for the Sequent Symmetry.

Clipper - Compiled dBASE dialect from Nantucket Corp, LA. Versions: Winter 85, Spring 86, Autumn 86, Summer 87, 4.5 (Japanese Kanji), 5.0.

CLIPS - C Language Integrated Production System. NASA JSC. A language for developing expert systems, with the inferencing and representation capabilities of OPS5, and support for three paradigms: forward chaining rule-based, object-oriented and procedural. LISP-like syntax. Available for MS-DOS, comes with source code in C. COSMIC, U Georgia, (404) 542- 3265. Austin Code Works <> (512)258-0785. "Expert Systems: Principles and Programming", Joseph Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6. Versions: CLIPS 5.1, CLIPS/Ada 4.3, CLIPS6.0 (See PCLIPS). info: telnet: 4.20 // // list: CLIPS-LIST@UGA.BITNET

CLISP - Conversational LISP. A mixed English-like, Algol-like surface syntax for Interlisp. "CLISP: Conversational LISP", W. Teitelman, in Proc Third Intl Joint Conf on AI, Stanford, Aug 1973, pp.686-690.

CLIX - "Overview of a Parallel Object-Oriented Language CLIX", J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987, pp.265-273.

Clock - ? Mentioned in the documentation for TXL.

CLOS - Common LISP Object System. Object-oriented extension to Common LISP, based on generic functions, multiple inheritance, declarative method combination and a meta-object protocol. A descendant of CommonLoops. "Common LISP Object System Specification X3J13 Document 88-002R", D.G. Bobrow et al, SIGPLAN Notices 23 (Sep 1988). (See PCL[2]).*


1. Cornell List Processor. List processing language, an extension of CORC, used for simulation. Sammet 1969, p.461.

2. Constraint Logic Programming. A programming framework based (as Prolog) on LUSH (or SLD) resolution, but in which unification has been replaced by a constraint solver. A CLP interpreter contains a Prolog-like inference engine and an incremental constraint solver. The engine sends constraints to the solver one at a time. If the new constraint is consistent with the collected constraints it will be added to the set. If it was inconsistent, it will cause the engine to backtrack. "Constraint Logic Programming", J. Jaffar et al, 14th POPL, ACM 1987.

CLP(R) - Constraint Logic Programming (Real). Joxan Jaffar, TJWRC & S. Michaylov, Monash U, 1986. A constraint-logic programming language with real-arithmetic constraints. A superset of Prolog. "The CLP(R) Language and System", J. Jaffar et al, IBM RR RC16292 (#72336) (Nov 1990). Version: 1.2 for Unix, MS-DOS and OS/2, available from the author. info: <>

CLP* - Derivative of CLP. "CLP* and Constraint Abstraction", T. Hickey, 16th POPL, ACM 1989, pp.125-133.

CLP(sigma*) - "CLP(sigma*): Constraint Logic Programming with Regular Sets", C. Walinsky, Proc ICLP, 1989, pp.181-190.

CLU - CLUster. 1974-1975. CLU is an object-oriented language of the Pascal family designed to support data abstraction, similar to Alphard. Introduced the iterator: a coroutine yielding the elements of a data object, to be used as the sequence of values in a 'for' loop. A CLU program consists of separately compilable procedures, clusters and iterators, no nesting. A cluster is a module naming an abstract type and its operations, its internal representation and implementation. Clusters and iterators may be generic. Supplying actual constant values for the parameters instantiates the module. There are no implicit type conversions. In a cluster, the explicit type conversions 'up' and 'down' change between the abstract type and the representation. There is a universal type 'any', and a procedure force[] to check that an object is a certain type. Objects may be mutable or immutable. Garbage collection is built in. Exceptions are raised using 'signal' and handled with 'except'. Assignment is by sharing, similar to the sharing of data objects in LISP. Arguments are passed by call-by-sharing, similar to call by value, except that the arguments are objects and can be changed only if they are mutable. CLU has own variables and multiple assignment. TED (a text editor), R (a document formatter), SWIFT (an operating system), and lp (a proof tool used for formal specification) have been written in CLU. "Abstraction and Specification in Program Development", Barbara Liskov and John Guttag, McGraw-Hill, 1986. "CLU Reference Manual", Barbara Liskov et al, LNCS 114, Springer 1981. contact: Paul R. Johnson <>* - versions for Sun, VAX/VMS. //* - portable version, compiles to C //* - compiles to C info: - "CLU supports constrained parametric polymorphism. This, in conjunction with its support for abstract types, put it many years ahead of its time. CLU was the basis for the Ada programming language. It's still available in portable form in the PCLU implementation from MIT. (Andrew M.)"

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.


1. A query language. "Towards a Knowledge Description Language", A. Borgida et al, in On Knowledge Base Management Systems, J. Mylopoulos et al eds, Springer 1986.

2. Concurrent ML. J. Reppy, Cornell 1990. A concurrent extension of SML/NJ, supporting dynamic thread creation and synchronous message passing on typed channels. Threads are implemented using first-class continuations. "CML: A Higher-Order Concurrent Language", John H. Reppy, SIGPLAN Notices 26(6):293-305 (June 1991). info:

Cmm - C Minus Minus. Scripting language.

CMS-2 - General purpose language used for command and control applications in the US Navy. Variants: CMS-2M and CMS-2Y. "CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San Diego CA (Oct 1976).

CO2 - (a blend of C and O2). Object-oriented database language. GIP Altair, Versailles, France. Francois Bancilon et al, in Advances in Object-Oriented Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988.

COALA - "COALA: The Object Code of the Compiler Producing System", S. Kruszewski et al, MERA, Warsaw 1974.

COBOL - COmmon Business Oriented Language. 1960. CODASYL Committee, Apr 1960. Simple computations on large amounts of data. The most widely used programming language today. The natural language style is intended to be largely self-documenting. Introduced the record structure. "Initial Specifications for a Common Business Oriented Language" DoD, US GPO, Apr 1960. Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS X3.23-1974), and 1985. A new ISO standard is expected in 1997.

COBOL-1961 Extended - Short-lived separation of COBOL specifications. Sammet 1969, p.339.

CoCoA - [Symbolic math? On a Radio Shack CoCo??? I have no idea.]

Cocol - Coco Language. A language for writing left-attributed LL(1) grammars. Syntactic resemblance to Modula-2. Used as the input language for the Coco LL(1) parser generator, which produces Modula-2 output. "A Compiler Generator for Microcomputers", P. Rechenberg et al, P-H 1989. Version: Cocol-2 for the Coco-2 generator. (Oberon and modula-2 versions) // (C version)

Code 2.0 - Large-grain dataflow language. Has a graphical interface for users to draw communication structure. "The CODE 2.0 Parallel Programming Language", P. Newton et al, Proc ACM Intl Conf on Supercomput, Jul 1992. info: Peter Newton <>

CODIL - COntext Dependent Information Language. Early language for non- numerical business problems. "CODIL, Part1. The Importance of Flexibility", C.F. Reynolds et al, Computer J 14(3):217-220 (May 1971).

COFF - Common Object File Format. Binary file format used by Unix System V Release 3.

COGENT - COmpiler and GENeralized Translator. Compiler writing language with pattern-directed string and list processing features, for CDC 3600 and CDC 3800. A program consists of productions defining a context-free language, plus analysis and synthesis function generators, "COGENT Programming Manual", J.C. Reynolds, ANL-7022, Argonne, Mar 1965. Sammet 1969, p.638. "An Introduction to the COGENT System", J.C. Reynolds, Proc ACM 20th Natl Conf, 1965.

COGO - Co-ordinate geometry problems in Civil Engineering. A subsystem of ICES. "Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug 1967).

Coherent Parallel C - Data parallel language. "Coherent Parallel C", E. Felten et al in Third Conf on Hypercube Concurrent Computers and Appls, ACM, 1988, pp.440-450.

COIF - FORTRAN with interactive graphic extensions for circuit design, on UNIVAC 1108. "An Interactive Software System for Computer-Aided Design: An Application to Circuit Projects", CACM 9(13) (Sep 1970).

COLASL - Early system for numerical problems on IBM 7030. Special character set for input of natural math expressions. Sammet 1969, pp.265- 271.

COLD - A sugared version of COLD-K.

COLD-K - Formal design kernel language for describing (sequential) software systems in intermediate stages of their design. "An Introduction to COLD- K", H.B.M. Jonkers in Algebraic Methods: Theory, Tools and Applications, M. Wirsing et al eds, LNCS 394, Springer 1989, pp.139-205.

COLINGO - Compile On-LINe and GO. MITRE Corp. English-like query system for IBM 1401. "The COLINGO System Design Philosophy", Information System Sciences, Proc Second Congress, 1965. Sammet 1969, p.664.

COMAL - COMmon Algorithmic Language. Benedict Loefstedt & Borge Christensen, 1973. A language for beginners, popular in Europe and Scandinavia. Pascal-like structure added to BASIC. COMAL-80 has been adopted as an introductory language in Denmark. "Beginning COMAL", B. Christensen, Ellis Harwood 1982. COMAL User's Group, 5501 Groveland Terr, Madison WI 53716. Version for Amiga.

COMIT - Victor H. Yngve, MIT, 1957-8. The first string-handling and pattern-matching language, designed for applications in natural language translation. The user has a workspace organized into shelves. Strings are made of constituents (words), accessed by subscript. A program is a set of rules, each of which has a pattern, a replacement and goto another rule. Implemented on IBM 7090. "COMIT Programmer's Reference Manual", V.H. Yngve, MIT Press 1961. Sammet 1969, pp.416-436.

COMIT II - "Computer Programming with COMIT II", Victor H. Yngve, MIT Press, 1963.

Comma - COMputable MAthematics. Esprit project at KU Nijmegen.

COMMEN - L.J. Cohen. Proc SJCC 30:671-676, AFIPS (Spring 1967).

Commercial Translator - English-like pre-COBOL language for business data processing. Sammet 1969, p.378.

Common LISP - An effort begun in 1981 to provide a common dialect of LISP. The result is a large and complex language, fairly close to a superset of MacLisp. Lexical binding, data structures using defstruct and setf, closures, multiple values, types using declare, a variety of numerical types. Function calls allow optional, keyword and &rest arguments. Generic sequence can either be a list or an array. Formatted printing using escape characters. Common LISP now includes CLOS, an extended LOOP macro, condition system, pretty printing, logical pathnames. "Common LISP: The Language", Guy L. Steele, Digital Press 1984, ISBN 0-932376-41-X. "Common LISP: The Language, 2nd Edition", G