A concurrent extension of C based on decomposed Petri nets. It uses the 'handshake' and 'unit' constructs.

["ConC: A Language for Distributed Real-Time Programming", V.K. Garg et al, Computer Langs 16(1):5-18 (1991)].

Last updated: 1995-03-02



To join together two or more files or lists to form one big one.

The Unix cat command can be used to concatenate files.

Last updated: 1995-12-22

concatenated key

compound key



A device that combines the data streams from many simultaneously active inputs into one shared channel in such a way that the streams can be separated after transmission. The concentrator's output bandwidth must be at least as great as the total bandwidth of all simultaneously active inputs. A concentrator is one kind of multiplexing device.

For example, a concentrator may be used to connect 24 2400 bps TTYs to a host via a 57600 bps channel.

Last updated: 2000-03-01


<artificial intelligence>

The process or result of listing the types of objects, concepts and other entities that are assumed to exist in some area of interest and the relationships that hold among them. A conceptualisation is an abstract, simplified view of the world that we wish to represent. For example, we may conceptualise a family as the set of names, sexes and the relationships of the family members. Choosing a conceptualisation is the first stage of knowledge representation. A conceptualisation is a high-level data model.

Every knowledge base, knowledge-based system, or knowledge-level agent is committed to some conceptualisation, explicitly or implicitly.

Last updated: 2013-04-17


<language, parallel>

A parallel extension of ANSI C with asynchronous message passing, developed at the IBM TJWRC in July 1993. Concert/C provides primitives to create and terminate processes and communicate between them. The programmer explicitly expresses parallelization and distribution.

1994 Announcement.

Last updated: 2013-05-05


<programming, parallel>

An environment for programming networks of sequential and parallel computers. ConCoord supports explicit parallelism with different granularity.

Last updated: 2013-05-22

concrete class


In object-oriented programming, a class suitable to be instantiated, as opposed to an abstract class.

Last updated: 1995-05-01

Concrete Data Structure


(CDS) A model of programming language terms developed in the context of constructing fully abstract semantics for sequential languages. A CDS is a 4-tuple (C,V,E,|-) where C is a cell, V is a value, E is an event and |- is an "enabling relation". An event is a cell and a value. A cell C is "enabled" by a set of events S if S |- C. A state is a set of events which are consistent in that the values they give for any cell are all equal. Every cell in a state is enabled.

[G. Berry, P.-L. Curien, "Theory and practice of sequential algorithms: the kernel of applicative language CDS", Algebraic methods in semantics, CUP 1985].

Last updated: 1994-11-30

concrete syntax

<language, data>

The syntax of a language including all the features visible in the source code such as parentheses and delimiters. The concrete syntax is used when parsing the program or other input, during which it is usually converted into some kind of abstract syntax tree (conforming to an abstract syntax).

In communications, concrete syntax is called transfer syntax.

Last updated: 1997-07-21



A proposal for a language for programming with concurrent processes. CONCUR was inspired by Modula but removes Modula's restrictions on the placement of process declarations and invocations in order to study the implications of process support more fully. Anderson presents a compiler which translates CONCUR into the object language for a hypothetical machine.

["CONCUR, A Language for Continuous Concurrent Processes", R.M. Salter et al, Comp Langs 5(3):163-189, 1981].

["Concur: a High-Level Language for Concurrent Programming", Karen Anderson Thesis, B. Thomas Golisano College of Computing and Information Sciences, 1979]

Last updated: 2013-06-05



Concurrent C


1. An extension of C with rendezvous-based concurrency. Versions for most Unix systems were available commercially from AT&T.

["Concurrent C", N.H. Gehani et al, Soft Prac & Exp 16(9):821-844 (1986)].

["The Concurrent C Programming Language", N. Gehani et al, Silicon Press 1989].

Last updated: 1994-11-11


2. An extension of C with asynchronous message passing.

["Concurrent C: A Language for Distributed Systems", Y. Tsujino et al, Soft Prac & Exp 14(11):1061-1078 (Nov 1984)].

Last updated: 1994-11-11

Concurrent C++


A programming language developed by Gehani and Roome at Bell Labs by merging their earlier Concurrent C language with C++.

["Concurrent C++: Concurrent Programming with Class(es)", N. Gehani, W.D. Roome, Bell Labs, 1986].

Last updated: 2013-06-26

Concurrent Clean


An alternative name for Clean 1.0.

Last updated: 1995-11-08

Concurrent CLU


A programming language extending CLU for concurrent processes, developed by by Hamilton in 1984.

["Preserving Abstraction in Concurrent Programming", R.C.B. Cooper, K.G. Hamilton, IEEE Trans Soft Eng SE-14(2):258-263, Feb 1988].1

Last updated: 2013-09-28

Concurrent Constraint Programming


(CCP) Not a language, but a general approach.


Last updated: 2001-11-01

Concurrent Euclid

<language, parallel>

A concurrent extension of a subset of Euclid ("Simple Euclid") developed by J.R. Cordy and R.C. Holt of the University of Toronto in 1980.

Concurrent Euclid features separate compilation, modules, processes and monitors, signal and wait on condition variables, 'converters' to defeat strong type checking, absolute addresses. All procedures and functions are re-entrant. TUNIS (a Unix-like operating system) is written in Concurrent Euclid.

["Specification of Concurrent Euclid", J.R. Cordy & R.C. Holt, Reports CSRI-115 & CSRI-133, CSRI, U Toronto, Jul 1980, rev. Aug 1981].

["Concurrent Euclid, The Unix System, and Tunis," R.C. Holt, A-W, 1983].

Last updated: 2005-02-19

Concurrent LISP


A concurrent version of Lisp. Sugimoto et al implemented an interpreter on a "large scale computer" and were planning to implement it on multiple microprocessors.

["A Multi-Processor System for Concurrent Lisp", S. Sugimoto et al, Proc 1983 Intl Conf parallel Proc, 1983 pp.135-143].

Last updated: 2013-10-18

Concurrent Massey Hope

<language, functional programming>

An extension of Massey Hope, by Peter Burgess, Robert Pointon, and Nigel Perry <[email protected]> of Massey University, NZ, that provides multithreading and typed inter-thread communication. It uses C for intermediate code rather than assembly language.

Last updated: 1999-08-04

Concurrent ML


(CML) A concurrent extension of SML/NJ written by J. Reppy at Cornell University in 1990. CML supports dynamic thread creation and synchronous message passing on typed channels. Threads are implemented using first-class continuations. First-class synchronous operations allow users to tailor their synchronisation abstractions for their application. CML also supports both stream I/O and low-level I/O in an integrated fashion.

E-mail: <[email protected]> (bugs).

["CML: A Higher-Order Concurrent Language", John H. Reppy, SIGPLAN Notices 26(6):293-305, June 1991].

Last updated: 2000-08-09

Concurrent Oberon


