EDP Dictionary - CC
<language> A programming language designed by {Dennis Ritchie}
at {AT&T} {Bell Labs} ca. 1972 for systems programming on the
{PDP-11} and immediately used to reimplement {Unix}.
It was called "C" because many features derived from an
earlier compiler named "{B}". In fact, C was briefly named
"NB". B was itself strongly influenced by {BCPL}. Before
{Bjarne Stroustrup} settled the question by designing {C++},
there was a humorous debate over whether C's successor should
be named "D" or "P" (following B and C in "BCPL").
C is terse, low-level and permissive. It has a {macro
preprocessor}, {cpp}.
Partly due to its distribution with {Unix}, C became immensely
popular outside {Bell Labs} after about 1980 and is now the
dominant language in systems and {microcomputer} applications
programming. It has grown popular due to its simplicity,
efficiency, and flexibility. C programs are often easily
adapted to new environments.
C is often described, with a mixture of fondness and disdain,
as "a language that combines all the elegance and power of
{assembly language} with all the readability and
maintainability of assembly language".
Ritchie's original C, known as {K&R C} after Kernighan and
Ritchie's book, has been {standard}ised (and simultaneously
modified) as {ANSI C}.
See also {ACCU}, {ae}, {c68}, {c386}, {C-Interp}, {cxref},
{dbx}, {dsp56k-gcc}, {dsp56165-gcc}, {gc}, {GCT}, {GNU C},
{GNU superoptimiser}, {Harvest C}, {malloc}, {mpl},
{Pthreads}, {ups}.
(01 Jun 1996)
(c)
An {ASCII} rendition of the encircled "c" {copyright} symbol.
Unfortunately, this rendition is not legally valid, the circle
must be complete. The word "copyright" in full is perfectly
adequate though.
(In {LaTeX} the copyright symbol is written as \copyright).
(03 Feb 1995)
C*
An {object-oriented}, {data-parallel} superset of {ANSI C}
with synchronous semantics for the {Connection Machine},
designed by {Thinking Machines}, 1987. C* adds a "domain"
data type and a selection statement for parallel execution in
domains. The current version is 6.x.
E-mail: <customer-support@think.com>,
<documentation-order@think.com>.
["C*: An Extended C Language for Data Parallel Programming",
J.R. Rose et al, Proc Second Intl Conf on Supercomputing,
L.P. Kartashev et al eds, May 1987, pp.2-16].
["C* Programming Manual", Thinking Machines Corp, 1986].
C++
<language> One of the most used {object-oriented} languages, a
superset of {C} developed primarily by Bjarne Stroustrup
<bs@alice.att.com> at {AT&T} {Bell Laboratories} in 1986.
In C++ a {class} is a user-defined type, syntactically a
struct with {member function}s. {Constructor}s and
{destructor}s are member functions called to create or destroy
{instance}s. A {friend} is a nonmember function that is
allowed to access the private portion of a class. C++ allows
{implicit type conversion}, {function inlining}, {overloading}
of operators and function names, and {default function
argument}s. It has {stream}s for I/O and references.
C++ 2.0 (May 1989) introduced {multiple inheritance},
type-safe linkage, pointers to members, and {abstract
classes}.
C++ 2.1 was introduced in ["Annotated C++ Reference Manual",
B. Stroustrup et al, A-W 1990].
{MS-DOS
(ftp://grape.ecs.clarkson.edu/pub/msdos/djgpp/djgpp.zip)},
{Unix ANSI C++
(ftp://prep.ai.mit.edu/pub/gnu/g++-1.39.0.tar.Z)} - X3J16
committee. (They're workin' on it).
See also {cfront}, {LEDA}, {uC++}.
{Usenet} newsgroup: {news:comp.lang.c++}.
["The C++ Programming Language", Bjarne Stroustrup, A-W,
1986].
(06 Jun 1996)
C+@
(Formerly Calico). An {object-oriented language} from {Bell
Laboratories} which uniformly represents all data as a pointer
to a self-described object. C+@ provides {multiple
inheritance} with {delegation} and with control over which
{method}s come from which delegated object; and {default
methodologies}. It has a simple {syntax} with emphasis on
graphics. It was originally used for prototyping of
telecommunication services.
It runs under {SunOS} and compiles to {Vcode}. Unir Tech,
(800) 222-8647.
E-mail: Jim Vandendorpe <jimvan@iexist.att.com>.
["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].
(31 Oct 1994)
[What has "Unir Tech" got to do with it?]
C-10
An improved version of {COLINGO}.
[Sammet 1969, p.702].
(28 Oct 1994)
C1 security
{Orange Book}
c2man
<tool> An automatic {documentation} extraction tool by Graham
Stoney <greyham@research.canon.oz.au>. c2man extracts
comments from {C} source code to generate functional interface
documentation in the same format as sections 2 and 3 of the
{Unix} Programmer's Manual. It looks for comments near the
objects they document, rather than imposing a rigid {syntax}
or requiring that the programmer use a typesetting language.
Acceptable documentation can often be generated from existing
code with no modifications.
It supports both {K&R} and {ISO}/{ANSI C} coding styles.
Output can be in {nroff} -man, {Texinfo} or {LaTeX} format.
It {automagically} documents {enum} parameter and return
values, it handles both {C} (/* */) and {C++} (//) style
comments, but not C++ grammar (yet). It requires {yacc},
{byacc} or {bison} for syntax analysis; {lex} or {flex} for
{lexical analysis} and {nroff}, {groff}, {texinfo} or {LaTeX}
to format the output. It runs under {Unix}, {OS/2} and
{MS-DOS}.
Version 2.0 patchlevel 25 (25 Oct 1995).
{Washington FTP
(ftp://ftp.wustl.edu/usenet/comp.sources.reviewed/volume03/)}.
{Stuttgart FTP
(ftp://ftp.informatik.uni-stuttgart.de/pub/archive/comp.sources/reviewed/)}.
{Patches
(ftp://lth.se/pub/netnews/sources.bugs/volume93/sep/)}.
Mailing list: <listserv@research.canon.oz.au> ("subscribe
c2man <Your Name>" in the message body).
Patches posted to {Usenet} newsgroups {news:comp.sources.bugs}
and {news:comp.sources.reviewed}.
(21 Feb 1994)
C2 security
{Orange Book}
c386
A compiler for {K&R C} plus {prototype}s and other {ANSI C}
features by Matthew Brandt, Christoph van Wuellen, Keith and
Dave Walker. c386 is targetted to several {68000} and {Intel
80386} {assembler}s, including {gas}. {floating-point}
support is by inline code or {emulation}. It can produce lots
of warnings and generates better code than {ACK}.
{Version 4.2a
(ftp://bugs.nosc.mil/pub/Minix/common-pkgs/c386-4.2.tar.Z)}.
c386 has been ported to {Intel 80386} and {68000} {Minix} and
should work on any Unix. It is actively worked on by the
Walkers. {Usenet} newsgroup: {news:comp.os.minix}.
C5
An {OPS5} implementation in {C}.
C64
{Commodore 64}
c68
{c386} also produces {68000} code.
CA
1. <theory, architecture> {cellular automaton}.
2. <company> {Computer Associates}.
3. <cryptography> {Certificate Authority}.
(28 Sep 1996)
ca
<networking> The {coutry code} for Canada.
(19 Apr 1995)
cache
<storage, programming> A small fast memory holding
recently-accessed data, designed to speed up subsequent access
to the same data. Most often applied to processor-memory
access but also used for a local copy of data accessible over
a network etc.
When data is read from, or written to, {main memory} a copy is
also saved in the cache, along with the associated main memory
address. The cache monitors addresses of subsequent reads to
see if the required data is already in the cache. If it is (a
{cache hit}) then it is returned immediately and the main
memory read is aborted (or not started). If the data is not
cached (a {cache miss}) then it is fetched from main memory
and also saved in the cache.
The cache is built from faster memory chips than main memory
so a cache hit takes much less time to complete than a normal
memory access. The cache may be located on the same
{integrated circuit} as the {CPU}, in order to further reduce
the access time.
The most important characteristic of a cache is its {hit rate}
- the fraction of all memory accesses which are satisfied from
the cache. This in turn depends on the cache design but
mostly on its size relative to the main memory. The size is
limited by the cost of fast memory chips.
The hit rate also depends on the access pattern of the
particular program being run (the sequence of addresses being
read and written). Caches rely on two properties of the
access patterns of most programs: temporal locality - if
something is accessed once, it is likely to be accessed again
soon, and spatial locality - if one memory location is
accessed then nearby memory locations are also likely to be
accessed. In order to exploit spatial locality, caches often
operate on several words at a time, a "{cache line}" or "cache
block". Main memory reads and writes are whole {cache lines}.
When the processor wants to write to main memory, the data is
first written to the cache on the assumption that the
processor will probably read it again soon. Various different
policies are used. In a {write-through} cache, data is
written to main memory at the same time as it is cached. In a
{write-back} cache it is only written to main memory when it
is forced out of the cache.
If all accesses were writes then, with a write-through policy,
every write to the cache would necessitate a main memory
write, thus slowing the system down to main memory speed.
However, statistically, most accesses are reads and most of
these will be satisfied from the cache. Write-through is
simpler than write-back because an entry that is to be
replaced can just be overwritten in the cache as it will
already have been copied to main memory whereas write-back
requires the cache to initiate a main memory write of the
flushed entry followed (for a processor read) by a main memory
read. However, write-back is more efficient because an entry
may be written many times in the cache without a main memory
access.
When the cache is full and it is desired to cache another line
of data then a cache entry is selected to be written back to
main memory or "flushed". The new line is then put in its
place. Which entry is chosen to be flushed is determined by a
"{replacement algorithm}".
Some processors have separate instruction and data caches.
Both can be active at the same time, allowing an instruction
fetch to overlap with a data read or write. This separation
also avoids the possibility of bad {cache conflict} between
say the instructions in a loop and some data in an array which
is accessed by that loop.
See also {direct mapped cache}, {fully associative cache},
{secondary cache}, {sector mapping}, {set associative cache}.
(21 Jan 1997)
cache block
{cache line}
cache conflict
<storage> A sequence of accesses to memory repeatedly
overwriting the same {cache} entry. This can happen if two
blocks of data, which are mapped to the same set of cache
locations, are needed simultaneously.
For example, in the case of a {direct mapped cache}, if
{arrays} A, B, and C map to the same range of cache locations,
thrashing will occur when the following loop is executed:
for (i=1; i<n; i++)
C[i] = A[i] + B[i];
Cache conflict can also occur between a program loop and the
data it is accessing.
See also {ping-pong}.
(21 Jan 1997)
cache hit
<storage> A request to read from memory which can satisfied
from the {cache} without using the {main memory}.
Opposite: {cache miss}.
(21 Jan 1997)
cache line
<storage> (Or cache block) The smallest unit of memory than
can be transferred between the {main memory} and the {cache}.
Rather than reading a single word or byte from main memory at
a time, each cache entry is usually holds a certain number of
words, known as a "cache line" or "cache block" and a whole
line is read and cached at once. This takes advantage of the
principle of locality of reference: if one location is read
then nearby locations (particularly following locations) are
likely to be read soon afterwards. It can also take advantage
of {page-mode} {DRAM} which allows faster access to
consecutive locations.
(21 Jan 1997)
cache memory
{cache}
cache miss
<storage> A request to read from memory which cannot be
satisfied from the {cache}, for which the {main memory} has to
be consulted.
Opposite: {cache hit}.
(21 Jan 1997)
Cache On A STick
<architecture> (COAST) {Intel Corporation} attempt to's
standardise the modular {L2 cache} subsystem in
{Pentium}-based computers.
A COAST module should be about 4.35" wide by 1.14" high.
According to earlier specifications from {Motorola}, a module
between 4.33" and 4.36" wide, and between 1.12" and 1.16" high
is within the COAST standard. Some module vendors, including
some major motherboard suppliers, greatly violate the height
specification.
Another COAST specification violated by many suppliers
concerns clock distribution in synchronous modules. The
specification requires that the clock tree to each synchronous
chip be balanced, i.e. equal length from edge of the connector
to individual chips. An unbalanced clock tree increases
reflections and noise.
For a 256 {kilobyte} cache module the standard requires the
same clock be used for both chips but some vendors use
separate clocks to reduce loading on the clock driver and
hence increase the clock speed. However, this creates
unbalanced loading in other motherboard configurations, such
as motherboards with soldered caches in the system.
(10 Jun 1996)
caching
{cache}
CACI
A company developing and marketing {SIMSCRIPT}, {MODSIM} and
other {simulation} software products.
Telephone: +1 (619) 457-9681.
(22 Sep 1994)
CACM
{Communications of the ACM}
CAD
{Computer Aided Design}
CAD/CAM
Computer Aided Design/Computer Aided Manufacturing.(see CAD)
CADD
Computer Aided Detector Design: a project to develop standards
and methods to allow cooperation between HEP detector
designers working in different institutes.
Cadence Design Systems
The "world leader" in {design automation} software and
services that accelerate and advance the process of designing
electronic systems.
{Home (http://www.cadence.com)}
CADET
Computer Aided Design Experimental Translator.
[Sammet 1969, p. 683].
(29 Nov 1994)
CADRE
A software engineering vendor in the US.
CAE
1. {Common Applications Environment}.
2. {Computer Aided Engineering}.
CAF
{constant applicative form}
CAFE
["Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc
BCS Symp on Job Control Languages--Past Present and Future,
NCC, Manchester, England 1974].
(28 Oct 1994)
CAGE
Early system on IBM 704. Listed in CACM 2(5):16 (May 1959).
CAI
{Computer-Aided Instruction}
Cairo
{Windows NT 4}
CAIS
{Common APSE Interface Specification}
CAIS-A
Common APSE Interface Set A
DoD-STD-1838A.
CAiSE
Conference on Advanced Information Systems Engineering.
CAJOLE
<language> (Chris And John's Own LanguagE) A {dataflow}
language developed by Chris Hankin <clh@doc.ic.ac.uk> and John
Sharp at {Westfield College}.
["The Data Flow Programming Language CAJOLE: An Informal
Introduction", C.L. Hankin et al, SIGPLAN Notices 16(7):35-44
(Jul 1981)].
(08 Nov 1994)
CAL
1. {Computer Assisted Learning}.
2. {Course Author Language}.
(21 Mar 1997)
Calc
An extensible, advanced desk calculator and mathematical tool
written in {Emacs Lisp} by Dave Gillespie
<daveg@cs.caltech.edu>. Calc runs as part of {GNU Emacs}.
You can use Calc as only a simple four-function calculator,
but it also provides additional features including choice of
algebraic or {RPN} ({stack}-based) entry, logarithms,
trigonometric and financial functions, {arbitrary precision},
complex numbers, vectors, matrices, dates, times, infinities,
sets, algebraic simplification, differentiation and
integration.
Version: 2.02.
FTP calc-2.02.tar.z from your nearest {GNU archive site}.
(08 Nov 1994)
calculator
(Cambridge) {bitty box}.
(22 Feb 1995)
Calculus of Communicating Systems
(CCS) A mathematical model (a formal language) for describing
processes, mostly used in the study of {parallelism}. A CCS
program, written in {behaviour expressions syntax} denotes a
process behaviour. Programs can be compared using the notion
of {observational equivalence}.
["A Calculus of Communicating Systems", LNCS 92, Springer
1980].
["Communication and Concurrency", R. Milner, P-H 1989].
(29 Nov 1994)
Calendar API
{Calendar Application Programming Interface}
Calendar Application Programming Interface
(CAPI, Calendar API) An {API} for calendar {software}.
{Microsoft} has defined a CAPI for their {Schedule+}
application.
(11 Jan 1995)
Caliban
A {declarative} annotation language for controlling the
partitioning and placement of the evaluation of expressions in
a distributed {functional language}. Designed by Paul Kelly
<phjk@doc.ic.ac.uk>, {Imperial College}.
["Functional Programming for Loosely-coupled Multiprocessors",
P. Kelly, Pitman/MIT Press, 1989].
(11 Jan 1995)
Calico
{C+@}
California State University San Marcos
(CSUSM)
{Home (http://coyote.csusm.edu/)}
(21 Dec 1994)
callback
1. A scheme used in {event-driven} programs where the program
registers a callback handler for a certain {event}. The
program does not call the handler directly but when the event
occurs, the handler is called, possibly with arguments
describing the event.
2. A user authentication scheme used by some computers running
{dial-up} services. The user dials in to the computer and
gives his login ID and password. The computer then hangs up
the connection and uses an {auto-dial} {modem} to call back to
the user's registered telephone number. Thus, if an
unauthorised person discovers a user's password, the callback
will go, not to him, but to the owner of that login who will
then know that his account is under attack.
However, some {PABX}s can be fooled into thinking that the
caller has hung up by sending them a dial tone. When the
computer tries to call out on the same line it is not actually
dialing through to the authorised user but is still connected
to the original caller.
call-by-name
(CBN) (Normal order reduction, leftmost, outermost reduction).
An argument passing convention (first provided by {ALGOL 60}?)
where argument expressions are passed unevaluated. This is
usually implemented by passing a pointer to some code which
will return the value of the argument and an environment
giving the values of its {free variable}s. This {evaluation
strategy} is guaranteed to reach a {normal form} if one
exists.
When used to implement {functional programming} languages,
call-by-name is usually combined with {graph reduction} to
avoid repeated evaluation of the same expression. This is
then known as {call-by-need}. The opposite of call-by-name is
{call-by-value} where arguments are evaluated before they are
passed to a function. This is more efficient but is less
likely to terminate in the presence of infinite data
structures and {recursive} functions. Arguments to {macro}s
are usually passed using call-by-name.
(29 Nov 1994)
call-by-need
<reduction> A {reduction strategy} which delays evaluation of
function arguments until they are needed because they are
arguments to a {primitive} function or a conditional.
Call-by-need is one part of {lazy evaluation}.
The term first appears in Chris Wadsworth's thesis "Semantics
and Pragmatics of the Lambda calculus" (Oxford, 1971, p. 183).
It was used later, by J. Vuillemin in his thesis (Stanford,
1973).
(27 May 1995)
call-by-reference
An argument passing convention where the address of an
argument variable is passed to a function or procedure, as
opposed to where the value of the argument expression is
passed. Execution of the function or procedure may have
{side-effect}s on the actual argument as seen by the caller.
The C language's "&" (address of) and "*" (dereference)
operators allow the programmer to code explicit
call-by-reference. Other languages provide special syntax to
declare reference arguments (e.g. {ALGOL 60}). See also
{call-by-name}, {call-by-value}, {call-by-value-result}.
call-by-value
(CBV) An {evaluation strategy} where arguments are evaluated
before the function or procedure is entered. Only the values
of the arguments are passed and changes to the arguments
within the called procedure have no effect on the actual
arguments as seen by the caller. See {applicative order
reduction}, {call-by-value-result}, {strict evaluation},
{call-by-name}, {lazy evaluation}.
call-by-value-result
An argument passing convention where the {actual argument} is
a variable V whose value is copied to a local variable L
inside the called function or procedure. If the procedure
modifies L, these changes will not affect V, which may also be
in scope inside the procedure, until the procedure returns
when the final value of L is copied to V. Under
{call-by-reference} changes to L would affect V immediately.
Used, for example, by {BBC BASIC V} on the {Acorn}
{Archimedes}.
call/cc
{Call-with-current-continuation}
Caller ID
(CID) A feature of some {modem}s.
calling convention
<programming> The arrangement of {arguments} for a procedure
or function call. Different programming languages may require
arguments to be pushed onto a {stack} or entered in
{registers} in left-to-right or right-to left order, and
either the caller or the callee can be responsible for
removing the arguments. The calling convention also
determines if a variable number of arguments is allowed.
(11 Nov 1995)
Call-Level Interface
<database, standard> (SQL/CLI) A programming interface
designed to support {SQL} access to {databases} from
shrink-wrapped {application programs}.
CLI was originally created by a subcommittee of the {SQL
Access Group} (SAG). The SAG/CLI specification was published
as the {Microsoft} {Open DataBase Connectivity} (ODBC)
specification in 1992. In 1993, SAG submitted the CLI to the
{ANSI} and {ISO} SQL committees.
SQL/CLI provides an international standard
implementation-independent CLI to access SQL databases.
{Client-server} tools can easily access databases through
{dynamic link libraries}. It supports and encourages a rich
set of client-server tools.
SQL/CLI is an addendum to 1992 SQL standard (SQL-92). It was
completed as ISO standard ISO/IEC 9075-3:1995 Information
technology -- Database languages -- SQL -- Part 3: Call-Level
Interface (SQL/CLI). The current SQL/CLI effort is adding
support for {SQL3}.
{(http://www.jcc.com/sql_cli.html)}.
(27 Oct 1996)
Callware
<company> The developers of {Phonetastic}.
(08 Dec 1996)
Call-with-current-continuation
(call/cc) A {Lisp} control function. call/cc takes a function
f as its argument. It calls f and passes it the current
{continuation}, which is itself a function, k. The
continuation represents the context of the call to call/cc.
It is a function which takes the result of call/cc (which is
the result of f) and returns the final result of the whole
program. Thus if, for example, the final result is to print
the value returned by call/cc then anything passed to k will
also be printed:
(defun f (k)
(apply k 1)
(apply k 2)
3)
(print (call/cc f))
Will print 1 2 3.
(29 Nov 1994)
CALS
Computer-Aided Acquisition and Logistics Support: a DoD
standard for electronic exchange of data with commercial
suppliers.
CAM
{content addressable memory}
CAM-6
Software for running {cellular automata}. CAM-6 has been
implemented in hardware as {CAM-PC}.
(21 Apr 1995)
CAMAL
<tool> CAMbridge ALgebra system.
A {symbolic mathematics} system used in Celestial Mechanics
and General Relativity. CAMAL was 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].
(16 Feb 1995)
Cambridge Lisp
A flavour of Lisp using BCPL. Sources owned by Fitznorman
partners.
Camelot Library
<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].
[What is it?]
(19 Apr 1995)
camera ready
<publication> A final editon of a document or graphic (e.g. a
newspaper advertisement or a technical paper for a journal)
that is of suitable quality for mass reproduction by making
printing plates from the negatives by photoengraving.
(15 Nov 1996)
CAMIL
Computer Assisted/Managed Instructional Language.
A language used for {CAI} at Lowry AFB, CO.
["The CAMIL Programming Language", David Pflasterer, SIGPLAN
Notices 13(11):43 (Nov 1978)].
(09 Nov 1994)
CAML
1. A language for preparation of animated movies. 1976.
(09 Nov 1994)
2. Categorical Abstract Machine Language.
A version of {ML} by G. Huet, G. Cousineau, Ascander Suarez,
Pierre Weis, Michel Mauny and others of {INRIA}. CAML is
intermediate between {LCF ML} and {SML}. CAML has
{first-class} functions, {static type inference} with
{polymorphic} types, user-defined {variant type}s and {product
type}s, and {pattern matching}.
The CAML V3.1 implementation adds {lazy} and {mutable} data
structures, a "{grammar}" mechanism for interfacing with the
{Yacc} {parser generator}, {pretty-printing} tools,
high-performance {arbitrary-precision} arithmetic and a
complete library.
CAML runs on {Sun-3}, {Sun-4}, {Sony} {68000}, {Sony} {R3000},
{Decstation}, {Macintosh} {A/UX} and {Apollo}. It is built on
a proprietary run-time system.
See also {CAML Light}.
{(ftp://ftp.inria.fr/lang/caml/)}.
{(ftp://ftp.inria.fr/INRIA/caml/V3.1)}.
E-mail: Pierre Weis <Pierre.Weis@inria.fr>,
<caml@margaux.inria.fr> (bugs).
Mailing list: <caml-list-request@margaux.inria.fr>.
{Usenet} newsgroup: {news:comp.lang.ml}.
["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS,
1989].
(20 Oct 1991)
Caml Light
A small portable implementation of a version of {CAML} by
Xavier Leroy <Xavier.Leroy@inria.fr> and Damien Doligez of
{INRIA}. Caml Light uses a {bytecode interpreter} written in
{C}. It adds a {Modula-2}-like {module} system, {separate
compilation}, {lazy stream}s for parsing and printing,
graphics primitives and an interface with {C}.
Version 0.6 runs on {Unix}, {MS-DOS}, {Macintosh}, {Atari ST}
and {Amiga}. It includes an {interpreter}, {compiler},
{Emacs} mode, libraries, {scanner generator}, {parser
generator}, {run-time support} and an interactive development
environment.
{(ftp://ftp.inria.fr/lang/caml-light/)}
E-mail: <caml-light@margaux.inria.fr>.
Mailing list: <caml-list@margaux.inria.fr>.
{Usenet} newsgroup: {news:comp.lang.ml}.
(06 Oct 1993)
CAM-PC
<hardware> A {cellular automata} circuit board which is a
hardware implementation from {Automatrix} of the {MIT} {CAM-6}
machine. It comes with dozens of experiments and
applications.
{Home (http://www.automatrix.com/campc/index.html)}
(21 Apr 1995)
Campus Wide Information System
(CWIS) Information and services made publicly available at
university sites via {kiosk}s running interactive computing
systems, possibly via campus networks. Services routinely
include directory information, calendars, {bulletin board}s
and {database}s.
(09 Nov 1994)
CAN
{Cancel}
can
To abort a job on a {time-sharing} system. Used especially
when the person doing the deed is an operator, as in "canned
from the {console}". Frequently used in an imperative sense,
as in "Can that print job, the LPT just popped a sprocket!"
Synonymous with {gun}. It is said that the ASCII character
with {mnemonic} CAN (0011000) was used as a kill-job character
on some early OSes. Alternatively, this term may derive from
mainstream slang "canned" for being laid off or fired.
Canada
Country with {domain} "ca".
(06 Apr 1995)
Cancel
<character> (CAN) {ASCII} character 24.
(28 Jun 1996)
Candle
Part of the {Scorpion} environment development system.
(09 Nov 1994)
candygrammar
A programming-language grammar that is mostly {syntactic
sugar}; the term is also a play on "candygram". {COBOL},
{Apple Computer}'s {Hypertalk} language, and a lot of the
so-called "{4GL}" database languages share this property. The
usual intent of such designs is that they be as English-like
as possible, on the theory that they will then be easier for
unskilled people to program. This intention comes to grief on
the reality that syntax isn't what makes programming hard;
it's the mental effort and organisation required to specify an
algorithm precisely that costs. Thus the invariable result is
that "candygrammar" languages are just as difficult to program
in as terser ones, and far more painful for the experienced
hacker.
[The overtones from the old Chevy Chase skit on Saturday Night
Live should not be overlooked. This was a "Jaws" parody.
Someone lurking outside an apartment door tries all kinds of
bogus ways to get the occupant to open up, while ominous music
plays in the background. The last attempt is a half-hearted
"Candygram!" When the door is opened, a shark bursts in and
chomps the poor occupant. There is a moral here for those
attracted to candygrammars. Note that, in many circles,
pretty much the same ones who remember Monty Python sketches,
all it takes is the word "Candygram!", suitably timed, to get
people rolling on the floor. - GLS]
canonical
(Historically, "according to religious law")
1. <mathematics> A standard way of writing a formula. Two
formulas such as 9 + x and x + 9 are said to be equivalent
because they mean the same thing, but the second one is in
"canonical form" because it is written in the usual way, with
the highest power of x first. Usually there are fixed rules
you can use to decide whether something is in canonical form.
Things in canonical form are easier to compare.
2. <jargon> The usual or standard state or manner of
something. The term acquired this meaning in computer-science
culture largely through its prominence in {Alonzo Church}'s
work in computation theory and {mathematical logic} (see
{Knights of the Lambda-Calculus}).
Compare {vanilla}.
This word has an interesting history. Non-technical academics
do not use the adjective "canonical" in any of the senses
defined above with any regularity; they do however use the
nouns "canon" and "canonicity" (not "canonicalness"* or
"canonicality"*). The "canon" of a given author is the
complete body of authentic works by that author (this usage is
familiar to Sherlock Holmes fans as well as to literary
scholars). "The canon" is the body of works in a given field
(e.g. works of literature, or of art, or of music) deemed
worthwhile for students to study and for scholars to
investigate.
The word "canon" derives ultimately from the Greek "kanon"
(akin to the English "cane") referring to a reed. Reeds were
used for measurement, and in Latin and later Greek the word
"canon" meant a rule or a standard. The establishment of a
canon of scriptures within Christianity was meant to define a
standard or a rule for the religion. The above non-technical
academic usages stem from this instance of a defined and
accepted body of work. Alongside this usage was the
promulgation of "canons" ("rules") for the government of the
Catholic Church. The usages relating to religious law derive
from this use of the Latin "canon".
Hackers invest this term with a playfulness that makes an
ironic contrast with its historical meaning. A true story:
One Bob Sjoberg, new at the {MIT} {AI Lab}, expressed some
annoyance at the incessant use of jargon. Over his loud
objections, {GLS} and {RMS} made a point of using as much of
it as possible in his presence, and eventually it began to
sink in. Finally, in one conversation, he used the word
"canonical" in jargon-like fashion without thinking. Steele:
"Aha! We've finally got you talking jargon too!" Stallman:
"What did he say?" Steele: "Bob just used "canonical" in the
canonical way."
Of course, canonicality depends on context, but it is
implicitly defined as the way *hackers* normally expect things
to be. Thus, a hacker may claim with a straight face that
"according to religious law" is *not* the canonical meaning of
"canonical".
(22 Dec 1994)
canonical name
(CNAME) A host's official name as opposed to an alias. The
official name is the first hostname listed for its {Internet
address} in the hostname database, {/etc/hosts} or the
{Network Information Service} (NIS) map hosts.byaddr ("hosts"
for short). A host with multiple network interfaces may have
more than one Internet address, each with its own canonical
name (and zero or more aliases).
You can find a host's canonical name using {nslookup} if you
say
set querytype=CNAME
and then type a hostname.
(29 Nov 1994)
canonicity
<theory, jargon> The extent to which something is {canonical}.
(03 Mar 1995)
C (ANSI)
{ANSI C}
can't happen
<programming> The traditional program comment for code
executed under a condition that should never be true, for
example a file size computed as negative. Often, such a
condition being true indicates data corruption or a faulty
{algorithm}; it is almost always handled by emitting a fatal
error message and terminating or crashing, since there is
little else that can be done.
Some case variant of "can't happen" is also often the text
emitted if the "impossible" error actually happens. Although
"can't happen" events are genuinely infrequent in production
code, programmers wise enough to check for them habitually are
often surprised at how frequently they are triggered during
development and how many headaches checking for them turns out
to head off.
See also {firewall code}, {professional programming}.
(10 May 1996)
Cantor
1. <person, mathematics> A mathematician.
Cantor devised the diagonal proof of the uncountability of the
{real numbers}:
Given a function, f, from the {natural numbers} to the {real
numbers}, consider the real number r whose binary expansion is
given as follows: for each natural number i, r's i-th digit is
the complement of the i-th digit of f(i).
Thus, since r and f(i) differ in their i-th digits, r differs
from any value taken by f. Therefore, f is not {surjective}
(there are values of its result type which it cannot return).
Consequently, no function from the natural numbers to the
reals is surjective. A further theorem dependent on the
{axiom of choice} turns this result into the statement that
the reals are uncountable.
This is just a special case of a diagonal proof that a
function from a set to its {power set} cannot be surjective:
Let f be a function from a set S to its power set, P(S) and
let U = { x in S: x not in f(x) }. Now, observe that any x in
U is not in f(x), so U != f(x); and any x not in U is in f(x),
so U != f(x): whence U is not in { f(x) : x in S }. But U is
in P(S). Therefore, no function from a set to its power-set
can be surjective.
2. <language> An {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)].
(14 Mar 1997)
CAP
1. <networking> {Columbia AppleTalk Package}.
2. <communications> {Carrierless Amplitude/Phase Modulation}.
(04 Mar 1997)
capacitor
<electronics> An electronic device that can store electrical
charge. The charge stored Q in Coulombs is related to the
capacitance C in Farads and the voltage V across the capacitor
in Volts by Q = CV.
The basis of a {dynamic RAM} cell is a capacitor. They are
also used for power-supply smoothing (or "decoupling"). This
is especially important in digital circuits where a digital
device switching between states causes a sudden demand for
current. Without sufficient local power supply decoupling,
this current "spike" cannot be supplied directly from the
power supply due to the inductance of the connectors and so
will cause a sharp drop in the power supply voltage near the
switching device. This can cause other devices to malfunction
resulting in hard to trace {glitch}es.
(12 Apr 1995)
CAPI
1. {Calendar Application Programming Interface}.
2. <cryptography> {Cryptographic Application Programming
Interface}.
(11 Feb 1997)
Cap'n Crunch
{Captain Crunch}
Captain Abstraction
The champion of the principles of {abstraction} and
modularity, who protects unwary students on {MIT}'s course
{6.001} from the nefarious designs of Sergeant Spaghetticode
and his vile {concrete} programming practices.
See also {spaghetti code}.
(22 Nov 1994)
Captain Crunch
1. <person> ("Cap'n Crunch") An early 1970s
{hacker}/{phreaker}. Named after the "Cap'n Crunch" breakfast
cereal, but alluding to "{crunch}".
{Home (http://www.well.com/user/crunch/)}.
2. (After the above) {wardialer}.
3. Reportedly, a program which {crash}es a computer by
overloading the {interrupt} {stack}.
(16 Mar 1997)
card
1. A circuit board.
2. A {punched card}.
3. <hypertext> An alternative term for a {node} in a system
(e.g. {HyperCard}, {Notecards}) in which the node size is
limited.
Cardbus
<hardware> The 32 bit version of the {PCMCIA} (PC Card) {bus}.
[Spec?]
(20 Aug 1996)
cardinality
<mathematics> The number of elements in a set. If two sets
have the same number of elements (i.e. there is a {bijection}
between them) then they have the same cardinality. A
cardinality is thus an {isomorphism class} in the {category}
of sets.
{aleph 0} is defined as the cardinality of the first
{infinite} {ordinal}, {omega} (the number of {natural
number}s).
(29 Mar 1995)
cardinal number
The {cardinality} of some set.
CARDS
Central Archive for Reusable Defense Software of the DoD.
card walloper
An {EDP} programmer who grinds out {batch program}s that do
stupid things like print people's paychecks. Compare {code
grinder}. See also {punched card}, {eighty-column mind}.
Career Limiting Move
(CLM, Sun) 1. An action endangering one's future prospects of
getting plum projects and raises and possibly one's job: "His
Halloween costume was a parody of his manager. He won the
prize for "best CLM"."
2. Denotes extreme severity of a bug, discovered by a customer
and obviously missed earlier because of poor testing: "That's
a CLM bug!"
(16 Dec 1994)
caret
^
Common: hat; control; uparrow; caret; {ITU-T}: circumflex.
Rare: chevron; {INTERCAL}: shark (or shark-fin); to the ("to
the power of"); fang; pointer (in Pascal).
careware
/keir'weir/ (Or "{charityware}") {Shareware} for which either
the author suggests that some payment be made to a nominated
charity or a levy directed to charity is included on top of
the distribution charge.
Compare {crippleware}.
(16 Dec 1994)
cargo cult programming
A style of (incompetent) programming dominated by ritual
inclusion of code or program structures that serve no real
purpose. A cargo cult programmer will usually explain the
extra code as a way of working around some bug encountered in
the past, but usually neither the bug nor the reason the code
apparently avoided the bug was ever fully understood (compare
{shotgun debugging}, {voodoo programming}).
The term "cargo cult" is a reference to aboriginal religions
that grew up in the South Pacific after World War II. The
practices of these cults centre on building elaborate mockups
of aeroplanes and military style landing strips in the hope of
bringing the return of the god-like aeroplanes that brought
such marvelous cargo during the war. Hackish usage probably
derives from Richard Feynman's characterisation of certain
practices as "cargo cult science" in his book "Surely You're
Joking, Mr. Feynman" (W. W. Norton & Co, New York 1985, ISBN
0-393-01921-7).
Caribou CodeWorks
<company> The company which sells {QTRADER}.
Director of Marketing: Norm Larsen <wwcoinc@winternet.com>.
(05 Nov 1995)
Carl Friedrich Gauss
<person> A German mathematician (1777 - 1855), one of all time
greatest. Gauss discovered the {method of least squares} and
{Gaussian elimination}.
Gauss was something of a child prodigy; the most commonly told
story relates that when he was 10 his teacher, wanting a rest,
told his class to add up all the numbers from 1 to 100. Gauss
did it in seconds, having noticed that 1+...+100 = 100+...+1 =
(101+...+101)/2.
He did important work in almost every area of mathematics.
Such eclecticism is probably impossible today, since further
progress in most areas of mathematics requires much hard
background study.
Some idea of the range of his work can be obtained by noting
the many mathematical terms with "Gauss" in their names. E.g.
{Gaussian elimination} ({linear algebra}); {Gaussian primes}
(number theory); {Gaussian distribution} (statistics); {Gauss}
[unit] (electromagnetism); {Gaussian curvature} (differential
geometry); {Gaussian quadrature} (numerical analysis);
{Gauss-Bonnet formula} (differential geometry); {Gauss's
identity} ({hypergeometric functions}); {Gauss sums} ({number
theory}).
His favourite area of mathematics was {number theory}. He
conjectured the {Prime Number Theorem}, pioneered the {theory
of quadratic forms}, proved the {quadratic reciprocity
theorem}, and much more.
He was "the first mathematician to use {complex numbers} in a
really confident and scientific way" (Hardy & Wright, chapter
12).
He nearly went into architecture rather than mathematics; what
decided him on mathematics was his proof, at age 18, of the
startling theorem that a regular N-sided polygon can be
constructed with ruler and compasses if and only if N is a
power of 2 times a product of distinct {Fermat primes}.
(10 Apr 1995)
Carnegie Mellon University
(CMU) in Pittsburgh, Pennsylvania. {School of Computer Science
(http://www.cs.cmu.edu/Web/FrontDoor.html)}.
Carriage Return
<character> (CR, Control-M, {ASCII} 13) The character which
causes the {cursor} to move to the left margin, often used
with {line feed} to start a new line of output.
Encoded in {C} and {Unix} as "\r".
(24 Jun 1996)
carrier scanner
<security> (Or "wardialer") A program which uses a {modem} to
dial a series of phone numbers (say, from 770-0000 to
770-9999), and keeps a log of what phone numbers answer with a
modem {carrier}. The results of such a search were generally
used by people looking to engage in {random} mischief in
{random} machines.
Since the 1980s, wardialers have generally fallen into disuse,
partly because of easily available "{caller ID}" technology,
partly because fax machines are now in wide use and would
often be logged as a {carrier} by a wardialer, and partly
because there are so many new and more interesting venues for
computerised mischief these days.
(16 Mar 1997)
carrier signal
<communications> A continuous signal of a single frequency
capable of being modulated by a second, data-carrying signal.
In radio communication, the two common kinds of modulation are
{amplitude modulation} and {frequency modulation}.
(01 Mar 1995)
Cartesian product
<mathematics> (After Renee Descartes, French philosper and
mathematician) The Cartesian product of two sets A and B is
the set
A x B = {(a, b) | a in A, b in B}.
I.e. the product set contains all possible combinations of one
element from each set. The idea can be extended to products
of any number of sets.
If we consider the elements in sets A and B as points along
perpendicular axes in a two-dimensional space then the
elements of the product are the "{Cartesian coordinates}" of
points in that space.
See also {tuple}.
(01 Mar 1995)
CAS
{Column Address Strobe}
CAS 8051 Assembler
An experimental one-pass {assembler} for the 8051 with
{C}-like syntax by Mark Hopkins. Most features of a modern
assembler included except {macro}s (soon to be added).
Requires an {ANSI-C} compiler. Ported to {MS-DOS}, {Ultrix},
{Sun4}. (July 1993).
Version 1.2. Assembler/linker, disassembler, documentation,
examples.
{(ftp://lyman.pppl.gov/pub/8051/assem)},
{(ftp://nic.funet.fi/pub/microprocs/MCS-51/csd4-archive/assem)}.
{Other software tools and applications
(ftp://nic.funet.fi/pub/compilers/8051/)}.
(26 Jan 1995)
cascade
1. A huge volume of spurious error-message output produced by
a compiler with poor error recovery. Too frequently, one
trivial syntax error (such as a missing ")" or "}") throws the
parser out of synch so that much of the remaining program text
is interpreted as garbaged or ill-formed.
2. A chain of {Usenet} followups, each adding some trivial
variation or riposte to the text of the previous one, all of
which is reproduced in the new message; an {include war} in
which the object is to create a sort of communal graffito.
CASE
1. {Computer Aided Software Engineering}.
2. {Common Application Service Element}.
case
1. <programming> {switch statement}.
2. <character> Whether a character is a capital letter ("upper
case" - ABC..Z) or a small letter ("lower case" - abc..z).
The term case comes from the printing trade when the use of
moving type was invented in the early Middle Ages (Caxton or
Gutenberg?) and the letters for each {font} were stored in a
box with two sections (or "cases"), the upper case was for the
capital letters and the lower case was for the small letters.
The Oxford Universal Dictionary of Historical Principles (Feb
1993, reprinted 1952) indicates that this usage of "case" (as
the box or frame used by a compositor in the printing trade)
was first used in 1588.
(01 Mar 1996)
case and paste
<programming> (From "{cut and paste}") The addition of a new
{feature} to an existing system by selecting the code from an
existing feature and pasting it in with minor changes. Common
in telephony circles because most operations in a telephone
switch are selected using "case" statements. Leads to
{software bloat}.
In some circles of {Emacs} users this is called "programming
by Meta-W", because Meta-W is the Emacs command for copying a
block of text to a {kill buffer} in preparation to pasting it
in elsewhere. The term is condescending, implying that the
programmer is acting mindlessly rather than thinking carefully
about what is required to integrate the code for two similar
cases.
At {DEC}, this is sometimes called "clone-and-hack" coding.
(01 Mar 1996)
case based reasoning
<artificial intelligence> (CBR) A technique for problem
solving which looks for previous examples which are similar to
the current problem. This is useful where {heuristic}
{knowledge} is not available.
There are many situations where experts are not happy to be
questioned about their knowledge by people who want to write
the knowledge in rules, for use in {expert systems}. In most
of these situations, the natural way for an expert to describe
his or her knowledge is through examples, stories or cases
(which are all basically the same thing). Such an expert will
teach trainees about the expertise by apprenticeship, i.e. by
giving examples and by asking the trainees to remember them,
copy them and adapt them in solving new problems if they
describe situations that are similar to the new problems. CBR
aims to exploit such knowledge.
Some key research areas are efficient indexing, how to define
"similarity" between cases and how to use temporal
information.
(28 May 1996)
CASE Data Interchange Format
(CDIF) An emerging standard for interchange of data between
{CASE} tools.
(03 Nov 1994)
CASE framework
A set of products and conventions that allow CASE tools to be
integrated into a coherent environment.
case insensitive
<text> Opposite of {case sensitive}.
(13 Jan 1996)
Case Integration Services
(CIS) A committee formed to discuss {CASE} tool integration
standards related to {ATIS}.
(25 Oct 1994)
CASE*Method
An analysis and design method from {Oracle} targeted at
information management applications.
(28 Oct 1994)
case sensitive
<text> A property of a text matching operation which
distinguishes upper-{case} (capital) letters from lower case.
Case sensitivity is relevant in areas including: text editors
(many default to case insensitive searching but case sensitive
searching is occasionally more useful); {operating systems}
({MS-DOS} filenames are case insensitive, {Unix} filenames are
case sensitive); programming (most programming languages
distiguish between case in the names of {identifiers}), and
addressing ({Internet} {domain names} are case insensitive but
{RFC 822} local {mailbox} names are case sensitive).
(13 Jan 1996)
CASE SOAP III
Version of SOAP assembly language for IBM 650. Listed in
CACM 2(5):16 (May 1959).
case statement
{switch statement}
CASE tools
Software tools to help in the application of CASE methods to a
software project.
cashe
<spelling> Misspelling of "{cache}".
(13 Dec 1996)
CAST
{Computer Aided Software Testing}
cast
An {explicit type conversion} in {C}. For example, to convert
an integer (usually 32 bits) to a char (usually 8 bits) we
might write:
int i = 42;
char *p = &buf;
*p = (char) i;
The expression "(char)" casts i to char type. Casts
(including this one) are often not strictly necessary, due to
automatic {coercion}s performed by the compiler, but can be
used to make the conversion obvious and to avoid warning
messages.
(16 Feb 1995)
casters-up mode
[IBM, probably from slang belly up] Yet another synonym for
"broken" or "down". Usually connotes a major failure. A
system (hardware or software) which is "down" may be already
being restarted before the failure is noticed, whereas one
which is "casters up" is usually a good excuse to take the
rest of the day off (as long as you're not responsible for
fixing it).
casting the runes
What a {guru} does when you ask him or her to run a particular
program and type at it because it never works for anyone else;
especially used when nobody can ever see what the guru is
doing different from what J. Random Luser does. Compare
{incantation}, {runes}, {examining the entrails}; also see the
{AI koan} about Tom Knight.
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).
cat
<tool> (From "catenate") {Unix}'s command which copies one or
more entire files to the screen or some other output sink
without pause.
See also {dd}, {BLT}.
Among {Unix} fans, cat is considered an excellent example of
user-interface design, because it delivers the file contents
without such verbosity as spacing or headers between the files
(the {pr} command can be used to do this), and because it does
not require the files to consist of lines of text, but works
with any sort of data.
Among Unix haters, cat is considered the {canonical} example
of *bad* user-interface design, because of its woefully
unobvious name. It is far more often used to {blast} a file
to standard output than to concatenate files. The name "cat"
for the former operation is just as unintuitive as, say,
LISP's {cdr}.
Of such oppositions are {holy wars} made.
(29 Nov 1994)
catatonic
Describes a condition of suspended animation in which
something is so {wedged} or {hung} that it makes no response.
If you are typing on a terminal and suddenly the computer
doesn't even echo the letters back to the screen as you type,
let alone do what you're asking it to do, then the computer is
suffering from catatonia (possibly because it has crashed).
Compare {buzz}.
CATE
Computer Aided Test Engineering: CASE methods applied to
electronics testing and linked to CAE
category
A category K is a collection of objects, obj(K), and a
collection of {morphism}s (or "{arrow}s"), mor(K) such that
1. Each morphism f has a "typing" on a pair of objects A, B
written f:A->B. This is read 'f is a morphism from A to B'.
A is the "source" or "{domain}" of f and B is its "target" or
"{co-domain}".
2. There is a {partial function} on morphisms called
{composition} and denoted by an {infix} ring symbol, o. We
may form the "composite" g o f : A -> C if we have g:B->C and
f:A->B.
3. This composition is associative: h o (g o f) = (h o g) o f.
4. Each object A has an identity morphism id_A:A->A associated
with it. This is the identity under composition, shown by the
equations id_B o f = f = f o id_A.
In general, the morphisms between two objects need not form a
set (to avoid problems with {Russell's paradox}). An example
of a category is the collection of {set}s where the objects
are sets and the morphisms are functions.
Sometimes the composition ring is omitted. The use of
capitals for objects and lower case letters for morphisms is
widespread but not universal. Variables which refer to
categories themselves are usually written in a script font.
cathode ray tube
<hardware> (CRT) An electrical device for displaying images by
exciting phosphor dots with a scanned electron beam. CRTs are
found in computer {VDU}s and {monitors}, televisions and
oscilloscopes. The first commercially practical CRT was
perfected on 29 January 1901 by Allen B DuMont.
A large glass envelope containing a negative electrode (the
cathode) emits electrons (formerly called "cathode rays") when
heated, as in a {vacuum tube}. The electrons are accelerated
across a large voltage gradient towards the flat surface of
the tube (the screen) which is covered with phosphor. When an
electron strikes the phosphor, light is emitted. The electron
beam is deflected by electromagnetic coils around the outside
of the tube so that it scans across the screen, usually in
horizontal stripes. This scan pattern is known as a {raster}.
By controlling the current in the beam, the brightness at any
particular point (roughly a "{pixel}") can be varied.
Different phosphors have different "{persistence}" - the
length of time for which they glow after being struck by
electrons. If the scanning is done fast enough, the eye sees
a steady image, due to both the persistence of the phospor and
of the eye itself. CRTs also differ in their {dot pitch},
which determines their spatial {resolution}, and in whether
they use {interlace} or not.
(17 Nov 1994)
CATIA
<tool> An {IBM} CAD/CAM product used heavily in the auto and
aerospace industries. It runs on the IBM {RS/6000} and {HP}
platforms.
(13 Jan 1996)
C/ATLAS
<language> A DoD test language. It is a variant of {ATLAS}.
(01 May 1995)
CATNIP
{Common Architecture for Next Generation Internet Protocol}
CATO
FORTRAN-like CAI language for PLATO system on CDC 1604. "CSL
PLATO System Manual", L.A. Fillman, U Illinois, June 1966.
cause-effect graphing
<programming> A testing technique that aids in selecting, in a
systematic way, a high-yield set of test cases that logically
relates causes to effects to produce test cases. It has a
beneficial side effect in pointing out incompleteness and
ambiguities in specifications.
(10 May 1996)
CAYLEY
<mathematics, tool> A {symbolic mathematics} system for {group
theory} written by John Cannon of the {University of Sydney},
Australia in 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.
E-mail: <cayley@maths.su.oz.au>.
(12 Apr 1995)
cb
{C Beautifier}
CBASIC
A {BASIC} compiler by Gordon Eubanks, now at {Symantec}. It
evolved from/into {EBASIC}.
(29 Nov 1994)
C-BC
A {strongly typed} version of {BC} by Mark Hopkins, with
expanded {C}-like {syntax}, more base types and the ability to
form {array} and pointer types of any dimension and to
allocate/free arrays at run-time.
Most {POSIX-BC} features are supported, except that functions
must be declared consistently and declared before first use.
String handling is slightly different. It requires and
{ANSI-C} compiler and runs under {MS-DOS} or {Unix}.
Version 1.1.
Posted to {alt.sources} 10 Apr 1993.
(23 Aug 1993)
C Beautifier
(cb) A {Unix} tool for reformatting {C} {source} code.
{Unix manual page}: cb(1).
CBIR
<image> {content-based information retrieval}.
(23 Nov 1995)
CBN
{call-by-name}
CBR
{case based reasoning}
CBT
{Computer-Based Training}
CBV
{call-by-value}
cbw
{Crypt Breakers Workbench}
CC++
{Compositional C++}
C/C++
1. {Borland C/C++}.
2. {Watcom C/C++}.
3. Either {C} or {C++}.
(06 Apr 1996)
CCalc
A {symbolic mathematics} system for {MS-DOS}, available from
{Simtel}.
(12 Apr 1995)
CCD
{Charge-Coupled Device}
CCIRN
Coordinating Committee for Intercontinental Research Networks.
CCITT
Commite' Consultatif International de Telegraphique et
Telephonique. (International consultative committee on
telecommunications and Telegraphy).
CCITT changed its name to {ITU-T} on 1 March 1993.
(03 Nov 1994)
CCITT HIgh-Level Language
<language> (CHILL) A {real-time} language widely used in
telecommunications. CHILL was developed in the 1970s and
improved in 1984, 1988, 1992, and 1996. It is used in several
countries including Germany, Norway, Brasil, and South Korea.
{Cygnus} are developing a compiler based on {gcc}.
{(http://www1.informatik.uni-jena.de/languages/chill/chill.htm)}.
["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.
ISO-9496 (1988?)].
(20 Jan 1997)
CCL
1. Coral Common LISP.
2. Computer Control Language. English-like query language
based on COLINGO, for IBM 1401 and IBM 1410.
CCLU
Cambridge CLU. {CLU} extended to support {concurrency},
distributed programming and {remote procedure call}, by
G. Hamilton et al at {CUCL}.
E-mail: Jean Bacon <jmb@cl.cam.ac.uk>.
(13 Oct 1994)
ccmail
It's written {cc:mail}.
cc:mail
<tool, product> Commercial {electronic mail} software by
{Lotus Corporation} for {Microsoft Windows}.
(14 Mar 1995)
CCP
{Concurrent Constraint Programming}
Not a language, but a general approach.
CCR
1. {condition code register}.
2. (Database) {concurrency control and recovery}.
CCS
1. <networking> {Common Communication Services}.
2. <language, parallel> {Calculus of Communicating Systems}.
3. <history> {Computer Conservation Society}.
4. <storage, standard> {Common Command Set}.
(23 Mar 1997)
CCSP
{Contextually Communicating Sequential Processes}
CCTA
The Government Centre for Information Systems.
(Originally "Central Computer and Telecommunications Agency").
CCTA is part of the Office of Public Service and Science,
which works to improve government's services to the public.
They are responsible for stimulating and promoting the
effective use of Information Systems in support of the
efficient delivery of business objectives and improved quality
of services by the public sector.
CCTA had to change its name as it was not an agency in the
"Next Steps" sense. The letters were retained as customers
were familiar with them.
{Home (http://www.open.gov.uk/)}
E-mail: <info@open.gov.uk>.
Address: Norwich, UK.
(18 Jan 1995)
CD
{Compact Disc}
CDA
1. <file format> {Compound Document Architecture}.
2. <law> {Communications Decency Act}.
CDC
{Control Data Corporation}
CDDI
{Copper Distributed Data Interface}
CDD/Plus
{DEC}'s {CASE} {repository}.
CDE
1. C Development environment from {IDE}.
2. {Common Desktop Environment}.
3. {Co-operative Development Environment}.
(11 Jul 1996)
CDF
Common Data Format. A library and toolkit for
multi-dimensional data sets.
CD-i
{Compact Disc interactive}
CDIF
{CASE Data Interchange Format}
CDL
1. Computer Definition [Design?] Language. A hardware
description language. "Computer Organisation 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, 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].
CDM
{Content Data Model}
CDMA
{Code Division Multiple Access}
CDP1802
{RCA 1802}
CDPD
{Cellular Digital Packet Data}
cdr
/ku'dr/ or /kuh'dr/ [LISP] To skip past the first item from a
list of things (generalised from the LISP operation on binary
tree structures, which returns a list consisting of all but
the first element of its argument). In the form "cdr down",
to trace down a list of elements: "Shall we cdr down the
agenda?" Usage: silly. See also {loop through}.
Historical note: The instruction format of the IBM 7090 that
hosted the original LISP implementation featured two 15 bit
fields called the "address" and "decrement" parts. The term
"cdr" was originally "Contents of Decrement part of Register".
Similarly, "car" stood for "Contents of Address part of
Register".
The cdr and car operations have since become bases for
formation of compound metaphors in non-LISP contexts. GLS
recalls, for example, a programming project in which strings
were represented as linked lists; the get-character and
skip-character operations were of course called CHAR and CHDR.
CD-R
{Compact Disc Recordable}
CD-ROM
{Compact Disc Read-Only Memory}
CD-ROM drive
{Compact Disc Read-Only Memory}
CDS
{Concrete Data Structure}
cd tilde
/C-D til-d*/ To go home. From the {Unix} {C shell} and
Korn-shell command "cd ~", which takes one to one's "$HOME"
directory. "cd" with no arguments does the same thing.
(28 Oct 1994)
Cecil
AN {object-oriented} language combining {multi-method}s with a
classless object model, object-based {encapsulation} and
optional {static type checking}. It distinguishes between
{subtyping} and {code inheritance}. Includes both explicit
and implicit parameterisation of objects, types, and methods.
{(ftp://cs.washington.edu/pub/chambers/cecil-spec.ps.Z)}
["The Cecil Language: Specification and Rationale",
C. Chambers, TR 93-03-05, U Wash (Mar 1993)].
(28 Oct 1994)
Cedar
A superset of {Mesa}, from {Xerox PARC}, adding {garbage
collection}, {dynamic type}s and a universal pointer type (REF
ANY). Cedar is a large complex language designed for custom
Xerox hardware and the Cedar {operating system}/environment.
Data types are {atom}s, lists, ropes ("industrial strength"
strings), conditions. Multi-processing features include
{thread}s, {monitor}s, {signal}s and catch phrases. It was
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)].
(26 Jan 1995)
CEEMAC+
Graphics language for DOS 3.3 on {Apple II}.
CEI-PACT
Central European Initiative on Parallel Computation.
CELIP
A cellular language for {image processing}.
["CELIP: A cellular Language for Image Processing",
W. Hasselbring <willi@informatik.uni-essen.de>, Parallel
Computing 14:99-109 (1990)].
(05 Dec 1994)
cell
<networking> {ATM}'s term for a {packet}.
(21 Aug 1996)
Cellang
See {Cellular}.
CELLAS
CELLular ASsemblies.
A {concurrent} {block-structured} language.
[Mentioned in "Attribute Grammars", LNCS 323, p.97].
(05 Dec 1994)
Cello
{World-Wide Web} {browser} {client} for {IBM PC}s. Runs under
{Microsoft Windows}.
CELLSIM
A program for modeling populations of biological cells.
["CELLSIM II User's Manual", C.E. Donaghey, U Houston (Sep
1975)].
(05 Dec 1994)
Cellular
A system for {cellular automata} programming by J Dana Eckart
<dana@rucs.faculty.cs.runet.edu> Version 2.0 includes a
{byte-code compiler}, {run-time system} and a viewer.
Posted to comp.sources.Unix, volume 26.
See also {Cellang}.
(03 Apr 1993)
cellular automata
{cellular automaton}
cellular automaton
<algorithm, parallel> (CA, plural "- automata") A regular
spatial lattice of "cells", each of which can have any one of
a finite number of states. The state of all cells in the
lattice are updated simultaneously and the state of the entire
lattice advances in discrete time steps. The state of each
cell in the lattice is updated according to a local rule which
may depend on the state of the cell and its neighbors at the
previous time step.
Each cell in a cellular automaton could be considered to be a
{finite state machine} which takes its neighbours' states as
input and outputs its own state.
The best known example is J.H. Conway's game of {Life}.
{FAQ
(http://alife.santafe.edu/alife/topics/cas/ca-faq/ca-faq.html)}.
{Usenet} newsgroups: {news:comp.theory.cell-automata},
{news:comp.theory.self-org-sys}.
(03 Mar 1995)
Cellular Digital Packet Data
(CDPD) A wireless standard providing two-way, 19.2 kbps
{packet} data transmission over exisiting {cellular telephone}
channels.
(05 Dec 1994)
Cellular Neural Network
<architecture> (CNN) The CNN Universal Machine is a low cost,
low power, extremely high speed {supercomputer} on a chip. It
is at least 1000 times faster than equivalent {DSP} solutions
of many complex {image processing} tasks. It is a stored
program supercomputer where a complex sequence of image
processing {algorithm}s is programmed and downloaded into the
chip, just like any digital computer. Because the entire
computer is integrated into a chip, no signal leaves the chip
until the image processing task is completed.
Although the CNN universal chip is based on analogue and logic
operating principles, it has an on-chip analog-to-digital
input-output interface so that at the system design and
application perspective, it can be used as a digital
component, just like a DSP. In particular, a development
system is available for rapid design and prototyping.
Moreover, a {compiler}, an {operating system}, and a
{user-friendly} CNN {high-level language}, like the {C}
language, have been developed which makes it easy to implement
any image processing algorithm.
[Professor Leon Chua, University of California at Berkeley].
(27 Apr 1995)
CELP
<language> Computationally Extended Logic
Programming.
["Computationally Extended Logic Programming", M.C. Rubenstein
et al, Comp Langs 12(1):1-7 (1987)].
(27 Apr 1995)
CEN
Conseil Européen pour la Normalisation.
A body coordinating {standard}isation activities in the EEC
and EFTA countries.
(14 Dec 1994)
CENELEC
CEN-electricite.
central office
<communications> The place where telephone companies terminate
customer lines and locate switching equipment to interconnect
those lines with other networks.
(20 Mar 1995)
central processing unit
<architecture, processor> (CPU, processor) The part of a
computer which controls all the other parts. The CPU fetches
instructions from memory and decodes them. This may cause it
to transfer data to or from memory or to activate
{peripherals} to perform input or output.
A {parallel computer} has several CPUs which may share other
resources such as memory and peripherals.
The {CPU Info Center} lists many kinds of CPU.
(30 Oct 1996)
Centronics
A parallel interface for printers, found on many
{microcomputer}s.
[Pin-out? Origin?]
(16 Feb 1995)
Centrum voor Wiskunde en Informatica
(CWI, Centre for Mathematics and Computer Science) An
independent research institute active in the fields of
mathematics and computer science. CWI also aims to transfer
new knowledge in these fields to society, trade and industry
CWI is funded for 70 percent by NWO, the National Organisation
for Scientific Research. The remaining 30 percent is obtained
through national and international programmes and contract
research commissioned by industry.
Address: Kruislaan 413, 1098 SJ Amsterdam, The Netherlands;
P.O.Box 94079, 1090 GB Amsterdam, The Netherlands.
Telephone: +31 (20) 5929 333.
{Home (http://www.cwi.nl/)}
{(ftp://ftp.cwi.nl/pub/)}.
century meltdown
{Year 2000}
cepstra
{cepstrum}
cepstrum
<mathematics> (Coined in a 1963 paper by Bogert, Healey, and
Tukey) The {Fourier transform} of the log-magnitude spectrum:
fFt(ln( | fFt(window . signal) | ))
This function is used in {speach recognition} and possibly
elsewhere. Note that the outer transform is NOT an inverse
Fourier transform (as reported in many respectable DSP texts).
[What's it for?]
(07 Jan 1997)
CEPT
{Comite Europeen des Postes et Telecommunications}
Ceres workstation Oberon System
A complete {Oberon} compiler written in {Oberon}. Source to
most of the complete Ceres workstation Oberon System,
including the {NS32032} {code generator} is available. Less
of the low level system specific code is available.
{(ftp://neptune.ethz.ch/Oberon/)}
(14 Dec 1994)
CERN
The European Laboratory for Particle Physics.
CERNLIB
The CERN Program Library.
CERT
{Computer Emergency Response Team}
Certificate Authority
<cryptography, body> (CA) An entity that attests to the
identity of a person or an organisation. A Certificate
Authority might be an external company such as {VeriSign} that
offers certificate services or they might be an internal
organisation such as a corporate {MIS} department. The
Certificate Authority's chief function is to verify the
identity of entities and issue digital certificates attesting
to that identity.
{Netscape Certificate Server} enables an organisation to act
as its own Certificate Authority.
{(http://home.netscape.com/comprod/server_central/support/faq/certificate_faq.html#11)}.
[Connection with cryptography?]
(29 Sep 1996)
CESP
Common ESPECIALLY AI Language Inst, Mitsubishi -
{object-oriented} extension of {Prolog}, a {Unix}-based
version of {ESP}.
E-mail: <cesp-request@air.co.jp>.
(14 Dec 1994)
CESSL
CEll Space Simulation Language.
A language for simulating cellular space models.
["The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS
Dept, U Michigan (Sept 1971)].
(14 Dec 1994)
cextract
A {C} {prototype} extractor byAdam Bryant <adb@cs.bu.edu>. It
can generate {header file}s for large multi-file C programs,
and will provide an automated method for generating all of the
prototypes for all of the functions in such a program. It can
also generate a sorted list of all functions and their
locations. cextract version 1.7 works with both {ANSI C} and
{K&R C} and runs under {Unix} and {VMS}.
Posted to comp.sources.reviewed.
(03 Nov 1992)
CFD
Computational Fluid Dynamics.
A {FORTRAN}-based parallel language for the {Illiac IV}.
(29 Nov 1994)
cforth
A {Forth} {interpreter}.
Posted to comp.sources.unix volume 1.
(29 Nov 1994)
cfortran.h
A transparent, machine independent interface between {C} and
{FORTRAN} routines and global data by Burkhard Burow
<burow@vxdesy.cern.ch>. It provides {macro}s which allow the
{C} {preprocessor} to translate a simple description of a C
(Fortran) routine or global data into a Fortran (C) interface.
Version 2.6 runs on {VAX}/{VMS}/{Ultrix}, {DECstation},
{Silicon Graphics}, {IBM} {RS/6000}, {Sun}, {Cray}, {Apollo},
{HP9000}, {LynxOS}, {f2c}, {NAG f90}.
{(ftp://zebra.desy.de/cfortran/)}
It was reviewed in RS/Magazine November 1992 and a user's
experiences with cfortran.h are described in the Jan 93 issue
of Computers in Physics.
(12 Apr 1992)
CFP
1. {Constraint Functional Programming}.
2. {Communicating Functional Processes}.
3. Call For Papers (for a conference).
CFP92
{SPEC CFP92}
CGA
{Color Graphics Adapter}
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)].
(24 Oct 1994)
CGI
1. {Common Gateway Interface}.
2. A French software engineering vendor in the US.
3. {Computer Generation Incorporated}
(11 Feb 1997)
cgi-bin
{Common Gateway Interface}
CGM
{Computer Graphics Metafile}
CGOL
A package providing {ALGOL}-like surface syntax for {MACLISP}
written by V.R. Pratt in 1977.
{(ftp://mc.lcs.mit.edu/its/ai/lisp/cgol.fasl)}
["CGOL - An Alternative Exetrnal Representation for LISP
Users", V. Pratt, MIT AI Lab, Working Paper 89, 1976].
cgram
An {ANSI C} {LL1} or {LL2} {grammar} written in {Scheme} by
Mohd Hanafiah Abdullah <napi@cs.indiana.edu>. A program
(f-f-d.s) extracts the FIRST/FOLLOW/DIRECTOR sets.
{(ftp://primost.cs.wisc.edu/pub/comp.compilers/cgram-ll1.Z)}
chad
<jargon, printer> /chad/ 1. The perforated edge strips on
printer paper, after they have been separated from the printed
portion. Also called {selvage} and {perf}.
2. (Or "chaff", "computer confetti", "keypunch droppings") The
confetti-like bits punched out of {punched cards} or {paper
tape} which collected in the {chad box}.
One correspondent believes "chad" derives from the {Chadless
keypunch}.
(12 Feb 1997)
chad box
<hardware> ({IBM} called this a "chip box") A metal box about
the size of a lunchbox (or in some models a large
wastebasket), for collecting the {chad} that accumulated in
{Iron Age} {card punches}. You had to open the covers of the
card punch periodically and empty the chad box.
The {bit bucket} was notionally the equivalent device in the
{CPU} enclosure, which was typically across the room in
another great gray-and-blue box.
(20 Nov 1996)
Chadless keypunch
<hardware> (Named after its inventor) A {card punch} which cut
little U-shapes in {punched cards}, rather than punching out a
circle or rectangle. The U's made a hole when folded back.
It was clear that if the Chadless keypunch didn't make them,
then the stuff that other keypunches made had to be "{chad}".
(12 Feb 1997)
chain
1. <operating system> (From {BASIC}'s "CHAIN" statement) To
pass control to a child or successor without going through the
{operating system} {command interpreter} that invoked you.
The state of the parent program is lost and there is no
returning to it. Though this facility used to be common on
memory-limited {microcomputers} and is still widely supported
for {backward compatibility}, the jargon usage is
semi-obsolescent; in particular, {Unix} calls this {exec}.
Oppose the more modern "{subshell}".
2. <programming> A series of linked data areas within an
{operating system} or {application program}. "Chain rattling"
is the process of repeatedly running through the linked data
areas searching for one which is of interest. The implication
is that there are many links in the chain.
3. <theory> A possibly infinite, non-decreasing sequence of
elements of some {total ordering}, S
x0 <= x1 <= x2 ...
A chain satisfies:
for all x,y in S, x <= y \/ y <= x.
I.e. any two elements of a chain are related.
("<=" is written in {LaTeX} as {\sqsubseteq}).
(03 Feb 1995)
Challenge-Handshake Authentication Protocol
<networking, security, standard, protocol> (CHAP) An
{authentication} scheme used by {PPP} servers to validate the
identity of the originator of the connection upon connection
or any time later.
CHAP applies a three-way {handshaking} procedure. After the
link is established, the server sends a "challenge" message to
the originator. The originator responds with a value
calculated using a {one-way hash function}. The server checks
the response against its own calculation of the expected hash
value. If the values match, the authentication is
acknowledged; otherwise the connection is usually terminated.
CHAP provides protection against {playback} attack through the
use of an incrementally changing identifier and a variable
challenge value. The authentication can be repeated any time
while the connection is open limiting the time of exposure to
any single attack, and the server is in control of the
frequency and timing of the challenges. As a result, CHAP
provides grater security then {PAP}.
CHAP is defined in {RFC} 1334.
(05 Mar 1996)
Chalmers University of Technology
A Swedish university founded in 1829 offering master of
science and doctoral degrees. Research is carried out in the
main engineering sciences as well as in technology related
mathematical and natural sciences. Five hundred faculty
members work in more than 100 departments organised in nine
schools. Chalmers collaborates with the University of
Göteborg.
Around 8500 people work and study on the Chalmers campus,
including around 500 faculty members and some 600 teachers and
doctoral students. About 4800 students follow the master
degree programs. Every year 700 Masters of Science in
Engineering and in Architecture graduate from Chalmers, and
about 190 PhDs and licentiates are awarded. Some 40% of
Sweden's engineers and architects are Chalmers graduates.
About a thousand research projects are in progress and more
than 1500 scientific articles and research reports are
published every year. Chalmers is a partner in 80 EC research
projects.
{Home (http://www.chalmers.se/Home-E.html)}
Address: S-412 96 Göteborg, SWEDEN.
Telephone: +46 (31) 772 10 00. Fax: +46 (31) 772 38 72.
(16 Feb 1995)
change management
A set of techniques that aid in evolution, composition and
policy management of the design and implementation of an
object or system.
(16 Feb 1995)
channel
The basic unit of discussion on {IRC}. Once one joins a
channel, everything one types is read by others on that
channel. Channels can either be named with numbers or with
strings that begin with a "#" sign and can have topic
descriptions (which are generally irrelevant to the actual
subject of discussion). Some notable channels are
"#initgame", "#hottub", and "#report". At times of
international crisis, "#report" has hundreds of members, some
of whom take turns listening to various news services and
typing in summaries of the news, or in some cases, giving
first-hand accounts of the action (e.g. Scud missile attacks in
Tel Aviv during the Gulf War in 1991).
(16 Feb 1995)
channel hopping
To rapidly switch channels on {IRC}, or a {GEnie} chat board,
just as a social butterfly might hop from one group to another
at a party. This term may derive from the TV idiom, "channel
surfing".
(29 Nov 1994)
channel op
/chan'l op/ (Or "chanop", "chop") Someone who is endowed with
privileges on a particular {IRC} {channel}. These privileges
include the right to {kick} users, to change various status
bits and to make others into CHOPs.
(30 Jan 1995)
channel service unit
(CSU) A type of interface used to connect a terminal or
computer to a digital medium in the same way that a {modem} is
used for connection to an analogue medium.
A CSU is provided by the communication carrier to customers
who wish to use their own equipment to retime and regenerate
the incoming signals. The customer must supply all of the
transmit logic, receive logic, and timing recovery in order to
use the CSU, whereas a {digital service unit} DSU performs
these functions.
(30 Jan 1995)
channel service unit/data service unit
<communications, hardware> (CSU/DSU) A device that perofrms
both the {channel service unit} (CSU) and {data service unit}
DSU functions. The Channel Service Unit (CSU) is used to
terminate a {DS1} or {DS0} (56/64 kb/s) digital circuit. It
peforms {line conditioning}, protection, {loop-back} and
timing functions. The Data Service Unit (DSU) terminates the
data circuit to the {Data Terminal Equipment} (DTE) and
converts the customer's data stream into a bi-polar format for
transmission.
(28 Feb 1995)
chanop
/chan'-op/ {channel op}.
chaos
A property of some non-linear dynamic systems which exhibit
sensitive dependence on initial conditions. This means that
there are initial states which evolve within some finite time
to states whose separation in one or more dimensions of state
space depends, in an average sense, exponentially on their
initial separation. Such systems may still be completely
{deterministic} in that any future state of the system depends
only on the initial conditions and the equations describing
the change of the system with time. It may, however, require
arbitrarily high precision to actually calculate a future
state to within some finite precision.
["On defining chaos", R. Glynn Holt
<rgholt@voyager.jpl.nasa.gov> and D. Lynn Holt
<lholt@seraph1.sewanee.edu>.
{(ftp://mrcnext.cso.uiuc.edu/pub/etext/ippe/preprints/Phil_of_Science/Holt_and_Holt.On_Defining_Chaos)}]
Fixed precision {floating-point} arithmetic, as used by most
computers, may actually introduce chaotic dependence on
initial conditions due to the accumulation of rounding errors
(which constitutes a non-linear system).
(07 Feb 1995)
CHAP
{Challenge-Handshake Authentication Protocol}
char
<programming> /keir/ or /char/; rarely, /kar/ character.
Especially used by {C} programmers, as "char" is {C}'s
typename for character data.
(29 Nov 1994)
character
<character> A component of a natural {data hierarchy} which
represents one letter or symbol of input-output with the user.
On modern architectures, letters are usually represented in a
{character set} such as {ASCII} using the least significant
seven bits of a {byte} or {word}.
(30 Oct 1995)
characteristic function
<mathematics> The characteristic function of set returns True
if its argument is an element of the set and False otherwise.
(13 Apr 1995)
character set
<character, standard> One of several standard collections of
characters, or a non-standard collection selected for a
particular need. The most widely used character set is
{ASCII}; others such as {ISO Latin 1} and {Kanji} are becoming
more common while {EBCDIC} and {Unicode} are less common.
A character set may include letters, digits, punctuation,
{control codes}, graphics, mathematical symbols, and other
signs. Each character in the set is represented by a unique
character code, which is a {binary} number used for storage
and transmission. For example, the letter "A" has code 65 in
the ASCII set. Different sets have different mappings between
codes and characters.
Some but not all character sets include an {escape character}
which indicates that the following character(s) are to be
treated specially. Escape sequences can be used to extend a
character set to include non-standard meanings within the
domain where they are defined and used, but lead to problems
when transmitted to equipment without the appropriate
software.
In order for a computer to handle a particular character set,
it must be possible to enter all the characters from the
keyboard and to display them on the screen or printer. Some
computers are able to switch between several character sets,
which allows both compatibility with other systems and the
representation of multiple languages. A few systems are
unable to use sets with more than 128 characters (see
{eight bit clean}).
A character set defines the representation of characters as
binary data whereas a {font} defines how characters appear on
the screen or printer.
(21 Jun 1996)
character set identifier
<character> (CSID) (IBM) A number that identifies a {character
set}.
(21 Mar 1995)
Charge-Coupled Device
(CCD) A semiconductor technology used to build light-sensitive
electronic devices such as cameras and image scanners. Such
devices may detect either colour or black-and-white. Each CCD
chip consists of an array of light-sensitive photocells. The
photocell is sensitised by giving it an electrical charge
prior to exposure.
(04 Jan 1995)
CHARITY
A {functional language} based purely on {category theory} by
Cockett, Spencer and Fukushima, 1990-1991.
A version for {Sun4} is available from Tom Fukushima
<fukushim@cpsc.ucalgary.ca>.
["About Charity", J.R.B. Cockett <cockett@cpcs.ucalgary.ca> et
al].
(29 Nov 1994)
charityware
/cha'rit-ee-weir`/ Synonym {careware}.
Charles Babbage
<person> The british inventor known to some as the "Father of
Computing" for his contributions to the basic design of the
computer through his {Analytical machine}. His previous
{Difference Engine} was a special purpose device intended for
the production of mathematical tables.
While he did produce prototypes of portions of the Difference
Engine, it was left to Georg and Edvard Schuetz to construct
the first working devices to the same design which were
successful in limited applications.
Babbage was born on December 26, 1791 in Teignmouth,
Devonshire UK. He entered Trinity College, Cambridge in 1814
and graduated from Peterhouse. In 1817 he received an MA from
Cambridge and in 1823 started work on the Difference Engine
through funding from the British Government. In 1827 he
published a table of {logarithms} from 1 to 108000. In 1828
he was appointed to the Lucasian Chair of Mathematics at
Cambridge (though he never presented a lecture). In 1831 he
founded the British Association for the Advancement of Science
and in 1832 he published "Economy of Manufactures and
Machinery". In 1833 he began work on the Analytical
Engine. In 1834 he founded the Statistical Society of London.
He died in 1871 in London.
Babbage also invented the cowcatcher, the dynamometer,
standard railroad gauge, uniform postal rates, occulting
lights for lighthouses, Greenwich time signals, and the
heliograph opthalmoscope. He also had an interest in cyphers
and lock-picking.
[Adapted from the text by J. A. N. Lee, Copyright September
1994].
(22 Feb 1996)
CHARM
An explicitly parallel programming language based on {C}, for
both shared and nonshared {MIMD} computers.
{(ftp://a.cs.uiuc.edu/pub/CHARM)}
Mailing list: <charm@cs.uiuc.edu>.
["The CHARM(3.2) Programming Language Manual", UIUC (Dec
1992)].
CHARM++
An {object-oriented} parallel programming system, similar to
{CHARM} but based on {C++}.
{(ftp://a.cs.uiuc.edu/pub/CHARM/Charm++)}
E-mail: Sanjeev Krishnan <sanjeev@cs.uiuc.edu>.
[TR 1796, UIUC].
(29 Nov 1994)
Charme
A language with {discrete combinatorial constraint logic}
aimed at industrial problems such as planning and
{scheduling}. Implemented in {C} at {Bull} in 1989.
Charme is an outgrowth of ideas from {CHIP}. It is
semantically {nondeterministic}, with choice and
{backtracking}, similar to {Prolog}.
E-mail: <cras@bull.fr>.
["Charme Reference Manual", AI Development Centre, Bull,
France 1990].
(15 Nov 1994)
CHARYBDIS
A {Lisp} program to display mathematical expressions. It is
related to {MATHLAB}.
[Sammet 1969, p. 522].
(15 Nov 1994)
chase pointers
1. To go through multiple levels of indirection, as in
traversing a linked list or graph structure. Used especially
by programmers in {C}, where explicit pointers are a very
common data type.
See {dangling pointer} and {snap}.
2. (Cambridge) "pointer chase" or "pointer hunt": The process
of going through a {core dump}, interactively or on a large
piece of paper printed with hex {runes}, following dynamic
data-structures. Used only in debugging.
(11 May 1995)
CHASM
CHeap ASseMbler.
A {shareware} {assembler} for {MS-DOS}.
(15 Nov 1994)
chat
{talk}
cheapernet
<networking> (Or "thinnet") A colloquial term for thin-wire
{Ethernet} ({10base2}) that uses {RG58} {coaxial cable}
instead of the full-spec "Yellow Cable".
(28 Mar 1995)
checkdigit
A one-digit {checksum}.
Checkout Test language
(CTL)
["Checkout Test Language: An Interpretive Language Designed
for Aerospace Checkout Tasks", G.S. Metsker, Proc FJCC 33(2)
(1968)].
(14 Nov 1994)
checkpoint
Saving the current state of a program and its data, including
intermediate results to disk or other {non-volatile} storage,
so that if interrupted the program could be restarted at the
point at which the last checkpoint occurred. This facility
came into popular use in {mainframe} {operating systems}s such
as {OS/360} in which programs frequently ran for longer than
the mean time between system failures. If a program run fails
because of some event beyond the program's control
(e.g. hardware or {operating system} failure) then the
processor time invested before the checkpoint will not have
been wasted.
(07 Feb 1995)
checksum
<storage, communications> A computed value which depends on
the contents of a block of data and which is transmitted or
stored along with the data in order to detect corruption of
the data. The receiving system recomputes the checksum based
upon the received data and compares this value with the one
sent with the data. If the two values are the same, the
receiver has some confidence that the data was received
correctly.
The checksum may be 8 bits (modulo 256 sum), 16, 32, or some
other size. It is computed by summing the bytes or words of
the data block ignoring {overflow}. The checksum may be
negated so that the total of the data words plus the checksum
is zero.
{Internet} {packets} use a 32 bit checksum.
See also {digital signature}, {cyclic redundancy check}.
[Is a checksum the same as a CRC?]
(01 Mar 1996)
chemist
(Cambridge) Someone who wastes computer time on {number
crunching} when you'd far rather the computer were doing
something more productive, such as working out anagrams of
your name or printing Snoopy calendars or running {life}
patterns. May or may not refer to someone who actually
studies chemistry.
(07 Feb 1995)
Chen
{Peter Chen}
CHEOPS
A satellite-based batch data dissemination project between
{CERN} and member state institutes.
Chernobyl packet
/cher-noh'b*l pak'*t/ A network packet that induces a
{broadcast storm} and/or {network meltdown}, in memory of the
April 1986 nuclear accident at Chernobyl in Ukraine. The
typical scenario involves an IP Ethernet datagram that passes
through a gateway with both source and destination Ether and
IP address set as the respective broadcast addresses for the
subnetworks being gated between. Compare {Christmas tree
packet}.
chess
<games> A two-player {game} with {perfect information}.
{Usenet} newsgroup: {news:rec.games.chess}.
See also {Internet Chess Server}.
(25 Mar 1995)
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).
Chicago
{Windows 95}
chicken head
The {Commodore} Business Machines logo, which strongly
resembles a poultry part. Rendered in ASCII as "C=". With
the arguable exception of the {Amiga}, Commodore's computers
are notoriously crocky little {bitty box}es (see also
{PETSCII}). Thus, this usage may owe something to Philip
K. Dick's novel "Do Androids Dream of Electric Sheep?" (the
basis for the movie "Blade Runner"; the novel is now sold
under that title), in which a "chickenhead" is a mutant with
below-average intelligence.
chiclet keyboard
A keyboard with a small, flat rectangular or lozenge-shaped
rubber or plastic keys that look like pieces of chewing gum.
(Chiclets is the brand name of a variety of chewing gum that
does in fact resemble the keys of chiclet keyboards). Used
especially to describe the original {IBM PCjr} keyboard.
Vendors unanimously liked these because they were cheap, and a
lot of early portable and laptop products got launched using
them. Customers rejected the idea with almost equal
unanimity, and chiclets are not often seen on anything larger
than a digital watch any more.
child record
<database> A {record} lower in the hierarchical tree than a
parent record; it is also directly liked to the parent and
hierarchical {database}s.
(13 Apr 1995)
child version
A version of a version. See {change management}.
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}
Chimera
A modular, {X Window System}-based {World-Wide Web} {browser}
for {Unix}. Chimera uses the {Athena} {widget} set so {Motif}
is not needed. Chimera supports forms, inline images, {TERM},
{SOCKS}, {proxy server}s, {Gopher}, {FTP}, {HTTP} and local
file accesses. Chimera can be extended using external
programs. New {protocol}s can easily be added and alternate
image formats can be used for inline images
(e.g. {PostScript}).
Version 1.60 is available for
{(ftp://ftp.cs.unlv.edu/pub/chimera)}.
{Home (http://www.unlv.edu/chimera/)}
Chimera runs on {Sun} {SPARC} {SunOS} 4.1.x, {IBM} {RS/6000}
{AIX} 3.2.5, {Linux} 1.1.x. It should run on anything with
{X11}R[3-6], {imake} and a {C} compiler.
(08 Nov 1994)
chine nual
/sheen'yu-*l/ (MIT) The {LISP Machine} Manual, so called
because the title was wrapped around the cover so only those
letters showed on the front.
(02 Dec 1994)
Chinese Army technique
{Mongolian Hordes technique}
CHIP
1. A early system on the {IBM 1103} or 1103A.
[Listed in CACM 2(5):16 (May 1959)].
(15 Nov 1994)
2. {Constraint Handling In Prolog}.
chip
{integrated circuit}
CHIP-48
A reimplementation of {CHIP-8} for the {HP-48} calculator by
Andreas Gustafson <gson@niksula.hut.fi>.
Posted to {news:comp.sys.handhelds} in Sep 1990.
{(ftp://vega.hut.fi/pub/misc/hp48sx/asap)}
(02 Dec 1994)
CHIP-8
<games, language>
A low-level language (really a high-level {machine code})
developed at {RCA} in the late 1970s for video games on
computers using {RCA}'s {CDP1802} processor.
An {interpreter} for the {Amiga} is available by
{(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f5/ff537/CHIP8.lzh)}.
(02 Dec 1994)
chip box
{chad box}
Chip Scale Packaging
<hardware> (CSP) Surface Mount International attendees debated
chip scale technologies as system manufacturers seek new
levels of package miniaturization for chip-on-board, flip chip
and multichip modules. Technical and marketing gurus
furthered the technical debate by focussing on which chip
scale packaging schemes would be the most cost-effective for
future packages designated for high volume consumer
applications. Bare chip package supporters noted that
mainstream circuitry is readily available in known good die
(KGD) from a number of suppliers. Traditional ball grid array
packages received strong support for current high volume and
high density manufacturing needs. Chip scale packages (CSP)
provide pre-speed-sorted,pre-tested and pre-packaged die
without requiring specialized testing. CSP supporters improved
their position with ChipScale's announcement that Motorola
will license its Micro SMT packaging technology.
["Chip scale packaging gains at SMI. (Surface Mount
International)", Bernard Levine, Electronic News (1991), Sept
4, 1995 v41 n2081 p1(2)].
[But what is it?]
(09 Jul 1996)
chip set
<hardware> A collection of {integrated circuit}s that are
designed to be used together for some specific purpose.
E.g. control circuitry in an {IBM PC}.
(27 Mar 1995)
Chips & Technologies
<company> An {integrated circuit} design company. They
produce {IBM PC} {chipset}s, among other things.
Address: Silicon Valley, California, USA.
(08 Apr 1995)
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].
chmod
<file system> ("Change mode") The {Unix} command and {system
call} to change the access {permissions} of a named file.
Each file (directory, device, etc.) has nine kinds of access
which can be allowed or denied. Different permissions apply
to the owner of the file, the members of the group the file
belongs to, and all users. Each of these classes of user
(owner, group and other) can have permission to read, write or
execute the file. Chmod can also set various other mode bits
for a file or directory such as the {sticky bit} and the {set
user id} bit.
Unix {man} page: chmod
(31 Jan 1995)
CHOCS
A generalisation of {CCS}.
["A Calculus of Higher-Order Communicating Systems",
B. Thomsen, 16th POPL pp.143-154 (1989)].
choke
1. To reject input, often ungracefully. "NULs make System V's
"lpr(1)" choke." "I tried building an {EMACS} binary to use
{X}, but "cpp(1)" choked on all those "#define"s." See
{barf}, {gag}.
2. [MIT] More generally, to fail at any endeavor, but with
some flair or bravado; the popular definition is "to snatch
defeat from the jaws of victory."
chomp
<jargon> To {lose}; specifically, to chew on something of
which more was bitten off than one can. Probably related to
gnashing of teeth.
See {bagbiter}.
A hand gesture commonly accompanies this. To perform it, hold
the four fingers together and place the thumb against their
tips. Now open and close your hand rapidly to suggest a
biting action (much like what Pac-Man does in the classic
video game, though this pantomime seems to predate that). The
gesture alone means "chomp chomp" (see {Verb Doubling}). The
hand may be pointed at the object of complaint, and for real
emphasis you can use both hands at once. Doing this to a
person is equivalent to saying "You chomper!" If you point
the gesture at yourself, it is a humble but humorous admission
of some failure. You might do this if someone told you that a
program you had written had failed in some surprising way and
you felt dumb for not having anticipated it.
(01 Jun 1996)
CHOP
/chop/ [IRC] See {channel op}.
Chop
A {code generator} by Alan L. Wendt <wendt@CS.ColoState.EDU>
for the {lcc} {C} compiler {front end}. Version 0.6 is
interfaced with Fraser and Hanson's {lcc} {front end}. The
result is a {C} compiler with good code selection but no
{global optimisation}. Chop can currently compile and run
small test programs on the {VAX}. The {NS32k} and {68000}
code generators are being upgraded for lcc compatibility.
{(ftp://beethoven.cs.colostate.edu/pub/chop/0.6.tar.Z)}
["Fast Code Generation Using Automatically-Generated Decision
Trees", ACM SIGPLAN '90 PLDI].
(28 Apr 1993)
Chorus
A distributed {operating system} developed at {INRIA}.
Christmas tree
A kind of RS-232 line tester or breakout box featuring rows of
blinking red and green LEDs suggestive of Christmas lights.
Christmas tree packet
A packet with every single option set for whatever protocol is
in use. See {kamikaze packet}, {Chernobyl packet}. (The term
doubtless derives from a fanciful image of each little option
bit being represented by a different-coloured light bulb, all
turned on.)
chrome
[automotive slang via wargaming] Showy features added to
attract users but contributing little or nothing to the power
of a system. "The 3D icons in {Motif} are just chrome, but
they certainly are *pretty* chrome!" Distinguished from
{bells and whistles} by the fact that the latter are usually
added to gratify developers' own desires for featurefulness.
Often used as a term of contempt.
chroot
<operating system> The {UNIX} command to make the {root
directory} (/) become something other than its default for the
lifetime of the current process. It can only be run by
privileged users and is used to give a process (commonly a
network server such as {FTP} or {HTTP}) access to a restricted
portion of the {file system}.
The new root contains copies of all the essential files and
directories, e.g. /lib, /dev/tty, /tmp.
(08 Dec 1996)
CHRP
{PowerPC Platform}
chug
<jargon> To run slowly; to {grind} or {grovel}. "The disk is
chugging like crazy."
(25 Mar 1995)
Church, Alonzo
{Alonzo Church}
Church integer
A representation of integers as functions invented by {Alonzo
Church}, inventor of {lambda-calculus}. The integer N is
represented as a {higher-order function} which applies a given
function N times to a given expression. In the {pure
lambda-calculus} there are no constants but numbers can be
represented by Church integers.
A {Haskell} function to return a given Church integer could be
written:
church n = c
where
c f x = if n == 0 then x else c' f (f x)
where
c' = church (n-1)
A function to turn a Church integer into an ordinary integer:
unchurch c = c (+1) 0
See also {von Neumann integer}.
(29 Nov 1994)
Church of the SubGenius
<body, humour> A mutant offshoot of {Discordianism} launched
in 1981 as a spoof of fundamentalist Christianity by the
"Reverend" Ivan Stang, a brilliant satirist with a gift for
promotion. Popular among hackers as a rich source of bizarre
imagery and references such as "Bob" the divine
drilling-equipment salesman, the Benevolent Space Xists, and
the Stark Fist of Removal. Much SubGenius theory is concerned
with the acquisition of the mystical substance or quality of
{slack}.
{Home (http://sunsite.unc.edu/subgenius/slack.html)}
(02 Jan 1996)
Church-Rosser Theorem
This property of a {reduction} system states that if an
expression can be reduced by zero or more reduction steps to
either expression M or expression N then there exists some
other expression to which both M and N can be reduced. This
implies that there is a unique {normal form} for any
expression since M and N cannot be different normal forms
because the theorem says they can be reduced to some other
expression and normal forms are irreducible by definition. It
does not imply that a normal form is reachable, only that if
reduction terminates it will reach a unique normal form.
(25 Jan 1995)
CI$
CIS, {CompuServe Information Service}. Also {Compu$erve}.
The dollar sign refers to CompuServe's rather steep line
charges. Often used in {sig block}s just before a CompuServe
address.
(25 Jan 1995)
CICERO
Control Information system Concepts based on Encapsulated
Real-time Objects.
A {CERN} {DRDC} proposal.
(25 Jan 1995)
CICS
{Customer Information Control System}
CID
{Caller ID}
CIDR
{Classless Inter-Domain Routing}
CIEL
An {object-oriented} {Prolog}-like language.
["CIEL: Classes et Instances En Logique", M. Gandriau, Thesis
ENSEEIHT (1988)].
(25 Jan 1995)
CIF
Caltech Intermediate Form.
Geometry language for VLSI design, in which the primitives are
coloured rectangles.
["Introduction to VLSI Systems", Mead & Conway, A-W 1980,
Section 4.5].
(25 Jan 1995)
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
1. {Component Integration Laboratories}.
2. 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)].
(24 Oct 1994)
CIM
{Computer Integrated Manufacturing}
CIMS PL/I
Courant Institute of Mathematical Sciences PL/I. A PL/I
subset.
["CIMS PL/I", P.W. Abrahams, Courant Inst].
Cinderella Book
<publication> "Introduction to Automata Theory, Languages, and
Computation", by John Hopcroft and Jeffrey Ullman,
(Addison-Wesley, 1979). So called because the cover depicts a
girl (putatively Cinderella) sitting in front of a Rube
Goldberg device and holding a rope coming out of it. On the
back cover, the device is in shambles after she has
(inevitably) pulled on the rope.
See also: {book titles}.
(03 Dec 1996)
CINT92
{SPEC CINT92}
C-Interp
An {interpreter} for a small subset of {C}, originally part of
a communications package.
{(ftp://oac2.hsc.uth.tmc.edu/Mac/Misc/C_Interp.sit)}. E-mail:
Chuck Shotton <cshotton@oac.hsc.uth.tmc.edu>.
(14 May 1993)
ciphertext
<cryptography> Text which has been encrypted by some
{encryption} system.
Oppose {plaintext}.
(27 Oct 1994)
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].
CIR
{Committed Information Rate}
CIRCAL
["CIRCAL and the Representation of Communication, Concurrency
and TIme", G.J. Mitre, ACM TOPLAS 7(2):270-298 (1985)].
circuit switched
Using {circuit switching}.
circuit switching
A communications paradigm in which a dedicated communication
path is established between the sender and receiver along
which all {packet}s travel. The telephone system is an
example of a circuit switched network. Also called
{connection-oriented}. Contrast {connectionless}, {packet
switching}.
Cirrus Logic
<company> A manufacturer of {integrated circuits} including
the {Advanced RISC Machine} and display interface processors
and cards for use as {Windows accelerators} (requiring
dedicated driver software).
{Home (http://www.cirrus.com/)}.
[Other products?]
(13 Oct 1996)
CIS
1. <programming> {Case Integration Services}.
2. <networking> {Cooperative Information System}.
CISC
{Complex Instruction Set Computer}
Cisco Systems, Inc.
<company> {Ethernet} hardware manufacturers.
{Home (http://www.cisco.com/)}
Address: 170 West Tasman Drive, San Jose, CA 95134-1706, USA.
Telephone: +1 408 526 4000, +1 800 553 6387. Fax: +1 408 526
4100.
(19 Apr 1995)
CISI
A French software house.
CITRAN
{Caltech}'s answer to {MIT}'s {JOSS}.
[Sammet 1969, p.217].
CityScape
<company> A re-seller of {Internet} connections to the {PIPEX}
{backbone}.
E-Mail: <sales@cityscape.co.uk>.
Address: CityScape Internet Services, 59 Wycliffe Rd.,
Cambridge, CB1 3JE, England. Telephone: +44 (1223) 566 950.
(08 Nov 1994)
CIX
1. {Commercial Internet Exchange}.
2. {Compulink Information eXchange}.
CL
Control Language.
The batch language for {IBM RPG}/38, used in conjunction with
{RPG III}.
See also {OCL}.
(08 Nov 1994)
CLAM
<mathematics, tool> A system for {symbolic mathematics},
especially General Relativity. It was first implemented in
{ATLAS} {assembly language} and later {Lisp}.
See also {ALAM}.
["CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark,
King's College London, 1971].
(08 Nov 1994)
C Language Integrated Production System
<language> (CLIPS) A language produced by Gary Riley of NASA
{JSC} in Houston, Texas, for developing {expert system}s, with
the inferencing and representation capabilities of {OPS5} and
support for {forward chaining} rule-based, {object-oriented}
and {procedural} programming. CLIPS has a {Lisp}-like
{syntax}. It is available for {MS-DOS} and comes with source
code in {C}.
COSMIC, U Georgia, (404) 542-3265. Austin Code Works
<info@acw.com> (512) 258-0785.
Versions include CLIPS 5.1, CLIPS/Ada 4.3 and CLIPS6.0 (see
{PCLIPS}).
{Home (http://www.jsc.nasa.gov/~clips/CLIPS.html)}
E-mail: <service@cossack.cosmic.uga.edu>.
Telnet: cosmic.uga.edu, user: cosline.
{U. Michigan
(ftp://earth.rs.itd.umich.edu/mac.bin/etc/compsci/Clips/)},
{ENSMP, France (ftp://ftp.ensmp.fr/pub/clips/)}.
Mailing list: <CLIPS-LIST@UGA.BITNET>.
["Expert Systems: Principles and Programming", Joseph
Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6].
(16 Dec 1994)
Clarion
A {fourth generation language} for {MS-DOS}.
(09 Nov 1994)
CLASP
Computer Language for AeronauticS and Programming.
A {real-time} language from NASA focussing on {fixed-point}
mathematics. CLASP is a near subset of {SPL}, with some ideas
from {PL/I}.
["Flight Computer and Language Processor Study", Raymond
J. Rubey, Management Information Services, Detroit, 1971].
(13 Oct 1994)
class
1. <programming> The prototype for an {object} in an
{object-oriented language}; analogous to a {derived type} in a
{procedural language}. A class may also be considered to be a
set of objects which share a common structure and behaviour.
The structure of a class is determined by the variables which
represent the state of an object of that class and the
behaviour is given by a set of {method}s associated with the
class.
Classes are related in a {class hierarchy}. One class may be
a specialisation (a "{subclass}") of another (one of its
"{superclass}es") or it may be composed of other classes or it
may use other classes in a {client-server} relationship. A
class may be an {abstract class} or a {concrete class}.
See also {signature}.
2. <programming> See {type class}.
3. <networking> One of three types of {Internet addresses}
distinguished by their most significant bits.
3. <language> A language developed by the {Andrew Project}.
It was one of the first attempts to add {object-oriented}
features to {C}.
(01 May 1995)
class hierarchy
A set of {class}es and their interrelationships.
One class may be a specialisation (a "{subclass}" or "{derived
class}") of another which is one of its "{superclass}es" or
{base class}es.
(07 Feb 1995)
classic
<jargon> An adjective used before or after a noun to describe
the original version of something. This construction is
especially used of product series in which the newer versions
are considered worse than the older ones.
Examples include "Star Trek Classic" - the original TV series
as opposed to the films, ST The Next Generation or any of the
other spin-offs and follow-ups; or "PC Classic" - {IBM}'s
{ISA}-bus computers as opposed to the {PS/2} series.
(27 Oct 1996)
Classic-Ada
An {object-oriented} extension to {Ada}, said to be like
{Smalltalk}. It is implemented as an {Ada} {preprocessor}.
(05 Dec 1994)
classical logic
<logic> Non-{intuitionist logic}.
(13 Apr 1995)
Classic C
/klas'ik C/ (Or "C Classic", a play on "Coke Classic") The {C}
programming language as defined in the first edition of {K&R},
with some small additions. It is usually known as "{K&R C}".
The name came into use while C was being standardised by the
{ANSI X3J11} committee.
See also {classic}.
Classless Inter-Domain Routing
<networking> (CIDR) /sid*r/ A scheme which allocates blocks of
{Internet addresses} in a way that allows summarisation into a
smaller number of {routing table} entries.
A CIDR block is a block of {Internet addresses} assigned to an
{Internet Service Provider} (ISP) by the {Internic}.
CIDR was introduced to enable the use of more sophisticated
{routing} protocols such as {OSPF}.
See {RFC 1467}, {RFC 1518}, {RFC 1519} and {RFC 1520}.
[Is this true? Relation to classes?]
(06 Mar 1997)
class library
A library of reusable {class}es for use with an
{object-oriented programming} system.
(05 Dec 1994)
Class Oriented Ring Associated Language
(CORAL) A language developed by L.G. Roberts at {MIT} in 1964
for graphical display and systems programming on the {TX-2}.
It used "rings" (circular lists) from {Sketchpad}.
["Graphical Communication and Control Languages",
L.B. Roberts, Information System Sciences: Proc Second
Congress, 1965].
[Sammet 1969, p.462].
(30 Nov 1994)
Class-Relation Method
A design technique based on the concepts of {object-oriented
programming} and the {Entity-Relationship model} from the
French company {Softeam}.
(05 Dec 1994)
Clean
<language> A {lazy} {higher-order} {purely functional
language} from the {University of Nijmegen}. Clean was
originally a subset of {Lean}, designed to be an experimental
{intermediate language} and used to study the {graph
rewriting} model. To help focus on the essential
implementation issues it deliberately lacked all {syntactic
sugar}, even {infix} expressions or {complex lists},
As it was used more and more to construct all kinds of
applications it was eventually turned into a general purpose
functional programming language, first released in May 1995.
The new language is {strongly typed} (Milner/Mycroft type
system), provides {module}s and {functional I/O} (including a
{WIMP} interface), and supports {parallel processing} and
{distributed processing} on {loosely coupled} parallel
architectures. Parallel execution was originally based on the
{PABC} {abstract machine}.
It is one of the fastest implementations of functional
languages available, partly aided by programmer {annotations}
to influence evaluation order.
Although the two variants of Clean are rather different, the
name Clean can be used to denote either of them. To
distinguish, the old version can be referred to as Clean 0.8,
and the new as Clean 1.0 or Concurrent Clean.
The current release of Clean (1.0) includes a compiler,
producing code for the {ABC} {abstract machine}, a {code
generator}, compiling the ABC code into either {object-code}
or {assembly language} (depending on the {platform}), I/O
libraries, a {development environment} (not all platforms),
and {documentation}. It is supported (or will soon be
supported) under {MacOS}, {Linux}, {OS/2}, {Windows 95},
{SunOS}, and {Solaris}.
{Home (http://www.cs.kun.nl/~clean/)}. E-mail:
<clean@cs.kun.nl>. Mailing list: <clean-request@cs.kun.nl>.
["Clean - A Language for Functional Graph Rewriting", T. Brus
et al, IR 95, U Nijmegen, Feb 1987].
["Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U
Nijmegen, Netherlands, 1989].
(08 Nov 1995)
clean
1. Used of hardware or software designs, implies "elegance in
the small", that is, a design or implementation that may not
hold any surprises but does things in a way that is reasonably
intuitive and relatively easy to comprehend from the outside.
The antonym is "grungy" or {crufty}.
2. To remove unneeded or undesired files in a effort to reduce
clutter: "I'm cleaning up my account." "I cleaned up the
garbage and now have 100 Meg free on that partition."
(12 Dec 1994)
Cleanroom
A software development approach aimed at producing software
with the minimum number of errors.
(12 Dec 1994)
CLEAR
A {specification language} based on {initial algebra}s.
["An Informal Introduction to Specification Using CLEAR",
R.M. Burstall in The Correctness Problem in Computer Science,
R.S. Boyer et al eds, Academic Press 1981, pp. 185-213].
(03 Nov 1994)
clear box testing
{white box testing}
CLEO
Clear Language for Expressing Orders.
A language developed by {ICL} in the 1960s and used until
early 1972 on {Leo} III {mainframe}s.
(03 Nov 1994)
CLHEP
A {C++} {class library} for high energy physics
{application}s.
(12 Dec 1994)
CLI
1. <operating system> {Command Line Interface}.
2. <database, standard> {Call-Level Interface}.
(04 Mar 1997)
CLiCC
A {Common Lisp} to {C} compiler by Heinz Knutzen
<hk@informatik.uni-kiel.de>, Ulrich Hoffman
<uho@informatik.uni-kiel.de> and Wolfgang Goerigk
<wg@informatik.uni-kiel.de>. CLiCC is meant to be used as a
supplement to existing {CLISP} systems for generating portable
applications. Target {C} code must be linked with CLiCC
{run-time library} to produce an executable.
Version 0.6.2 conforms to a subset of {Common Lisp} and {CLOS}
called CL_0 or CommonLisp_0 and based on {CLtL1}. It runs
with {Lucid Lisp}, {AKCL} or {CLISP}. Work on {CLtL2} and
{ANSI-CL} conformance is in progress.
{(ftp://ftp.informatik.uni-kiel.de/pub/kiel/apply/)}
(04 Jan 1994)
click
What the user does when he presses a button on a {mouse} or
other {pointing device}. This generates an event, also
specifying the screen position, which is processed by the
{window manager} or {application program}.
(14 Mar 1995)
client
A computer system or process that requests a service of
another computer system or process (a "{server}"). For
example, a {workstation} requesting the contents of a file
from a {file server} is a client of the file server.
See also {client-server}.
client-server
<programming> A common form of {distributed system} in which
software is split between {server} tasks and {client} tasks.
A client sends requests to a server, according to some
{protocol}, asking for information or action, and the server
responds. There may be either one centralised server or
several distributed ones. This model allows clients and
servers to be placed independently on nodes in a network,
possibly on different {hardware} and {operating systems}
appropriate to their function, e.g. fast server/cheap client.
Examples are the name-server/name-resolver relationship in
{DNS}, the file-server/file-client relationship in {NFS} and
the screen server/client application split in the {X Window
System}.
{Usenet} newsgroup: {news:comp.client-server}.
(11 Jun 1996)
client/server
{client-server}
client-server model
{client-server}
Client To Client Protocol
<networking> (CTCP) A type of {protocol} created to allow
structured data such as {font} information to be exchanged
between users on {IRC}. It is also used to send a query to a
user. The available CTCP commands include VERSION, FINGER,
DCC CHAT, DCC SEND, TIME, PING, ECHO, CLIENTINFO. Some
commands are not available on some IRC {client} software.
(12 Apr 1995)
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].
(12 Dec 1994)
C-Linda
The most widely used variant of {Linda}, with {C} as the base
language. It is available from Sci Comp Assocs
<linda@sca.com>.
(12 Dec 1994)
CLIP
1. {Compiler Language for Information Processing}.
2. {Common LISP in Parallel}.
CLiP
A documentation extractor by Eric W. van Ammers
<ammers@rcl.wau.nl>. CLiP recognises a particular style of
comments. This style can be adjusted to suit virtually any
source programming language and target documentation language.
CLiP was designed to be compatible with {hypertext} systems.
Version 2.1 runs on {MS-DOS}, {VAX}/{VMS} and {Unix}
{(ftp://sun01.info.wau.nl/clip/)}
(18 Nov 1993)
clipboard
<operating system> A temporary memory area, used to transfer
information within a document being edited or between
documents or between programs. The fundamental operations are
"cut" which moves data from a document to the clipboard,
"copy" which copies it to the clipboard, and "paste" which
inserts the clipboard contents into the current document in
place of the current selection.
Different {Graphical User Interfaces} vary in how they handle
the different types of data which a user might want to
transfer via the clipboard, some (e.g. the {X Window System})
support only plain text, others (e.g. {NEXTSTEP}) support
arbitrarily typed data.
(23 Aug 1996)
Clipper
1. <hardware, cryptography> An {integrated circuit} which
implements the {SkipJack} {algorithm}. The Clipper is
manufactured by the US government to encrypt telephone data.
It has the added feature that it can be decrypted by the US
government, which has tried to make the chip compulsory in the
United States. Phil Zimmerman (inventor of {PGP}) remarked,
"This doesn't even pass the sniff test" (i.e. it stinks).
{(http://www.wired.com/clipper/)}
{news:alt.privacy.clipper}
2. A compiled {dBASE} dialect from Nantucket Corp, LA.
Versions: Winter 85, Spring 86, Autumn 86, Summer 87, 4.5
(Japanese Kanji), 5.0.
(25 Mar 1995)
CLIPS
<language> {C Language Integrated Production System}.
clique
<mathematics> A {maximal} {totally connected} {subgraph}.
Given a {graph} with {nodes} N, a clique C is a {subset} of N
where every node in C is directly connected to every other
node in C (i.e. C is totally connected), and C contains all
such nodes (C is maximal). In other words, a clique contains
all, and only, those nodes which are directly connected to all
other nodes in the clique.
[Is this correct?]
(22 Sep 1996)
CLISP
1. {Conversational LISP}.
2. A {Common Lisp} implementation by Bruno Haible
<haible@ma2s2.mathematik.uni-karlsruhe.de> of {Karlsruhe
University} and Michael Stoll <michael@rhein.iam.uni-bonn.de>
of {Munich University}, both in Germany. CLISP includes an
{interpreter}, {bytecode compiler}, {run-time library} and
editor and needs only 1.5 MB of {RAM}. German and English
versions are available, French soon.
Packages running in CLISP include {PCL} and {CLX} on {Unix}
machines. A native subset of {CLOS} is included.
Version 1993/10/06 conforms to {CLtL1} and parts of {CLtL2}
and is distributed under the {GNU} {General Public License}.
CLISP runs on {Atari}, {Amiga}, {MS-DOS}, {OS/2}, {Linux},
{Sun4}, {Sun386i}, {HP90000}/800 and others.
{(ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/clisp)}
Mailing list: <listserv@ma2s2.mathematik.uni-karlsruhe.de>
(send "subscribe clisp-list").
(06 Oct 1993)
CLIX
["Overview of a Parallel Object-Oriented Language CLIX",
J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987,
pp.265-273].
(16 Dec 1994)
CLM
{Career Limiting Move}
CLNP
{ConnectionLess Network Protocol}
clobber
To overwrite, usually unintentionally: "I walked off the end
of the array and clobbered the stack."
Compare {mung}, {scribble}, {trash}, and {smash the stack}.
(16 Dec 1994)
clock
A processor's clock or one {cycle} thereof. The relative
execution times of instructions on a computer are usually
measured by number of clock cycles rather than seconds. One
good reason for this is that {clock rate}s for various models
of the computer may increase as technology improves, and it is
usually the relative times one is interested in when
discussing the {instruction set}.
(16 Dec 1994)
clock rate
The fundamental rate in {cycle}s per second at which a
computer performs its most basic operations such as adding two
numbers or transfering a value from one register to another.
The clock rate of a computer is normally determined by the
frequency of a crystal. The original {IBM PC}, circa 1981,
had a clock rate of 4.77 MHz (almost five million
cycles/second). As of 1995, {Intel}'s Pentium chip runs at
100 MHz (100 million cycles/second). The clock rate of a
computer is only useful for providing comparisons between
computer chips in the same processor family. A {IBM PC} with
an {Intel 486} {CPU} running at 50 MHz will be about twice
as fast as the same PC (the same CPU, memory and display)
running at 25 MHz. However, there are many other factors to
consider when comparing different computers. Clock rate
should not be used when comparing different computers or
different processor families. Rather, some {benchmark} should
be used. Clock rate can be very misleading, since the amount
of work different computer chips can do in one cycle varies.
For example, {RISC} CPUs tend to have simpler instructions
than {CISC} CPUs (but higher clock rates) and {pipelined}
processors execute more than one instruction per cycle.
(12 Jan 1995)
clock speed
{clock rate}
clone
1. An exact duplicate: "Our product is a clone of their
product." Implies a legal reimplementation from documentation
or by reverse-engineering. Also connotes lower price.
2. A shoddy, spurious copy: "Their product is a clone of our
product."
3. A blatant ripoff, most likely violating copyright, patent,
or trade secret protections: "Your product is a clone of my
product." This use implies legal action is pending.
4. "PC clone:" a PC-BUS/{ISA} or {EISA}-compatible 80x86-based
microcomputer (this use is sometimes spelled "klone" or
"PClone"). These invariably have much more bang per buck than
the {IBM} archetypes they resemble.
5. In the construction "Unix clone": An {operating system}
designed to deliver a {Unix}-like environment without Unix
licence fees or with additional "mission-critical" features
such as support for {real-time} programming.
(16 Dec 1994)
clone-and-hack coding
A {DEC}ism for {case and paste}.
(16 Dec 1994)
CLOS
{Common LISP Object System}
closed-box testing
{functional testing}
closed set
<mathematics> A set S is closed under an operator * if x*y is
in S for all x, y in S.
(16 Dec 1994)
closed term
<theory> A term with no {free variable}s.
(16 Dec 1994)
Clos network
A {network} topology.
[What topology?]
(16 Dec 1994)
closure
1. In a {reduction system}, a closure is a data structure that
holds an expression and an environment of variable bindings in
which that expression is to be evaluated. The variables may
be local or global. Closures are used to represent
unevaluated expressions when implementing {functional
programming language}s with {lazy evaluation}. In a real
implementation, both expression and environment are
represented by pointers.
A {suspension} is a closure which includes a flag to say
whether or not it has been evaluated. The term "{thunk}" has
come to be synonymous with "closure" but originated outside
{functional programming}.
2. In {domain theory}, given a {partially ordered set}, D and
a subset, X of D, the upward closure of X in D is the union
over all x in X of the sets of all d in D such that x <= d.
Thus the upward closure of X in D contains the elements of X
and any greater element of D. A set is "upward closed" if it
is the same as its upward closure, i.e. there is no d greater
than an element which is not an element. The downward closure
is similar but with d <= x and a downward closed set is one
for which there is no d less than an element which is not an
element.
("<=" is written in {LaTeX} as {\subseteq} and the upward
closure of X in D is written \uparrow_{D} X).
(16 Dec 1994)
closure conversion
The transformation of {continuation passing style} code so
that the only {free variables} of functions are names of other
functions.
See also Lambda lifting.
(16 Dec 1994)
Clover
<communications, protocol> A {protocoll} similar to {packet
radio} or {AMTOR}.
(03 Mar 1995)
clover key
The {Macintosh} {feature key}.
(16 Dec 1994)
CLP
1. {Cornell List Processor}.
2. {Constraint Logic Programming}.
CLP*
A derivative of {Constraint Logic Programming} (CLP).
["CLP* and Constraint Abstraction", T. Hickey, 16th POPL,
pp. 125-133, 1989].
(01 Nov 1994)
CLP(R)
Constraint Logic Programming (Real).
A {constraint logic programming} language with {real}
arithmetic {constraint}s developed by Joxan Jaffar
<joxan@watson.ibm.com> of {IBM} {TJWRC} and S. Michaylov of
{Monash University} in 1986.
The implementation contains a {byte-code compiler} and a
built-in constraint solver which deals with linear arithmetic
and contains a mechanism for delaying {nonlinear} constraints
until they become linear. Since CLP(R) is a superse of
{PROLOG}, the system is also usable as a general-purpose
{logic programming} language. There are also powerful
facilities for {meta programming} with constraints.
Significant CLP(R) applications have been published in diverse
areas such as molecular biology, finance and physical
modelling.
Version 1.2 for {Unix}, {MS-DOS} and {OS/2} is available from
the authors. It is free for academic and research purposes.
E-mail: Roland Yap <roland@bruce.cs.monash.edu.au>.
["The CLP(R) Language and System", J. Jaffar et al, IBM RR
RC16292 (#72336) (Nov 1990)].
(14 Oct 1992)
CLP(sigma*)
A {constraint logic programming} language with {regular set}s.
["CLP(sigma*): Constraint Logic Programming with Regular
Sets", C. Walinsky, Proc ICLP, 1989, pp.181-190].
(16 Dec 1994)
CLR
{Consortium for Lexical Research}
CLtL1
A report on {Common LISP}:
["Common LISP: The Language", Guy L. Steele, Digital Press
1984, ISBN 0-932376-41-X].
(16 Dec 1994)
CLtL2
A report on {Common LISP}:
["Common LISP: The Language, 2nd Edition", Guy L. Steele,
Digital Press 1990, ISBN 1-55558-041-6].
(16 Dec 1994)
CLU
CLUster.
An {object-oriented} programming language developed at {MIT}
by Liskov et al in 1974-1975.
CLU is an {object-oriented} language of the {Pascal} family
designed to support data abstraction, similar to {Alphard}.
It 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,
{cluster}s 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 conversion}s. 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}.
{Exception}s 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 variable}s and multiple assignment.
See also {Kamin's interpreters}, {clu2c}.
["CLU Reference Manual", Barbara Liskov et al, LNCS 114,
Springer 1981].
E-mail: Paul R. Johnson <prj@pm-prj.lcs.mit.edu>.
{Versions for Sun and VAX/VMS
(ftp://pion.lcs.mit.edu/pub/clu/)}. {Portable version
(ftp://mintaka.lcs.mit.edu/pub/dcurtis/)}.
(16 Dec 1994)
clu2c
A {CLU} to {C} compiler.
{(ftp://ftp.is.titech.ac.jp:/pub/clu2c/)}
E-mail: <clu2c-report@is.titech.ac.jp>.
(16 Dec 1994)
cluster
<file system> An elementary unit of allocation of a disk made
up of one or more physical {blocks}.
A {file} is made up of a whole number of possibly
non-contiguous clusters. The cluster size is a tradeoff
between space efficiency (the bigger is the cluster, the
bigger is on the average the wasted space at the end of each
file) and the length of the {FAT}.
(04 Nov 1996)
Cluster 86
A distributed {object-oriented} language by L. Shang
<lshang@inf.ethz.ch> of {Nanjing University}, ca. 1986. A
cluster is a metatype. There are versions for {MS-DOS} and
{Unix}.
["Cluster: An Informal Report", L. Shang, SIGPLAN Notices
26(1):57-76 (Jan 1991)].
(21 Dec 1994)
clustergeeking
<jargon> /kluh'st*r-gee"king/ ({CMU}) Spending more time at a
computer cluster doing CS homework than most people spend
breathing.
(21 Dec 1994)
CLUT
{colour lookup table}
CLX
<library, graphics> The {Common Lisp} library providing an
interface to the {X Window System}, equivalent to {Xlib}. It
works with {CMU Common Lisp}.
Version 5.01
{(ftp://export.lcs.mit.edu/contrib/CLX.R5.01.tar.Z)}
E-mail: <bug-clx@expo.lcs.mit.edu> (bug reports).
(26 Aug 1992)
CM
{Configuration Management}
CMA
{Concert Multithread Architecture} from {DEC}.
CMAY
["A Microkernel for Distributed Applications", R. Bagrodia et
al, Proc 5th Intl Conf Distrib Comp Sys IEEE 1985,
pp. 140-149].
(21 Dec 1994)
CMC
1. <messaging> {Computer Mediated Communication}.
2. <hardware> {Common Mezzanine Card}.
CMIP
{Common Management Information Protocol}
CMIS
{Common Management Information Services}
CML
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}.
(21 Dec 1994)
CMOS
Complementary metal oxide semiconductor.
A semiconductor fabrication technology using a combination of
n- and p-doped semiconductor material to achieve low power
dissipation. The idea is that any path through a gate through
which current can flow includes both n and p type transistors.
Only one type is turned on in any stable state so there is no
static power dissipation and current only flows when a gates
switches in order to charge the parasitic capacitance.
(21 Dec 1994)
CMS
A {code management} system from {DEC}.
(21 Dec 1994)
CMS-2
A 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)].
(21 Dec 1994)
CMU
{Carnegie Mellon University}
CMU CL
{CMU Common Lisp}
CMU Common Lisp
(CMU CL) A {public domain} "industrial strength" {Common Lisp}
programming environment. Many of the {X3J13} changes have
been incorporated into CMU CL. Wherever possible, this has
been done so as to transparently allow use of either {CLtL1}
or proposed {ANSI CL}. Probably the new features most
interesting to users are {SETF} functions, {LOOP} and the
{WITH-COMPILATION-UNIT} {macro}.
The new CMU CL compiler is called {Python}.
Version 17c includes an {incremental compiler}, profiler,
run-time support, documentation, an editor and a debugger. It
runs under {Mach} on {SPARC}, {MIPS} and {IBM PC RT} and under
{SunOS} on {SPARC}.
{(ftp://lisp-sun1.slisp.cs.cmu.edu/pub/)}
E-mail: <slisp@cs.cmu.edu>.
(18 Nov 1993)
CMVC
{Configuration Management Version Control} from {IBM}.
CMYK
<graphics> cyan, magenta, yellow, key.
A system for describing colours by giving the quantity of each
secondary colour (cyan, magenta, yellow), along with the "key"
(black). The CMYK system is used for printing. For mixing of
pigments, it is better to use the secondary colours, since
they mix subtractively instead of additively. The secondary
colours of light are cyan, magenta and yellow, which
correspond to the primary colours of pigment (blue, red and
yellow). In addition, although black could be obtained by
mixing these three in equal proportions, in four-colour
printing it always has its own ink. This gives the CMYK
model. The K stands for "Key' or 'blacK,' so as not to cause
confusion with the B in {RGB}.
Alternative systems are {RGB} and {HSV}.
(22 Dec 1994)
CMZ
A portable interactive {code management} system from {CodeME}
S.A.R.L in use in the high-energy physics community.
(22 Dec 1994)
CNAME
The {canonical name} query type for {Domain Name System}.
This query asks a DNS {server} for a {host}'s official
{hostname}.
(22 Dec 1994)
CNC
{Collaborative Networked Communication}
CNET
Centre national d'Etudes des Telecommunications. The French
national telecommunications research centre at Lannion.
(22 Dec 1994)
CNI
{Coalition for Networked Information}
CNN
<architecture> {Cellular Neural Network}.
CNRI
Corporation for National Research Initiatives.
A US research and development organisation in information
processing technology.
Address: Reston, VA, USA.
(22 Dec 1994)
CO2
An {object-oriented} {database} language combining {C} and
{O2}, from GIP Altair, Versailles, France.
[Francois Bancilon et al, in Advances in Object-Oriented
Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988].
(22 Dec 1994)
Coad/Yourdon
<programming> An {object-oriented analysis} and design
{methodology}, developed by {edward Yourdon} and Peter Coad.
(07 Apr 1995)
COALA
["COALA: The Object Code of the Compiler Producing System", S.
Kruszewski et al, MERA, Warsaw 1974].
(22 Dec 1994)
coalesced sum
<theory> (Or "smash sum") In {domain theory}, the coalesced
sum of {domain}s A and B, A (+) B, contains all the
non-{bottom} elements of both domains, tagged to show which
part of the sum they come from, and a new {bottom} element.
D (+) E = { bottom(D(+)E) }
U { (0,d) | d in D, d /= bottom(D) }
U { (1,e) | e in E, e /= bottom(E) }
The bottoms of the constituent domains are coalesced into a
single bottom in the sum. This may be generalised to any
number of domains.
The ordering is
bottom(D(+)E) <= v For all v in D(+)E
(i,v1) <= (j,v2) iff i = j & v1 <= v2
"<=" is usually written as {LaTeX} \sqsubseteq and "(+)" as
{LaTeX} \oplus - a "+" in a circle.
(22 Dec 1994)
Coalition for Networked Information
(CNI) A consortium formed by American Research Libraries,
CAUSE, and EDUCOM to promote the creation of, and access to,
information resources in networked environments in order to
enrich scholarship and enhance intellectual productivity.
(22 Dec 1994)
COAST
{Cache On A STick}
coax
{coaxial cable}
coaxial cable
<hardware> A kind of cable with a solid central conductor
surrounded by insulator, in turn surrounded by a cylindrical
shield woven from fine wires. It is used to carry high
frequency signals such as video or radio. The shield is
usually connected to electrical ground to reduce electrical
interference.
(28 Mar 1995)
COBOL
{COmmon Business Oriented Language}
COBOL-1961 Extended
A short-lived separation of {COBOL} specifications.
[Sammet 1969, p. 339].
(28 Oct 1994)
COBOL fingers
/koh'bol fing'grz/ Reported from Sweden, a (hypothetical)
disease one might get from coding in {COBOL}. The language
requires code verbose beyond all reason (see {candygrammar});
thus it is alleged that programming too much in COBOL causes
one's fingers to wear down to stubs by the endless typing.
(22 Dec 1994)
COBRA
Do you mean {CORBA}? Or is there a COBRA?
(10 May 1996)
Cocktail
{GMD Toolbox for Compiler Construction}
CoCo
<computer> The {Tandy} Color Computer with a Motorola
{MC6809E} {CPU}. The {Dragon} is a CoCo clone. The CoCo was
as powerful as the {IBM XT} at the time it was made, and could
run {OS-9}.
(12 Feb 1997)
Cocol
Coco Language.
A language for writing left-attributed {LL1} {grammar}s.
Cocol outputs {Oberon}. Its {syntax} resembles {Modula-2}.
It is used as the input language for the {Coco} {LL1}
{parser generator}, which produces {Modula-2} output.
Cocol-2 is a version for the Coco-2 generator.
{(ftp://neptune.inf.ethz.ch/)}
["A Compiler Generator for Microcomputers", P. Rechenberg et
al, P-H 1989].
(23 Dec 1994)
COCOMO
{Constructive Cost Model}
Coco/R
A program by Hanspeter Moessenboeck <moessenboeck@inf.ethz.ch>
which generates {recursive descent parser}s and their
associated {scanner}s from {attributed grammar}s ({LL1}).
Coco/R can {bootstrap} itself to generate its own driver,
parser, scanner and {semantic evaluator} from the attributed
grammar CR.ATG. This grammar thus serves as an an example of
how to write compiler descriptions for Coco. There are also
other simpler examples showing its use.
Version 1.34. Coco/R was ported to {Modula-2} by Marc
Brandis, Christof Brass and Pat Terry <cspt@alpha.ru.ac.za>.
{(ftp://neptune.inf.ethz.ch/Oberon/Examples/Coco)}
Modula-2 versions exist as self extracting .EXE files for
{MS-DOS}, and as tar.Z files for {Unix}.
{FTP South Africa (ftp://alpha.ru.ac.za/pub/coco)}.
{FTP Switzerland (ftp://neptune.inf.ethz.ch:/Coco)}.
{FTP PSG (ftp://ftp.psg.com/pub/modula-2/coco/)}.
{FTP Australia (ftp://pluto.fit.qut.edu.au/pub/coco)}.
Mail server: <server@ftp.psg.com> (Subject: send
pub/modula-2/coco/).
E-mail: Pat Terry <cspt@alpha.ru.ac.za> ({MS-DOS} version
bugs), Hanspeter Moessenboeck <moessenboeck@inf.ethz.ch>
(other).
Coco/R requires {Oberon} or {Modula-2} and runs on {MS-DOS}:
{TopSpeed} {Modula-2}; FST 2.0, 3.1; {StonyBrook} {QuickMod}
2.2; {Logitech} 3.03; {Macintosh}: {Apple MacMeth}.
The {Oberon} version is freely available(?), the {Modula-2}
version is free to academic sites; commercial use requires a
licence.
["A compiler generator for microcomputers", by Rechenberg and
Mossenbock, Prentice Hall, 1989, 0-13-155136-1].
(13 Oct 1994)
CODASYL
{Conference On DAta SYstems Languages}
Codd's First Normal Form
See {Normal Form}.
code
<jargon, programming> Programs, either {source code} or
{machine code}.
(13 Jan 1996)
Code 2.0
<language> A large-grain {dataflow} language with a graphical
interface for users to draw communication structure.
{Home (http://www.cs.utexas.edu/users/code)}
E-mail: Emery Berger <emery@cs.utexas.edu>.
["The CODE 2.0 Parallel Programming Language", P. Newton et
al, Proc ACM Intl Conf on Supercomput, Jul 1992].
(13 Jan 1996)
CodeCenter
(Formerly {Saber-C}) A proprietary software development
environment for {C} programs, offering an integrated toolkit
for developing, testing, debugging and maintainance.
(23 Dec 1994)
Code Division Multiple Access
(CDMA) (Or "spread spectrum") A form of {multiplexing} where
the transmitter encodes the signal using a {pseudo-random}
sequence which the reciever also knows and can use to decode
the received signal. Each different random sequence
corresponds to a different communication channel.
{Motorola} uses CDMA for digital cellular phones.
(15 Feb 1995)
code division multiplexing
{Code Division Multiple Access}
code grinder
A {suit}-wearing minion of the sort hired in legion strength
by banks and insurance companies to implement payroll packages
in {RPG} and other such unspeakable horrors. In its native
habitat, the code grinder often removes the suit jacket to
reveal an underplumage consisting of button-down shirt (starch
optional) and a tie. In times of dire stress, the sleeves (if
long) may be rolled up and the tie loosened about half an
inch. It seldom helps. The {code grinder}'s milieu is about
as far from hackerdom as one can get and still touch a
computer; the term connotes pity.
Used of or to a {hacker}, this term is a really serious slur
on the person's creative ability; it connotes a design style
characterised by primitive technique, rule-boundedness, {brute
force} and utter lack of imagination.
See {Real World}. Compare {card walloper}. Contrast {real
programmer}.
(11 Nov 1994)
code management
A source code management system helps program developers keep
track of version history, releases, parallel versions etc.
There are several in popular use.
(23 Dec 1994)
code police
(By analogy with George Orwell's "Thought Police" in "1984") A
mythical team of Gestapo-like storm troopers that might burst
into one's office and arrest one for violating programming
style rules. May be used either seriously, to underline a
claim that a particular style violation is dangerous, or
ironically, to suggest that the practice under discussion is
condemned mainly by anal-retentive {weenie}s. "Dike out that
{goto} or the code police will get you!" The ironic usage is
perhaps more common.
(08 Dec 1994)
codes
1. <jargon> Programs. This usage is common among scientific
computing people who use {supercumputer}s for heavy-duty
{number crunching}.
2. <cryptography> Something to do with {cryptography}.
(28 Oct 1994)
C-odeScript
<language> A {Liana} interpreter, embeddable in {C} and {C++}
programs.
(09 Mar 1995)
code segment
<processor, operating system> ({Intel 8086} CS) The area of
memory containing the {machine code} instructions of an
executing {program}. {Unix}, confusingly, calls this the
{text segment}. The code segment of a program may be shared
between multiple processes running that code so long as none
of them tries to modify it.
Other segments are the {data segment} and, in Unix, the {bss
segment}.
(21 Dec 1996)
codewalker
<programming, tool> A program component that traverses other
programs for a living. {Compilers} have codewalkers in their
front ends; so do {cross-reference generators} and some
database front ends. Other utility programs that try to do
too much with source code may turn into codewalkers. As in
"This new "vgrind" feature would require a codewalker to
implement."
(23 Dec 1994)
CODIL
COntext Dependent Information Language.
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)].
(23 Dec 1994)
codomain
The set of values or type containing all possible results of a
function. The codomain of a function f of type D -> C is C.
A function's {image} is a subset of its codomain.
(23 Dec 1994)
coefficient of X
Hackish speech makes heavy use of pseudo-mathematical
metaphors. Four particularly important ones involve the terms
"coefficient", "factor", "index", and "quotient". They are
often loosely applied to things you cannot really be
quantitative, but there are subtle distinctions among them
that convey information about the way the speaker mentally
models whatever he or she is describing.
"Foo factor" and "foo quotient" tend to describe something for
which the issue is one of presence or absence. The canonical
example is {fudge factor}. It's not important how much you're
fudging; the term simply acknowledges that some fudging is
needed. You might talk of liking a movie for its silliness
factor. Quotient tends to imply that the property is a ratio
of two opposing factors: "I would have won except for my luck
quotient." This could also be "I would have won except for
the luck factor", but using *quotient* emphasises that it was
bad luck overpowering good luck (or someone else's good luck
overpowering your own).
"Foo index" and "coefficient of foo" both tend to imply that
foo is, if not strictly measurable, at least something that
can be larger or smaller. Thus, you might refer to a paper or
person as having a "high bogosity index", whereas you would be
less likely to speak of a "high bogosity factor". "Foo index"
suggests that foo is a condensation of many quantities, as in
the mundane cost-of-living index; "coefficient of foo"
suggests that foo is a fundamental quantity, as in a
coefficient of friction. The choice between these terms is
often one of personal preference; e.g. some people might feel
that bogosity is a fundamental attribute and thus say
"coefficient of bogosity", whereas others might feel it is a
combination of factors and thus say "bogosity index".
(29 Nov 1994)
coercion
{implicit type conversion}
COFF
{Common Object File Format}
COGENT
COmpiler and GENeralized Translator.
A {compiler} writing language with pattern-directed string and
list processing features, for {CDC 3600} and {CDC} 3800. A
program consists of {production}s 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].
(23 Dec 1994)
Cogent Prolog
A full Edinburgh-standard {Prolog} with debugger, {listener},
{DCG}, many built-ins, text windows, support for {module}s and
support for both 16 bit and 32 bit {protected mode}.
E-mail: Dennis C Merritt <amziod@world.std.com>.
Cognitech
A French software house specialising in {artificial
intelligence}.
(04 Jan 1995)
cognitive architecture
<architecture> A computer architecure involving
{non-deterministic}, multiple {inference} processes, as found
in {neural networks}. Cognitive architectures model the human
brain and contrast with single processor computers.
The term might also refer to software architectures,
e.g. {fuzzy logic}.
[Origin? Better definition? Reference?]
(29 Nov 1995)
COGO
A subsystem of {ICES} aimed at co-ordinate geometry problems
in Civil Engineering.
["Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug
1967)].
(04 Jan 1995)
Coherent Parallel C
A {data parallel} language.
["Coherent Parallel C", E. Felten et al in Third Conf on
Hypercube Concurrent Computers and Appls, ACM, 1988,
pp.440-450].
(04 Jan 1995)
COHESION
{DEC}'s {CASE} environment.
[Details?].
(04 Jan 1995)
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)].
(04 Jan 1995)
cokebottle
/kohk'bot-l/ Any very unusual character, particularly one you
can't type because it it isn't on your keyboard. {MIT} people
used to complain about the "control-meta-cokebottle" commands
at {SAIL}, and {SAIL} people complained about the
"{altmode}-altmode-cokebottle" commands at {MIT}. After the
demise of the {space-cadet keyboard}, "cokebottle" faded away
as serious usage, but was often invoked humorously to
describe an (unspecified) weird or non-intuitive keystroke
command. It may be due for a second inning, however. The
{OSF}/{Motif} {window manager}, "{mwm}", has a reserved
keystroke for switching to the default set of keybindings and
behaviour. This keystroke is (believe it or not)
"control-meta-bang" (see {bang}). Since the exclamation point
looks a lot like an upside down Coke bottle, {Motif} hackers
have begun referring to this keystroke as "cokebottle".
See also {quadruple bucky}.
(04 Jan 1995)
COLASL
An early system for numerical problems on the {IBM 7030}. It
used a special character set for input of natural mathematical
expressions.
[Sammet 1969, pp. 265-271].
(04 Jan 1995)
COLD
1. <language> A {sugar}ed version of {COLD-K}.
2. <storage> {Computer Output to Laser Disc}.
(04 Jan 1995)
cold boot
<operating system> A {boot} from {power off}.
Contrast {warm boot}.
(27 Nov 1995)
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].
(04 Jan 1995)
COLINGO
Compile On-LINe and GO.
An english-like query system from {MITRE Corp}. for the {IBM
1401}.
["The COLINGO System Design Philosophy", Information System
Sciences, Proc Second Congress, 1965].
[Sammet 1969, p. 664].
(04 Jan 1995)
collision
1. <networking> When two {hosts} transmit on a {network} at
once causing their {packets} to collide and corrupt each
other.
See {collision detection}.
2. <programming> {hash collision}.
(06 Jan 1995)
collision detection
<networking> A class of methods for sharing a data
transmission medium in which hosts transmit as soon as they
have data to send and then check to see whether their
transmission has suffered a {collision} with another host's.
If a collision is detected then the data must be resent. The
resending algorithm should try to minimise the chance that two
hosts's data will repeatedly collide. For example, the
{CSMA/CD} protocol used on {Ethernet} specifies that they
should then wait for a random time before re-transmitting.
See also {backoff}.
This contrasts with {slotted protocols} and {token passing}.
(18 Mar 1997)
colon
<character> ":". {ASCII} character 58. Common names:
{ITU-T}: colon. Rare: dots; {INTERCAL}: two-spot.
(25 Sep 1995)
color
<spelling> American spelling of {colour}.
(13 Dec 1996)
Color Graphics Adapter
<hardware, graphics> (CGA) One of {IBM}'s earliest hardware
video {display standards} for use in {IBM PC}s. CGA can
display 80*25 or 40*25 text in 16 colors, 640*200 {pixels}
graphics in 2 colors or 320*200 in 4 colors (PC video modes
0-6). It is now obsolete.
(11 Nov 1995)
Colossus
(A huge and ancient statue on the Greek island of Rhodes).
1. The Colossus and Colussus Mark II computers used by {Alan
Turing} at {Bletchley Park}, UK during the Second World War to
crack the "Tunny" cipher produced by the Lorenz SZ 40 and SZ
42 machines. Colossus was a semi-fixed-program {vacuum tube}
calculator.
["Breaking the enemy's code", Glenn Zorpette, IEEE Spectrum,
September 1987, pp. 47-51.]
2. The computer in the film "Colossus: The Forbin Project".
Forbin is the designer of an incredibly sophisticated computer
that will run all of America's nuclear defences. Shortly
after being turned on, it detects the existence of Goliath,
the Soviet counterpart, previously unknown to US Planners.
Both computers insist that they be linked, and after taking
safeguards to preserve confidential material, each side agrees
to allow it. As soon as the link is established the two
become a new Super computer and threaten the world with the
immediate launch of nuclear weapons if they are detached.
Colossus begins to give its plans for the management of the
world under it's guidance. Forbin and the other scientists
form a technological resistance to Colossus which must operate
underground.
[John L. Vogel <JVOGEL@NHQVAX.hq.nasa.gov>]
{The Internet Movie Database
(http://www.msstate.edu/M/title-exact?Colossus:%20The%20Forbin%20Project)}.
(24 Mar 1996)
colour
<graphics> (US "color") Colours are usually represented as
{RGB} triples. A colour {image} may be stored as three
separate images, one for each of red, green, and blue, or each
{pixel} may encode the colour using separate {bitfield}s for
each colour component, or each pixel may store a logical
colour number which is looked up in a hardware {colour
palette} to find the colour to display.
Printers may use the {CMYK} or {Pantone} representations of
colours as well as RGB.
(24 Mar 1996)
Columbia AppleTalk Package
(CAP) An implementation of {Apple Computer}'s {AppleTalk}
{protocol}s for {Unix} {4.2BSD} and its derivatives, from
{Columbia University}. There are two different {LAP} delivery
mechanisms for: {IPTalk} and {Ethertalk} (possibly using
{UAB}).
CAP supports the following {AppleTalk} {protocol}s: {AppleTalk
Transaction Protocol} (ATP), {Name Binding Protocol} (NBP),
{Printer Access Protocol} (PAP), {AppleTalk Session Protocol}
(ASP), {AppleTalk Filing Protocol} (AFP) client side. In
addition, the {Datagram Delivery Protocol} (DDP) and {Zone
Information Protocol} (ZIP) are partially available. The
structure of the {Internet Appletalk Bridge} software makes it
impossible to provide full DDP service. Only the Get Zone
List ATP ZIP command is implemented for ZIP.
(10 Jan 1995)
Column Address Strobe
<hardware> (CAS) A signal sent from a processor (or {memory
controller}) to a {dynamic random access memory} (DRAM) (qv)
circuit to indicate that the column {address lines} are valid.
(17 Oct 1996)
COM
1. <programming> {Common Object Model}.
2. <storage> {Computer Output on Microfilm}.
(05 Feb 1997)
COMAL
{COMmon Algorithmic Language}
combination
1. <mathematics> A {set} containing a certain number of
objects selected from another set.
The number of combinations of r objects chosen from a set of n
is
n C r = n! / ((n-r)! r!)
where "n C r" is normally with n and r as subscripts or as n
above r in parentheses.
See also {permutation}.
2. <reduction> In the theory of {combinator}s, a combination
denotes an expression in which {function application} is the
only operation.
(10 Apr 1995)
combinator
A function with no {free variable}s. A term is either a
constant, a variable or of the form A B denoting the
{application} of term A (a function of one argument) to term
B. {Juxtaposition} associates to the left in the absence of
parentheses. All combinators can be defined from two basic
combinators - S and K. These two and a third, I, are defined
thus:
S f g x = f x (g x)
K x y = x
I x = x = S K K x
{Combinatory logic} is equivalent to the {lambda-calculus} but
a lambda expression of size O(n) is equivalent to a
combinatorial expression of size O(n^2).
Other combinators were added by {David Turner} in 1979 when he
used combinators to implement {SASL}:
B f g x = f (g x)
C f g x = f x g
S' c f g x = c (f x) (g x)
B* c f g x = c (f (g x))
C' c f g x = c (f x) g
See {fixed point combinator}, {curried function},
{supercombinator}s.
(06 Dec 1994)
combinatory logic
A system for reducing the operational notation of {logic},
mathematics or a {functional language} to a sequence of
modifications to the input data structure. First introduced
in the 1920's by {Schoenfinkel}. Re-introduced independently
by {Haskell Curry} in the late 1920's (who quickly learned of
Schoenfinkel's work after he had the idea). Curry is really
responsible for most of the development, at least up until
work with Feys in 1958.
See {combinator}.
(05 Jan 1995)
Comdex
A computer show that is held twice yearly, once in the spring
(in Atlanta) and once in autumn (in Las Vegas). Comdex is a
major show during which new releases of software and hardware
are made. {Microsoft}, for example, often annouces its
products at Comdex.
(11 Jan 1995)
COME FROM
A semi-mythical language construct dual to the "go to"; "COME
FROM" <label> would cause the referenced label to act as a
sort of {trapdoor}, so that if the program ever reached it
control would quietly and {automagically} be transferred to
the statement following the "COME FROM".
"COME FROM" was first proposed in R.L. Clark's "A Linguistic
Contribution to GOTO-less programming", which appeared in a
1973 {Datamation} issue (and was reprinted in the April 1984
issue of "{Communications of the ACM}"). This parodied the
then-raging "{structured programming}" {holy wars} (see
{considered harmful}).
Mythically, some variants are the "assigned COME FROM" and the
"computed COME FROM" (parodying some nasty control constructs
in {FORTRAN} and some extended {BASIC}s). Of course,
{multitasking} (or {nondeterminism}) could be implemented by
having more than one "COME FROM" statement coming from the
same label.
In some ways the {FORTRAN} "DO" looks like a "COME FROM"
statement. After the terminating statement number/"CONTINUE"
is reached, control continues at the statement following the
DO. Some generous FORTRANs would allow arbitrary statements
(other than "CONTINUE") for the statement, leading to examples
like:
DO 10 I=1,LIMIT
C imagine many lines of code here, leaving the
C original DO statement lost in the spaghetti...
WRITE(6,10) I,FROB(I)
10 FORMAT(1X,I5,G10.4)
in which the trapdoor is just after the statement labelled 10.
(This is particularly surprising because the label doesn't
appear to have anything to do with the flow of control at
all!)
While sufficiently astonishing to the unsuspecting reader,
this form of "COME FROM" statement isn't completely general.
After all, control will eventually pass to the following
statement. The implementation of the general form was left to
{Univac FORTRAN}, ca. 1975 (though a roughly similar feature
existed on the {IBM 7040} ten years earlier). The statement
"AT 100" would perform a "COME FROM 100". It was intended
strictly as a debugging aid, with dire consequences promised
to anyone so deranged as to use it in production code. More
horrible things had already been perpetrated in production
languages, however; doubters need only contemplate the "ALTER"
verb in {COBOL}.
"COME FROM" was supported under its own name for the first
time 15 years later, in {C-INTERCAL} (see {INTERCAL},
{retrocomputing}); knowledgeable observers are still reeling
from the shock.
(30 Nov 1994)
COMIS
A COMpilation and Interpretation System.
A {FORTRAN} {interpreter} use by the {PAW} system.
(30 Nov 1994)
COMIT
The first string-handling and {pattern-matching} language,
designed in 1957-8 for applications in {natural language}
translation. The user has a workspace organised into shelves.
Strings are made of constituents (words), accessed by
{subscript}. A program is a set of rules, each of which has a
pattern, a replacement and goto another rule.
["COMIT Programmer's Reference Manual", V.H. Yngve, MIT Press
1961].
[Sammet 1969, pp. 416-436].
(30 Nov 1994)
Comite Europeen des Postes et Telecommunications
(CEPT, European Conference of Post and Telecommunications).
[What is it?]
(11 Jul 1996)
COMIT II
["Computer Programming with COMIT II", Victor H. Yngve, MIT
Press, 1963].
(11 Jan 1995)
Comma
COMputable MAthematics.
An {ESPRIT} project at KU {Nijmegen}.
(30 Nov 1994)
comma
<character> "," {ASCII} character 44. Common names: {ITU-T}:
comma. Rare: {ITU-T}: cedilla; {INTERCAL}: tail.
In the {C} programming language, "," is an operator which
evaluates its first argument (which presumably has
{side-effect}s) and then returns the value of its second
argument. This is useful in "for" statements and {macro}s.
(10 Mar 1995)
command interpreter
<operating system> A program which reads textual commands from
the user or from a file and executes them. Some commands may
be executed directly within the interpreter itself
(e.g. setting variables or control constructs), others may
cause it to load and execute other files.
{Unix}'s command interpreters are known as {shell}s.
When an {IBM PC} is {boot}ed {BIOS} loads and runs the
{MS-DOS} command interpreter into memory from file COMMAND.COM
found on a {floppy disk} or {hard disk} drive. The commands
that COMMAND.COM recognizes (e.g. COPY, DIR, PRN) are called
internal commands, in contrast to external commands which are
executable files.
(16 Mar 1995)
command key
The {Macintosh} {feature key}.
(11 Jan 1995)
command line interface
<operating system> A means of communication between a
{program} and its {user}, based solely on textual input and
output. Commands are input with the help of a {keyboard} or
similar device and are interpreted and executed by the
program. Results are output as text or graphics to the
{terminal}.
Command line interfaces usually provide greater flexibility
than {graphical user interfaces}, at the cost of being harder
for the novice to use. Consequently, some {hackers} look down
on GUIs as designed {For The Rest Of Them}.
(12 Jan 1996)
command line interpreter
{command interpreter}
comma separated values
<file format> (CSV) A {file format} used as a portable
representation of a {database}. Each line is one entry or
record and the fields in a record are separated by {comma}s.
Commas may be followed by arbitrary space and/or tab
characters which are ignored. If field includes a comma, the
whole field must be surrounded with {double quote}s.
(06 May 1995)
COMMEN
[L.J. Cohen. Proc SJCC 30:671-676, AFIPS (Spring 1967)].
(30 Nov 1994)
comment out
To surround a section of code with comment delimiters or to
prefix every line in the section with a comment marker. This
prevents it from being compiled or interpreted and is often
done when the code is redundant or obsolete, but is being left
in the source to make the intent of the active code clearer;
also when the code in that section is broken and you want to
bypass it in order to debug some other part of the code.
Compare {condition out}, usually the preferred technique in
languages (such as {C}) that make it possible.
(30 Nov 1994)
commercial at
<character> "@". Common names: at sign; at; strudel. Rare:
each; vortex; whorl; {INTERCAL}: whirlpool; cyclone; snail;
ape; cat; rose; cabbage; {ITU-T}: commercial at.
The @ sign is used in {electronic mail addresses} to separate
the local part from the {hostname}. See {@-party}.
(08 May 1996)
Commercial Internet eXchange
(CIX) The CIX is a non-profit, 501(c)6, trade association
coordinating {Internet} services. Its member organisations
provide {TCP/IP} or {OSI} data {internetwork} services to the
general public. The CIX gives them unrestricted access to
other worldwide networks. It also takes an interest in the
development and future direction of the {Internet}.
The CIX provides a neutral forum to exchange ideas,
information, and experimental projects among suppliers of
internetworking services. The CIX broadens the base of
national and international cooperation and coordination among
member networks. Together, the membership may develop
consensus positions on legislative and policy issues of mutual
interest.
The CIX encourages technical research and development for the
mutual benefit of suppliers and customers of data
communications internetworking services. It assists its
member networks in the establishment of, and adherence to,
operational, technical, and administrative policies and
standards necessary to ensure fair, open, and competitive
operations and communication among member networks. CIX
policies are formulated by a member-elected board of
directors.
{Home (http://cix.org/)}
(13 Jan 1995)
Commercial Translator
An English-like pre-{COBOL} language for business {data
processing}.
[Sammet 1969, p. 378].
(08 Nov 1994)
comm mode
<talk> /kom mohd/ (Or "com mode") {talk mode}. An {ITS} feature
supporting interactive on-line chat.
(07 Apr 1996)
Commodore 128
<computer> (C128) An expanded {Commodore 64}. The C128 was
{Commodore Business Machines}' last commercially released
8 bit computer. However, they did prototype the {Commodore
65} and {Commodore SX64}.
(05 Jun 1996)
Commodore 1541
<storage> The best know {floppy disk} drive for the {Commodore
64}. The 1541 was a single sided 160K drive but you could
flip the disks over for another 160K if you punched a notch to
enable writing to the other side (the "flip side") and entered
obscure disk commands. The disk drive used {Group Code
Recording} and contained a {6502} processor as a {disk
controller}. Some people wrote code for it to vibrate the
head at different frequencies to play tunes.
The transfer rate was about 300 bytes per second. The 1541
used a {bit-serial} version of the {IEEE 488} parallel
protocol. Some third-party speed-ups could transfer about 4
kilobytes per second over the interface, and some "fast
loaders" managed up to 10 kbps.
The {Commodore 1570} was an upgraded 1541 for use with the
{Commodore 128}.
(05 Jun 1996)
Commodore 1570
<storage> {Commodore Business Machines}'s allegedly "advanced"
disk drive for use with the {C128}. It is basically a {1541}
with the capability to use "burst loading" (like the
{Commodore 1571}), and lots of new {bug}s.
The {Commodore 1571} was a double-sided version of the 1570.
(07 Apr 1996)
Commodore 1571
<storage> {Commodore Business Machines}'s "advanced" {disk
drive} for the {C128}. It was the double-sided version of the
{Commodore 1570} disk drive but, unlike the 1570, worked quite
well.
The 1571 supported "{burst mode}" loading when used on a C128
in native mode, which increased the transfer speed from 1541
speed to about three kilobytes per second (about a 10-fold
increase). The 1571 could be told to emulate a {1541} for use
with a {C64} or 1541 disks.
Bugs in early releases of the 1571 {ROM} affected access to
the second side of the disk.
(07 Apr 1996)
Commodore 1581
<storage> {Commodore Business Machines}'s 3.5 inch {disk
drive} for the {Commodore 64} and {Commodore 128} (and
{Amiga}(?)). The drive stores 800 {kilobytes} using an {MFM}
format which is different from both {messy-dos} 720 kb, and
the {Amiga} 880 kb formats.
The 1581 supports a poor imitation of {directories} which are
really just {partitions} and largely unused. It also supports
burst loading like the {Commodore 1571}, but is actually
faster as it is better designed. It has 3160 {blocks} free
when formatted.
The 1581 is the highest density C64 serial bus drive made by
Commodore. However Creative Micro Designs (CMD) make the
{FD2000} (1.6MB) and (until recently) the {FD4000} (3.2MB)
3.5" disk drives. {GEOS} users like 1581s as they are very
fast when used with GEOS.
See also {Commodore 1541}, {Commodore 1571}.
[Used on Amiga?]
(04 Sep 1996)
Commodore 64
<computer> (C64) An 8 bit {Commodore Business Machines}
{personal computer} released around September 1981.
Prototypes were (apparently) made before Christmas 1980 (and
shown at some computer fair).
The {CPU} was a {MOS Technolgies}(?) {6510}. The C64 had 64
kbytes of {RAM} as standard and a 40-column text, 320x200
{pixel} display generating {composite video}, usually
connected to a television.
{DMA}-based memory expanders for the C64 (and C128) allowed
128, 256, and 512 kb of RAM. Several third party
manufacturers produce accelerators and RAM expanders for the
C64 and C128. (Some, risking a {holy war}, compare this to
putting a brick on roller scates). Such accelerators come in
speeds up to 20MHz (20 times the original) and RAM expanders
to 16MB.
The C64's {1541} 5.25 {floppy disk} drive had a {6502}
processor as a {disk controller}.
["Assembly language programming with the Commodore 64", Marvin
L. De Jong].
(05 Jun 1996)
Commodore 64DX
{Commodore 65}
Commodore 65
<computer> (Or Commodore 64DX, C65, C64DX) The last 8 bit
computer designed by {Commodore Business Machines}, about
1989-1991. The C65 boasts an {ugly} collection of {custom}
{integrated circuits} which makes even the {Amiga} hardware
look standard.
The core of the C65 {chipset} is the {CSG 4510} and {CSG
4569}. The 4510 is a {65CE02} with two {6526} {CIA}s. The
4569 is equivalent to a combination of the {6569} VIC-II and
the {MMU} of the {Commodore 64}. The C65 also has a {DMA
controller} (Commodore's purpose built {DMAgic}) which also
functions as a simple {blitter}, and a {floppy controller} for
the internal {Commodore 1581}-like disk drive. The floppy
controller, known as the {F011}, supports seven drives (though
the {DOS} only supports 2). The {4510} supports all the {C64}
{video modes}, plus an 80 column text mode, and {bitplane}
modes. The bitplane modes can use up to eight bitplanes, and
{resolutions} of up to 1280 x 400. The {palette} is 12 bit
like the {Amiga 500}. It also has two SID's (MOS 8580/6581)
for stereo audio.
The C65 has two busses, D and E, with 64 {kilobytes} of {RAM}
on each. The VIC-III can access the D-bus while the CPU
accesses the E-bus, and then they can swap around. This
effectively makes the whole 8MB {address space} both {chip
ram} and {fast ram}. {RAM} expansion is accomplished through
a {trap door} slot in the bottom which uses a {grock} of a
connector. The C65 has a {C128}-like native mode, where all
of the new features are enabled, and the CPU runs at 3.5
megahertz with its {pipeline} enabled. It also has a C64
{incompatibility mode} which offers approx 50-80%
compatibility with C64 software by turning off all its {bells
and whistles}. The {bells and whistles} can still be accessed
from the C64 mode, which is dissimilar to the C128's
inescapable C64 mode.
Production of the C65 was dropped only a few weeks before it
moved from the Alpha stage, possibly due to Commodore's cash
shortage. Commodore estimate that "between 50 and 10000"
exist. There are at least three in Australia, about 30 in
Germany and "some" in the USA and Canada.
(07 Apr 1996)
Commodore Business Machines
<company> (CBM) Makers of the {PET}, {Commodore 64},
{Commodore 16}, {Commodore 128}, and {Amiga} {personal
computers}. Their logo is a {chicken head}.
On 29 April 1994, Commodore International announced that it
had been unable to renegotiate terms of outstanding loans and
was closing down the business. Commodore US was expected to
go into liquidation. Commodore US, France, Spain, and Belgium
were liquidated for various reasons. The names Commodore and
Amiga were maintained after the liquidation.
On 21 April 1995 CBM was bought by {Escom AG}, a German
company and production of the Amiga resumed. Production of
the 8 bit range alledgedly never stopped during the time in
liquidation because a Chinese company were producing the {C64}
in large numbers for the local market there.
{(http://www.warwick.ac.uk/~stuce/faq/index.html)}
(22 Jul 1996)
COMmon Algorithmic Language
<language> (COMAL) A language for beginners developed by
Benedict Loefstedt and Borge Christensen in 1973 and popular
in Europe and Scandinavia. It has a {Pascal}-like structure
added to {BASIC}. COMAL-80 has been adopted as an
introductory language in Denmark.
There is a version for the {Amiga}.
There is a COMAL User's Group at 5501 Groveland Terr, Madison
WI 53716, USA.
["Beginning COMAL", B. Christensen, Ellis Harwood 1982].
(11 Jan 1995)
Common Applications Environment
(CAE) Part of {X/Open}, based on {POSIX} and {C}.
[Details?]
Common Applications Service Element
{Common Application Service Element}
Common Architecture for Next Generation Internet Protocol
<networking> (CATNIP, originally Common Architecture
Technology for Next-generation Internet Protocol)
A network architecture designed to provide a compressed form
of the existing {network layer} {protocols} and to integrate
{CLNP}, {IP}, and {IPX}. It provides for any of the
{transport layer} {protocols} in use, including {TP4}, {CLTP},
{TCP}, {UDP}, {IPX}, and {SPX}, to run over any of the network
layer protocol formats: CLNP, IP (version 4), IPX, and CATNIP.
CATNIP was originally proposed by Robert L. Ullmann of {Lotus
Development Corporation} on 22 Dec 1993. It was published as
{RFC} 1707 in October 1994 but it is not an {Internet}
standard of any kind.
(23 Mar 1996)
COmmon Business Oriented Language
<language> /koh'bol/ (COBOL) A programming language for simple
computations on large amounts of data designed by the
{CODASYL} Committee in April 1960. It is the most widely used
programming language today. The {natural language} style is
intended to be largely self-documenting. It introduced the
{record} structure.
Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS
X3.23-1974) and 1985.
For many {hackers}, COBOL is synonymous with {evil}, for being
a weak, verbose, and flabby language used by {card wallopers}
to do boring mindless things on {dinosaur} {mainframes}. Many
believe that all COBOL programmers are {suits} or {code
grinders}, and would never admit to having learned the
language. However, as most haven't indeed, their judgement is
somewhat questionable.
See also {fear and loathing}, {software rot}.
{Usenet} newsgroup: {news:comp.lang.cobol}.
["Initial Specifications for a Common Business Oriented
Language" DoD, US GPO, Apr 1960].
(10 Mar 1997)
common carrier
<communications, company> (Or "phone company") A private
company that offers telecommunications services to the public.
(20 Mar 1995)
Common Command Set
<storage, standard> (CCS) Additional requirements and features
for direct-access {SCSI} devices.
In 1985 when the first {SCSI} standard was being finalised as
an {American National Standard}, the {X3T9.2} Task Group was
approached by some manufacturers who wanted changes. Rather
than delay the SCSI standard, X3T9.2 formed an ad hoc group to
define CCS.
[Spec? Status? "direct-access"?]
(23 Mar 1997)
Common Communication Services
(CCS) The standard program interface to networks in {SAA}.
Common Desktop Environment
(CDE) A {desktop} manager from {COSE}.
(31 Oct 1994)
Common Gateway Interface
<World-Wide Web> (CGI) A {standard} for running external
{programs} from a {World-Wide Web} {HTTP} {server}. CGI
specifies how to pass {arguments} to the executing program as
part of the HTTP request. It also defines a set of
{environment variables}. Commonly, the program will generate
some {HTML} which will be passed back to the {browser} but it
can also request redirection to a different {URL}.
CGI allows the returned HTML (or other document type) to
depend in any arbitrary way on the request. The CGI program
can, for example, access information in a {database} and
format the results as HTML. A CGI program can be any program
which can accept command line arguments. {Perl} is a common
choice for writing CGI scripts. Some {HTTP servers} require
CGI programs to reside in a special directory, often
"/cgi-bin" but better servers provide ways to distinguish CGI
programs so they can be kept in the same directories as the
HTML files to which they are related.
Whenever the server receives a CGI execution request it
creates a new process to run the external program. If the
process fails to terminate for some reason, or if requests are
received faster than the server can respond to them, the
server may become swamped with processes.
In order to improve performance, {Netscape} devised {NSAPI}
and {Microsoft} developed the {ISAPI} standard which allow
CGI-like tasks to run as part of the main server process, thus
avoiding the overhead of creating a new process to handle each
CGI invocation.
Current version 1.1.
{NCSA (http://hoohoo.ncsa.uiuc.edu/cgi)}.
{Stars (http://www.stars.com/Seminars/CGI/)}.
(06 Jan 1997)
Common Hardware Reference Platform
{PowerPC Platform}
Common Lisp
A dialect of {Lisp} defined by a consortium of companies
brought together in 1981 by the {Defence Advanced Research
Projects Agency} (DARPA). Companies included {Symbolics},
{Lisp Machines, Inc.}, {Digital Equipment Corporation}, {Bell
Labs}., {Xerox}, {Hewlett-Packard}, {Lawrence Livermore
Labs}., {Carnegie-Mellon University}, {Stanford University},
{Yale}, {MIT} and {USC Berkeley}. It is basically {lexically
scope}d but can be {dynamically scope}d.
Common Lisp is a large and complex language, fairly close to a
superset of {MacLisp}. It features {lexical binding}, data
structures using defstruct and setf, {closure}s, multiple
values, types using declare and a variety of numerical types.
Function calls allow "&optional", keyword and "&rest"
arguments. Generic sequence can either be a list or an
{array}. It provides formatted printing using escape
characters. Common LISP now includes {CLOS}, an extended LOOP
{macro}, condition system, {pretty print}ing and logical
pathnames.
Implementations include {AKCL}, {CCL}, {CLiCC}, {CLISP},
{CLX}, {CMU Common Lisp}, {DCL}, {KCL}, {MCL} and {WCL}.
Mailing list: <common-lisp@ai.sri.com>.
{ANSI Common Lisp draft proposal
(ftp://ftp.think.com/public/think/lisp:public-review.text)}.
["Common LISP: The Language", Guy L. Steele, Digital Press
1984, ISBN 0-932376-41-X].
["Common LISP: The Language, 2nd Edition", Guy L. Steele,
Digital Press 1990, ISBN 1-55558-041-6].
(29 Sep 1994)
Common LISP in Parallel
(CLIP) A version of {Common LISP} from {Allegro} for the
{Sequent Symmetry}.
(12 Dec 1994)
Common LISP Object System
(CLOS) An {object-oriented} extension to {Common LISP}, based
on {generic function}s, {multiple inheritance}, {declarative
method combination} and a {meta-object protocol}. A
descendant of {CommonLoops} and based on {Symbolics} {FLAVORS}
and {Xerox} {LOOPS}, among others.
See also {PCL}.
["Common LISP Object System Specification X3J13 Document
88-002R", D.G. Bobrow et al, SIGPLAN Notices 23 (Sep 1988)].
(30 Nov 1994)
CommonLoops
{Xerox}'s {object-oriented} {Lisp} which led to {CLOS}.
See also {Portable CommonLoops}.
{(ftp://arisia.xerox.com/pub/pcl/September-16-92-PCL-c.tar.Z)}
E-mail: <CommonLoops@xerox.com>.
["CommonLoops: Merging Lisp and Object-Oriented Programming",
D.G. Bobrow et al, SIGPLAN Notices 21(11):17-29 (Nov 1986)].
(03 Nov 1994)
Common Management Information Protocol
(CMIP) Part of the {OSI} body of {standard}s specifying
{protocol} elements that may be used to provide the operation
and notification services described in a related standard,
CMIS ({Common Management Information Services}).
Document: {ISO}/{IEC} 9596.
(12 Jan 1995)
Common Management Information Services
(CMIS) Part of the {OSI} body of network {standard}s.
Network management information services are used by {peer
process}es to exchange information and commands for the
purpose of {network management}. CMIS defines a message set
(GET, CANCEL-GET, SET, CREATE, DELETE, EVENT-REPORT and
ACTION), and the structure and content of the messages such
that they might be used by "open" systems. In concept, it is
similar to {SNMP}, but more powerful (and hence more complex).
{ISO}/{IEC} 9595.
(12 Jan 1995)
Common Object File Format
(COFF) The executable and {object} file format used by {Unix
System V} Release 3.
{Unix manual page}: coff(5).
(10 Jan 1995)
Common Object Model
(COM) An open architecture from {DEC} and {Microsoft},
allowing interoperation between {ObjectBroker} and {OLE}.
(10 Jan 1995)
Common Object Request Broker Architecture
<standard, programming> (CORBA) An {Object Management Group}
specification which provides the standard interface definition
between OMG-compliant objects.
Version 1.1.
See also {COSS}.
(11 Nov 1994)
Common Objects
An {object-oriented} {Lisp} from {Hewlett-Packard}.
["Inheritance and the Development of Encapsulated Software
Components", A. Snyder, Proc 20th Hawaii Conf on Sys Sci,
pp. 227-238 (1987)].
(18 Jan 1995)
Commonwealth Hackish
Hacker jargon as spoken outside the US, especially in the
British Commonwealth. It is reported that Commonwealth
speakers are more likely to pronounce truncations like "char"
and "soc", etc., as spelled (/char/, /sok/), as opposed to
American /keir/ and /sohsh/. Dots in {newsgroup} names
(especially two-component names) tend to be pronounced more
often (so soc.wibble is /sok dot wib'l/ rather than /sohsh
wib'l/). The prefix {meta} may be pronounced /mee't*/;
similarly, Greek letter beta is usually /bee't*/, zeta is
usually /zee't*/, and so forth. Preferred {metasyntactic
variable}s include {blurgle}, "eek", "ook", "frodo", and
"bilbo"; "wibble", "wobble", and in emergencies "wubble";
"banana", "tom", "dick", "harry", "wombat", "frog", {fish},
and so on and on (see {foo}).
Alternatives to verb doubling include suffixes "-o-rama",
"frenzy" (as in feeding frenzy), and "city" (examples: "barf
city!" "hack-o-rama!" "core dump frenzy!"). Finally, note
that the American terms "parens", "brackets", and "braces" for
(), [], and {} are uncommon; Commonwealth hackish prefers
"brackets", "square brackets", and "curly brackets". Also,
the use of "pling" for {bang} is common outside the United
States.
See also {attoparsec}, {calculator}, {chemist}, {console
jockey}, {fish}, {go-faster stripes}, {grunge}, {hakspek},
{heavy metal}, {leaky heap}, {lord high fixer}, {loose bytes},
{muddie}, {nadger}, {noddy}, {psychedelicware}, {plingnet},
{raster blaster}, {RTBM}, {seggie}, {spod}, {sun lounge},
{terminal junkie}, {tick-list features}, {weeble}, {weasel},
{YABA}, and notes or definitions under {Bad Thing}, {barf},
{bogus}, {bum}, {chase pointers}, {cosmic rays},
{crippleware}, {crunch}, {dodgy}, {gonk}, {hamster},
{hardwarily}, {mess-dos}, {nybble}, {proglet}, {root}, {SEX},
{tweak}, and {xyzzy}.
(18 Jan 1995)
Communicating Functional Processes
(CFP)
["Communicating Functional Processes", M.C. van Eekelen et al,
TR 89-3, U Nijmegen, Netherlands, 1989].
(30 Nov 1994)
Communicating Sequential Processes
(CSP) A notation for {concurrency} based on {synchronous
message passing} and selective communications designed by
Anthony Hoare in 1978. It features {cobegin} and coend and
was a precursor to {occam}.
See also {Contextually Communicating Sequential Processes}.
["Communicating Sequential Processes", A.R. Hoare, P-H 1985].
(01 Nov 1994)
Communications Decency Act
<law> (CDA) An amendment to the U.S. 1996 Telecommunications
Bill that went into effect on 08 February 1996, outraging
thousands of {Internet} users who turned their {web pages}
black in protest. The law, originally proposed by Senator
James Exon to protect children from obscenity on the Internet,
ended up making it punishable by fines of up to $250,000 to
post indecent language on the Internet anywhere that a minor
could read it.
The {Electronic Frontier Foundation} created {public domain}
blue ribbon {icons} that many web authors downloaded and
displayed on their web pages.
On 12 June 1996, a three-judge panel in Philadelphia ruled the
CDA unconstitutional and issued an injunction against the
United States Justice Department forbidding them to enforce
the "indecency" provisions of the law. Internet users
celebrated by displaying an animated "Free Speech" fireworks
icon to their web pages, courtesy of the {Voters
Telecommunications Watch}. The Justice Department has
appealed the decision to the U.S. Supreme Court.
(03 Nov 1996)
Communications of the ACM
<publication> (CACM) A monthly publication by the {Association
for Computing Machinery} sent to all members. CACM is an
influential publication that keeps computer science
professionals up to date on developments. Each issue includes
articles, case studies, practitioner oriented pieces, regular
columns, commentary, departments, the ACM Forum, and technical
correspondence, and advertisements.
{Home (http://www.acm.org/cacm/)}.
(18 Jan 1995)
communications port
<hardware, communications> A connector for a communications
interface, usually, a {serial port}.
(04 Aug 1996)
communication system
<communications> A system or facility capable of providing
information transfer between persons and equipment. The
system usually consists of a collection of individual
communication {network}s, transmission systems, relay
stations, tributary stations, and terminal equipment capable
of interconnection and interoperation so as to form an
integrated whole. These individual components must serve a
common purpose, be technically compatible, employ common
procedures, respond to some form of control, and generally
operate in unison.
["Communications Standard Dictionary", 2nd Edition, Martin
H. Weik].
(06 Feb 1995)
COMNET
A {simulation} tool from {CACI} for analysing wide-area voice
or data networks, based on {SIMSCRIPT}.
(19 Jan 1995)
compact
1. (Or "finite", "isolated") In {domain theory}, an element d
of a {cpo} D is compact if and only if, for any {chain} S, a
subset of D,
d <= lub S => there exists s in S such that d <= s.
I.e. you always reach d (or better) after a finite number of
steps up the chain.
("<=" is written in {LaTeX} as {\sqsubseteq}).
(13 Jan 1995)
2. Of a design, describes the valuable property that it can
all be apprehended at once in one's head. This generally
means the thing created from the design can be used with
greater facility and fewer errors than an equivalent tool that
is not compact. Compactness does not imply triviality or lack
of power; for example, {C} is compact and {FORTRAN} is not,
but C is more powerful than FORTRAN. Designs become
non-compact through accreting {feature}s and {cruft} that
don't merge cleanly into the overall design scheme (thus, some
fans of {Classic C} maintain that {ANSI C} is no longer
compact).
(13 Jan 1995)
Compact COBOL
A subset of {COBOL} defined, but not published, ca. 1961.
[Sammet 1969, p. 339].
(19 Jan 1995)
Compact Disc
<storage> (CD) (Not "disk", this spelling is part of the
standard).
A 4.72 inch disc developed by {Sony} and {Philips} that can
store, on the same disc, still and/or moving images in
monochrome and/or color; stereo or two separate sound tracks
integrated with and/or separate from the images; and digital
program and information files.
The same fabrication process is used to make both audio CDs
and {CD-ROMs} for storing computer data, the only differenence
is in the device used to read the disk (the player or drive).
{CD Information Center
(http://www.cd-info.com/cd-info/CDInfoCenter.html)}.
(12 Sep 1995)
Compact Disc interactive
(CD-i) An embedded application of {CD-ROM} allowing the user
limited interaction with films, games and educational
applications via a special {controller}.
(02 Nov 1994)
Compact Disc Read-Only Memory
<storage> (CD-ROM) A data storage medium using the same
physical format as audio {compact discs}, readable by a
computer with a CD-ROM drive. Most CD-ROM drives can also
play audio CDs.
CD-ROM is popular for distribution of large databases,
software and especially {multimedia} {application}s. The
maximum capacity is about 600 megabytes. A CD can store 12
billion bytes per pound weight.
There are several formats used for CD-ROM data, including
{Green Book CD-ROM}, {White Book CD-ROM} and {Yellow Book
CD-ROM}. {ISO 9660} defines a standard file system.
See also {Compact Disc Recordable}, {Digital Video Disc}.
[1x Speed?]
(28 Mar 1995)
Compact Disc Recordable
<storage> (CD-R) A write-once version of {CD-ROM}. CD-Rs can
hold about 650 {megabytes} of data. They are very durable and
can be read by normal CD-ROM drives, but once data has been
written it cannot be altered.
(09 Dec 1996)
compactness preserving
In {domain theory}, a function f is compactness preserving if
f c is {compact} whenever c is.
(13 Jan 1995)
Compaq Computer Corporation
<company> The largest US manufacturer and vendor of {IBM PC
compatible} {personal computer}s and PC servers. Compaq was
started in 1982 by three ex-{Texas Instruments} employees.
Quarterly sales $2499M, profits $210M (Aug 1994).
{Home (http://www.compaq.com/)}
(24 Oct 1995)
Compas Pascal
The predecessor of {Turbo Pascal}, sol by {POLY Data} of
Denmark. It was later renamed POLY Pascal, and afterwards
sold to {Borland}.
(19 Jan 1995)
COMPASS
COMPrehensive ASSembler.
The {assembly language} on {CDC} computers.
(19 Jan 1995)
Compatible Timesharing System
<operating system> (CTSS) One of the earliest (1963)
experiments in the design of interactive {time-sharing}
{operating systems}. CTSS was ancestral to {Multics}, {Unix},
and {ITS}. It was developed at the {MIT} Computation Center
by a team led by Fernando J. Corbato. CTSS ran on a modified
{IBM 7094} with a second 32K-word bank of memory, using two
{2301 drums} for swapping. {Remote access} was provided to up
to 30 users via an {IBM 7750} {communications controller}
connected to {dial-up} {modems}.
The name {ITS} (Incompatible {time-sharing} System) was a hack
on CTSS, meant both as a joke and to express some basic
differences in philosophy about the way I/O services should be
presented to user programs.
(29 Jan 1997)
Compel
{COMpute ParallEL}
compiler
<programming, tool> A program that converts another program
from some {source language} (or {programming language}) to
{machine language} (object code). Some compilers output
{assembly language} which is then converted to {machine
language} by a separate {assembler}.
A compiler is distinguished from an assembler by the fact that
each input statement does not, in general, correspond to a
single machine instruction or fixed sequence of instructions.
A compiler may support such features as automatic allocation
of variables, arbitrary arithmetic expressions, control
structures such as FOR and WHILE loops, variable {scope},
input/ouput operations, {higher-order function}s and
{portability} of source code.
{AUTOCODER}, written in 1952, was possibly the first primitive
compiler. {Laning and Zierler}'s compiler, written in
1953-1954, was possibly the first true working algebraic
compiler.
See also {byte-code compiler}, {native compiler}, {optimising
compiler}.
(07 Nov 1994)
compiler compiler
{compiler-compiler}
Compiler-Compiler
An early {compiler generator} for the {Atlas}, with its own
distinctive input language.
["The Compiler-Compiler", R.A. Brooker et al, Ann Rev
Automatic Programming 3:229-275, Pergamon 1963].
(24 Oct 1994)
compiler-compiler
A utility to generate the {source code} of a {parser},
{interpreter} or {compiler} from an annotated language
description (usually in {BNF}). Most so called
compiler-compilers are really just {parser generator}s.
Examples are {Bison}, {Eli}, {FSL}, {META 5}, {MUG2},
{Parsley}, {Pre-cc}, {Yacc}.
(23 Jan 1995)
compiler jock
A programmer who specialises in writing {compiler}s.
(19 Jan 1995)
Compiler Language for Information Processing
(CLIP) A language written in 1958-1959, based on {IAL}, which
led to {JOVIAL}. CLIP was one of the first languages used to
write its own {compiler}.
[Sammet 1969, p. 635].
(12 Dec 1994)
Compiler Target Language
(CTL) The intermediate language used by the {ALICE} parallel
machine.
["The Design and Implementation of ALICE: A Parallel Graph
Reduction Machine", M.D. Cripps et al, Proc Workshop on Graph
Reduction, Springer 1987].
(14 Nov 1994)
COMPL
["The COMPL Language and Operating System", A.G. Fraser et al,
Computer J 9(2):144-156 (1966)].
(24 Jan 1995)
complement
<logic> The other value or values in the set of possible
values.
See {logical complement}, {bitwise complement}, {set
complement}.
(24 Jan 1995)
complementary nondeterministic polynomial
<complexity> (Co-NP) The set (or property) of problems with a
yes/no answer where the complementary no/yes problem is in the
set {NP}.
[Example?]
(27 Apr 1995)
complete
<logic> 1. An {inference} system A is complete with respect to
another system B if A can reach every conclusion which is true
in B. The dual to completeness is {soundness}.
2. An abstract logical {theory} is complete if all true
statements in the theory have formal {proofs} within the
theory.
See also {complete graph}, {complete lattice}, {complete
partial ordering}.
[1. or 2. or both?]
(24 Apr 1996)
complete graph
A {graph} which has a link between every pair of nodes. A
complete {bipartite graph} can be partitioned into two subsets
of nodes such that each node is joined to every node in the
other subset.
(24 Jan 1995)
complete lattice
A {lattice} is a {partial ordering} of a set under a relation
where all finite subsets have a {least upper bound} and a
{greatest lower bound}. A complete lattice also has these for
infinite subsets. Every finite lattice is complete. Some
authors drop the requirement for {greatest lower bound}s.
(02 Dec 1994)
completeness
{complete}
complete partial ordering
(cpo) A {partial ordering} of a set under a {relation}, where
all {directed} subsets have a {least upper bound}. A cpo is
usually defined to include a least element, {bottom} (David
Schmidt calls this a {pointed cpo}). A cpo which is
{algebraic} and {boundedly complete} is a (Scott) {domain}.
(30 Nov 1994)
complete unification
<programming> W.P. Weijland's name for {unification} without
{occur check}.
(11 Jan 1996)
Complex Instruction Set Computer
(CISC) A processor where each instruction can perform several
low-level operations such as memory access, arithmetic
operations or address calculations. The term was coined in
contrast to {Reduced Instruction Set Computer}.
Before the first RISC processors were designed, many computer
architects were trying to bridge the "{semantic gap}" - to
design {instruction set}s to support {high-level language}s by
providing "high-level" instructions such as procedure call and
return, loop instructions such as "decrement and branch if
non-zero" and complex {addressing mode}s to allow data
structure and {array} accesses to be compiled into single
instructions.
While these architectures achieved their aim of allowing
high-level language constructs to be expressed in fewer
instructions, it was observed that they did not always result
in improved performance. For example, on one processor it was
discovered that it was possible to improve the performance by
NOT using the procedure call instruction but using a sequence
of simpler instructions instead. Furthermore, the more
complex the instruction set, the greater the overhead of
decoding an instruction, both in execution time and silicon
area. This is particularly true for processors which used
{microcode} to decode the (macro) instruction. It is easier
to debug a complex instruction set implemented in microcode
than one whose decoding is "{hard-wired}" in silicon.
Examples of CISC processors are the {Motorola} {680x0} family
and the {Intel 80186} through {Intel 486} and {Pentium}.
(10 Oct 1994)
complexity
<algorithm> The level in difficulty in solving mathematically
posed problems as measured by the time, number of steps or
arithmetic operations, or memory space required (called time
complexity, computational complexity, and space complexity,
respectively).
The interesting aspect is usually how complexity scales with
the size of the input (the "{scalability}"), where the size of
the input is described by some number N. Thus an {algorithm}
may have computational complexity O(N^2) (of the order of the
square of the size of the input), in which case if the input
doubles in size, the computation will take four times as many
steps. The ideal is a constant time algorithm (O(1)) or
failing that, O(N).
See also {NP-complete}.
(20 Oct 1994)
complexity analysis
In sructured program design, a quality-control operation that
counts the number of "compares" in the logic implementing a
function; a value of less than 10 is considered acceptable.
complexity class
<algorithm> A collection of {algorithms} or {computable
functions} with the same {complexity}.
(24 Apr 1996)
complexity measure
<algorithm> A quantity describing the {complexity} of a
computation.
(24 Apr 1996)
complex number
<mathematics> A number of the form x+iy where i is the square
root of -1, and x and y are {real number}s, known as the
"real" and "imaginary" part. Complex numbers can be plotted
as points on a two-dimensional plane, known as an {Argand
diagram}, where x and y are the {Cartesian coordinates}.
An alternative, {polar} notation, expresses a complex number
as (r e^it) where e is the base of {natural logarithms}, and r
and t are real numbers, known as the magnitude and phase. The
two forms are related:
r e^it = r cos(t) + i r sin(t)
= x + i y
where
x = r cos(t)
y = r sin(t)
All solutions of any {polynomial equation} can be expressed as
complex numbers. This is the so-called {Fundamental Theorem
of Algebra}, first proved by Cauchy.
Complex numbers are useful in many fields of physics, such as
electromagnetism because they are a useful way of representing
a magnitude and phase as a single quantity.
(10 Apr 1995)
Component Integration Laboratories
(CIL) An effort to create a common framework for
interoperability between {application program}s on {desktop}
{platform}s, formed by {Apple Computer, Inc.}, {IBM}, {Novell},
{Oracle}, {Taligent}, {WordPerfect} and {Xerox}.
(24 Oct 1994)
[When was it formed? What happened?]
com port
{communications port}
composition
1. {function composition}.
2. {typesetting}.
Compositional C++
<language> (CC++) Extensions to {C++} for {compositional
parallel programming}.
{FTP Caltech (ftp://csvax.cs.caltech.edu/pub/comp)}
E-mail: Carl Kesselman <carl@vlsi.cs.caltech.edu>.
(07 Apr 1996)
Compound Document Architecture
<file format> (CDA) {DEC}'s set of {standards} for compound
document creation, storage, retrieval, interchange and
manipulation.
(03 Nov 1996)
COMPREHENSIVE
An early system on {MIT}'s {Whirlwind}.
[Listed in CACM 2(5):16 (May 1959)].
Comprehensive Perl Archive Network
<tool> (CPAN) A collection of {Internet} {archives} containing
material related to the {Perl} programming language.
{Master site (ftp://ftp.funet.fi/pub/languages/perl/CPAN/)},
{Africa (ftp://ftp.is.co.za/programming/perl/CPAN/)}, {Taiwan
(ftp://dongpo.math.ncu.edu.tw/perl/CPAN/)}, {Japan
(ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/)}, {Australia NU
(ftp://coombs.anu.edu.au/pub/perl/)}, {Australia MU
(ftp://ftp.mame.mu.oz.au/pub/perl/CPAN/)}, {NZ
(ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/ {SI
(ftp://ftp.arnes.si/software/perl/CPAN/)}, {Portugal
(ftp://ftp.ci.uminho.pt/pub/lang/perl/)}, {NL
(ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/)}, {UK Demon
(ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/)}, {Finland
(ftp://ftp.funet.fi/pub/languages/perl/CPAN/)}, {France IBP
(ftp://ftp.ibp.fr/pub/perl/CPAN/)}, {Europe LEO
(ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/)},
{France Pastur
(ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/)},
{Germany
(ftp://ftp.rz.ruhr-uni-bochum.de/pub/programming/languages/perl/CPAN/)},
{Sweden (ftp://ftp.sunet.se/pub/lang/perl/CPAN/)},
{Switzerland (ftp://ftp.switch.ch/mirror/CPAN/)}, {UK HENSA
(ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/)}, {USA UFL
(ftp://ftp.cis.ufl.edu/pub/perl/CPAN/)}, {USA Delphi
(ftp://ftp.delphi.com/pub/mirrors/packages/perl/CPAN/)}, {USA
SEDL (ftp://ftp.sedl.org/pub/mirrors/CPAN/)}, {USA Sterling
(ftp://ftp.sterling.com/programming/languages/perl/)}, {USA
UOKNOR (ftp://ftp.uoknor.edu/mirrors/CPAN/)}, {USA UIUC
(ftp://uiarchive.cso.uiuc.edu/pub/lang/perl/CPAN/)}.
(04 Jun 1996)
Comprehensive TeX Archive Network
<text> (CTAN) An {archive site} for the {TeX} text formatting
package.
{(http://www.tex.ac.uk)}. {Gopher
(gopher://gopher.tex.ac.uk/)}. {(ftp://ftp.tex.ac.uk/)}.
NFS: nfs.tex.ac.uk.
(18 Jan 1995)
compress
<tool> When used without a qualifier, generally refers to
{compression} of a file using a particular {C} implementation
of compression for {Unix} by Joseph M. Orost, James A. Woods
et al. widely circulated via {Usenet}. compress uses the
{Lempel-Ziv Welch} {algorithm} and normally produces files
with the suffix ".Z".
Compress uses variable length codes. Initially, nine bit
codes are output until they are all used. When this occurs,
ten bit codes are used and so on until an implementation
dependent maximum is reached.
After every 10 kilobytes of input the compression ratio is
checked. If it is descreasing then the entire string table is
discarded and information is collected from scratch.
(20 Oct 1996)
Compressed SLIP
<networking> (CSLIP) {VanJacobsen TCP header compression}. A
version of {SLIP} using {compression}. CSLIP has no effect on
the data portion of the {packet} and has nothing to do with
compression by {modem}. It does reduce the {TCP} header from
40 bytes to 7 bytes, a noticable difference when doing
{telnet} with lots of little packets. CSLIP has no effect on
UDP, only TCP.
(28 May 1995)
compressed video
The result of {video compression}.
compression
<application> The coding of data to save storage space or
transmission time. Although data is already coded in digital
form for computer processing, it can often be coded more
efficiently (using fewer bits). For example, {run-length
encoding} replaces strings of repeated characters (or other
units of data) with a single character and a count. There are
many compression {algorithms} and utilities. Compressed data
must be decompressed before it can be used.
The standard {Unix} compression utilty is called {compress}
though {GNU}'s {gzip} is better. Other compression utilties
include {pack}, {zip} and {pkzip}.
When compressing several similar files, it is usually better
to join the files together into an {archive} of some kind
(using {tar} for example) and then compress them, rather than
to join together individually compressed files. This is
because some common compression {algorithm}s build up tables
based on the data from their current input which they have
already compressed. They then use this table to compress
subsequent data more efficiently.
See also {TIFF}, {JPEG}, {MPEG}, {Lempel-Ziv Welch}.
There is a compression {FAQ} at
{(ftp://rtfm.mit.edu/pub/usenet/news.answers/compression-faq/)}.
{Usenet} newsgroups: {news:comp.compression},
{news:comp.compression.research}.
(21 Feb 1995)
COMPROSL
COMpound PROcedural Scientific Language.
A language for scientists and engineers.
[Sammet 1969, pp. 299-300].
Compu$erve
(Or "CompuSpend", "Compu$pend") A pejorative name for
{CompuServe Information Service} ({CI$}) drawing attention to
perceived high charges.
(08 Nov 1994)
Compulink Information eXchange
(CIX) A London-based conferencing system, also providing
{electronic mail}, {FTP}, {telnet}, {IRC}, {Gopher} and
{World-Wide Web}. Includes conferences "archimedes" or "bbc"
for users of {Acorn} computers.
E-mail: <cixadmin@cix.compulink.co.uk>.
Telephone: +44 (181) 390 8446.
(08 Nov 1994)
CompuServe Corporation
The parent organisation of {CompuServe Information Service},
CompuServe Network Services and CompuServe Remote Computing
Services. Wholly owned by H.R. Block.
{Home (http://www.compuserve.com/)}
(12 Sep 1995)
CompuServe Information Service
(CIS) One of the services run by {CompuServe Corporation}.
CIS provides a wide variety of information and services,
including {bulletin board}s, on-line conferencing, business
news, sports and weather, financial transactions, {electronic
mail}, travel and entertainment data as well as on-line
editions of computer publications. CompuServe Information
Service should not be confused with CompuServe Corporation's
other sectors which offer many other services besides the
consumer information service.
CIS is a large international conferencing system (albeit with
a heavy US bias). It provides an access to the {Usenet} news
(GO INTERNET). More comprehensive {Internet} access is
planned for the end of 1994. Forum UKCOMP topic Acorn/Z88 is
the place to find {Acorn} users.
Compuserve's main competitors are {AOL} and {Prodigy}.
{Home (http://www.compuserve.com/)}
Telephone: +44 (181) 801 2001 (London), +44 (121) 632 4858
(Birmingham), +44 (1734) 391 064 or 569 025 (Reading), +44
(1272) 255 111 (Bristol).
(12 Sep 1995)
Compusult Ltd.
A computer consulting firm (in Newfoundland, Canada?) that
provides a public access {Unix}.
(20 Oct 1994)
computability theory
<mathematics> The area of theoretical computer science
concerning what problems can be solved by any computer.
A function is computable if an {algorithm} can be implemented
which will give the correct output for any valid input.
Since there are only {countably many} computer programs and
uncountably many real numbers, it follows that there must
exist {real numbers} that cannot be calculated by any program.
Unfortunately, by definition, there isn't an easy way of
describing any of them!
In fact, there are many tasks (not just calculating real
numbers) that computers cannot perform. The most well-known
is the {halting problem}, the {busy beaver} problem is less
famous but just as fascinating.
["Computability", N.J. Cutland. (A well written
undergraduate-level introduction to the subject)].
["The Turing Omnibus", A.K. Dewdeney].
(13 Jan 1995)
computable
{computability theory}
Computational Adequacy Theorem
This states that for any program (a non-function typed term in
the {typed lambda-calculus} with constants) {normal order
reduction} (outermost first) fails to terminate if and only if
the {standard semantics} of the term is {bottom}. Moreover,
if the reduction of program e1 terminates with some {head
normal form} e2 then the standard semantics of e1 and e2 will
be equal. This theorem is significant because it relates the
operational notion of a reduction sequence and the
{denotational semantics} of the input and output of a
reduction sequence.
computational complexity
<algorithm> The number of steps or arithmetic operations
required to solve a computational problem. One of the three
kinds of {complexity}.
(24 Apr 1996)
computational learning
{grammatical inference}
COMpute ParallEL
<language> (Compel) The first {single-assignment} language.
["A Language Design for Concurrent Processes", L.G. Tesler et
al, Proc SJCC 32:403-408, AFIPS (Spring 1968)].
(19 Jan 1995)
Computer
<publication> A journal of the {IEEE Computer Society}.
(10 Mar 1995)
computer
<computer> A machine that can be programmed to manipulate
symbols. Computers can perform complex and repetative
procedures quickly, precisely and reliably and can quickly
store and retrieve large amounts of data.
The physical components from which a computer is constructed
(electronic circuits and input/output devices) are known as
"{hardware}". Most computers have four types of hardware
component: CPU, input, output and memory. The CPU ({central
processing unit}) executes programs ("{software}") which tell
the computer what to do. Input and output (I/O) devices allow
the computer to communicate with the user and the outside
world. There are several kinds of memory - fast, expensive,
short term memory (e.g. {RAM}) to hold intermediate results,
and slower, cheaper, long-term memory (e.g. {magnetic disk} and
{magnetic tape}) to hold programs and data between jobs.
See also {analogue computer}.
(10 Mar 1995)
Computer Aided Design
(CAD) The part of {CAE} concerning the drawing or physical
layout steps of engineering design.
(30 Nov 1994)
Computer Aided Engineering
(CAE) Use of computers to help with all phases of engineering
design work. Like {CAD}, but also involving the conceptual
and analytical design steps.
(28 Oct 1994)
Computer-Aided Instruction
<application, education> (CAI, or "assisted", "learning", CAL)
The use of (personal) computers for education and training.
(13 Apr 1995)
Computer-Aided Learning
{Computer-Aided Instruction}
Computer Aided Software Engineering
<programming> (CASE, or "assisted") A technique for using
computers to help with one or more phases of the {software
life-cycle}, including the systematic analysis, design,
implementation and maintenance of software. Adopting the CASE
approach to building and maintaining systems involves software
tools and training for the developers who will use them.
(10 May 1996)
Computer-Aided Software Testing
<programming> (CAST) Automated software testing in one or more
phases of the {software life-cycle}.
(10 May 1996)
Computer Animation Movie Language
["A Computer Animation Movie Language for Educational Motion
Pictures", D.D. Weiner et al, Proc FJCC 33(2), AFIPS (Fall
1968)].
(30 Nov 1994)
Computer-Assisted Learning
{Computer-Aided Instruction}
Computer-Assisted Software Engineering
{Computer-Aided Software Engineering}
Computer Associates
<company> (CA) A US software development company, best known
for {Ingres} which they got by buying out {ASK Corporation}.
Quarterly sales $477M, profits -$86M (Aug 1994).
(19 Apr 1995)
Computer-Based Training
<application> (CBT) Training (of humans) done by interaction
with a computer. The programs and data used in CBT are known
as "courseware."
(13 Mar 1995)
Computer Compiler
Proposed language for compiler design.
[Sammet 1969, p. 695].
computer confetti
Synonym {chad}. Though this term is common, this use of
punched-card chad is not a good idea, as the pieces are stiff
and have sharp corners that could injure the eyes. GLS
reports that he once attended a wedding at MIT during which he
and a few other guests enthusiastically threw chad instead of
rice. The groom later grumbled that he and his bride had
spent most of the evening trying to get the stuff out of their
hair.
Computer Conservation Society
(CCS) A specialist group of the {British Computer Society}.
See also {Bletchley Park}.
(17 Nov 1994)
Computer Design Language
An {ALGOL}-like language for computer design.
["An ALGOL-like Computer Design Language", Y. Chu, CACM 8(10)
(Oct 1965)].
(17 Nov 1994)
Computer Emergency Response Team
(CERT) An organisation formed by {DARPA} in November 1988 in
response to the needs exhibited during the {Internet worm}
incident. The CERT charter is to work with the {Internet}
community to facilitate its response to computer security
events involving Internet hosts, to take proactive steps to
raise the community's awareness of computer security issues
and to conduct research targeted at improving the security of
existing systems. CERT products and services include 24-hour
technical assistance for responding to computer security
incidents, product vulnerability assistance, technical
documents and tutorials.
{(ftp://cert.org)}
E-mail: <cert@cert.org>.
Telephone +1 (412) 2687090 (24-hour hotline).
(17 Nov 1994)
computer ethics
<philosophy> Ethics is the field of study that is concerned
with questions of value, that is, judgments about what human
behaviour is "good" or "bad". Ethical judgments are no
different in the area of computing from those in any other
area. Computers raise problems of privacy, ownership, theft
and power, to name but a few.
Computer ethics can be grounded in one of four basic
world-views: Idealism, Realism, Pragmatism, or Existentialism.
Idealists believe that reality is basically ideas and that
ethics therefore involves conforming to ideals. Realists
believe that reality is basically nature and that ethics
therefore involves acting according to what is natural.
Pragmatists believe that reality is not fixed but is in
process and that ethics therefore is practical (that is,
concerned with what will produce socially-desired results).
Existentialists believe reality is self-defined and that
ethics therefore is individual (that is, concerned only with
one's own conscience). Idealism and Realism can be considered
ABSOLUTIST worldviews because they are based on something
fixed (that is, ideas or nature, respectively). Pragmatism
and Existentialism can be considered RELATIVIST worldviews
because they are based or something relational (that is,
society or the individual, respectively).
Thus ethical judgments will vary, depending on the judge's
world-view. Some examples:
First consider theft. Suppose a university's computer is used
for sending an e-mail message to a friend or for conducting a
full-blown private business (billing, payroll, inventory,
etc.). The absolutist would say that both activities are
unethical (while recognising a difference in the amount of
wrong being done). A relativist might say that the latter
activities were wrong because they tied up too much memory and
slowed down the machine, but the e-mail message wasn't wrong
because it had no significant effect on operations.
Next consider privacy. An instructor uses her account to
acquire the cumulative grade point average of a student who is
in a class which she instructs. She obtained the password for
this restricted information from someone in the Records Office
who erroneously thought that she was the student's advisor.
The absolutist would probably say that the instructor acted
wrongly, since the only person who is entitled to this
information is the student and his or her advisor. The
relativist would probably ask why the instructor wanted the
information. If she replied that she wanted it to be sure
that her grading of the student was consistent with the
student's overall academic performance record, the relativist
might agree that such use was acceptable.
Finally, consider power. At a particular university, if a
professor wants a computer account, all she or he need do is
request one but a student must obtain faculty sponsorship in
order to receive an account. An absolutist (because of a
proclivity for hierarchical thinking) might not have a problem
with this divergence in procedure. A relativist, on the other
hand, might question what makes the two situations essentially
different (e.g. are faculty assumed to have more need for
computers than students? Are students more likely to cause
problems than faculty? Is this a hold-over from the days of
"in loco parentis"?).
{"Philosophical Bases of Computer Ethics" by Professor Robert
N. Barger (gopher://imcsrv.eiu.edu:70/1cpt-eths/papers.70)}.
{Usenet} newsgroups: {news:bit.listserv.ethics-l},
{news:alt.soc.ethics}.
(25 Oct 1995)
computer geek
<jargon> (Or "turbo nerd", "turbo geek") One who eats
(computer) {bugs} for a living. One who fulfils all the
dreariest negative stereotypes about {hackers}: an asocial,
malodourous, pasty-faced monomaniac with all the personality
of a cheese grater. Cannot be used by outsiders without
implied insult to all hackers; compare black-on-black usage of
"nigger". A computer geek may be either a fundamentally
clueless individual or a proto-hacker in {larval stage}.
See also {propeller head}, {clustergeeking}, {geek out},
{wannabee}, {terminal junkie}, {spod}, {weenie}.
(18 Jan 1995)
Computer Generation Incorporated
<company> (CGI) A US software development company and systems
integrator.
{Home (http://www.compgen.com/)}.
E-mail: Paul G. Smith <pauls@compgen.com>
Telephone: +1 (404) 705 2800
Address: Bldg. G, 4th Floor, 5775 Peachtree-Dunwoody Rd.,
Atlanta, GA 30342, USA.
(11 Feb 1997)
Computer Graphics Metafile
(CGM) A standard file format for storage and communication of
graphical information, widely used on {personal computer}s and
accepted by {desktop publishing} and technical illustration
systems. {ANSI}/{ISO} 8632-1987. Worked on by the
{ISO}/{IEC} group {JTC1/SC24}.
(04 Jan 1995)
computer language
{programming language}
computer law
<legal> Apart from {software law}, other relevant laws include
those concerning the sale of goods. Communication law is more
relevant to the {Internet}, it has to do with media issues in
general, e.g. free speech.
(05 Dec 1994)
Computer Mediated Communication
<messaging> (CMC) Communication that takes place through, or
is facilitated by, computers. Examples include {Usenet} and
{e-mail}, but CMC also covers real-time {chat} tools like
{lily (http://www.lily.org/)}, {IRC}, and even {video
conferencing}.
(26 Nov 1996)
computer nerd
{computer geek}
Computer Output to Laser Disk
<storage> (COLD) The capture of large (typically {mainframe}
generated) reports on optical media such that sections are
accessible as individual documents. A successor technology to
"COM" (Computer Output on Microfilm).
[Example application?]
(05 Feb 1997)
Computer Professionals for Social Responsibility
(CPSR) A non-profit organisation whose mission is to provide
the public and policymakers with realistic assessments of the
power, promise and problems of information technology and the
effects of computers on society. CPSR is supported by its
membership and has chapters throughout the USA. CPSR sponsors
conferences such as our Annual Meeting, Directions and
Implications in Advanced Computing (DIAC), the Participatory
Design Conference (PDC) and the Computers, Freedom and Privacy
(CFP) conference.
{Home (http://www.cpsr.org/home)}
(30 Nov 1994)
Computer + Science NETwork
(CSNET) The networking organisation which combined with
{BITNET} to form {CREN}.
(30 Nov 1994)
computer security
{security}
computer sex
<jargon> Two computers interfaced with each other.
(22 Feb 1996)
Computer Supported Cooperative Work
<tool> (CSCW) (Or "groupware") Software tools and technology
to support groups of people working together on a project,
often at different sites.
See also {Lotus Notes}.
(30 Nov 1994)
Computer Telephone Integration
<communications> (CTI or "- Telephony -") Enabling computers
to know about and control telephony functions such as making
and receiving voice, {fax}, and data calls, telephone
directory services, and caller identification. The
integration of telephone and computer systems and is a major
development in the evolution of the automated office.
CTI is not a new concept - such links have been used in the
past in large telephone networks - but only dedicated call
centres could justify the costs of the required equipment
installation. Primary telephone service providers are now
beginning to offer information services such as {Automatic
Number Identification} and {Dialled Number Identification
Service} on a scale wide enough for its implementation to
bring real value to business or residential telephone usage.
A new generation of applications ({middleware}) is being
developed as a result of standardisation and availability of
low cost computer-telephony links. This can link {personal
computers} with telephones and/or a local area server with a
{PBX}. Leading telephony and {software} vendors such as
{AT&T}, {British Telecom}, {Novell}, {Microsoft} and {Intel}
are developing better telephony services and capabilities
which should eventually enable low cost CTI.
The main {CTI} functions are integrating {messaging} with
{databases}, {word processors} etc.; controlling voice, {fax},
and {e-mail} messaging systems from a single {application
program}; graphical call control - using a {graphical user
interface} to perform functions such as making and receiving
calls, forwarding and conferencing; call and {data}
association - provision of information about the caller from
databases or other applications automatically before the call
is answered or transferred; {speech synthesis} and {speech
recognition}; automatic logging of call related information
for invoicing purposes or callback.
Typical productivity benefits are improved customer service;
increased productivity; reduced costs; enhanced workflow
automation; protected investment in computers and telephony;
computerised telephony intelligence.
{Callware}'s {Phonetastic} is typical of the new breed of
middleware.
See also {Telephony Application Programming Interface}.
(08 Dec 1996)
Computer Telephony Integration
{Computer Telephone Integration}
computer virus
{virus}
computer vision
A branch of {artificial intelligence} and {image processing}
concerned with computer processing of images from the real
world. Computer vision typically requires a combination of
low level {image processing} to enhance the image quality
(e.g. remove noise, increase contrast) and higher level
{pattern recognition} and {image understanding} to recognise
features present in the image.
{Usenet} newsgroup: {news:comp.ai.vision}.
(30 Nov 1994)
compute server
<computer, parallel> A kind of {parallel processor} where the
parallel processors have no I/O except via a bus or other
connection to a {front-end processor} which handles all I/O to
disks, terminals and network.
In some antiquated {IBM} {mainframe}s, a second CPU was
provided that could not access I/O devices, known as the slave
or attached processor, while the CPU having access to all
devices was known as the master processor.
(19 Mar 1995)
computing
The use of {computer}s.
computron
/kom'pyoo-tron"/ 1. A notional unit of computing power
combining instruction speed and storage capacity, dimensioned
roughly in instructions-per-second times
megabytes-of-main-store times megabytes-of-mass-storage.
"That machine can"t run GNU EMACS, it doesn't have enough
computrons!" This usage is usually found in metaphors that
treat computing power as a fungible commodity good, like a
crop yield or diesel horsepower. See {bitty box}, {Get a real
computer!}, {toy}, {crank}.
2. A mythical subatomic particle that bears the unit quantity
of computation or information, in much the same way that an
electron bears one unit of electric charge (see also {bogon}).
An elaborate pseudo-scientific theory of computrons has been
developed based on the physical fact that the molecules in a
solid object move more rapidly as it is heated. It is argued
that an object melts because the molecules have lost their
information about where they are supposed to be (that is, they
have emitted computrons). This explains why computers get so
hot and require air conditioning; they use up computrons.
Conversely, it should be possible to cool down an object by
placing it in the path of a computron beam. It is believed
that this may also explain why machines that work at the
factory fail in the computer room: the computrons there have
been all used up by the other hardware. (This theory probably
owes something to the "Warlock" stories by Larry Niven, the
best known being "What Good is a Glass Dagger?", in which
magic is fuelled by an exhaustible natural resource called
"mana".)
Compuware
<company> The company which markets {Uniface}.
{Home (http://www.compuware.com/)}
[More details?]
(14 Oct 1995)
COMSL
["COMSL - A Communication System Simulation Language",
R.L. Granger, Proc FJCC 37 (1970)].
COMTRAN
["Communications Computer Language COMTRAN", D.W. Clark et al,
RADC-TR-69-190, Rose Air Development Center, Griffiss AFB, NY,
July 1969].
[Sammet 1969, p.324, 331].
con
[SF fandom] A science-fiction convention. Not used of other
sorts of conventions, such as professional meetings. This
term, unlike many others of SF-fan slang, is widely recognised
even by hackers who aren't {fan}s. "We'd been corresponding on
the net for months, then we met face-to-face at a con."
ConC
<language> A {concurrent} extension of {C} based on
{decomposed Petri net}s. 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)].
(02 Mar 1995)
concatenate
To join together two or more files or lists to form one big
one.
The {Unix} {cat} command can be used to concatenate files.
(22 Dec 1995)
concentrator
<communications> A kind of {multiplexor} where many inputs may
be active simultaneously so the output bandwidth must be at
least as great as the total bandwidth of all simultaneously
active inputs.
For example, a concentrator may be used to connect 24 2400 bps
TTYs to a host via a 57600 bps channel.
(02 Mar 1995)
conceptualisation
<artificial intelligence> The collection 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}.
Every {knowledge base}, {knowledge-based system}, or
{knowledge-level agent} is committed to some
conceptualisation, explicitly or implicitly.
(19 Oct 1994)
conceptualization
{conceptualisation}
Concert/C
IBM TJWRC, July 1993. A parallel extension of ANSI C with
asynchronous {message passing}.
{(ftp://software.watson.ibm.com/pub/concert/cncrt.B1.tar.Z)}.
E-mail: <concert-c@watson.ibm.com>.
ConCoord
<programming, parallel> An environment for programming
networks of sequential and parallel computers. ConCoord
offers two contributions to {concurrent} programming. First,
it supports explicit exploitation of a variety of grains of
concurrency. Second, it separates the treatment of sequential
and of concurrent aspects of programming into computation and
"coordination" respectively. Sequential {algorithm}s can be
reused within computation and concurrent ones within
coordination.
(01 May 1995)
concrete class
<programming> In {object-oriented programming}, a {class}
suitable to be instantiated, as opposed to an {abstract
class}.
(01 May 1995)
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].
(30 Nov 1994)
concrete syntax
In contrast to {abstract syntax}, the concrete syntax of a
language includes all the features visible in the source
program such as parentheses and delimiters. The concrete
syntax is what is used when parsing the program or other input
(see {parser}), during which it is usually converted into some
kind of {abstract syntax tree}.
(30 Nov 1994)
CONCUR
["CONCUR, A Language for Continuous Concurrent Processes",
R.M. Salter et al, Comp Langs 5(3):163-189 (1981)].
concurrency
{multitasking}
Concurrent C
1. An extension of {C} with {rendezvous}-based {concurrency}.
Versions for most {Unix} systems are 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].
(11 Nov 1994)
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)].
(11 Nov 1994)
Concurrent C++
["Concurrent C++: Concurrent Programming with Class(es)",
N. Gehani, Bell labs 1986].
Concurrent Clean
<language> An alternative name for {Clean} 1.0.
(08 Nov 1995)
Concurrent CLU
Hamilton, 1984.
["Preserving Abstraction in Concurrent Programming", R. Cooper
et al, IEEE Trans Soft Eng SE-14(2):258-263 (Feb 1988)].
Concurrent Euclid
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.
It features {separate compilation}, {module}s, processes and
{monitor}s, {signal} and {wait} on {condition variable}s,
'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].
Concurrent LISP
["A Multi-Processor System for Concurrent Lisp", S. Sugimoto
et al, Proc 1983 Intl Conf parallel Proc, 1983 pp.135-143].
Concurrent ML
(CML) A {concurrent} extension of {SML/NJ} written by J. Reppy
at Cornell in 1990. CML supports dynamic {thread} creation
and synchronous {message passing} on typed channels. Threads
are implemented using first-class {continuation}s.
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.
Version 0.9.8 requires SML/NJ 0.75 (or later).
{(ftp://ftp.cs.cornell.edu/pub/)}
E-mail: <cml-bugs@cs.cornell.edu> (bugs),
<sml-bugs@research.att.com> (bugs).
["CML: A Higher-Order Concurrent Language", John H. Reppy,
SIGPLAN Notices 26(6):293-305 (June 1991)].
(21 Dec 1994)
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].
(11 Nov 1994)
Concurrent Object-Oriented Language
(COOL) An extension of {C++} with task-level parallelism for
{shared-memory} {multi-processor}s.
["COOL: A Language for Parallel Programming", R. Chandra
<rohit@seagull.stanford.edu> et al in Languages and Compilers
for Parallel Computing, D. Gelernter et al eds, MIT Press
1990, pp. 126-148].
E-mail: Rohit Chandra <rohit@cool.stanford.edu>.
(30 Nov 1994)
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 {monitor}s. It provided access
to hardware devices through monitor calls and supported also
processes and {class}es.
["The Programming Language Concurrent Pascal", Per Brinch
Hansen, IEEE Trans Soft Eng 1(2):199-207 (Jun 1975)].
(30 Nov 1994)
Concurrent Prolog
A {Prolog} variant with {guarded clause}s and
{committed-choice nondeterminism} ({don't-care
nondeterminism}) by Ehud "Udi" Shapiro, Yale
<shapiro-ehud@yale.edu>. 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].
(30 Nov 1994)
Concurrent Scheme
A parallel {Lisp}, for the {Mayfly} by M. Swanson
<swanson%teewinot@cs.utah.edu>.
["Concurrent Scheme", R.R. Kessler et al, in Parallel Lisp:
Languages and Systems, T. Ito et al eds, LNCS 441, Springer
1989].
(30 Nov 1994)
ConcurrentSmalltalk
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].
(30 Nov 1994)
condela
Connection Definition Language.
A {procedural}, parallel language for defining {neural
network}s.
{(ftp://tut.cis.ohio-state.edu/pub/condela)}
(30 Nov 1994)
condition out
To prevent a section of code from being compiled by
surrounding it with a {conditional compilation} directive
whose condition is always false. The {canonical} examples of
these directives are "#if 0" (or "#ifdef notdef", though some
find the latter bletcherous) and "#endif" in {C}. Compare
{comment out}.
(30 Nov 1994)
condom
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.
(14 Mar 1995)
CONFIG.SYS
<operating system> A text file containing special system
configuration commands. It is found in the {root directory}
on an {MS-DOS} computer, typically on drive C (the {hard
diosk}). It is read by {MS-DOS} during computer boot-up,
after the setup has been read from 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.
DEVICE=C:\DOS\EMM386.EXE RAM
Load the {expanded memory} manager.
BUFFERS=10,0
Specify memory for {disk buffer}s.
FILES=70
Set the number of files that can be open at once.
DOS=UMB
DOS is located in {UppeMemoryBlock}.
LASTDRIVE=Z
Disk drives are A: to Z:.
FCBS=16,0
Set the number of {file control block}s.
DEVICEHIGH /L:1,12048 =C:\DOS\SETVER.EXE
Report the DOS version to older programs.
DOS=HIGH
DOS should maintain a link to {UMB}.
COUNTRY=358,437 C:\DOS\COUNTRY.SYS
Set the {country code} for some programs.
STACKS=9,256
Set {dynamic stack}s for hardware control.
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /p
Set the location of the {command interpreter}.
(16 Mar 1995)
configuration item
<jargon> Hardware or software, or an aggregate of both, which
is designated by the project configuration manager (or
contracting agency) for {configuration management}.
(29 May 1996)
configuration management
<job> A discipline applying technical and administrative
controls to:
1. Identification and documentation of physical and functional
characteristics of {configuration item}s.
2. Any changes to characteristics of those configuration
items.
3. Recording and reporting of change processing and
implementation of the system.
See also {code management}, {software life-cycle}.
(29 May 1996)
configuration programming
<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.
(14 Mar 1995)
conflation
<database> 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?]
(14 Apr 1996)
ConflictNet
An IGC network serving groups and individuals working for
social justice and conflict resolution. ConflictNet's
resources include guidelines for choosing a neutral third
party, sample case development in conflict resolution,
extensive bibliographies, legislative updates, educational
materials and newsletters from around the world.
congestion
When the offered load of a data communication path exceeds the
capacity.
CONIC
["Dynamic Configuration for Distributed Systems", J. Kramer et
al, IEEE Trans Soft Eng SE-11(4):424-436 (Apr 1985)].
Conjunctive Normal Form
<logic> (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
is
(A or C) and (B or C).
Contrast {Disjunctive Normal Form}.
(10 Dec 1995)
connect
<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).
(21 Mar 1995)
connected graph
<mathematics> 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.
(22 Sep 1996)
connected subgraph
<mathematics> A {connected graph} consisting of a {subset} of
the {nodes} and {edges} of some other graph.
(22 Sep 1996)
connectionless protocol
The data communication method in which communication occurs
between {host}s with no previous setup. {Packet}s sent
between two hosts may take different routes. {UDP} is a
connectionless protocol. Also called {packet switching}.
Contrast {circuit switching}, {connection-oriented}.
Connection Machine LISP
<language> {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].
(28 Feb 1995)
connection-oriented
(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 duplicates.
Communication proceeds through three well-defined phases:
connection establishment, data transfer, connection release.
The most common example is {Transmission Control Protocol}
(TCP).
Opposite of {connectionless}, {datagram}. See also {circuit
switching}, {packet switching}, {virtual circuit}.
connective
An operator used in logic to combine two logical formulas.
See {first order logic}.
connector conspiracy
[probably came into prominence with the appearance of the
KL-10 (one model of the {PDP-10}), none of whose connectors
matched anything else]. The tendency of manufacturers (or, by
extension, programmers or purveyors of anything) to come up
with new products that don't fit together with the old stuff,
thereby making you buy either all new stuff or expensive
interface devices. The KL-10 Massbus connector was actually
*patented* by {DEC}, which reputedly refused to licence the
design and thus effectively locked third parties out of
competition for the lucrative Massbus peripherals market.
This policy is a source of never-ending frustration for the
diehards who maintain older PDP-10 or VAX systems. Their
{CPU}s work fine, but they are stuck with dying, obsolescent
disk and tape drives with low capacity and high power
requirements.
A closely related phenomenon, with a slightly different
intent, is the habit manufacturers have of inventing new screw
heads so that only Designated Persons, possessing the magic
screwdrivers, can remove covers and make repairs or install
options. Older Apple {Macintosh}es took this one step
further, requiring not only a hex wrench but a specialised
case-cracking tool to open the box.
In these latter days of open-systems computing this term has
fallen somewhat into disuse, to be replaced by the observation
that "Standards are great! There are so *many* of them to
choose from!" Compare {backward combatability}.
CONNIVER
{Artificial intelligence} language for {automatic theorem
proving}. An outgrowth of {PLANNER}, based on {coroutine}s
rather than {backtracking}. Allowed multiple database
contexts with hypothetical assertions.
["The CONNIVER Reference Manual", D. McDermott & G.J. Sussman
<gjs@zurich.ai.mit.edu>, AI Memo 259, MIT AI Lab, 1973].
(10 Jan 1995)
Co-NP
{complementary nondeterministic polynomial}
cons
/konz/ or /kons/ [LISP, "construct"] A {Lisp} function which
takes an element H and a list T and returns a new list whose
head is H and whose tail is T.
In {Lisp}, "cons" is the most fundamental operation for
building structures. It actually takes any two objects and
returns a "{dotted-pair}" or two-branched tree with one object
hanging from each branch. Because the result of a cons is an
object, it can be used to build {binary tree}s of any shape
and complexity.
conservative evaluation
Under this parallel evaluation strategy, no evaluation is
started unless it is known to be needed.
Opposite of speculative evaluation.
considered harmful
Edsger W. Dijkstra's note in the March 1968 "Communications of
the ACM", "Goto Statement Considered Harmful", 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 an article taking so
assertive a position against a coding practice. In the
ensuing decades, a large number of both serious papers and
parodies have borne 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.
consistently complete
[{domain theory}] {boundedly complete}.
console
1. The operator's station of a {mainframe}. In times past,
this was a privileged location that conveyed godlike powers to
anyone with fingers on its keys. Under {Unix} and other
modern {time-sharing} {operating system}s, such privileges are
guarded by passwords instead, and the console is just the
{tty} the system was booted from. Some of the mystique
remains, however, and it is traditional for {sysadmin}s to
post urgent messages to all users from the console (on Unix,
/dev/console).
2. On {microcomputer} {Unix} boxes, the main screen and
keyboard (as opposed to character-only terminals talking to a
{serial port}). Typically only the console can do real
graphics or run {X}. See also {CTY}.
console jockey
See {terminal junkie}.
Consortium for Lexical Research
(CLR) The Consortium for Lexical Research is a repository for
natural language processing software, lexical data, tools and
resources. It was set up in July 1991 in the Computing
Research Laboratory of New Mexico State University, Las
Cruces, New Mexico.
CLR maintains a public ftp site, and a separate members-only
library. Currently (Feb 1994) CLR has about 60 members,
mostly academic institutions, including most US natural
language processing centres. Materials can be contributed to
the archives in exchange for membership.
{(ftp://clr.nmsu.edu/)} (128.123.1.12). E-mail:
<lexical@crl.nmsu.edu>.
constant applicative form
(CAF) (Functional programming) 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.
(30 Nov 1994)
constant folding
<compiler> 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.
(20 Feb 1997)
Constantine/Yourdon
{Yourdon/Constantine}
constant mapping
Some TCP software constructs the destination Ethernet address
from the top 24 bits of the 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 net. Contrast {ARP}.
constraint
<programming, mathematics> A {Boolean} relation, often an
equality or {ineqality} relation, between the values of one or
more variables (often two). E.g. x>3 is a constraint on x.
{constraint satisfaction} is the process of assigning values
to variables so that all constraints are true.
{Usenet} newsgroup: {news:comp.constraints}. {FAQ
(http://web.cs.city.ac.uk/archive/constraints/constraints.html)}.
(20 Feb 1997)
constraint functional programming
(CFP) {Functional programming} plus {constraint}s.
Constraint Handling In Prolog
<language> (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].
(15 Nov 1994)
ConstraintLisp
An {object-oriented} {constraint} language based on {CSP}. An
extension of {Common Lisp} and {CLOS}.
["ConstraintLisp: An Object-Oriented Constraint Programming
Language", Bing Liu <bing@iti.gov.sg> et al, SIGPLAN Notices
27(11):17-26 (Nov 1992)].
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 was inconsistent, it will cause the engine to
{backtrack}.
{CLP*} is a variant.
["Constraint Logic Programming", J. Jaffar et al, 14th POPL,
ACM 1987].
(01 Nov 1994)
CONSTRAINTS
A language for solving {constraint}s using {value inference}.
["CONSTRAINTS: A Language for Expressing Almost-Hierarchical
Descriptions", G.J. Sussman et al, Artif Intell 14(1):1-39
(Aug 1980)].
(01 Nov 1994)
constraint satisfaction
<application> 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
(ftp://parcftp.xerox.com/pub/dynamics/constraints.html)} (Tad
Hogg, {XEROX PARC}).
(15 Feb 1995)
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}.
(03 Feb 1995)
constructive
<mathematics> A proof that something exists is "constructive"
if it provides a method for actually constructing it.
{Cantor}'s proof that the {real number}s are {uncountable} can
be thought of as a *non-constructive* proof that {irrational
number}s exist. (There are easy constructive proofs, too; but
there are existence theorems with no known constructive
proof).
Obviously, all else being equal, constructive proofs are
better than non-constructive proofs. 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
{intuitionist logic} for more information on this.
Most mathematicians are perfectly happy with non-constructive
proofs; however, the constructive approach is popular in
theoretical computer science, both because computer scientists
are less given to abstraction than mathematicians and because
{intuitionist logic} turns out to be the right theory for a
theoretical treatment of the foundations of computer science.
(13 Apr 1995)
Constructive Cost Model
<programming> (COCOMO) A method for evaluating the cost of a
{software} package proposed by Dr Barry Boehm. There are a
number of different types:
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
{DSI}s as an input. The Basic model is good for quick, early,
and rough order of magnitude estimates.
The Intermediate COCOMO Model an extension of the Basic COCOMO
model. The Intermediate model uses an {Effort Adjustment
Factor} (EAF) and slightly different coefficients for the
effort equation than the Basic model. It produces better
results than the Basic model because the user supplies
settings for cost drivers that determine the effort and
duration of the software projects. The Intermediate model
also allows the system to be divided and estimated in
components. DSI values and cost drivers can be chosen for
individual components instead of for the system as a whole.
The Detailed COCOMO Model differs from the Intermediate COCOMO
model in that it uses effort multipliers for each phase of the
project. These phase dependent effort multipliers yield
better estimates because the {cost driver} ratings may be
different during each phase. The detailed model also 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].
(29 May 1996)
constructor
<programming> 1. In {functional programming} and {type
theory}, one of the symbols used to create an object with an
{algebraic data type}.
2. A function provided by a {class} in {C++} to {instantiate}
an object, i.e. to name it and initialise it. The constructor
function has the same name as the class. A class may also
have a {destructor} function to destroy objects of that class.
(20 Oct 1994)
Consul
<language> A {constraint}-based [{future}-based?] language
with {Lisp}-like {syntax}.
["Consul: A Parallel Constraint Language", D. Baldwin, IEEE
Software 6(4):62-71].
(30 Nov 1994)
container class
A {class} whose instances are collections of other objects.
Examples include {stack}s, {queue}s, {list}s and {array}s.
content addressable memory
(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 {cache}s and {memory management unit}s.
(16 Feb 1995)
content-based information retrieval
<image, algorithm> (CBIR) A general term for methods for using
information stored in image archives.
[Details?]
[IEEE Computer, September 1995].
(23 Nov 1995)
Content Data Model
(CDM) An {SGML}-based {DoD} specification for interactive
manuals.
(15 Feb 1995)
content-free
(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}.
contention slot
(Or contention period). Minimum time a {host} must transmit
for before it can be sure that no other host's {packet} has
collided with its transmission. If the maximum propagation
delay from one host to any other is T, then a host that starts
to transmit at time t0 may collide with a host that starts
just before t0 + T. The first host will not detect the
collision until time t0 + 2T.
context
That which surrounds, and gives meaning to, something else.
<grammar> In a {grammar} it 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 said to
be {context-free}.
context clash
<grammar> When a {parser} cannot tell which alternative
{production} of a {syntax} applies by looking at the next
input {token} ("lexeme").
E.g. 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.
To discover whether a grammar has a context clash:
For each non-terminal, N, with multiple alternatives, look at
the first symbol of each alternative's right-hand side, call
it s. If s is the empty string, then find the set FOLLOWER(N)
otherwise find the set FIRST*(s). If any of the sets for N's
alternatives intersect then there will be a context clash when
parsing N. If the next input symbol is one of those in the
intersection of two sets then you won't know which of the
alternatives applies.
FIRST(s) is the set of symbols with which s can start,
including s itself. If s is a non-terminal then FIRST(s) also
includes the first symbol of each alternative right-hand side
of s. The '*' in FIRST*(s) means the "{transitive closure}"
of FIRST which means keep applying FIRST to each element of
the result until the result doesn't change. I.e. start with
just the set R = {s}, then for each non-terminal x in R, add
FIRST(x) to R. Keep doing this until nothing new is added.
(We are really only interested in the terminals in FIRST*(s)
but some definitions include the non-terminals).
FOLLOWER(N) is the set of symbols which can come after N in a
sentence. Find each occurrence of N on the right-hand side of
a rule, e.g.
M -> ... | ... N ... | ...
If there is a symbol s immediately following N then add
FIRST*(s) to the result (again, we're only interested in the
terminal symbols in FIRST*(s)) if there is no symbol after N
in the alternative then add FOLLOWER(M) to the result (i.e. if
N can be the last symbol in an M then anything that can follow
M can also follow N).
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). The context clash
occurs when trying to parse the first token of the phrase with
multiple parses - you will not be able to tell which
alternative to take. 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.
(05 Apr 1995)
context-free
Said of a {grammar} where the syntax of each constituent is
independent of the symbols occuring before and after it in a
sentence. {Parser}s for such grammars are simpler than those
for context-dependent grammars because the parser need only
know the current symbol.
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.
(18 Dec 1996)
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)].
(01 Nov 1994)
continental drift
In 1980 {David Turner} remarked that {KRC} ran "at the speed
of the continental drift".
(06 Dec 1994)
continuation
See {continuation passing style}.
Continuation Passing Style
(CPS) A semantically clean language with continuations used as
an intermediate language for {Scheme} and the {SML/NJ}
{compiler}.
["Rabbit: A Compiler for Scheme", G.L. Steele, AI-TR-474, MIT
(May 1978)].
["Compiling With Continuations", A. Appel, Cambridge U Press
1992].
continuation passing style
<programming> (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
square x = x * x square x k = k (x*x)
g (square 23) square 23 g
(square 3) + 1 square 3 ( \ s . s+1 )
(04 Apr 1995)
continuations
See {continuation passing style}.
continuous function
A function f : D -> E, where D and E are {cpo}s, 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}
(30 Nov 1994)
Continuous System Modeling Program
(CSMP) A program for {simulation} of dynamics of continuous
systems. It is similar to {CSSL}.
["A Guide to Using CSMP - The Continuous System Modeling
Program", Frank H. Speckhart et al, P-H 1976].
(23 Feb 1995)
continuous wave
<communications> (CW) A term from early radio history, when
the {spark gap} method of transmission was replaced by
vacuum-tube oscillators. A spark gap initiates a ringing,
damped sinusoidal wave in a tuned circuit consisting of an
inductor and capacitor. The energy in this circuit is
constantly changing between the capacitor's electrostatic
field and the inductor's magnetic field. The energy is then
coupled, loosely (so as not to dampen the wave too quickly),
to the radiating antenna.
In contrast, a vacuum-tube oscillator constantly adds energy
to the tuned circuit, compensating for the amount coupled to
the antenna, and the transmitted energy or "wave," is
therefore "continuous".
Many (especially radio amateurs) continue to understand "CW"
to mean transmission by means a signal of a single frequency
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 an extreme form of
amplitude modulation.
(15 Mar 1995)
contraction
See {reduction}.
control-C
<character> (Or ETX, End of Text) The {ASCII} character with
code 3.
Control-C is the interrupt character used on many {operating
system}s, including {Unix} and {MS-DOS} to abort a running
program.
Among {BSD} {Unix} hackers, the canonical humorous response
to "Give me a break!" is "Control C".
(16 Mar 1995)
control code
<character> A character which is input or output to cause some
special action rather than to appear as part of the data.
Most control characters are input by holding down (either of)
the "Control" key(s) on the keyboard and simultaneously
pressing another key which may be a letter or (depending on
the keyboard and {operating system}) certain punctuation
characters. Some control codes usually have their own special
keys: {escape}, {tab}, {delete}, {backspace}, {return} and can
thus be entered with a single keypress.
Different {operating system}s and programs have different
conventions for what effect typing certain control codes will
have, such as interrupting the current process or suspending
output.
Control codes 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.
See {control-O}, {control-Q}, {control-S}.
(23 Mar 1995)
controller
<hardware> 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 disk}s and {floppy disk}s, a network controller is used
for {Ethernet}.
The most common disk controllers in use are {IDE} and {SCSI}
controllers. Most home {personal computer}s use IDE
controllers. High end PCs, {workstation}s and network {file
server}s mostly have SCSI controllers.
[Other kinds?]
(20 Oct 1995)
control-O
<character> {ASCII} character 15 (SI).
The character used on some {operating system}s 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}.
(16 Mar 1995)
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. CP/M was very
popular in the late 1970s but was virtually wiped out by
{MS-DOS} after the release of the {IBM PC} in 1981.
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 might have been the {OS} for the {IBM PC} instead of
{MS-DOS} but Kildall wanted to keep control of his creation
and only license it to IBM. Big Blue however wanted to own
and control it completely. Kildall spent the day IBM's reps
wanted to meet him enjoying the perfect flying weather in his
private plane.
(07 Jan 1996)
control-Q
<character> (Or XON, DC1, {Device Control} 1) The character
with {ASCII} code 17, used in {software handshaking} to resume
output after a previous {control-S}.
(28 Jun 1996)
control-S
<character> (Or XOFF, DC3, {Device Control} 3) The character
with {ASCII} code 19, used in {software handshaking} to
temporarily suspend output until a {control-Q} is received.
(28 Jun 1996)
control tty
(/dev/ptyp*) The network side of a {pseudo-tty}.
control unit
<processor> The part of a {CPU} responsible for performing the
{machine cycle} - fetch, decode, execute, store.
(23 Apr 1995)
conventional memory
<storage> 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.
(10 Jan 1996)
Convergent Technologies
<company> A company formed by a small group of people who left
{Intel Corporation} in 1979. {Convergent Technologies
Operating System} was their first {operating system}.
(24 Sep 1996)
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 have licensed CTOS include {Burroughs} (BTOS)
and {Bull} (STARSYS). The largest customer was {Unisys}, with
whom Convergent Technologies merged to become one company in
1988. CTOS now has a user base of over 800,000 units
worldwide and the latest version is CTOS III 1.3.2. It runs
on Intel {Pentium} computers, and can run concurrently with
{Microsoft} {Windows NT}.
For some reason, CTOS is no longer marketted to new customers,
although there is a support comittment for existing customers
until 2001. Major customers include Police Forces, Banks, and
Airlines.
["Exploring CTOS", Miller E., Crook J., Loy J. - Prentice
Hall, ISBN 0-13-297342-1, 1991].
(24 Sep 1996)
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].
(01 Nov 1994)
converse
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
conversion to iteration
A transformation applied to functional programs to replace
recursion with iteration. A tail-recursive function can be
compiled to an iterative loop where 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. See Iteration, Tail recursion optimisation.
CONVERT
1. String processing language, 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. Early language to convert programs and data from one
language to another. "CONVERT Manual", OLI Systems Inc (Oct
1976).
convert.f90
A {Fortran77} to {Fortran90} translator by Michael Metcalf
<metcalf@cernvm.cern.ch>. The significant differences between
the two Fortrans make this package useful.
{(ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90)}
(17 Jul 1993)
Convex Computer Corporation
<company> A mini-super-computer manufacturer.
Address: Richardson, Texas, USA.
(01 Mar 1995)
Conway's Law
The rule that the organisation of the 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".
Melvin Conway, an early proto-hacker, wrote an {assembler} for
the {Burroughs 220} called SAVE. The name "SAVE" didn't stand
for anything; it was just that you lost fewer card decks and
listings because they all had SAVE written on them.
cooC
Concurrent Object-Oriented C. A language with {concurrent}
{object} execution from {Toshiba}. It has synchronous and
asynchronous {message passing} and has been implemented for
{SunOS}.
{(ftp://tsbgw.isl.rdc.toshiba.co.jp/pub/toshiba/cooc-beta.1.1.tar.Z)}.
E-mail: <cooc@isl.rdc.toshiba.co.jp>.
[SIGPLAN Notices 28(2)].
cooccurrence matrix
<mathematics> Given a position operator P(i,j), let A be a nxn
matrix whose element A[i][j] is the number of times that
points with gray level (intensity) g[i] occur, in the position
specified by P, relative to points with gray level g[j]. Let
C be the nxn matrix that is produced by dividing A with the
total number of point pairs that satisfy P. C[i][j] is a
measure of the joint probability that a pair of points
satisfying P will have values g[i], g[j]. C is called a
cooccurrence matrix defined by P. Examples for the operator P
are: "i above j", "i one position to the right and two below
j", etc.
(11 May 1995)
cookbook
<programming> (From amateur electronics and radio) A book of
small code segments that the reader can use to do various
{magic} things in programs.
One current example is the "{PostScript} Language Tutorial and
Cookbook" by Adobe Systems, Inc (Addison-Wesley, ISBN
0-201-10179-3), also known as the {Blue Book} which has
recipes for things like wrapping text around arbitrary curves
and making 3D fonts.
Cookbooks, slavishly followed, can lead one into {voodoo
programming}, but are useful for hackers trying to {monkey up}
small programs in unknown languages. This function is
analogous to the role of phrasebooks in human languages.
(04 Nov 1994)
cooked mode
The normal{Unix} character-input mode, with interrupts enabled
and with erase, kill and other special-character
interpretations performed directly by the tty driver.
Opposite of {raw mode}. See also {rare mode}. Other
operating systems often have similar mode distinctions, and
the raw/rare/cooked way of describing them has spread widely
along with the {C} language and other Unix exports. Most
generally, "cooked mode" may refer to any mode of a system
that does extensive preprocessing before presenting data to a
program.
cookie
<protocol> A handle, transaction ID, or other token of
agreement between cooperating programs. "I give him a packet,
he gives me back a cookie." The claim check you get from a
dry-cleaning shop is a perfect mundane example of a cookie;
the only thing it's useful for is to relate a later
transaction to this one (so you get the same clothes back).
Compare {magic cookie}; see also {fortune cookie}, {HTTP
cookie}.
(05 Oct 1996)
cookie bear
{cookie monster}
cookie file
<operating system> A collection of {fortune cookies} in a
format that facilitates retrieval by a {fortune} program.
There are many cookie files in public distribution, and site
admins often assemble their own from various sources.
(07 Jan 1997)
cookie jar
1. <programming> An area of memory set aside for storing
{cookies}. Most commonly heard in the {Atari ST} community;
many useful ST programs record their presence by storing a
distinctive {magic number} in the jar. Programs can inquire
after the presence or otherwise of other programs by searching
the contents of the jar.
2. <security> A {cracker} term for the password file of a
multi-user computer.
(12 Feb 1997)
cookie monster
<recreation> (From the children's TV program "Sesame Street")
Any of a family of early (1970s) hacks reported on {TOPS-10},
{ITS}, {Multics} and elsewhere that would lock up either the
victim's terminal (on a {time-sharing} machine) or the
{console} (on a batch {mainframe}), repeatedly demanding "I
WANT A COOKIE". The required responses ranged in complexity
from "COOKIE" through "HAVE A COOKIE" and upward.
See also {wabbit}.
(12 Feb 1997)
cooky
{cookie}
COOL
1. {Concurrent Object-Oriented Language}.
2. CLIPS Object-Oriented Language?
3. A C++ class library developed at {Texas Instruments}. COOL
contains a set of containers like Vectors, List, Hash_Table,
etc. It uses a shallow hierarchy with no common base class.
The functionality is close to Common Lisp data structures
(like libg++). The template syntax is very close to Cfront3.x
and g++2.x. Can build shared libraries on Suns.
JCOOL's main difference from COOL and GECOOL is that it uses
real C++ templates instead of a similar syntax that is
preprocessed by a special 'cpp' distributed with COOL and
GECOOL.
{(ftp://csc.ti.com/pub/COOL.tar.Z)}
GECOOL, JCOOL: {(ftp://cs.utexas.edu/pub/COOL/)}.
E-mail: Van-Duc Nguyen <nguyen@crd.ge.com>
(05 Aug 1992)
CooL
<language> Combined object-oriented Language.
An {object-oriented} language from the {ITHACA} {Esprit}
project, which combines {C}-based languages with {database}
technology.
(15 Mar 1995)
Co-operative Development Environment
<tool, product> (CDE) A set of tools from {Oracle} for
enterprise-wide, {client/server} {application} development.
(15 Mar 1995)
Cooperative Information System
<networking> (CIS) Networked computers which support
individual or collaborative human work, and manage access to
information and computing services. Computation is done
{concurrent}ly over the network by cooperative {database}
systems, {expert system}s, multi-agent planning systems, and
other software application systems ranging from the
conventional to the advanced.
(11 May 1995)
cooperative multitasking
<parallel, operating system> A form of {multitasking} where it
is the responsibility of the currently running task to give up
the processor to allow other tasks to run. This contrasts
with {pre-emptive multitasking} where the task {scheduler}
periodically suspends the running task and restarts another.
Cooperative multitasking requires the programmer to place
calls at suitable points in his code to allow his task to be
{deschedule}d which is not always easy if there is no obvious
top-level {main loop} or some routines run for a long time.
If a task does not allow itself to be descheduled all other
tasks on the system will appear to "freeze" and will not
respond to user action.
The advantage of cooperative multitasking is that the
programmer knows where the program will be descheduled and can
make sure that this will not cause unwanted interaction with
other processes. Under {pre-emptive multitasking}, the
scheduler must ensure that sufficient state for each process
is saved and restored that they will not interfere. Thus
cooperative multitasking can have lower {overheads} than
pre-emptive multitasking because of the greater control it
offers over when a task may be descheduled.
Cooperative multitasking is used in {RISC OS}, {Microsoft
Windows} and {Macintosh} {System 7}.
(20 Mar 1995)
Coordinating Committee for Intercontinental Research Networks
(CCIRN) A committee that includes the United States FNC and
its counterparts in North America and Europe. Co-chaired by
the executive directors of the Federal Networking Council and
the European Association of Research Networks (RARE), the
CCIRN provides a forum for cooperative planning among the
principal North American and European research networking
bodies.
(30 Nov 1994)
copious free time
(Apple; originally from the introduction to Tom Lehrer's song
"It Makes A Fellow Proud To Be A Soldier") Used ironically to
indicate the speaker's lack of the quantity in question; a
mythical schedule slot for accomplishing tasks held to be
unlikely or impossible. Sometimes used to indicate that the
speaker is interested in accomplishing the task, but believes
that the opportunity will not arise. "I'll implement the
automatic layout stuff in my copious free time."
The phrase is also used for time reserved for bogus or
otherwise idiotic tasks, such as implementation of bad
{chrome}, or the stroking of {suit}s. "I'll get back to him
on that feature in my copious free time."
(30 Nov 1994)
copper
Conventional electrical network cable with a core conductor of
copper (or aluminium!)
Opposed to {light pipe} or, say, a short-range microwave link.
(30 Nov 1994)
Copper Distributed Data Interface
(CDDI) {FDDI} running over conventional copper cables. A
{Cisco}/{Crescendo} copyright term(?). All {FDDI}
connections, {single-attached} or {dual-attached}, can be
either fiber or copper.
(14 Dec 1994)
coprocessor
Any computer processor which assists the main processor (the
"{CPU}") by performing certain special functions, usually much
faster than the main processor could perform them in software.
The coprocessor often decodes instructions in parallel with
the main processor and executes only those instructions
intended for it.
The most common example is a {floating point} coprocessor (or
"{FPU}"), others are graphics and networking.
(05 Jan 1995)
copybroke
<security> /kop'ee-brohk/ (Or "copywronged" - a play on
"{copyright}") 1. Used to describe an instance of a
{copy-protected} program that has been "broken"; that is, a
copy with the copy-protection scheme disabled or removed.
2. Copy-protected software which is unusable because of some
{bit-rot} or {bug} that has confused the {copy protection}.
3. Used to describe data damaged because of a side effect of a
copy protection system.
(16 Mar 1997)
copying garbage collection
A {garbage collection} method where memory is divided into two
equal halves, known as the "from space" and "to space".
Garbage collection copies active cells from the from space to
the to space and leaves behind an invisible pointer (an
"indirection") from the old position to the new copy. Once
all active cells have been copied in one direction, the spaces
are swapped and the process repeated in the opposite
direction.
copyleft
<legal> /kop'ee-left/ (A play on "copyright") The {copyright}
notice and {General Public License} applying to the works of
the {Free Software Foundation}, granting reuse and
reproduction rights to everyone.
Typically copyrights take away freedoms; copyleft preserves
them. It is a legal instrument that requires those who pass
on a program to include the rights to use, modify, and
redistribute the code; the code and the freedoms become
legally inseparable.
The copyleft used by the GNU Project combines a regular
copyright notice and the "GNU General Public License" (GPL).
The GPL is a copying license which basically says that you
have the aforementioned freedoms. The license is included in
each GNU source code distribution and manual.
See also {General Public Virus}.
(18 Apr 1995)
copy protection
A class of methods for preventing incompetent pirates from
stealing software and legitimate customers from using it.
Considered silly.
copyright
<legal> The exclusive rights of the owner of the copyright on
a work to make and distribute copies, prepare derivative works
and perform and display the work in public (these last two
mainly apply to plays, films, dances and the like, but could
also apply to software).
A work, including a piece of software, is under copyright if
it displays a copyright notice. The copyright owner is the
person or company whose name appears in the copyright notice
on the box, or the disk or the screen or wherever.
A copyright notice has three parts. The first can be either a
c with a circle around it ({LaTeX} \copyright), or the word
Copyright or the abbreviation Copr. A "c" in parentheses:
"(c)" has no legal meaning. This is followed by the name of
the copyright holder and the year.
Countries around the world have agreed to recognise and uphold
each others' copyrights, but this world-wide protection
requires the use of the c in a circle.
Originally, most of the computer industry assumed that only
the program's underlying instructions were protected under
copyright law but, beginning in the early 1980s, a series of
lawsuits involving the video screens of game programs extended
protections to the appearance of programs.
See also {public domain}, {copyleft}, {software law}.
{US Copyright Office Circular 61 - Copyright Registration for
Computer Programs
(gopher://marvel.loc.gov:70/0/copyright/circs/circ61)}.
{The US Department of Education's "How Does Copyright Law
Apply to Computer Software"
(gopher://ericir.syr.edu:70/0/FAQ/CopyrightSoftware)}.
{Usenet} newsgroup: {news:misc.legal.computing}.
[Is this definition correct in the UK? In the US?
Elsewhere?]
(16 Nov 1994)
copywronged
{copybroke}
CORAL
1. {Class Oriented Ring Associated Language}.
2. A {deductive database} and {logic programming} system based
on {Horn-clause} rules with extensions like {SQL}'s {group-by}
and {aggregation} operators. CORAL was developed at the
University of Wisconsin-Madison. It is implemented in C++ and
has a {Prolog}-like {syntax}.
Many evaluation techniques are supported, including {bottom-up
fixpoint evaluation} and top-down {backtracking}. {Module}s
are separately compiled; different evaluation methods can be
used in different modules within a single program.
Disk-resident data is supported via an interface to the
{Exodus} storage manager. There is an on-line help facility.
It requires {AT&T} {C++} 2.0 (or {G++} soon) and runs on
{Decstation} and {Sun4}.
{(ftp://ftp.cs.wisc.edu/)}
(29 Jan 1993)
CORAL 66
A real-time system programming language derived from {JOVIAL}
and {ALGOL 60}. It was adopted as the British military
standard from 1970 until the arrival of {Ada}.
["Official Definition of CORAL 66", P.M. Woodward et al, HMSO,
London, 1970].
CORBA
{Common Object Request Broker Architecture}
CORBIE
<language> An early system on the {IBM 704}.
[Listed in CACM 2(5):16, May 1959].
(10 May 1996)
CORC
CORnell Compiler. Simple language for student math problems.
["The Cornell Computing Language", R.W. Conway et al, CACM
6(6):317-320 (Jun 1963) Sammet 1969, p.294-296].
core
1. <storage> {Main memory} or {RAM}. This term dates from the
days of {ferrite core memory}; now archaic most places outside
{IBM}, but also still used in the {Unix} community and by
old-time {hackers} or those who would sound like them.
Some derived idioms are quite current; "in core", for example,
means "in memory" ({paged in}, as opposed to "on disk", {paged
out}), and both {core dump} and the "core image" or "core
file" produced by one are terms in favour. Some varieties of
Commonwealth hackish prefer {store}.
(03 Mar 1995)
2. <processor> An {integrated circuit} design, usually for a
{microprocessor}, which includes only the {CPU} and which is
intended to form part of a complete circuit design which
incorporates other circuits on the same chip such as {cache},
{memory management unit}, I/O ports and timers.
The {ARM6}, {ARM7} and {ARM8} are examples.
3. <language> A varient on {kernel} as used to describe
features built into a language as opposed to those provided by
{libraries}.
(03 Mar 1995)
core cancer
A process that exhibits a slow but inexorable resource {leak}
- like a cancer, it kills by crowding out productive "tissue".
core dump
[Common {Iron Age} jargon, preserved by Unix] 1. A copy of the
contents of {core}, produced when a process is aborted by
certain kinds of internal error.
2. A complete account of a human's knowledge on some subject
(also {brain dump}), especially in a lecture or answer to an
exam question. "Short, concise answers are better than core
dumps" (from the instructions to an exam at Columbia).
core gateway
Historically, one of a set of gateways ({routers}) operated by
the {Internet Network Operations Center} at Bolt, Beranek and
Newman (BBN). The core gateway system formed a central part
of {Internet} routing in that all groups must advertise paths
to their networks from a core gateway.
Corel Corporation
<company> A software publisher best known for the {CorelDraw}
{application}. Founded in June 1985 by Dr. Michael Cowpland,
Corel Corporation was originally a {systems integration} company.
In January 1989, however they entered the software publishing
market with the introduction of CorelDraw. Corel became the
second largest maker of personal {productivity software} in
January 1996 when they purchased the {WordPerfect} family of
software from {Novell, Inc.}.
{Home (http://www.corel.com/)}.
(12 Mar 1997)
core leak
{memory leak}
Core War
<games> (Or more recently, "Core Wars") A game played between
{assembly code} programs running in the {core} of a simulated
machine (and vicariously by their authors). The objective is
to kill your opponents' programs by overwriting them.
The programs are written using an {instruction set} called
"{Redcode}" and run on a {virtual machine} called "{MARS}"
(Memory Array Redcode Simulator).
Core War was devised by Victor Vyssotsky, Robert Morris Sr.,
and {Dennis Ritchie} in the early 1960s (their original game
was called "{Darwin}" and ran on a {PDP-1} at {Bell Labs}).
It was first described in the "Core War Guidelines" of March,
1984 by D. G. Jones and A. K. Dewdney of the Department of
Computer Science at The University of Western Ontario
(Canada).
Dewdney wrote several "Computer Recreations" articles in
"Scientific American" which discussed Core War, starting with
the May 1984 article. Those articles are contained in the two
anthologies cited below. A.K. Dewdney's articles are still
the most readable introduction to Core War, even though the
{Redcode} dialect described in there is no longer current.
The International Core War Society (ICWS) creates and
maintains Core War standards and the runs Core War
tournaments. There have been six annual tournaments and two
standards (ICWS'86 and ICWS'88).
["The Armchair Universe: An Exploration of Computer Worlds",
A. K. Dewdney, W. H. Freeman, New York, 1988, ISBN
0-7167-1939-8, LCCN QA76.6 .D517 1988]
["The Magic Machine: A Handbook of Computer Sorcery",
A. K. Dewdney, W. H. Freeman, New York, 1990, ISBN
0-7167-2125-2 (Hardcover), 0-7167-2144-9 (Paperback), LCCN
QA76.6 .D5173 1990].
Core Wars
Later name for {Core War}.
corge
/korj/ Yet another {metasyntactic variable}, named after a cat
invented by Mike Gallaher and propagated by the {GOSMACS}
documentation.
See {grault}.
(08 Dec 1994)
Cornell List Processor
(CLP) A list processing language, an extension of {CORC}, used
for {simulation}.
[Sammet 1969, p. 461].
(01 Nov 1994)
Cornell Theory Center
(CTC) One of four supercomputing centers funded by the US
{National Science Foundation}. The CTC also receives funding
from the {Advanced Research Projects Agency}, the National
Institutes of Health, New York State, {IBM} Corporation, and
other members of the center's Corporate Research Institute.
{Home (http://www.tc.cornell.edu/)}
(08 Dec 1994)
Cornell University
<body, education> A US Ivy League University founded in 1868
by businessman Ezra Cornell and respected scholar Andrew
Dickson White. Cornell includes thirteen colleges and
schools. On the Ithaca campus are the seven undergraduate
units and four graduate and professional units. The Medical
College and the Graduate School of Medical Sciences are in New
York City. Cornell has 13,300 undergraduates and 6,200
graduate and professional students.
See also {Concurrent ML}, {Cornell Theory Center}, {Cornell
University Programming Language}, {CU-SeeMe}, {ISIS}.
{Home (http://www.cornell.edu/)}.
(01 Dec 1996)
Coroutine Pascal
["Control Separation in Programming languages", Lemon et al,
ACM Ann Conf 1977].
(08 Dec 1994)
Corporation for Open Systems
(COS) An international consortium of computer users and
vendors set up to provide ways of testing {OSI}
implementations.
(30 Nov 1994)
Corporation for Research and Educational Networking
<body> (CREN) The organisation responsible for providing
networking service to {BITNET} and {CSNET} users. CREN was
formed in October 1989, when {BITNET} and {CSNET} were
combined under one authority. {CSNET} is no longer
operational, but CREN still runs {BITNET}.
[Still true?]
(17 May 1996)
CORREGATE
Based on {Internal Translator} (IT).
[Sammet 1969, p. 139].
(30 Nov 1994)
Correlatives and Conversions
The {data description language} used in the {Pick} {operating
system}.
["Exploring the Pick Operating System", J.E. Sisk et al,
Hayden 1986].
(30 Nov 1994)
Cortex
An experimental slow controls project at {CERN}.
(30 Nov 1994)
CORTL
An intermediate language, a form of {RTL}, by Carl McConnell
<mcconnell@cs.uiuc.edu>.
(30 Nov 1994)
COS
1. {Cray Operating System}.
2. {Corporation for Open Systems}.
COSE
Common Open Software Environment. An initiative by
Hewlett-Packard, Sun, IBM, Novell, Univel and SCO to move
towards consistency and interoperability between Unix
suppliers.
COSINE
Cooperation for Open Systems Interconnection Networking in
Europe. A EUREKA project.
cosmic rays
Notionally, the cause of {bit rot}. However, this is a
semi-independent usage that may be invoked as a humorous way
to {handwave} away any minor {randomness} that doesn't seem
worth the bother of investigating. "Hey, Eric - I just got
a burst of garbage on my {tube}, where did that come from?"
"Cosmic rays, I guess." Compare {sunspots}, {phase of the
moon}. The British seem to prefer the usage "cosmic showers";
"alpha particles" is also heard, because stray alpha particles
passing through a memory chip can cause single bit errors
(this becomes increasingly more likely as memory sizes and
densities increase).
Factual note: Alpha particles cause bit rot, cosmic rays do
not (except occasionally in spaceborne computers). Intel
could not explain random bit drops in their early chips, and
one hypothesis was cosmic rays. So they created the World's
Largest Lead Safe, using 25 tons of the stuff, and used two
identical boards for testing. One was placed in the safe, one
outside. The hypothesis was that if cosmic rays were causing
the bit drops, they should see a statistically significant
difference between the error rates on the two boards. They
did not observe such a difference. Further investigation
demonstrated conclusively that the bit drops were due to alpha
particle emissions from thorium (and to a much lesser degree
uranium) in the encapsulation material. Since it is
impossible to eliminate these radioactives (they are uniformly
distributed through the earth's crust, with the statistically
insignificant exception of uranium lodes) it became obvious
that one has to design memories to withstand these hits.
COSS
{Common Object Services Specification} in {CORBA}.
Cost Driver Attribute
<programming> Factors affecting the productivity of software
development. These include attributes of the software,
computers, personnel, and project.
(28 May 1996)
Cost/Schedule Control System Criteria
<project> (C/SCSC) A set of criteria specified by the Federal
Government for reporting project schedule and financial
information.
(29 May 1996)
COTS
commercial off-the-shelf.
cough and die
<jargon> {barf}. Connotes that the program is throwing its
hands up by design rather than because of a bug or oversight.
"The parser saw a control-A in its input where it was looking
for a printable, so it coughed and died."
Compare {die}, {die horribly}, {scream and die}.
(07 Mar 1995)
countable
<mathematics> A term describing a set which is {isomorphic} to
the {natural number}s. If the isomorphism is stated
explicitly then the set is called "counted" or "an
{enumeration}".
(13 Apr 1995)
counted
<mathematics> A term describing a set with an explicit
isomorphism with the {natural number}s.
(13 Apr 1995)
country code
<networking, standard> A two-letter abbreviation for a
particular country. These codes are based on {ISO 3166} and
are used as the top level {domain} for {Internet} {hostname}s
in most countries but hardly ever in the USA (code "us").
{Latest list
(http://www.ee.ic.ac.uk/misc/country-codes.html)}.
(07 Mar 1995)
coupling
<programming, hardware> The degree to which components depend
on one another. There are two types of coupling, "tight" and
"loose". Loose coupling is desirable for good {software
engineering} but tight coupling may be necessary for maximum
performance. Coupling is increased when the data exchanged
between components becomes larger or more complex.
(01 Aug 1996)
Course Author Language
<language> (CAL) The {CAI} language for the {IBM 360}.
["Design of a Programming Language for Computer Assisted
Learning", F.M. Tonge, Proc IFIP Congress 1968, v2].
(08 Nov 1994)
courseware
<application> Programs and data used in {Computer-Based
Training}.
(13 Mar 1995)
Coursewriter III
<language, education> A simple {CAI} language, developed
around 1976.
["Coursewriter III, Version 3 Author's Guide", SH20-1009,
IBM].
(13 Mar 1995)
cowboy
[Sun, from William Gibson's {cyberpunk} SF] Synonym
for {hacker}. It is reported that at Sun this word is often
said with reverence.
COWSEL
COntrolled Working SpacE Language. Burstall and Popplestone,
U Edinburgh, 1964-66. LISP-like semantics with FORTH-like
stack, and reverse Polish syntax. Forerunner of POP.
EPU-R-12, U Edinburgh (Apr 1966).
CP
A concurrent Prolog.
"The Concurrent Logic Programming Language CP": Definition and
Operational Semantics", V. Saraswat, 14th POPL, ACM 1987,
pp.49-62.
CParaOps5
Anurag Acharya, <acharya@cs.cmu.edu>. Parallel version of
OPS5, written in C and compiling to C. Available for Unix,
Mach, Encore Multimaxen, and Sequent. Version: 5.4.
{(ftp://dravido.soar.cs.cmu.edu/usr/nemo/cparaops5/CParaOPS5-5.4.tar.Z)}
CPI
Common Program Interface: the API of SAA.
CPL
Combined Programming Language. U Cambridge and U London. A
very complex language, syntactically based on ALGOL 60, with a
pure functional subset. Provides the ..where.. form of local
definitions. Strongly typed but has a "general" type enabling
a weak form of polymorphism. Functions may be defined as
either normal or applicative order. Typed array and
polymorphic list structures. List selection is through
structure matching. Partially implemented on the Titan (Atlas
2) computer at Cambridge. Led to the much simpler BCPL. "The
Main Features of CPL", D.W. Barron et al, Computer J
6(2):134-143 (Jul 1963).
CPM
{Control Program for Microcomputers}
Normally written "CP/M".
CP/M
{Control Program for Microcomputers}
cpp
C preprocessor. The standard {Unix} {macro}-expansion utility
run as the first phase of the {C} compiler, {cc}. Cpp
interprets lines beginning with "#" such as
#define BUFFER_SIZE 256
as a textual {assignment} giving the symbol BUFFER_SIZE a
value "256". Symbols defined with cpp are traditionally given
upper case names to distinguish them from C identifiers. This
symbol can be used later in the input, as in
char input_buffer[BUFFER_SIZE];
This use of cpp to name constants, rather than writing these
{magic number}s inline, makes a program easier to read and
maintain, especially if there is more than one occurrence of
BUFFER_SIZE all of which must all have the same value.
Cpp macros can have parameters:
#define BIT(n) (1<<(n))
This can be used with any appropriate actual argument:
msb = BIT(nbits-1);
Note the parentheses around the "n" in the definition of BIT.
Without these, operator precedence might mean that the
expression substituted in in place of n might not be
interpreted correctly (though the example above would be OK).
Cpp also supports conditional compilation with the use of
#ifdef SYMBOL
...
#else
...
#endif
and
#if EXPR
...
#else
...
#endif
constructs, where SYMBOL is a Cpp symbol which may or may not
be defined and EXPR is an arithmetic expression involving only
Cpp symbols, constants and C operators which Cpp can evaluate
to a constant at {compile time}.
{Decus cpp} is a free implementation.
(03 Nov 1994)
cppp
<tool> A compiler {front-end} for {C++} by Tony Davis
<ted@cs.brown.edu> with complete semantic processing. cppp is
based on {Yacc} and outputs an {abstract syntax graph}.
Version: 1.14.
{(ftp://wilma.cs.brown.edu/pub/cppp.tar.Z)}
(26 May 1993)
C Programmer's Disease
The tendency of the undisciplined {C} programmer to set
arbitrary but supposedly generous static limits on table sizes
(defined, if you're lucky, by constants in header files)
rather than taking the trouble to do proper dynamic storage
allocation. If an application user later needs to put 68
elements into a table of size 50, the afflicted programmer
reasons that he or she can easily reset the table size to 68
(or even as much as 70, to allow for future expansion) and
recompile. This gives the programmer the comfortable feeling
of having made the effort to satisfy the user's (unreasonable)
demands, and often affords the user multiple opportunities to
explore the marvellous consequences of {fandango on core}. In
severe cases of the disease, the programmer cannot comprehend
why each fix of this kind seems only to further disgruntle the
user.
C-Prolog
An implementation of {Prolog} in {C} by F. Pereira
<pereira@research.att.com> et al in July 1982. It had no
{garbage collection} is not in the {public domain}.
(13 Oct 1994)
cproto
A translator which generates {ANSI C} {function prototype}s
from {K&R} {C} function definitions. It can also translate
function definition heads between {K&R} style and {ANSI C}
style. Written by Chin Huang <chin.huang@canrem.com>.
Posted to {comp.sources}.misc, volume 29. Runs under {Unix},
{MS-DOS}.
(18 Jul 1992)
CPS
1. Conversational Programming System. An interactive extended
subset of {PL/I} from {Allen-Babcock} Corp in 1965.
["Conversational Programming System under TSO (PBPO), Terminal
User's Manual", SH20-1197, IBM].
[Sammet 1969, p. 232-240].
2. {Continuation Passing Style}.
CPSR
{Computer Professionals for Social Responsibility}
CPU
{Central Processing Unit}
CPU Info Center
<processor> A {World-Wide Web} resource at {Berkeley}
describing many different computers and their performance.
{(http://infopad.eecs.berkeley.edu/CIC/)}
(11 Jun 1995)
CPU Wars
/C-P-U worz/ A 1979 large-format comic by Chas Andres
chronicling the attempts of the brainwashed androids of IPM
(Impossible to Program Machines) to conquer and destroy the
peaceful denizens of HEC (Human Engineered Computers). This
rather transparent allegory featured many references to
{ADVENT} and the immortal line "Eat flaming death,
minicomputer mongrels!" (uttered, of course, by an IPM
stormtrooper). It is alleged that the author subsequently
received a letter of appreciation on IBM company stationery
from the head of IBM's Thomas J. Watson Research Laboratories
(then, as now, one of the few islands of true hackerdom in the
IBM archipelago). The lower loop of the B in the IBM logo, it
is said, had been carefully whited out. See {eat flaming
death}.
CR
{Carriage Return}
cracker
<jargon> An individual who attempts to gain unauthorised
access to a computer system. These individuals are often
malicious and have many means at their disposal for breaking
into a system. The term was coined ca. 1985 by hackers in
defence against journalistic misuse of "{hacker}". An earlier
attempt to establish "worm" in this sense around 1981--82 on
{Usenet} was largely a failure.
Use of both these neologisms reflects a strong revulsion
against the theft and vandalism perpetrated by cracking rings.
While it is expected that any real hacker will have done some
playful cracking and knows many of the basic techniques,
anyone past {larval stage} is expected to have outgrown the
desire to do so except for immediate practical reasons (for
example, if it's necessary to get around some security in
order to get some work done).
Contrary to widespread myth, cracking does not usually involve
some mysterious leap of hackerly brilliance, but rather
persistence and the dogged repetition of a handful of fairly
well-known tricks that exploit common weaknesses in the
security of target systems. Accordingly, most crackers are
only mediocre hackers.
Thus, there is far less overlap between hackerdom and
crackerdom than the {mundane} reader misled by
sensationalistic journalism might expect. Crackers tend to
gather in small, tight-knit, very secretive groups that have
little overlap with the huge, open hacker poly-culture; though
crackers often like to describe *themselves* as hackers, most
true hackers consider them a separate and lower form of life,
little better than {virus} writers. Ethical considerations
aside, hackers figure that anyone who can't imagine a more
interesting way to play with their computers than breaking
into someone else's has to be pretty {losing}.
See also {Computer Emergency Response Team}, {dark-side
hacker}, {hacker ethic}, {phreaking}, {samurai}, {Trojan
Horse}.
(01 Dec 1994)
cracking
{cracker}
crack root
<security, jargon> To defeat the security system of a {Unix}
machine and gain {root} privileges thereby.
See {cracker}.
(10 Aug 1996)
crank
(Automotive slang) Verb used to describe the performance of a
machine, especially sustained performance. "This box cranks
(or, cranks at) about 6 megaflops, with a burst mode of twice
that on vectorised operations."
(01 Dec 1994)
CrApTeX
/krap'tekh/ (University of York, England) Term of abuse used
to describe {TeX} and {LaTeX} when they don't work (when used
by TeXhackers), or all the time (by everyone else). The
non-TeX enthusiasts generally dislike it because it is more
verbose than other formatters (e.g. {troff}) and because
(particularly if the standard Computer Modern fonts are used)
it generates vast output files.
See {religious issues}.
(01 Dec 1994)
crash
1. A sudden, usually drastic failure. Most often said of the
{system}, especially of magnetic disk drives (the term
originally described what happened when the air gap of a hard
disk collapses). "Three {luser}s lost their files in last
night's disk crash." A disk crash that involves the
read/write heads dropping onto the surface of the disks and
scraping off the oxide may also be referred to as a "head
crash", whereas the term "system crash" usually, though not
always, implies that the operating system or other software
was at fault.
2. To fail suddenly. "Has the system just crashed?"
"Something crashed the OS!" See {down}. Also used
transitively to indicate the cause of the crash (usually a
person or a program, or both). "Those idiots playing
{SPACEWAR} crashed the system."
(01 Dec 1994)
crash and burn
<jargon> A spectacular crash, in the mode of the conclusion of
the car-chase scene in the movie "Bullitt" and many subsequent
imitators (compare {die horribly}). A {Sun-3} {display
screen} losing the flyback transformer and lightning strikes
on {VAX-11/780} backplanes are notable crash and burn
generators.
The construction "crash-and-burn machine" is reported for a
computer used exclusively for alpha or {beta} testing, or
reproducing bugs (i.e. not for development). The implication
is that it wouldn't be such a disaster if that machine
crashed, since only the testers would be inconvenienced.
(22 Feb 1996)
crawler
{robot}
crawling horror
<jargon> Ancient crufty hardware or software that is kept
obstinately alive by forces beyond the control of the hackers
at a site. Like {dusty deck} or {gonkulator}, but connotes
that the thing described is not just an irritation but an
active menace to health and sanity. "Mostly we code new stuff
in C, but they pay us to maintain one big FORTRAN II
application from nineteen-sixty-X that's a real crawling
horror."
Compare {WOMBAT}.
(01 Dec 1994)
Cray instability
A shortcoming of a program or {algorithm} that manifests
itself only when a large problem is being run on a powerful
machine such as a {Cray}. Generally more subtle than {bug}s
that can be detected in smaller problems running on a
{workstation} or {minicomputer}.
(13 Oct 1994)
crayola
/kray-oh'l*/ A {super-minicomputer} or {super-microcomputer}
that provides some reasonable percentage of {supercomputer}
performance for an unreasonably low price. A crayola might
also be a {killer micro}.
(13 Oct 1994)
crayola books
<publication> A humorous and/or disparaging term for the
{rainbow series} of National Computer Security Center (NCSC)
computer security standards.
See also: {Orange Book}.
(03 Dec 1996)
crayon
1. Someone who works on {Cray} {supercomputer}s. More
specifically, it implies a programmer, probably of the {CDC}
ilk, probably male, and almost certainly wearing a tie
(irrespective of gender). Systems types who have a {Unix}
background tend not to be described as crayons.
2. A {computron} that participates only in {number crunching}.
3. A unit of computational power equal to that of a single
{Cray-1}. There is a standard joke about this usage that
derives from an old Crayola crayon promotional gimmick: When
you buy 64 crayons you get a free sharpener.
(13 Oct 1994)
Cray Research, Inc.
<company> US manufacturer of large powerful {mainframe}
{supercomputer}s, co-founded by noted computer architect,
{Seymour Cray}.
Quarterly sales $216M, profits $8M (Aug 1994).
(26 Sep 1994)
CRC
{cyclic redundancy check}
creationism
The (false) belief that large, innovative software designs can
be completely specified in advance and then painlessly
magicked out of the void by the normal efforts of a team of
normally talented programmers. In fact, experience has shown
repeatedly that good designs arise only from evolutionary,
exploratory interaction between one (or at most a small
handful of) exceptionally able designer(s) and an active user
population - and that the first try at a big new idea is
always wrong. Unfortunately, because these truths don't fit
the planning models beloved of {management}, they are
generally ignored.
creep
To advance, grow, or multiply inexorably. In hackish usage
this verb has overtones of menace and silliness, evoking the
creeping horrors of low-budget monster movies. See {creeping
featurism}.
creeping elegance
Describes a tendency for parts of a design to become {elegant}
past the point of diminishing return, something which often
happens at the expense of the less interesting parts of the
design, the schedule, and other things deemed important in the
{Real World}. See also {creeping featurism}, {second-system
effect}, {tense}.
creeping featurism
/kree'ping fee'chr-izm/ 1. Describes a systematic tendency to
load more {chrome} and {feature}s onto systems at the expense
of whatever elegance they may have possessed when originally
designed. See also {feeping creaturism}. "You know, the main
problem with {BSD} Unix has always been creeping featurism."
2. More generally, the tendency for anything complicated to
become even more complicated because people keep saying "Gee,
it would be even better if it had this feature too". (See
{feature}.) The result is usually a patchwork because it grew
one ad-hoc step at a time, rather than being planned.
Planning is a lot of work, but it's easy to add just one extra
little feature to help someone ... and then another ... and
another.... When creeping featurism gets out of hand, it's
like a cancer. Usually this term is used to describe computer
programs, but it could also be said of the federal government,
the IRS 1040 form, and new cars. A similar phenomenon
sometimes afflicts conscious redesigns; see {second-system
effect}. See also {creeping elegance}.
creeping featuritis
/kree'ping fee'-chr-i:`t*s/ Variant of
{creeping featurism}, with its own spoonerisation: "feeping
creaturitis". Some people like to reserve this form for the
disease as it actually manifests in software or hardware, as
opposed to the lurking general tendency in designers' minds.
(After all, -ism means "condition" or "pursuit of", whereas
-itis usually means "inflammation of".)
C-Refine
A {preprocessor} for {C} and languages with similar syntax by
Lutz Prechelt <prechelt@ira.uka.de>. C-Refine allows symbolic
naming of code fragments so as to redistribute complexity and
provide running commentary.
Version 3.0 is available from comp.sources.reviewed archives.
It is highly portable and has been ported to {Unix}, {MS-DOS},
{Atari}, {Amiga}.
{(ftp://ftp.uu.net/usenet/comp.sources.reviewed/volume02/crefine)}
(16 Jul 1992)
CREN
{Corporation for Research and Educational Networking}
CREW PRAM
concurrent read, exclusive write {PRAM}.
crippleware
1. Software that has some important functionality deliberately
removed, so as to entice potential users to pay for a working
version.
2. (Cambridge) {Guiltware} that exhorts you to donate to some
charity.
Compare {careware}, {nagware}.
3. Hardware deliberately crippled, which can be upgraded to a
more expensive model by a trivial change (e.g. removing a
jumper).
[Example?]
(02 May 1995)
criptography
<spelling> Misspelling of "{cryptography}".
(13 Dec 1996)
Crisis Software
A small UK company producing {software} for the {Acorn}
{Archimedes} range of computers.
{Home (http://www.dcs.warwick.ac.uk/~phid/Crisis/)}
(10 Nov 1994)
CRISP
A {Lisp}-like language and {compiler} for the {IBM 370}
written by Jeff Barnett of SDC, Santa Monica, CA, USA in the
early 1970s. It generalised {Lisp}'s two-part {cons node}s to
n-part nodes.
(10 Nov 1994)
crisp
(Or "discrete") The opposite of "{fuzzy}".
(23 Dec 1994)
Crispy Critters
(Or "Crispy Crittered". From the "Post" breakfast cereal of
the same name) A term used to describe {hardware} which is
{fried} or {toast}.
(31 Jan 1995)
critical mass
In physics, the minimum amount of fissionable material
required to sustain a chain reaction. Of a software product,
describes a condition of the software such that fixing one bug
introduces one plus {epsilon} bugs. (This malady has many
causes: {creeping featurism}, ports to too many disparate
environments, poor initial design, etc.) When software
achieves critical mass, it can never be fixed; it can only be
discarded and rewritten.
(23 Dec 1994)
critical section
A non-{re-entrant} piece of code that can only be executed by
one process at a time. It will usually terminate in bounded
time and a process will only have to wait a bounded time to
enter it. Some synchronisation mechanism is required at the
entry and exit of the critical section to ensure exclusive
use.
CRL
Carnegie Representation Language.
{Carnegie Group, Inc.} Frame language derived from SRL.
Written in Common LISP. Used in the product Knowledge Craft.
CRLF
<character> /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ A
{carriage return} (CR, {ASCII} 13) followed by a {line feed}
(LF, {ASCII} 10). Under {Unix} influence this usage has
become less common because Unix uses just line feed as its
line terminator.
See {newline}, {terpri}.
(27 Mar 1995)
crock
[American scatologism "crock of shit"] 1. An awkward feature
or programming technique that ought to be made cleaner. For
example, using small integers to represent error codes without
the program interpreting them to the user (as in, for example,
Unix "make(1)", which returns code 139 for a process that dies
due to {segfault}).
2. A technique that works acceptably, but which is quite prone
to failure if disturbed in the least. For example, a
too-clever programmer might write an assembler which mapped
{instruction mnemonics} to numeric {opcode}s
{algorithm}ically, a trick which depends far too intimately on
the particular bit patterns of the opcodes. (For another
example of programming with a dependence on actual opcode
values, see {The Story of Mel}.) Many crocks have a tightly
woven, almost completely unmodifiable structure. See {kluge},
{brittle}. The adjectives "crockish" and "crocky", and the
nouns "crockishness" and "crockitude", are also used.
cron
The clock daemon in Unix that executes commands at specified
dates and times according to instructions in a file.
cross-assembler
An {assembler} which runs on one type of processor and
produces {machine code} for another.
There is a set of {6502}, 68xx and {Zilog Z80} and {8085}
cross-assemblers in {C} by <msmakela@cc.helsinki.fi> and Alan
R. Baldwin. They run under {MS-DOS} and could be compiled to
run under {Unix} and on the {Amiga} and {Atari ST}.
See also {fas}.
{(ftp://ccosun.caltech.edu/)}
(10 Mar 1993)
cross-compiler
A {compiler} which runs on one type of processor and produces
code for another.
cross-post
[{Usenet}] To post a single article simultaneously to several
{newsgroup}s. Distinguished from posting the article
repeatedly, once to each newsgroup, which causes people to see
it multiple times (which is very bad form). Gratuitous
cross-posting without a Followup-To line directing responses
to a single followup group is frowned upon, as it tends to
cause {followup} articles to go to inappropriate newsgroups
when people respond to only one part of the original posting.
cross software
Software developed on one kind of computer for use on another
(usually because the other computer does not have itself
adequate facilities for software development).
CROSSTABS
Simple language for statistical analysis of tabular data.
"User's Manual for the CROSSTABS System", Cambridge Computer
Assoc (Feb 1977).
crosstalk
<electronics> Interference caused by two signals becoming
partially superimposed on each other due to electromagnetic
(inductive) or electrostatic (capacitive) coupling between the
conductors carrying the signals. A common example of
crosstalk is where the magnetic field from changing current
flow in one wire induces current in another wire running
parallel to the other, as in a transformer. Crosstalk can be
reduced by using shielded cables and increasing the distance
between conductors.
(20 Dec 1995)
CROW PRAM
concurrent read, owner write {PRAM}.
CRT
{cathode ray tube}
crudware
/kruhd'weir/ Pejorative term for the hundreds of megabytes of
low-quality {freeware} circulated by user's groups and {BBS}s
in the micro-hobbyist world.
cruft
/kruhft/ [back-formation from {crufty}] 1. An unpleasant
substance. The dust that gathers under your bed is cruft; the
TMRC Dictionary correctly noted that attacking it with a broom
only produces more.
2. The results of shoddy construction.
3. ["hand cruft", pun on "hand craft"] To write assembler code
for something normally (and better) done by a compiler (see
{hand-hacking}).
4. Excess; superfluous junk; used especially of redundant or
superseded code.
This term is one of the oldest in the jargon and no one is
sure of its etymology, but it is suggestive that there is a
Cruft Hall at Harvard University which is part of the old
physics building. It is said to have been the physics
department's radar lab during WWII. To this day (early 1993)
the windows appear to be full of random techno-junk. {MIT} or
Lincoln Labs people may well have coined the term as a knock
on the competition.
cruftsmanship
/kruhfts'm*n-ship / [{cruft}] The antithesis of craftsmanship.
cruft together
(Also "cruft up") To throw together something ugly but
temporarily workable. Like {kluge up}, but more pejorative.
"There isn't any program now to reverse all the lines of a
file, but I can probably cruft one together in about 10
minutes." See {hack together}, {hack up}, {kluge up},
{crufty}.
crufty
/kruhf'tee/ [Possibly from "crusty"] 1. Poorly built, possibly
over-complex. The {canonical} example is "This is standard
old crufty {DEC} software". In fact, one fanciful theory of
the origin of "crufty" holds that it was originally a mutation
of "crusty" applied to DEC software so old that the "s"
characters were tall and skinny, looking more like "f"
characters.
2. (Sometimes spelled "cruftie") A small crufty object (see
{frob}); often one that doesn't fit well into the scheme of
things. "A {Lisp} {property list} is a good place to store
crufties (or, collectively, {random} cruft)."
crumb
Two binary digits; a {quad}. Larger than a {bit},
smaller than a {nybble}. Considered silly. Synonym {tayste}.
crunch
1. To process, usually in a time-consuming or complicated way.
Connotes an essentially trivial operation that is nonetheless
painful to perform. The pain may be due to the triviality's
being embedded in a loop from 1 to 1,000,000,000. "FORTRAN
programs do mostly {number crunching}."
2. To reduce the size of a file without losing information by
a complicated scheme that produces bit configurations
completely unrelated to the original data, such as by a
{Huffman} code. Since such {compression} usually takes more
computations than simpler methods such as {run-length
encoding}, the term is doubly appropriate. (This meaning is
usually used in the construction "file crunching" to
distinguish it from {number crunching}.) Use of {crunch}
itself in this sense is rare among {Unix} hackers.
3. The hash character "#" ({ASCII} 35). Used at {XEROX} and
{CMU}, among other places.
4. To squeeze program source into a minimum-size
representation that will still compile or execute. The term
came into being specifically for a famous program on the BBC
micro that crunched BASIC source in order to make it run more
quickly (it was a wholly interpretive BASIC, so the number of
characters mattered). {Obfuscated C Contest} entries are
often crunched; see the first example under that entry.
cruncha cruncha cruncha
/kruhn'ch* kruhn'ch* kruhn'ch*/ An encouragement sometimes
muttered to a machine bogged down in a serious {grovel}. Also
describes a notional sound made by grovelling hardware. See
{wugga wugga}, {grind} (sense 3).
crunchy
{floppy disk}
cryppie
<job, cryptography> /krip'ee/ A cryptographer. One who hacks
or implements software or hardware for {cryptography}.
(23 Aug 1996)
crypt
{Unix} command to perform {encryption} and {decryption}.
cryptanalysis
The branch of {cryptography} concerned with decoding encrypted
messages when you're not supposed to be able to.
(06 Dec 1994)
Crypt Breakers Workbench
(cbw) A freely distributable multi-window integrated workbench
of tools for {cryptanalysis} of files encrypted with the
{4.2BSD} {Unix} {crypt} command. It was originally written by
Robert W. Baldwin at {MIT}.
{(ftp://black.ox.ac.uk/src/security)},
{(ftp://scitsc.wlv.ac.uk/pub/infomagic/usenet.cdrom/sources/unix/volume10)},
{(ftp://ftp.sunet.se/pub/usenet/comp.sources.unix/volume10)}.
(06 Dec 1994)
cryptography
<cryptography> The practise and study of {encryption} and
{decryption} - encoding data so that it can only be decoded by
specific individuals. A system for encrypting and decrypting
data is a cryptosystem. These usually involve an {algorithm}
for combining the original data ("{plaintext}") with one or
more "keys" - numbers or strings of characters known only to
the sender and recipient. The resulting output is known as
"{ciphertext}".
The security of a cryptosystem usually depends on the secrecy
of (some of) the keys rather than with the supposed secrecy of
the {algorithm}. A strong cryptosystem has a large range of
possible keys so that it is not possible to just try all
possible keys (a "{brute force}" approach). A strong
cryptosystem will produce ciphertext which appears random to
all standard statistical tests. A strong cryptosystem will
resist all known previous methods for breaking codes
("{cryptanalysis}").
See also {cryptology}, {RSA}.
{Usenet} newsgroups: {news:sci.crypt},
{news:sci.crypt.research}.
{FAQ} {MIT
(ftp://rtfm.mit.edu/pub/usenet/news.answers/cryptography-faq/)}.
{Cryptography, PGP, and Your Privacy
(http://draco.centerline.com:8080/~franl/crypto.html)}.
(29 Mar 1995)
cryptology
The study of {cryptography} and {cryptanalysis}.
(06 Dec 1994)
Crystal
Concurrent Representation of Your Space-Time ALgorithms.
A {recursion equation} parallel language.
["A Parallel Language and its Compilation to Multiprocessor
Machines or VLSI", M.C. Chen, 13th POPL, ACM 1986 pp.131-139].
(06 Dec 1994)
CS-4
["CS-4 Language Reference Manual and Operating System
Interface", Ben M. Brosgol et al, Report IR-130-2,
Intermetrics, Cambridge MA, Oct 1975].
(19 Jan 1995)
C-Scheme
1. A dialect of {Scheme} by Joe Bartlett at {DEC}/{WRL},
implemented in, and embeddable in, {C}.
(28 Oct 1994)
2. An alternative name for {MIT Scheme}.
[Or are they the same thing?]
(19 Jan 1995)
C/SCSC
{Cost/Schedule Control System Criteria}
CSCW
{Computer Supported Cooperative Work}
csh
{C shell}
C shell
(csh) The {Unix} {command line interpreter} {shell} and
{script language} by {William Joy}, originating from
{Berkeley} {Unix}.
{Unix} systems up to around {Unix Version 7} only had one
shell - the {Bourne shell}, sh. Csh had better interactive
features, notably command input {history}, allowing earlier
commands to be recalled and edited (though it was still not as
good as the {VMS} equivalent of the time).
Presumably, csh's {C}-like {syntax} was intended to endear it
to programmers but sadly it lacks some {sh} features which are
useful for writing {shell script}s so you need to know two
different syntaxes for every shell construct.
A plethora of different shells followed csh, e.g. {tcsh},
{ksh}, {bash}, {rc}.
(28 Oct 1994)
.cshrc
<operating system> (C Shell run commands) A {C Shell} startup
configuration file. This file is found in a user's {home
directory} and can contain shell and other commands to set
variables, define aliases, and perform any other
initialisation which should happen for every shell (as opposed
to {.login} which is only run for a {login shell}).
Compare {AUTOEXEC.BAT} on {MS-DOS}.
See also {rc}.
(09 Apr 1996)
CSID
{character set identifier}
C++SIM
A {class} library like the {simulation} class libraries of
{SIMULA}, by Mark Little <M.C.Little@newcastle.ac.uk>.
Version: 1.0.
{(ftp://arjuna.ncl.ac.uk/)}
(04 Jun 1993)
CSL
1. Computer Structure Language. A computer {hardware
description language}, written in {BCPL}.
["Computer Structure Language (CSL)", Proc 1975 Symp on Comp
Hardware Description Languages and their Appl, ACM (Sep
1975)].
2. Control and Simulation Language. A language for industrial
simulation from Esso and {IBM}.
["Control and Simulation Language", J.N. Buxton et al,
Computer J 5(3):194-199 (Oct 1962). Version: CSL 2 (1966 for
IBM 7094)].
CSLIP
{Compressed SLIP}
CSM
["CSM - A Distributed Programming Language", S. Zhongxiu et
al, IEEE Trans Soft Eng SE-13(4):497-500 (Apr 1987)].
CSMA/CD
Carrier Sense Multiple Access / Collision Detect.
The low level network arbitration {protocol} used on
{Ethernet}. Nodes wait for quiet on the net before starting
to transmit and listen while they are transmitting. If two
nodes transmit at once the data gets corrupted. The nodes
detect this and continue to transmit for a certain length of
time to ensure that all nodes detect the collision. The
transmitting nodes then wait for a random time before
attempting to transmit again thus minimising the chance of
another collision. The ability to detect collision during
transmission reduces the amount of {bandwidth} wasted on
collisions compared with simple {ALOHA} broadcasting.
(23 Feb 1995)
CSMP
{Continuous System Modeling Program}
CSNET
Computers and Science Network, operated by {CREN} for US
computer science institutes. It provides {electronic mail}
service via {dial-up} lines, {X.25} and {Internet} services.
CSO
Campus Phone Book software developed for, and originally used
at, the Computer Services Office of the University of Illinois
at Urbana-Champaign. The server software is known as "qi" and
the client is "ph". Recent versions of the software refer to
CCSO (Computing & Communications Service Office).
{(ftp://uxc.cso.uiuc.edu/)}
CSP
1. <language> {Communicating Sequential Processes}.
2. <hardware> {Chip Scale Packaging}.
CSP/80
Based on CSP.
"CSP/80: A Language for Communicating Processes", M. Jazayeri
et al, Proc Fall COMPCON80, IEEE pp.736-740 (Sept 1980).
CS/PCode
Used at {Microsoft}.
CSP/k
Concurrent SP/k. A PL/I-like concurrent language.
"Structured Concurrent Programming with Operating System
Applications", R.C. Holt et al, A-W 1978.
CS-Prolog
Distributed logic language.
"CS-Prolog on Multi-Transputer Systems", I. Futo et al,
Microprocessors & Microsystems, March 1989.
CSPS
["Toward Comprehensive Specification of Distributed Systems",
G. Roman et al, Proc 7th Intl Conf on Distrib Comp Sys, IEEE
1987, pp. 282-289].
CSP-S
["Implementation of CSP-S for Description of Distributed
Algorithms", L. Patniak et al, Comput Lang 9(3):193-202
(1984)].
CS/QCode
Used at {Microsoft}.
[More detail?]
CSSA
An {object-oriented} language.
["Key Concepts in the INCAS Multicomputer Project", J. Nehmer
et al, IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987)].
CSS/II
Computer System Simulator II. Like {GPSS}, for {IBM 360}.
["Computer System Simulator II (CSS II) Program Description
and Operations Manual", SH20-0875, IBM].
CSSL
Continuous System Simulation Language.
Versions include {ACSL}, {HYTRAN}, {SL-I}, {S/360} and {CSMP}.
["The SCi Continuous System Simulation Language (CSSL)",
Simulation, 9(6) (Dec 1967)].
(06 Dec 1994)
CSTools
{Concurrency} through {message-passing} to named message
queues.
CSU
1. {California State University}.
2. {Cleveland State University}.
3. {Channel Service Unit}.
CSU/DSU
{channel service unit/data service unit}
CSV
<file format> {comma separated values}.
CTC
{Cornell Theory Center}
CTCP
<networking> {Client To Client Protocol}
CTI
1. <communications> {Computer Telephone Integration}.
2. <education> Computers in Teaching Initiative. A UK
government scheme.
(08 Dec 1996)
CTL
1. {Checkout Test language}.
2. {Compiler Target Language}.
3. {Computational Tree Logic}
CTOS
1. <operating system> {Computerised Tomography Operating System}.
2. <operating system> {Convergent Technologies Operating System}.
CTSS
{Compatible Timesharing System}
CTY
/sit'ee/ or /C-T-Y/ [MIT] The terminal physically associated
with a computer's system {console}. The term is a contraction
of "Console {tty}", that is, "Console TeleTYpe". This {ITS}-
and {TOPS-10}-associated term has become less common, as most
Unix hackers simply refer to the CTY as "the console".
cu
Call Unix. {Unix} {virtual terminal} utility. Can be used
over {Ethernet}, direct line or {modem}. Shares some
configuration files with {UUCP}.
{Unix manual page}: cu(1).
CUA
Common User Access: the User Interface standard of SAA.
Cube
Three-dimensional visual language for higher-order logic.
"The Cube Language", M. Najork et al, 1991 IEEE Workshop on
Visual Langs, Oct 1991, pp.218-224.
cube
1. [short for "cubicle"] A module in the open-plan offices
used at many programming shops. "I've got the manuals in my
cube."
2. A NeXT machine (which resembles a matte-black cube).
cubing
[parallel with "tubing"] 1. Hacking on an IPSC ({Intel
Personal SuperComputer}) hypercube. "Louella's gone cubing
*again*!!"
CUCH
CUrry-CHurch.
{Lambda-calculus}
["A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana
Scott, Oxford U 1969].
["Introduction to the CUCH", C. Bohm et al, in Automata
Theory, E.R. Caianiello ed, A-P 1966, pp.35-65].
(02 Dec 1994)
Cuckoo's Egg
{The Cuckoo's Egg}
CUL
See you later.
Culler-Fried System
A system for interactive mathematics.
[Sammet 1969, p. 253-255].
(15 Nov 1994)
CUPID
A graphic {query language}.
["CUPID: A Graphic Oriented Facility for Support of
Nonprogrammer Interactions with a Database", N. McDonald, PhD
Thesis, CS Dept, UC Berkeley 1975].
CUPL
Cornell University Programming Language.
A language for simple mathematics problems, based on {CORC},
with {PL/I}-like {syntax}.
["An Instruction Language for CUPL", R.J. Walker, Cornell U,
Jul 1967].
(15 Nov 1994)
curly bracket
brace
current
<electronics> The quantity of {charge} per unit time, measured
in Amperes (Amps, A). By historical convention, the sign of
current is positive for currents flowing from positive to
negative {potential}, but experience indicates that electrons
are negatively charged and flow in the opposite direction.
(05 Oct 1995)
curried function
<mathematics, programming> A function of N arguments can be
considered as a function of one argument which returns another
function of N-1 arguments. E.g. in {Haskell} we can define:
average :: Int -> (Int -> Int)
(The parentheses are optional). A {partial application} of
average, e.g. (average 4), is a function of type (Int -> Int)
which averages its argument with 4. In uncurried languages a
function must always be applied to all its arguments but a
{partial application} can be represented using a {lambda
abstraction}:
\ x -> average(4,x)
Currying is necessary if {full laziness} is to be applied to
functional sub-expressions.
It was named after the logician {Haskell Curry} but the
19th-century formalist {Frege} was the first to propose it and
it was first referred to in ["Uber die Bausteine der
mathematischen Logik", M. Schoenfinkel, Mathematische
Annalen. Vol 92 (1924)].
{David Turner} <dat@ukc.ac.uk> said he got the term from
Christopher Strachey (Professor of Computation at Oxford,
England, died circa 1975) who invented the term "currying" and
used it in his lecture notes on programming languages written
circa 1967. Strachey also remarked that it ought really to be
called "Schoenfinkeling".
Stefan Kahrs <smk@dcs.ed.ac.uk> reported hearing somebody in
Germany trying to introduce "scho"nen" for currying and
"finkeln" for "uncurrying". The verb "scho"nen" means "to
beautify"; "finkeln" isn't a German word, but it suggests "to
fiddle".
["Some philosophical aspects of combinatory logic",
H. B. Curry, The Kleene Symposium, Eds. J. Barwise,
J. Keisler, K. Kunen, North Holland, 1980, pp. 85-101]
(14 Dec 1994)
currying
Turning an uncurried function into a {curried function}.
curseperl
A {curses} library for {Perl} by the author of Perl, Larry
Wall <lwall@netlabs.com>. It comes with Perl.
(06 Dec 1994)
curses
A set of subroutines in {Unix} for handling navigation on a
terminal screen using the cursor.
cursor
1. <hardware> A visually distinct mark on a display indicating
where newly typed text will be inserted. The cursor moves as
text is typed and, in most modern editors, can be moved around
within a document by the user to change the insertion point.
2. <database> In {SQL}, a named control structure used by an
{application program} to point to a row of data. The position
of the {row} is within a {table} or {view}, and the cursor is
used interactively so select rows from columns.
(27 Dec 1996)
cursor dipped in X
<jargon> The metaphorical source of the electronic equivalent
of a poisoned-pen letter. Derived from English metaphors of
the form "pen dipped in X" (where X = e.g. "acid", "bile",
"vitriol"). These map over neatly to this hackish usage (the
cursor being what moves, leaving letters behind, when one is
composing on-line).
"Talk about a {nastygram}! He must've had his cursor dipped
in acid when he wrote that one!"
(27 Dec 1996)
CU-SeeMe
<talk, communications> /see`-yoo-see'-mee/ ("CU" from {Cornell
University}) A {shareware} {personal computer}-based
{videoconferencing} program for use over the {Internet},
developed at {Cornell University}, starting in 1992.
CU-SeeMe allows for direct {audiovisual} connections between
{clients}, or, like {irc}, it can support multi-user
converencing via {servers} (here called "reflectors") to
distribute the video and audio signals between multiple
clients.
CU-SeeMe was the first videoconferencing tool available at a
reasonable price (in this case, free) to users of personal
computers.
{Home (http://cu-seeme.cornell.edu/)}.
{(http://home.stlnet.com/~hubble/cuseeme/index.html)}.
Compare with {multicast backbone}.
(01 Dec 1996)
CUSI
A collection of indices to various {World-Wide Web} and other
{Internet} documents. It is located at {Nexor} in the UK.
{(http://web.nexor.co.uk/public/cusi/cusi.html)}
(29 Nov 1994)
cuspy
/kuhs'pee/ [WPI: from the {DEC} abbreviation CUSP, for
"Commonly Used System Program", i.e. a utility program used by
many people] 1. (of a program) Well-written.
2. Functionally excellent. A program that performs well and
interfaces well to users is cuspy. See {rude}.
Customer Information Control System
(CICS) An {IBM} communications system that got converted for
{database} handling.
(29 Nov 1994)
cut a tape
To write a software or document distribution on magnetic tape
for shipment. Has nothing to do with physically cutting the
medium! "Cutting a disk" has also been reported as live
usage. Related slang usages are mainstream business's "cut a
check", the recording industry's "cut a record", and the
military's "cut an order".
All of these usages reflect physical processes in obsolete
recording and duplication technologies. The first stage in
manufacturing an old-style vinyl record involved cutting
grooves in a stamping die with a precision lathe. More
mundanely, the dominant technology for mass duplication of
paper documents in pre-photocopying days involved "cutting a
stencil", punching away portions of the wax overlay on a silk
screen. More directly, paper tape with holes punched in it
was an important early storage medium.
CVS
A {code management} system based on {RCS}.
CW
<communications> {continuous wave}.
CWeb
An {ANSI C} implementation of the {Web} {literate programming}
concept. Version 3.1 by Levy/Knuth/Marc van Leeuwen
<M.van.Leeuwen@cwi.nl>(?) is writen in, and outputs, {ANSI C}
and {C++}.
{(ftp://ftp.cwi.nl/pub/cweb/)}
(16 Dec 1993)
CWI
{Centrum voor Wiskunde en Informatica}
CWIC
Compiler for Writing and Implementing Compilers. Val Schorre.
One of the early metacompilers. Compare {Meta-II}.
CWIS
{Campus-Wide Information System}
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)].
cxref
A cross-reference generator by Arnold Robbins
<arnold@gatech.?>.
Cy486SLC
A version of the {Intel 486} made by {Cyrix}. It has a
{486SX} {instruction set}, a 1 kilobyte {cache}, and an {Intel
80386SX}-compatible pinout and thus, 16 bit data bus.
(30 Nov 1994)
cyberbunny
<abuse> Someone who knows absolutely nothing about computers
and advises people who know absolutely nothing about
computers. The term is used mostly on {AOL}, {Prodigy},
{Compuserve}, etc.
(18 Feb 1996)
cybercrud
<jargon> /si:'ber-kruhd/ 1. (Coined by Ted Nelson) Obfuscatory
tech-talk. Verbiage with a high {MEGO} factor. The computer
equivalent of bureaucratese.
2. Incomprehensible stuff embedded in e-mail. First there
were the "Received" headers that show how mail flows through
systems, then MIME ({Multi-purpose Internet Mail Extensions})
headers and part boundaries, and now huge blocks of hex for
PEM ({Privacy Enhanced Mail}) or PGP ({Pretty Good Privacy})
digital signatures and certificates of authenticity. This
stuff all has a purpose and good user interfaces should hide
it, but all too often users are forced to wade through it.
(04 Apr 1995)
CyberGlove
<hardware, virtual reality> A {data glove} sold by {Virtual
Technologies} for $9800. It is the state-of-the-art, high-end
data glove for completely reactive immersive environments.
The spandex-like glove houses 18 sensors to track accurately
just about every move your hand is capable of making. The
accompanying software includes a three-dimensional hand model
that can he added to any {virtual reality} application. The
glove includes a mount for Polhemus and Ascension sensors.
(04 Apr 1995)
cybernetics
The comparative study of the internal workings of organic and
machine processes in order to understand their similarities
and differences. Cybernetics often refers to machines that
imitate human behaviour.
See {artificial intelligence}, {robot}.
(24 Nov 1994)
cyberpunk
/si:'ber-puhnk/ (Originally coined by SF writer Bruce Bethke
and/or editor Gardner Dozois) A subgenre of SF launched in
1982 by William Gibson's epoch-making novel "Neuromancer"
(though its roots go back through Vernor Vinge's "True Names"
to John Brunner's 1975 novel "The Shockwave Rider"). Gibson's
near-total ignorance of computers and the present-day hacker
culture enabled him to speculate about the role of computers
and hackers in the future in ways hackers have since found
both irritatingly na"ive and tremendously stimulating.
Gibson's work was widely imitated, in particular by the
short-lived but innovative "Max Headroom" TV series. See
{cyberspace}, {ice}, {jack in}, {go flatline}.
Since 1990 or so, popular culture has included a movement or
fashion trend that calls itself "cyberpunk", associated
especially with the rave/techno subculture. Hackers have
mixed feelings about this. On the one hand, self-described
cyberpunks too often seem to be shallow trendoids in black
leather who have substituted enthusiastic blathering about
technology for actually learning and *doing* it. Attitude is
no substitute for competence. On the other hand, at least
cyberpunks are excited about the right things and properly
respectful of hacking talent in those who have it. The
general consensus is to tolerate them politely in hopes that
they'll attract people who grow into being true hackers.
cyberrhea
<humour, jargon> /si:'ber-eer/ An affliction of some {word
processor} users; excessive frequency and looseness of
productivity. Particularly virulent among those who have not
discovered the fortifying virtues of revision.
["Right Words, Right Places" Scott Rice, Wadsworth, 1993, A5.]
(25 Feb 1997)
cyberspace
/si:'ber-spays/ 1. Notional "information-space" loaded with
visual cues and navigable with brain-computer interfaces
called "cyberspace decks"; a characteristic prop of
{cyberpunk} SF. At the time of this writing (mid-1991),
serious efforts to construct {virtual reality} interfaces
modelled explicitly on Gibsonian cyberspace are already under
way, using more conventional devices such as glove sensors and
binocular TV headsets. Few hackers are prepared to deny
outright the possibility of a cyberspace someday evolving out
of the network (see {network, the}).
2. Occasionally, the metaphoric location of the mind of a
person in {hack mode}. Some hackers report experiencing
strong eidetic imagery when in hack mode; interestingly,
independent reports from multiple sources suggest that there
are common features to the experience. In particular, the
dominant colours of this subjective "cyberspace" are often
gray and silver, and the imagery often involves constellations
of marching dots, elaborate shifting patterns of lines and
angles, or moire patterns.
(09 Nov 1995)
cyberspastic
<humour> A person suffering from information overload while
browsing the {Internet} or {World-Wide Web}.
Compare {webhead}.
(09 Nov 1995)
CyberWand
<hardware, virtual reality> A {virtual reality} {controller}.
The CyberWand costs $99, or $765 with optional Polhemus
sensor. It is basically the handle of a flight control system
without the base. The controller's four buttons and 2-D hat
sensor track six degrees of movement.
(04 Apr 1995)
CyberZine
<publication> A combination paper and {World-Wide Web} on-line
{Cyberspace} guide. Upon payment you will be given a username
and password to access CyberZine on-line and the paper version
will be posted first class. Subscribers can also use the
CyberZine help desk.
{Home (http://cyberzine.org/)}
E-mail: <CyberZine@CyberZine.org>.
(22 Sep 1994)
CYBIL
Control Data's system programming language in the 80's. Major
parts of CDC systems written in this.
CYCL
A {frame language}.
["Building Large Knowledge-Based Systems", Doug B. Lenat et
al, A-W 1990].
cycle
1. The basic unit of computation. What every hacker wants
more of (noted hacker Bill Gosper describes himself as a
"cycle junkie"). One can describe an instruction as taking so
many "clock cycles". Often the computer can access its memory
once on every clock cycle, and so one speaks also of "memory
cycles". These are technical meanings of {cycle}. The jargon
meaning comes from the observation that there are only so many
cycles per second, and when you are sharing a computer the
cycles get divided up among the users. The more cycles the
computer spends working on your program rather than someone
else's, the faster your program will run. That's why every
hacker wants more cycles: so he can spend less time waiting
for the computer to respond.
2. {bounce}, {120 reset}; from the phrase "cycle
power". "Cycle the machine again, that serial port's still
hung."
(29 Nov 1994)
cyclebabble
<jargon> Advertizing raw {clock speed}, instead of {bus
speed}.
{IBM} uses raw clock speed as the speed of the computer. In
the {IBM PC} and {IBM PC XT}, the clock is divided by 4 to
produce the 4-phase bus clocks. Thus a 4 MHz IBM XT really
runs at 0.895 MHz, because that 4 MHz was really 3.58 MHz
which gets divided by four.
A {Tandy} {Color Computer} ran at exactly the same speed, but
clock speed was specified as bus speed, 0.895 MHz, leaving the
impression that it was 4 times slower. Actually it ran a
little faster with a more efficient {instruction set}. If the
actual clock frequency had been specified on a {CoCo 3}, it
would have been 14.32 MHz, although the bus speed was still
.895 MHz. That high speed also generated video, color, and
hidden refresh timing.
100 MHz computers are running at bus speeds of around 25 MHz.
(13 Feb 1997)
cycle crunch
<jargon> A situation wherein the number of people trying to
use a computer simultaneously has reached the point where no
one can get enough {cycles} because they are spread too thin
and the system has probably begun to {thrash}.
This scenario is an inevitable result of Parkinson's Law
applied to {time-sharing}. Usually the only solution is to
buy more computer. Happily, this has rapidly become easier
since the mid-1980s, so much so that the very term "cycle
crunch" now has a faintly archaic flavour; most hackers now
use {workstations} or {personal computers} as opposed to
traditional {time-sharing} systems.
(29 Nov 1994)
cycle drought
A scarcity of {cycle}s. It may be due to a {cycle crunch},
but it could also occur because part of the computer is
temporarily not working, leaving fewer cycles to go around.
"The {high moby} is {down}, so we're running with only half
the usual amount of memory. There will be a cycle drought
until it's fixed."
(29 Nov 1994)
cycle of reincarnation
A term coined by {Ivan Sutherland} ca. 1970 to refer to a
well-known effect whereby function in a computing system
family is migrated out to special-purpose {peripheral}
hardware for speed, then the peripheral evolves toward more
computing power as it does its job, then somebody notices that
it is inefficient to support two asymmetrical processors in
the architecture and folds the function back into the main
{CPU}, at which point the cycle begins again.
Several iterations of this cycle have been observed in
{graphics-processor} ({blitter}) design, and at least one or
two in communications and {floating-point} processors. Also
known as "the Wheel of Life", "the Wheel of Samsara" and other
variations of the basic Hindu/Buddhist theological idea.
(16 Nov 1994)
cycle server
A powerful machine that exists primarily for running large
{batch} jobs. Implies that interactive tasks such as editing
are done on other machines on the network, such as
workstations.
cyclic redundancy check
<algorithm> (CRC) A number derived from, and stored or
transmitted with, a block of data in order to detect
corruption. By recalculating the CRC and comparing it to the
value originally transmitted, the receiver can detect some
types of transmission errors.
A CRC is often calculated by summing words or bytes of the
data in an N bit {accumulator}. Overflow is ignored so the
summation is "cyclic" {modulo} 2^N. The CRC is "redundant" in
that it adds no information. A {parity bit} can be considered
a one bit CRC for a string of bits. A single corrupted bit in
the data will result in a one bit change in the calculated CRC
but multiple corrupted bits may cancel each other out.
{Ethernet} {packet}s have a 32 bit CRC. Many disk formats
include a CRC at some level.
The term "{checksum}" normally means the same as CRC, though
one might treat {overflow} of a checksum as an error rather
than a feature.
Timothy P. Stockman <tps@ies.laf.in.us> says, "The CRC
algorithm is definitely different than the checksum algorithm,
and involves either shifts and XOR's or a table lookup,
whereas checksum is just a straight arithmetic sum (modulo 256
or 65536). The CRC algorithm is actually some sort of
division, as I understand it."
[Clarification?]
(21 Mar 1996)
Cyclo
<programming, tool> (Cyclomatic complexity tool) A {C} and
{C++} code analysis tool by Roger D. Binns. It measures
{cyclomatic complexity}, shows function calls, and can draw
{flowgraphs} of {ANSI C} and {C++} code. It requires {Lex}
and {C++}.
Posted to {alt.sources}, 28 Jun 1993.
(28 Jun 1993)
cyclomatic complexity
<programming> A measure of the number of linearly independent
paths through a program module.
[Explanation?]
(13 May 1996)
Cygnus Tcl Tools
A rebundling of {Tcl} and {Tk} into the {Cyngus} {GNU} build
framework with "{configure}" by david d 'zoo' zuhn
<zoo@cygnus.com>. Version Release-930124.
{(ftp://cygnus.com/pub/)}
(24 Jan 1993)
cylinder
The set of {track}s on a multi-headed disk storage device that
may be accessed without head movement. That is, the
collection of disk tracks which are the same distance from the
spindle about which the disks rotate. Each such group forms
the shape of a cylinder. Placing data that are likely to be
accessed together in cylinders reduces the access
significantly as head movement ("seeking") is slow compared to
disk rotation and switching between heads.
(07 Feb 1995)
CypherText
<language> An interactive language for text formatting and
typesetting.
["CypherText: An Extensible Composing and Typesetting
Language", C.G. Moore et al, Proc FJCC 37, AFIPS (Fall 1970)].
(10 May 1995)
Cyrix
<company> A {microprocessor} manufacturer. They produce the
{Cy486SLC} - an {Intel 486} equivalent and
{Pentium}-equivalent {CPU}s called {6x86}.
{Home (http://www.cyrix.com)}
(23 Mar 1996)