A concurrent version of Oberon. There is an implementation the Ceres workstation.

["Adding Concurrency to the Oberon System", S. Lalis et al, ETH Zurich, 1993].

Last updated: 1994-11-11

Concurrent Object-Oriented C


(cooC) A language with concurrent object execution from Toshiba. It has synchronous and asynchronous message passing. It has been implemented for SunOS.

[SIGPLAN Notices 28(2)].

Last updated: 2000-08-13

Concurrent Object-Oriented Language


(COOL) An extension of C++ with task-level parallelism for shared-memory multi-processors.

["COOL: A Language for Parallel Programming", R. Chandra <[email protected]> et al in Languages and Compilers for Parallel Computing, D. Gelernter et al eds, MIT Press 1990, pp. 126-148].

E-mail: Rohit Chandra <[email protected]>.

Last updated: 1994-11-30

Concurrent Pascal


An extension of a Pascal subset, Sequential Pascal, developed by Brinch Hansen in 1972-75. Concurrent Pascal was the first language to support monitors. It provided access to hardware devices through monitor calls and also supported processes and classes.

["The Programming Language Concurrent Pascal", Per Brinch Hansen, IEEE Trans Soft Eng 1(2):199-207 (Jun 1975)].

Last updated: 1994-11-30

concurrent processing


Concurrent Prolog


A Prolog variant with guarded clauses and committed-choice nondeterminism (don't-care nondeterminism) by Ehud "Udi" Shapiro, Yale <[email protected]>. A subset has been implemented, but not the full language.

See also Mandala.

["Concurrent Prolog: Collected Papers", E. Shapiro, V.1-2, MIT Press 1987].

Last updated: 1994-11-30

Concurrent Scheme


A parallel Lisp, for the Mayfly by M. Swanson <swanson%[email protected]>.

["Concurrent Scheme", R.R. Kessler et al, in Parallel Lisp: Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989].

Last updated: 1994-11-30



A concurrent variant of Smalltalk.

["Concurrent Programming in ConcurrentSmalltalk", Y. Yokote et al in Object-Oriented Concurrent Programming, A. Yonezawa et al eds, MIT Press 1987, pp. 129-158].

Last updated: 1994-11-30

Concurrent SP/k


(CSP/k) A PL/I-like concurrent language.

["Structured Concurrent Programming with Operating System Applications", R.C. Holt et al, A-W 1978].

Last updated: 1997-12-15

Concurrent Versions System


(CVS) A cross-platform code management system originally based on RCS.

CVS tracks all revisions to a file in an associated file with the same name as the original file but with the string ",v" (for version) appended to the filename. These files are stored in a (possibly centralised) repository.

Changes are checked in or "committed" along with a comment (which appears in the the "commit log"). CVS has the notions of projects, branches, file locking and many others needed to provide a full-functioned repository.

It is commonly accessed over over its own "anonCVS" protocol for read-only access (many open source projects are available by anonymous CVS) and over the SSH protocol by those with commit privileges ("committers").

CVS has been rewritten several times and does not depend on RCS. However, files are still largely compatible; one can easily migrate a project from RCS to CVS by copying the history files into a CVS repository. A sub-project of the OpenBSD project is building a complete new implementation of CVS, to be called OpenCVS.

CVS Home. OpenCVS.

Last updated: 2005-01-17


Connection Definition Language

condition out


A programming technique that prevents a section of code from being executed by putting it in an if statement whose condition is always false.

It is often easier to do this than to comment out the code because you don't need to modify the code itself (as you would if commenting out each line individually) or worry about nested comments within the code (as you would if putting nesting comment delimiters around it).

For example, in Perl you could write:

 if (0) {
 ...code to be ignored...

In a compiled language, the compiler could simply generate no code for the whole if statement. Some compiled languages such as C provide compile-time directives that achieve the same effect, e.g.:

 #if 0
 ...code to be ignored...

(or "#ifdef notdef").

[Jargon File]

Last updated: 2013-12-08



1. The protective plastic bag that accompanies 3.5-inch microfloppy diskettes. Rarely, also used of (paper) disk envelopes. Unlike the write protect tab, the condom (when left on) not only impedes the practice of SEX but has also been shown to have a high failure rate as drive mechanisms attempt to access the disk - and can even fatally frustrate insertion.

2. The protective cladding on a light pipe.

3. "keyboard condom": A flexible, transparent plastic cover for a keyboard, designed to provide some protection against dust and programming fluid without impeding typing.

4. "elephant condom": the plastic shipping bags used inside cardboard boxes to protect hardware in transit.

[Jargon File]

Last updated: 1995-03-14

Conference On DAta SYstems Languages

<body, data processing>

(CODASYL) A consortium that developed database models and standard database extensions for COBOL.

CODASYL was formed in 1959 to guide the development of a standard programming language that could be used on many computers. Members came from industry and government data processing departments. Its goal was to promote more effective data systems analysis, design and implementation. It published specifications for various languages over the years, handing these over to official standards bodies (ISO, ANSI or their predecessors) for formal standardisation.

The 1965 List Processing Task Force worked on the IDS/I database extension. It later renamed itself to the Data Base Task Group (DBTG) and publishing the Codasyl Data Model, the first to allow one-to-many relations. This work also introduced data definition languages (DDLs) to define the database schema and a data manipulation language (DML) to be embedded in COBOL programs to request and update data in the database.

Interest in CODASYL declined with the rise of relational databases beginning in the early 1980s.

Last updated: 2013-12-29

Conferencing over IP

<communications, standard>

(CoIP) Standards for the transmission of multimedia over the Internet. CoIP extends VoIP (voice over Internet Protocol) with text, images, video. The main CoIP standard is based on H.323.

The VoIP forum of the IMTC merged with the H.323 Activity Group in January 1999 to form the Conferencing over IP (CoIP) Activity Group.

VoIP uses "VoIP Devices" as gateways to route voice data packets over the Internet or PSTN. Protocols such as SGCP and its successor MGCP extend VoIP to handle media other than voice data.

Last updated: 2013-12-29

confidence test


Tests to confirm that the results of a program lie within certain ranges according to the expected probability distribution.

Last updated: 1997-10-27


<operating system>

A text file containing special system configuration commands, found in the root directory on an MS-DOS computer, typically on drive C (the hard disk). It is read by MS-DOS at boot time, after the setup has been read from CMOS RAM and before running AUTOEXEC.BAT. It can be modified by the user.

Some example commands which CONFIG.SYS might contain are:

 DEVICE=C:\DOS\HIMEM.SYS /testmem:off

Load the extended memory manager.


Load the expanded memory manager.


Specify memory for disk buffers.


Set the number of files that can be open at once.


DOS is located in UppeMemoryBlock.


Disk drives are A: to Z:.


Set the number of file control blocks.


Report the DOS version to older programs.


DOS should maintain a link to UMB.


Set the country code for some programs.


Set dynamic stacks for hardware control.


Set the location of the command interpreter.

Last updated: 1995-03-16



A luser who twiddles with computer settings until it no longer works and must be fixed by the system administror.

Last updated: 2007-03-20

configuration item


Hardware or software, or an aggregate of both, which is designated by the project configuration manager (or contracting agency) for configuration management.

Last updated: 1996-05-29

configuration management

<job, system management>

A discipline applying technical and administrative controls to identifying, documentating and reporting on configuration items, their physical and functional characteristics and changes to characteristics of those configuration items.

Change management is one aspect of configuration management but may also refer to the softer, human side of getting people to adapt to changing processes and organisation.

Source code management or "code management" is configuration management applied to code through the various stages of the software life-cycle.

Last updated: 2014-01-21

configuration programming


An approach that advocates the use of a separate configuration language to specify the coarse-grain structure of programs. Configuration programming is particularly attractive for concurrent, parallel and distributed systems that have inherently complex program structures.

Darwin is an example of a configuration language.

Last updated: 1995-03-14



A program by Richard Stallman to discover properties of the current platform and to set up make to compile and install gcc.

Cygnus configure was a similar system developed by K. Richard Pixley in collaboration with Richard Stallman. In 1994, David MacKenzie and others modified autoconf to incorporate all the features of Cygnus configure and many GNU programs, including gcc now use autoconf.

Metaconfig is a similar program used in building Perl.

Last updated: 2005-04-15



Combining or blending of two or more versions of a text; confusion or mixing up. Conflation algorithms are used in databases.

[Any specific technical meaning?]

Last updated: 1996-04-14



The condition that arises when the amount of data that senders want to send down a communication channel exceeds its capacity. Typically this will result in some packets being delayed, thus increasing the average latency.

Last updated: 2014-05-04



A distributed system language and operating system developed at Imperial College to support dynamic configuration.


["Dynamic Configuration for Distributed Systems", J. Kramer et al, IEEE Trans Soft Eng SE-11(4):424-436, Apr 1985].

Last updated: 2014-05-04



Conjunctive Normal Form


(CNF) A logical formula consisting of a conjunction of disjunctions of terms where no disjunction contains a conjunction. Such a formula might also be described as a product of sums. E.g. the CNF of

 (A and B) or C
 (A or C) and (B or C).

Contrast Disjunctive Normal Form.

Last updated: 1995-12-10


<library, networking>

Unix socket library routine to connect a socket that has been created on the local hosts to one at a specified socket address on the remote host.

Unix manual pages: connect(2), accept(2).

Last updated: 1995-03-21

connected graph


A graph such that there is a path between any pair of nodes (via zero or more other nodes).

Thus if we start from any node and visit all nodes connected to it by a single edge, then all nodes connected to any of them, and so on, then we will eventually have visited every node in the connected graph.

Last updated: 1996-09-22

connected subgraph


A connected graph consisting of a subset of the nodes and edges of some other graph.

Last updated: 1996-09-22

Connection Definition Language


(condela) A procedural, parallel language for defining neural networks.

Last updated: 1994-11-30

connectionless protocol


The data communication method in which communication occurs between hosts with no previous setup. Packets sent between two hosts may take different routes.

UDP is a connectionless protocol. Also called packet switching. Contrast circuit switching, connection-oriented.

Last updated: 2014-05-04

Connection Machine LISP


Lisp with a parallel data structure, the 'xapping', an array of values assigned to an array of sites.

[G.L. Steele et al, "Connection Machine LISP: Fine-Grained Parallel Symbolic Processing", in Proc 1986 ACM Conf on LISP and Functional Prog, Aug 1986, pp.279-297].

["Connection Machine LISP Reference Manual", Thinking Machines Corp, Feb 1987].

Last updated: 1995-02-28



(Or connection-based, stream-oriented). A type of transport layer data communication service that allows a host to send data in a continuous stream to another host. The transport service will guarantee that all data will be delivered to the other end in the same order as sent and without duplication. Communication proceeds through three well-defined phases: connection establishment, data transfer, connection release. The most common example is Transmission Control Protocol (TCP), another is ATM.

The network nodes at either end needs to inform all intermediate nodes about their service requirements and traffic parameters in order to establish communication.

Opposite of connectionless, datagram. See also circuit switching, packet switching, virtual circuit.

Last updated: 2014-11-27

connection-oriented network service


(CONS) Because of the relatively long transit delays and inferior bit error rate of WANs, a more sophisticated connection-oriented protocol is normally used.

Last updated: 1997-11-08



An operator used in first order logic to combine two logical formulas.

Last updated: 2014-05-04

connector conspiracy

<business, standard>

The tendency of manufacturers (or, by extension, other designers) to come up with products that don't fit with the old stuff, thereby making you buy either all new stuff or expensive interface devices.

The term probably came into prominence with the appearance of the DEC KL-10, none of whose connectors matched anything else. The KL-10 Massbus connector was actually *patented* by DEC, who reputedly refused to licence the design, thus effectively locking out competition for the lucrative Massbus peripherals market. This policy was a source of frustration for the owners of dying, obsolescent disk and tape drives.

A related phenomenon is the invention of new screw heads so that only Designated Persons, possessing the magic screwdrivers, can remove covers and make repairs or install options. Older Apple Macintoshes took this one step further, requiring not only a hex wrench but a specialised case-cracking tool to open the box.

With the advent of more open-systems computing this term has fallen somewhat into disuse.

Compare backward combatability.

[Jargon File]

Last updated: 2010-02-04



An artificial intelligence programming language for automatic theorem proving from MIT. CONNIVER grew out of PLANNER and was based on coroutines rather than backtracking. It allowed multiple database contexts with hypothetical assertions.

["The CONNIVER Reference Manual", D. McDermott & G.J. Sussman <[email protected]>, AI Memo 259, MIT AI Lab, 1973].

Last updated: 1995-01-10


complementary nondeterministic polynomial


connection-oriented network service



The Lisp function that creates a cons cell.

Last updated: 2014-11-09

cons cell


/konz sel/ or /kons sel/ A Lisp pair object containing any two objects. In Lisp, "cons" (short for "construct") is the fundamental operation for building structures such as lists and other binary trees. The application of "cons" to objects H and T is written

 (cons H T)

and returns a pair object known as a "cons", "cons cell" or dotted pair.

Typically, a cons would be stored in memory as a two consecutive pointers.

The two objects in a cons, and the functions to extract them, are called "car" and "cdr" after two 15-bit fields of the machine code instruction format of the IBM 7090 that hosted the original LISP implementation. These fields were called the "address" and "decrement" parts so "car" stood for "Contents of Address part of Register" and "cdr" for "Contents of Decrement part of Register".

In the typical case where the cons holds one node of a list structure, the car is the head of the list (first element) and the cdr is the tail of the list (the rest). If the list had only one element then the tail would be an empty list, represented by the cdr containing the special value "nil".

To aid in working with nested structures such as lists of lists, Lisp provides functions to access the car of the car ("caar"), the car of the cdr ("cadr"), the cdr of the car ("cdar") and the cdr of the cdr ("cddr").

Last updated: 2014-11-09

Conseil Européen pour la Normalisation

European Committee for Standardization

conservative evaluation


Under this parallel evaluation strategy, no evaluation is started unless it is known to be needed. The opposite of conservative evaluation is speculative evaluation.

Last updated: 2014-06-21

considered harmful

<programming, humour>

A type of phrase based on the title of Edsger W. Dijkstra's famous note in the March 1968 Communications of the ACM, "Goto Statement Considered Harmful", which fired the first salvo in the structured programming wars.

Amusingly, the ACM considered the resulting acrimony sufficiently harmful that it will (by policy) no longer print articles taking so assertive a position against a coding practice.

In the ensuing decades, a large number of both serious papers and parodies bore titles of the form "X considered Y". The structured-programming wars eventually blew over with the realisation that both sides were wrong, but use of such titles has remained as a persistent minor in-joke.

[Jargon File]

Last updated: 2014-06-21

consistently complete

boundedly complete


<hardware, operating system, history>

1. The operator's station of a mainframe as opposed to an ordinary user's terminal. In times past, the console was a privileged location that conveyed godlike powers to anyone with fingers on its keys. Under Unix and other modern time-sharing operating systems, such privileges are guarded by passwords instead, and the console is just the tty the system was booted from. On Unix the device is called /dev/console.

On a microcomputer Unix box, the console is the main screen and keyboard. Other, character-only, terminals may be connected to serial ports. Typically only the console can do real graphics or run X. See also CTY.


2. A self-contained microcomputer optimised for gaming, with powerful graphical output designed to be displayed on a television; equipped with one or more joystick controllers for input and an optical drive to load software. Later generations also feature Internet connection via wireless or wired Ethernet for downloading games and multiplayer networked play. Typically such devices have no keyboard so text must be input using the controller to operate an on-screen keyboard, e.g. to enter player names.

The most successful recent examples are the Sony Playstation and Microsoft Xbox families.

[Jargon File]

Last updated: 2014-07-01

console jockey

terminal junkie



A group of two or more companies, educational institutions, governments or other bodies with some shared purpose.

Examples from computing include the World Wide Web Consortium (W3C), Apache Software Foundation, The Open Group, X Consortium.

Last updated: 2009-06-05

Consortium for Lexical Research


(CLR) A repository for natural language processing software, lexical data, tools and resources; set up in July 1991 in the Computing Research Laboratory of New Mexico State University, Las Cruces, New Mexico, USA.

CLR maintained a public FTP archive site and a separate members-only library. As of 1994-02-01, CLR had about 60 members, mostly academic institutions, including most US natural language processing centres. Materials could be contributed in exchange for membership.

In 2006, the CRL closed down due to lack of funding. The CLR FTP server and e-mail address seems to have disappeared with it.

[The Consortium for Lexical Research, Y. Wilks, Principal Investigator, Computing Research Laboratory, New Mexico State University].

Last updated: 2014-07-06

constant angular velocity


(CAV) One of the two schemes for controlling the rate of rotation of the disk in a disk drive. Constant angular velocity keeps the rate of rotation constant. This means that the linear velocity of the disk under the head is larger when reading or writing the outer tracks. This in turn implies either a variation in the data rate to and from the heads or the bits per unit length along the track.

The alternative, constant linear velocity, requires the rate of rotation of the disk to accelerate and decelerate according to the radial postion of the heads, increasing the energy use and vibration.

Last updated: 2014-07-16

constant applicative form

<functional programming>

(CAF) A supercombinator which is not a lambda abstraction. This includes truly constant expressions such as 12, (+ 1 2), [1, 2, 3] as well as partially applied functions such as (+ 4). Note that this last example is equivalent under eta abstraction to \ x . + 4 x which is not a CAF.

Since a CAF is a supercombinator, it contains no free variables. Moreover, since it is not a lambda abstraction it contains no variables at all. It may however contain identifiers which refer to other CAFs, e.g.

 c 3 where c = (* 2).

A CAF can always be lifted to the top level of the program. It can either be compiled to a piece of graph which will be shared by all uses or to some shared code which will overwrite itself with some graph the first time it is evaluated. A CAF such as

 ints = from 1  where  from n = n : from (n+1)

can grow without bound but may only be accessible from within the code of one or more functions. In order for the garbage collector to be able to reclaim such structures, we associate with each function a list of the CAFs to which it refers. When garbage collecting a reference to the function we collect the CAFs on its list.

[The Implementation of Functional Programming Languages, Simon Peyton Jones].

Last updated: 2006-10-12

constant folding


A compiler optimisation technique where constant subexpressions are evaluated at compile time. This is usually only applied to built-in numerical and boolean operators whereas partial evaluation is more general in that expressions involving user-defined functions may also be evaluated at compile time.

Last updated: 1997-02-20



constant linear velocity


(CLV) A way of controlling the rotation of the disks in a disk drive in which the linear velocity of the disk surface relative to the read/write heads is kept constant.

In order to achieve constant linear velocity, the disk must rotate faster (at a higher angular velocity) when reading or writing tracks closer to the centre.

Having a constant linear read/write speed along the track means that the electrical signal to and from the heads has a constant data rate (bits per second), thus simplifying the timing of the drive electronics somewhat. However, rotating at less than the maximum possible rate sacrifices some potential performance compared to the alternative, constant angular velocity. Also, varying the rate causes more vibration and consumes more energy.

Last updated: 2014-07-27

constant mapping


A precursor to ARP used by some TCP software in which the destination Ethernet address is constructed from the top 24 bits of the source Ethernet address followed by the low 24 bits of the (class A) destination Internet address. For this scheme the top 24 bits of the Ethernet address must be the same on all hosts on the network.

Last updated: 2014-08-06


<programming, mathematics>

A Boolean relation, often an equality or ineqality relation, between the values of one or more mathematical variables. E.g. x>3 is a constraint on x. The process of constraint satisfaction attempts to assign values to variables so that all constraints are true.

Usenet newsgroup: comp.constraints. FAQ.

Last updated: 2002-06-08

constraint functional programming


(CFP) functional programming plus constraints.

Last updated: 2002-06-08

Constraint Handling In Prolog


(CHIP) A constraint logic programming language developed by M. Dincbas at ECRC, Munich, Germany in 1985 which includes Boolean unification and a symbolic simplex-like algorithm. CHIP introduced the domain-variable model.

["The Constraint Logic Programming Language CHIP", M. Dincbas et al, Proc 2nd Intl Conf on Fifth Generation Computer Sys, Tokyo (Nov 1988), pp.249-264].

["Constraint Satisfaction in Logic Programming", Van Hentenryck. Available from COSYTEC, 4 rue Jean Rostand, F91893 Orsay, France].

Last updated: 1994-11-15



An object-oriented constraint language based on CSP. An extension of Common Lisp and CLOS.

["ConstraintLisp: An Object-Oriented Constraint Programming Language", Bing Liu (ex b[email protected]) et al, SIGPLAN Notices 27(11):17-26, Nov 1992].

Last updated: 2000-04-02

Constraint Logic Programming


(CLP) A programming framework based (like 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 is inconsistent, it will cause the engine to backtrack.

CLP* is a variant.

["Constraint Logic Programming", J. Jaffar et al, 14th POPL, ACM 1987].

Last updated: 1994-11-01



A programming language for solving constraints using value inference.

["CONSTRAINTS: A Language for Expressing Almost-Hierarchical Descriptions", G.J. Sussman et al, Artif Intell 14(1):1-39, Aug 1980].

Last updated: 1994-11-01

constraint satisfaction


The process of assigning values to variables while meeting certain requirements or "constraints". For example, in graph colouring, a node is a variable, the colour assigned to it is its value and a link between two nodes represents the constraint that those two nodes must not be assigned the same colour. In scheduling, constraints apply to such variables as the starting and ending times for tasks.

The Simplex method is one well known technique for solving numerical constraints.

The search difficulty of constraint satisfaction problems can be determined on average from knowledge of easily computed structural properties of the problems. In fact, hard instances of NP-complete problems are concentrated near an abrupt transition between under- and over-constrained problems. This transition is analogous to phase transitions in physical systems and offers a way to estimate the likely difficulty of a constraint problem before attempting to solve it with search.

Phase transitions in search (Tad Hogg, XEROX PARC).

Last updated: 1995-02-15

constructed type


A type formed by applying some type constructor function to one or more other types. The usual constructions are functions: t1 -> t2, products: (t1, t2), sums: t1 + t2 and lifting: lift(t1).

(In LaTeX, the lifted type is written with a subscript \perp).

See also algebraic data type, primitive type.

Last updated: 1995-02-03

Constructive Cost Model


(COCOMO) A method for estimating the cost of a software package, proposed by Dr Barry Boehm.

The Basic COCOMO Model estimates the effort required to develop software in three modes of development (Organic Mode, Semidetached Mode, or Embedded Mode) using only DSIs as an input. The Basic model is good for quick estimates.

The Intermediate Model extends the Basic Model with an Effort Adjustment Factor (EAF) and different coefficients for the effort equation. The user supplies settings for cost drivers that determine the effort and duration of the software projects. It also allows DSI values and cost drivers to be chosen for individual components instead of for the system as a whole.

The Detailed COCOMO Model uses effort multipliers for each phase of the project and provides a three-level product hierarchy and has some other capabilities such as a procedure for adjusting the phase distribution of the development schedule.

["Software Engineering Economics", B. Boehm, Prentice-Hall, 1981].

Last updated: 1996-05-29

constructive proof


A proof that something exists that provides an example or a method for actually constructing it.

For example, for any pair of finite real numbers n < 0 and p > 0, there exists a real number 0 < k < 1 such that

 f(k) = (1-k)*n + k*p = 0.

A constructive proof would proceed by rearranging the above to derive an equation for k:

 k = 1/(1-n/p)

From this and the constraints on n and p, we can show that 0 < k < 1.

A few mathematicians actually reject *all* non-constructive arguments as invalid; this means, for instance, that the law of the excluded middle (either P or not-P must hold, whatever P is) has to go; this makes proof by contradiction invalid. See intuitionistic logic.

Constructive proofs are popular in theoretical computer science, both because computer scientists are less given to abstraction than mathematicians and because intuitionistic logic turns out to be an appropriate theoretical treatment of the foundations of computer science.

Last updated: 2014-08-24

constructive solid geometry


(CSG) A method used in solid modeling to describe the geometry of complex three-dimensional scenes by applying set operations (union, difference, intersection) to primitive shapes (cuboids, cylinders, prisms, pyramids, spheres and cones).

See also CSG-tree.

CSG in JavaScript.

Last updated: 2014-09-22



1. In object-oriented languages, a function provided by a class to initialise a newly created object. The constructor function typically has the same name as the class. It may take arguments, e.g. to set various attributes of the object or it may just leave everything undefined to be set elsewhere.

A class may also have a destructor function that is called when objects of the class are destroyed.

2. In functional programming and type theory, one of the symbols used to create an object with an algebraic data type.

Last updated: 2014-10-04



A constraint-based declarative language based on axiomatic set theory and designed for parallel execution on MIMD architectures. Consul's fundamental data type is the set and its fundamental operators are the logical connectives ("and", "or", "not") and quantifiers ("forall", "exists"). It is written in Lisp-like syntax, e.g.,

 (plus x y z)

which means the relation x = y+z (not an assignment statement).

["Design of the CONSUL Programming Language", D. Baldwin, C. A. Quiroz Gonzalez, University of Rochester. Computer Science Department, TR208, 1987 Feb (]

["Consul: A Parallel Constraint Language", D. Baldwin, IEEE Software 6(4):62-71, 1989 July (]

Last updated: 2014-10-04



A person who facilitates organisational change and/or provides subject matter expertise on technical, functional and business topics during development or implementation. Consultants perform business requirements analysis, recommend selection of packaged software, develop proposals for consulting services and manage implementation projects at client sites. They provides expert knowledge of products such as SAP R/3, PeopleSoft, HRMS/Financials and SmartStream.

Last updated: 2004-03-09

container class


A class whose instances are collections of other objects. Examples include arrays, lists, queues and stacks. A container class typically provides methods such as count, insert, delete and search.

Last updated: 2014-10-15

content addressable memory

<hardware, storage>

(CAM, or "associative memory") A kind of storage device which includes comparison logic with each bit of storage. A data value is broadcast to all words of storage and compared with the values there. Words which match are flagged in some way. Subsequent operations can then work on flagged words, e.g. read them out one at a time or write to certain bit positions in all of them. A CAM can thus operate as a data parallel (SIMD) processor.

CAMs are often used in caches and memory management units.

Last updated: 1995-02-16

content-based information retrieval

<image, algorithm>

(CBIR, query by image content, QBIC, content-based visual information retrieval, CBVIR) A general term for methods using image analysis to try to identify objects and features in images to allow them to indexed and searched.

This contrasts with the use of image metadata such as keywords or tags associated with (and possibly stored in) the image.

[IEEE Computer, September 1995].

Last updated: 2017-12-12

content-based visual information retrieval

content-based information retrieval

Content Data Model

<standard, documentation, language>

(CDM) An SGML-based specification for interactive maintenance manuals, developed by the Air Force Human Resourceas Laboratory (AFHRL) with assistance from RJO Enterprises, Incorporated. CDM models data hierachically and data are identified by their content structure with SGML mark-up used to identify information classes such as "system information", "functions", "tasks" and "steps".

["Final Report - Content Data Model of Organizational Maintenance Information for Automated Interchange of Technical Source Data.", Chicago, Illinois, Datalogics, Inc., 1998-07-07].

Last updated: 2014-10-20



1. (By analogy with "context-free") Used of a message that adds nothing to the recipient's knowledge. Though this adjective is sometimes applied to flamage, it more usually connotes derision for communication styles that exalt form over substance or are centred on concerns irrelevant to the subject ostensibly at hand. Perhaps most used with reference to speeches by company presidents and other professional manipulators.

See also four-colour glossies.


2. Within British schools the term refers to general-purpose software such as a word processor, a spreadsheet or a program that tests spelling of words supplied by the teacher. This is in contrast to software designed to teach a particular topic, e.g. a plant growth simulation, an interactive periodic table or a program that tests spelling of a predetermined list of words. Content-free software can be more cost-effective as it can be reused for many lessons throughout the syllabus.

[Jargon File]

Last updated: 2014-10-30

contention slot


In a communication system where only one node at a time may transmit successfully on a shared channel, the contention slot or contention period is the time a node must wait before it can be sure that no other node's transmission has collided with its transmission.

If node A starts to transmit at time t0 and then another node starts to transmit just before it recieves A's transmission at time t0 + T, then the transmissions will collide but node A will not detect the collision until time t0 + 2T. The contention slot, 2T, for nodes seperated by the maximum propagation delay thus determines how much data the node must be prepared to re-transmit in the event of a collision.

Last updated: 2014-11-06

Contents of Address part of Register


(car) /kar/ The left-hand element of a Lisp cons cell.

Last updated: 2014-11-09

Contents of Decrement part of Register


(cdr) /ku'dr/ or /kuh'dr/ The right-hand element of a Lisp cons cell.

Last updated: 2014-11-09



In a grammar, context refers to the symbols before and after the symbol under consideration. If the syntax of a symbol is independent of its context, the grammar is a context-free grammar.

Last updated: 2014-11-24

context clash


When a parser cannot tell which alternative production of a syntax applies by looking at the next input token ("lexeme"). For example, given syntax

 C -> A | b c

 A -> d | b e

If you're parsing non-terminal C and the next token is 'b', you don't know whether it's the first or second alternative of C since they both can start with b.

If a grammar can generate the same sentence in multiple different ways (with different parse tress) then it is ambiguous. An ambiguity must start with a context clash (but not all context clashes imply ambiguity). To see if a context clash is also a case of ambiguity you would need to follow the alternatives involved in each context clash to see if they can generate the same complete sequence of tokens.

Last updated: 1995-04-05

COntext Dependent Information Language


(CODIL) An 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].

Last updated: 1994-12-23

context-free grammar


(CFG) A grammar where the syntax of each constituent (syntactic category or terminal symbol) is independent of the symbols occuring before and after it in a sentence. A context-free grammar describes a context-free language.

Context-free grammars can be expressed by a set of "production rules" or syntactic rules. For example, a language with symbols "a" and "b" that must occur in unequal numbers can be represented by the CFG:

 S → U | V
 U → TaU | TaT | UaT
 V → TbV | TbT | VbT
 T → aTbT | bTaT | ε

meaning the top-level category "S" consists of either a "U" or a "V" and so on. The special category "ε" represents the empty string. This grammar is context-free because each rule has a single symbol on its left-hand side.

Parsers for context-free grammars are simpler than those for context-dependent grammars because the parser need only know the current symbol.

Algol was (one of?) the first languages whose syntax was described by a context-free grammar. This became a common practice for programming languages and led to the notation for grammars called Backus-Naur Form.

Last updated: 2014-11-24

context-sensitive menu

<operating system>

A menu which appears in response to a user action (typically a mouse click) and whose contents are determined by which application window was clicked or has the input focus.

Most GUIs use a secondary mouse button (right or middle) to call up a context-sensitive menu as the primary mouse button is normally used to interact with objects which are already visible.

The context-sensitive menu often contains functions that are also available in a menu bar but the context-sensitive menu provides quick access to a subset of functions that are particularly relevant to the window area clicked on.

The RISC OS WIMP uses only context-sensitive menus (always invoked using the middle mouse button). This saves screen space and reduces mouse movement compared to a menu bar.

Last updated: 1999-09-22

context switch

<operating system>

When a multitasking operating system stops running one process and starts running another. Many operating systems implement concurrency by maintaining separate environments or "contexts" for each process. The amount of separation between processes, and the amount of information in a context, depends on the operating system but generally the OS should prevent processes interfering with each other, e.g. by modifying each other's memory.

A context switch can be as simple as changing the value of the program counter and stack pointer or it might involve resetting the MMU to make a different set of memory pages available.

In order to present the user with an impression of parallism, and to allow processes to respond quickly to external events, many systems will context switch tens or hundreds of times per second.

Last updated: 1996-12-18

Contextually Communicating Sequential Processes


(CCSP) A notation based on CSP.

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

Last updated: 1994-11-01

continental drift


Very, very slow. In 1980 David Turner remarked that KRC ran "at the speed of the continental drift".

Last updated: 1994-12-06


continuation passing style

Continuation Passing Style


(CPS) An intermediate language for Scheme that implements continuation passing style. The CPS language is semantically clean and is used for the SML/NJ compiler.

["Rabbit: A Compiler for Scheme", G.L. Steele, AI-TR-474, MIT (May 1978)].

["Compiling With Continuations", A. Appel, Cambridge U Press 1992].

Last updated: 2014-09-24

continuation passing style


(CPS) A style of programming in which every user function f takes an extra argument c known as a "continuation". Whenever f would normally return a result r to its caller, it instead returns the result of applying the continuation to r. The continuation thus represents the whole of the rest of the computation. Some examples:

 normal (direct style)	 continuation passing style

 square x = x * x	 	square x k = k (x * x)

 g (square 23)	 	 square 23 g

 (square 3) + 1	 	 square 3 ( \ s . s + 1 )

Last updated: 1995-04-04


continuation passing style

continuous function


A function f : D -> E, where D and E are cpos, is continuous if it is monotonic and

 f (lub Z) = lub { f z | z in Z }

for all directed sets Z in D. In other words, the image of the lub is the lub of any directed image.

All additive functions (functions which preserve all lubs) are continuous. A continuous function has a least fixed point if its domain has a least element, bottom (i.e. it is a cpo or a "pointed cpo" depending on your definition of a cpo). The least fixed point is

 fix f = lub {f^n bottom | n = 0..infinity}

Last updated: 1994-11-30

Continuous System Modeling Program


(CSMP) A program for simulation of dynamics of continuous systems by numerical integration of complex systems of differential equations. CSMP is similar to CSSL.

["A Guide to Using CSMP - The Continuous System Modeling Program", Frank H. Speckhart et al, P-H 1976].

Last updated: 1995-02-23

Continuous System Simulation Language


(CSSL) Versions include ACSL, HYTRAN, SL-I, S/360 and CSMP.

CSSL(Continuous System Simulation Language) versions I, II, III, IV and V have been commercially available since 1968. CSSL-I was developed for Jet Propulsion Labs in 1968. CSSL-III was widely distributed from 1969-1975. CSSL-IV (interactive version) was developed by R. Nilsen and ran on over 30 different computers. Currently CSSL-V is marketed by Simulation Services International and available on PCs and workstations.

["The SCi Continuous System Simulation Language (CSSL)", Simulation, 9(6), Dec 1967].

Last updated: 2003-04-15

continuous wave

<communications, history>

(CW) A term from early radio history for a transmitter using an electron tube (valve) oscillator to constantly add energy to a tuned circuit connected to an antenna.

The term is used in contrast with the use of a spark gap to initiate a damped sinusoidal wave in a tuned circuit consisting of an inductor and capacitor. The energy in this circuit constantly changes between the capacitor's electrostatic field and the inductor's magnetic field. The energy is then coupled to the radiating antenna, loosely (so as not to dampen the wave too quickly).

Some radio amateurs understand "CW" to mean transmission by means a single frequency signal which is either on or off (e.g. Morse code), as opposed to a carrier which varies continuously in amplitude, frequency or phase. Some would even call the former "unmodulated" even though turning on and off is actually the most extreme form of amplitude modulation.

Last updated: 2009-11-24



contract programmer

<job, programming>

A programmer who works on a fixed-length or temporary contract, and is often employed to write certain types of code or to work on a specific project.

Despite the fact that contractors usually cost more than hiring a permanent employee with the same skills, it is common for organisations to employ them for extended periods, sometimes renewing their contracts for many years, due to lack of certainty about the future or simple lack of planning.

A contract programmer may be independent or they may work in a supplier's professional services department, providing consultancy and programming services for the supplier's products.

Last updated: 2015-03-07


<character, hardware>

1. A control key on a keyboard used to input control characters.

<programming, operating system, graphics>

2. A component in a graphical user interface, e.g. an Active-X control.

Control and Status Register


(CSR) A special register in most CPUs that stores additional information about the results of machine instructions, e.g. comparisons. The CSR consists of several independent flag bits such as carry, overflow and zero. The CSR is chiefly used to determine the outcome of conditional branch instructions or other forms of conditional execution.

Last updated: 2018-01-29

control bus


In a digital computer, the signal paths that carry commands from the instruction decode logic to various functional units such as the ALU, memory address register, memory data register and other buffers.

Named by analogy with the address bus and data bus, each of which carries a set of related signals, the signals carried by the control bus are more varied and independent.

Last updated: 2018-01-29



(Or ETX, End of Text) The ASCII character with code 3.

Control-C is the interrupt character used in the command-line interface of many operating systems, including Unix and MS-DOS, to force the currently running program to stop and return control to the user.

[Jargon File]

Last updated: 1995-03-16

control character


Any of a number of special characters that exist in most coded character sets and that are input or output to cause some special action rather than as part of the normal textual data.

Control characters are input by holding down a control key on the keyboard and simultaneously pressing a letter key or (depending on the keyboard and operating system) certain punctuation characters. Some control codes have their own special keys: escape, tab, delete, backspace, return, allowing them to be entered with a single key press.

Control characters may be output for their effect on the output device, e.g. moving the cursor or print head to the start of a new line (carriage return, Control-M), advancing down to the next line (line feed, Control-J) or ringing the bell (Control-G).

Different operating systems and application programs have different conventions for what effect typing certain control characters will have, such as interrupting the current process (Unix Control-C) or suspending or resuming output (Control-S, Control-Q).

See ASCII character table.

Last updated: 2015-03-07

control code


A character code for a control character, normally including the values 0..31 or 127, inherited from ASCII, possibly extended to include other characters by the operating system or application program.

Last updated: 2017-07-30

control flow


(Or "flow of control") The sequence of execution of the instructions in a program. Control flow is linear, executing the instructions in the order they were written, unless it is changed at run time by control structures such as if statements, loops or goto statements). These high-level language statements are translated by the compiler or interpreter into machine instructions, most commonly conditional branch instructions.

Interrupts and exception handling also change the sequence of execution of instructions but are not part of normal control flow.

Not to be confused with "flow control".

Last updated: 2017-07-30



control key


A modifier key found on modern keyboards.

Holding down a control key while pressing and releasing letter keys or certain other keys generates a "control character". E.g. holding control and hitting "A" generates control-A (ASCII code 1). The ASCII code for the control character is generally 64 less than that for the unmodified character.

Standard PC keyboards have two control keys, both labeled "Ctrl", at the bottom left and bottom right of the main block of keys.

The control key does not generate any character on its own but most modern keyboards and operating systems allow a program to tell whether each of the individual keys on the keyboard (including modifier keys) is pressed at any time.

Last updated: 2015-03-07

Control Language


(CL) The batch language for IBM RPG/38, used in conjunction with RPG III.

See also OCL.

Last updated: 2000-04-08



Part of a computer, typically a separate circuit board, which allows the computer to use certain kinds of peripheral devices. A disk controller is used to connect hard disks and floppy disks, a network controller is used for Ethernet. Other controllers are: keyboard controller, interrupt controller and graphics controller.

Last updated: 1998-03-16



ASCII character 15 (SI).

The character used on some operating systems to abort output but allow the program to keep on running. The name "SI" comes from its use on some terminals to "shift in" an alternative character set. "SO" is Control-N.

Compare control-S.

[Jargon File]

Last updated: 1995-03-16

Control Program

<operating system>

(CP) The component of IBM's Virtual Machine (VM) that provides "guest support" for operating systems that run on IBM mainframe compatible processors. Cp does this by providing a seamless emulation of privileged functions in the problem program environment.

Last updated: 1999-01-19

Control Program for Microcomputers

<operating system>

(CP/M) An early microcomputer operating system written by Gary Kildall of Digital Research for 8080 and Zilog Z80-based 8-bit computers.

Many of CP/M's features and conventions strongly resemble those of early DEC operating systems such as TOPS-10, OS/8, RSTS and RSX-11.

CP/M was very popular in the late 1970s and Bill Gates suggested using it as the OS for the IBM PC. IBM wanted to own and control the OS completely but could not get Digital Research to sign a non-disclosure agreement, which killed the deal. CP/M was virtually wiped out by MS-DOS after the release of the IBM PC in 1981.

The file system of MS-DOS was patterned closely on CP/M's, including the use of 8 + 3 (upper case) character file names. The first version (MS-DOS 1.0) was even limited to a single directory, like CP/M.

Last updated: 2020-08-19



(XON, DC1, Device Control 1, ASCII code 17). A control character, used in software handshaking to resume output after a previous control-S.

[Jargon File]

Last updated: 2020-03-01



(XOFF, DC3, Device Control 3, ASCII code 19). A character used in software handshaking to temporarily suspend output until a control-Q is received.

[Jargon File]

Last updated: 1996-06-28

control structure


One of the instructions, statements or groups of statements in a programming language that determines the sequence of execution of other instructions or statements (the control flow).

In assembly language this typically consists of jumps and conditional jumps along with function call and return, though some architectures include other constructs such as an instruction which skips the following instruction depending on some condition (PDP?), various kinds of loop instructions (later Motorola 680x0) or conditional execution of all instructions (Advanced RISC Machine).

Basic control structures (whatever their names in particular languages) include "if CONDITION then EXPRESSION else EXPRESSION", the switch statement, "while CONDITION do EXPRESSION", function call, the suspect "goto" and the much-feared "come from". Other constructs handle errors and exceptions such as traps and interrupts.

Last updated: 1997-09-14

control tty

<operating system>

(/dev/ptyp*) The network side of a pseudo-tty.

Last updated: 2019-06-03

control unit


1. The part of a CPU that sends control signals to other components to cause them to execute the machine cycle - fetch, decode, execute, store.


2. Any device that controls the I/O operations of one or more peripheral devices, e.g. a disk controller.

Last updated: 2008-05-21

conventional memory

<storage, history>

The first 640 kilobytes of an IBM PC's memory. Prior to EMS, XMS, and HMA, real mode application could use only this part of the memory.

Last updated: 1996-01-10

converged network


A single network that can carry voice, video and data.

Last updated: 2007-06-07

Convergent Technologies


A company formed by a small group of people who left Intel Corporation in 1979. Convergent Technologies' first product was the IWS (Integrated Workstation) based on the Intel 8086, which ran Convergent Technologies Operating System - their first operating system.

Unisys bought Convergent Technologies in 1988.

Last updated: 1998-04-03

Convergent Technologies Operating System

<operating system>

(CTOS, BTOS, STARSYS) /see-toss/ A modular, message-passing, multi-process based operating system.

Convergent Technologies' first product was the IWS (Integrated Workstation) based on the Intel 8086, which had CTOS as its operating system. It is a modular operating system with built-in local area networking. CTOS supports multiple processes or threads and message-based inter-process communication.

Companies which licensed CTOS included Burroughs (BTOS) and Bull (STARSYS). The largest customer was Unisys, with whom Convergent Technologies merged to become one company in 1988. CTOS had over 800,000 users worldwide.

CTOS ran on Intel Pentium computers, and could run concurrently with Microsoft Windows NT.

Support for existing customers lasted at least until 2001. Major customers included police forces, banks and airlines.

["Exploring CTOS", Miller E., Crook J., Loy J. - Prentice Hall, ISBN 0-13-297342-1, 1991].

Last updated: 1996-09-24

Conversational LISP


(CLISP) 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].

Last updated: 1994-11-01

Conversational Monitor System

Virtual Machine/Conversational Monitor System



The truth of a proposition of the form A => B and its converse B => A are shown in the following truth table:

 A   B | A => B   B => A
 f   f |	  t	   t
 f   t |	  t	   f
 t   f |	  f	   t
 t   t |	  t	   t

Last updated: 2002-07-12

conversion to iteration

<functional programming>

A transformation applied to functional programs that replaces recursion with iteration. A tail-recursive function can be compiled to an iterative loop such that the recursive call becomes a jump back to the start and the parameters are held in registers which are updated with new values each time around the loop.

This is closely related to tail recursion optimisation.

Last updated: 2019-11-21



1. (Or "REC", "Regular Expression Converter") A string processing language that combined the pattern matching and transformation operations of COMIT with the recursive data structures of Lisp.

["Convert", A. Guzman et al, CACM 9(8):604-615, Aug 1966].

2. An early language to convert programs and data from one language to another.

["CONVERT Manual", OLI Systems Inc, Oct 1976].

Last updated: 2007-02-05


<language, tool>

A Fortran77 to Fortran90 translator by Michael Metcalf <[email protected]>. The significant differences between the two Fortrans made this package useful.

Last updated: 2020-03-01

Convex Computer Corporation


A mini-super-computer manufacturer.

Address: Richardson, Texas, USA.

Last updated: 1995-03-01

convex hull

<mathematics, graphics>

For a set S in space, the smallest convex set containing S. In two dimensions, a convex hull is the shape of a rubber band stretched around the set S.

Last updated: 1997-08-03

Conway, John Horton

John Horton Conway

Conway's Game of Life


The first popular cellular automata based artificial life simulation. Life was invented by British mathematician John Horton Conway in 1970 and was first introduced publicly in "Scientific American" later that year.

Conway first devised what he called "The Game of Life" and "ran" it using plates placed on floor tiles in his house. Because of he ran out of floor space and kept stepping on the plates, he later moved to doing it on paper or on a chess board. It was later implemented as a computer program on a PDP-7 by M. J. T. Guy and S. R. Bourne (of Bourne shell fame).

Life uses a rectangular grid of binary (live or dead) cells each of which is updated at each step according to the previous state of its eight neighbours as follows: a live cell with less than two, or more than three, live neighbours dies. A dead cell with exactly three neighbours becomes alive. Other cells do not change.

While the rules are fairly simple, the patterns that can arise are of a complexity resembling that of organic systems -- hence the name "Life".

Many hackers pass through a stage of fascination with Life, and hackers at various places contributed heavily to the mathematical analysis of this game (most notably Bill Gosper at MIT, who even implemented Life in TECO!; see Gosperism). When a hacker mentions "life", he is more likely to mean this game than the magazine, the breakfast cereal, the 1950s-era board game or the human state of existence.

On-line implementation.

["Scientific American" 223, October 1970, p120-123, 224; February 1971 p121-117, Martin Gardner].

["The Garden in The Machine: the Emerging Science of Artificial Life", Claus Emmeche, 1994].

["Winning Ways, For Your Mathematical Plays", Elwyn R. Berlekamp, John Horton Conway and Richard K. Guy, 1982].

["The Recursive Universe: Cosmic Complexity and the Limits of Scientific Knowledge", William Poundstone, 1985].

[Jargon File]

Last updated: 1997-09-07

Conway's Law

<project, humour>

The rule (presumably formulated by Melvin Conway) that the organisation of software and the organisation of the software team will be congruent; originally stated as "If you have four groups working on a compiler, you'll get a 4-pass compiler".

[Jargon File]

Last updated: 2015-12-30

Conway's Life

Conway's Game of Life

Nearby terms:

COMSLCOMTRANConCconcatenateconcatenated keyconcentrator

Try this search on Wikipedia, Wiktionary, Google, OneLook.