/
Text
How to search for terms in
A Dictionary of Computer Science
To find an entry in this e-book you can:
• Browse the Alphabetical List of Entries and select the entry you would like to view
or
• Use your Search function to be taken to a complete list of references to your search term in the Dictionary
◦ If your search term has its own entry, it will usually be listed at the top of your results
◦ In cases where your search term appears in more than one entry heading, the results will be listed
alphabetically
A note on special characters
While most e-readers can display special characters (such as é and â), many cannot search for words containing them,
unless the special characters themselves are typed into the search box. If you are unable to type these characters, please
browse for your term using the Alphabetical List of Entries.
Alphabetical List of Entries
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
10 Base 2
10 Base 5
10 Base FX
10/100/1000 Base-T
8421 code
419 fraud
4GL
7-Zip
A* algorithm
ABC
abduction
abelian group
ABI
ablative
abnormal termination
ABONE
abort
absolute address
absolute code
absolute link
absolute path
absolute URL
absolute value
absorption laws
abstract computability theory
abstract data type
abstract family of languages
abstraction
abstract machine
abstract reduction system
abstract specification
A-buffer
AC97
accelerated graphics port
acceleration time
accelerator key
accent-sensitive
accept
acceptable use policy
acceptance testing
access
Access
access control
access method
access path
access point
access provider
access rights
access time
access vector
account
accounting file
accumulator
accuracy
ACE
ACIA
ACID
ACK
Ackermann benchmark
Ackermann function
acknowledgment
ACM
acoustic coupler
acoustic delay line
acoustic memory
Acrobat
action selection
active
Active Directory
active filter
active-matrix LCD
Active Server Pages
active star
active transition
active vision
active widget
ActiveX
activity network
actor language
actors
actual parameter
actuator
acyclic graph
Ada
Ada 95
Adams methods
adaptive channel allocation
adaptive compression
adaptive-control system
adaptive interface
adaptive maintenance
adaptive meshing
adaptive process
adaptive quadrature
adaptive ray tracing
ADC
ADCCP
A/D converter
adder
add-in card
address
addressability
addressable location
address book
address bus
address calculation sorting
address format
addressing
addressing schemes
address mapping
address mark
address register
address-relative
Address Resolution Protocol
address space
address table sorting
add–subtract time
adequacy theorem
ad hoc network
adjacency list
adjacency matrix
adjacency structure
Adobe Reader
ADP
ADSL
Advanced Encryption Standard
advance-fee fraud
adware
AES
affine mapping
AFIPS
AFL
agenda mechanism
agent
agile methods
AGP
AGV
AI
Aitken’s Δ2 process
AIX
ALARP principle
aleph null
alert box
algebra
algebraic abstract data type
algebraic language
algebraic model
algebraic semantics
algebraic specification
algebraic structure
algebraic surface
algebraic symbol manipulation language
algebraic system
algebra system
Algol
algorithm
algorithm analysis
algorithm efficiency
algorithmic language
alias
aliasing
allocation routine
Alpha AXP
alphabet
alphabetic code
alpha buffer
alphamosaic
alphanumeric character
alphanumeric code
alpha test
Alt key
ALU
ambient computing
ambient light
ambiguous grammar
amplitude
amplitude modulation
amplitude quantization
analogue computer
analogue signal
analogue-to-digital converter
analysis of variance
Analytical Engine
analyser
ancestor
AND gate
AND operation
AND/OR graph
Andreessen, Marc
Android
animation
ANN
annotation
anonymization
anonymous FTP
anorak
ANOVA
ANSI
anti-aliasing
anti-pattern
anti-static precautions
antisymmetric relation
anti-virus program
any-time algorithms
AOL
Apache
APA mode
API
APL
APP
Apple Inc.
applet
application
application binary interface
application generator
application layer
application package
application portability profile
application programming interface
applications program
applications programmer
applications software
application store
application terminal
applicative language
approximation theory
APSE
arc
architectural design
architecture
archive
Arden’s rule
area coherence
area filling
argument
arithmetic and logic unit
arithmetic instruction
arithmetic/logic unit
arithmetic operation
arithmetic operator
arithmetic shift
arithmetic unit
arity
arm
ARMA
ARM Holdings
ARP
ARPA
ARPANET
array
array management software
array processor
arrow keys
articulation point
artificial immune system
artificial intelligence
artificial life
artificial neural network
ASCC
ASCII
ASF
ASIC
ASM
AS number
ASP
aspect
aspect ratio
aspect source flag
assembler
assembly language
assertion
assertion checker
assignment-free language
assignment statement
associative addressing
associative law
associative memory
associative network
associative operation
associative processor
A-stability
astable
asymmetric encryption
asymmetric relation
asymptotic
asymptotic analysis
asymptotic expansion
asynchronous
asynchronous bus
asynchronous circuit
asynchronous interface
asynchronous TDM
asynchronous transfer mode
asynchronous transmission
ATA
Atanasoff-Berry computer
AT&T
ATL
Atlas
ATM
atom
atomic action
atomic formula
atomicity
attach
attachment
attenuation
attribute
attribute grammar
audio card
audio response unit
audit trail
augmented addressing
augmented reality
augmented transition network
AUI
AUP
authentication
authentication code
authoring language
authorization
autobaud
autochanger
autocode
autodial
autodump
autoload
autoload cartridge
automated disk library
automated reasoning
automated tape library
automatic coding
Automatic Computing Engine
automatic data conversion
automatic data processing
automatic programming
automaton
automorphism
autonomous guided vehicle
autonomous system
autoplay
autoregression
autosave
autothread
auxiliary memory
availability
available list
available time
avatar
average-case analysis
avionics
AVL tree
AWK
axiom
axiomatic semantics
axiomatic specification
axonometric projection
b
B
Babbage
Babbage, Charles
backbone network
backdoor
back driving
back end
back-end processor
back-face detection
background processing
backing store
backplane
back plane
back propagation
backtracking
backup
Backus normal form
backward chaining
backward compatibility
backward error analysis
backward error correction
backward error recovery
badge reader
bad sector
bag
balance
balanced
balanced cable
band
band-limited channel
band matrix
band-pass filter
band printer
band-reject filter
band-stop filter
bandwidth
bank switching
banner
bar code
bar-code scanner
Barker sequence
barrel printer
base
BASE
base addressing
base band
baseband networking
baseband signalling
base-bound register
base field
base-limit register
base register
Basic
batch control
Batcher’s parallel method
batch learning
batch processing
baud rate
Bayesian network
Bayesian statistics
Bayes’s theorem
BBS
BCD
BCD adder
BCH code
BCPL
BCS
BDF methods
beam deflection
bearer
bearer network
behavioural animation
behaviour-based systems
belief systems
Bell Telephone Laboratories
belt printer
benchmark
BER
Berners-Lee, Sir Tim
best-first search
best fit
beta
Beta
beta reduction
beta test
Bézier curve
Bézier patch
Bézier surface
BGP
bias
biased exponent
bicomponent algorithm
biconditional
biconnected graph
bidirectional reflection distribution
bifurcation
big-endian
bijection
binary adder
binary chop
binary code
binary-coded decimal
binary counter
binary digit
binary encoding
binary-level compatibility
binary logic
binary notation
binary number
binary operation
binary prefixes
binary relation
binary search algorithm
binary search tree
binary sequence
binary signal
binary space-partitioning tree
binary symmetric channel
binary synchronous communications
binary system
binary tree
binary-tree representation
bind
binding
binding occurrence
binomial distribution
bioinformatics
biomimetic robotics
BIOS
bipartite graph
biplot
bipolar integrated circuit
bipolar signal
bipolar transistor
biquinary code
Birkhoff’s completeness theorem
bis
B-ISDN
bisection algorithm
bistable
BISYNC
bit
bit-block transfer
bitblt
bit density
bit error rate
bit handling
bitmap
bit matrix
Bitnet
bitpad
bit rate
bit-slice architecture
bits per pixel
bit string
bit stuffing
BlackBerry
blackboard system
black box
black-box testing
black Ethernet
blank
blank character
blend
blending
blink
blobby model
block
block cipher
block code
block compaction
block diagram
blocked process
blockette
blocking factor
block length
block retrieval
block-structured languages
blog
blogosphere
Blue Book
Bluetooth
Blum’s axioms
Blu-ray
BM algorithm
BMP
BNF
body
boilerplate
BOM
bookmark
Boole, George
Boolean algebra
Boolean expression
Boolean function
Boolean matrix
Boolean operation
Boolean operator
Boolean type
Boolean value
boom
boot
boot sector virus
bootstrap
Border Gateway Protocol
Borland Software Corporation
Bose–Chaudhuri–Hocquenghem codes
bot
BOT marker
botnet
bottleneck
bottoming
bottom-up development
bottom-up parsing
bounce
bound
boundary protection
boundary representation
boundary-scan testing
boundary-value problem
bounded delay
bound occurrence
bounds registers
bound variable
Box–Jenkins forecasting techniques
boxplot
Boyer–Moore algorithm
bpi
bps
bpt
branch
branch and bound algorithm
branching factor
branch instruction
branch testing
breadboard
breadth-first search
breakpoint
Bresenham’s algorithm
BRI
bricks-and-clicks
bridge
bridgeware
Brin, Sergey
broadband
broadband coaxial systems
broadband ISDN
broadband networking
broadcast domain
broadcasting
brouter
browse
browser
brute force
brute force attack
BS7799
BSC
BSI Group
B-spline
B-spline patch
BSP tree
B+ tree
B-tree
BTron
bubble jet
bubble memory
bubble sort
bucket
bucket sort
buddy system
buffer
buffering
buffer overflow
buffer register
bug
bug seeding
bulk memory
bulletin board system
bump mapping
bundle
bundled attributes
burn
burst error
burst mode
bus
bus arbitration
bus driver
bused interface
bus hierarchy
business graphics
bus master
bus terminator
bus topology
busy signal
button
byte
byte code
byte-order mark
Byzantine Generals problem
C
C++
C#
C2
CA
cable
cache
CAD
CADCAM
CADMAT
CAE
CAFS
CAI
CAIS–A
CAL
call
call by name
call by reference
call by value
calling sequence
call instruction
CAM
CAMAC
Cambridge Ring
campus-wide information service
cancellation
C&C
capability architecture
capability list
Capability Maturity Model
capacity
CAPM
CAPP
caps lock
capstan
CAPTCHA
CAP theorem
CAR
card
card cage
cardinality
card punch
card reader
caret
carriage return
carrier
carry lookahead
Cartesian product
Cartesian structure
cartridge
cartridge drive
cartridge font
cartridge tape
cascadable counter
cascade
cascaded windows
cascading style sheets
CASE
case-based reasoning
case grammar
case-sensitive
case statement
cassette
CAT
CAT-3
CAT-5
CAT-6
CAT-7
catastrophic code
catastrophic error propagation
category
cathode-ray tube
Catmull–Clark surfaces
causal reasoning
caustic
CAV
Cayley table
CBC
CBL
CBR
CBT
CCD
CCITT
CCS
CCTA
CDC
CD-DA
CDDI
CD-E
CD-I
CDIF
CDOS
CDR
CD-R
CD-ROM
CD-ROM drive
CD-ROM format standards
CD-ROM library
CD-RW
CDTV
ceiling
cel
Celeron
cell
cell array
cell relay
cellular automata machine
CEN/CENELEC
centralized structure store
central processor
Centronics interface
CEPIS
CERT
certainty factor
certificate
certificate authority
certification
CFB
CFF
CGA
CGI
CGM
chain
chain code
chained file
chained list
chaining
chaining search
chain printer
challenge/response
change dump
channel
channel capacity
channel coding
channel coding theorem
channel controller
channel error
channel mobility
channel switching
channel time response
chaos
character
character cell
character encoding
characteristic
characteristic function
characteristic vector
character machine
character mode
character recognition
character representation
character set
character string
character type
charge-coupled device
chassis
chat room
CHDL
Cheapernet
Chebyshev approximation, norm
check
check box
check character
check digit
checkers-playing programs
checking program
checkout
checkpoint
checksum
chemoinformatics
chess-playing programs
chief programmer team
child
CHILL
Chinese remainder theorem
chip
chip card
chip set
chip socket
chi-squared distribution
choice
Cholesky decomposition
Chomsky hierarchy
Chomsky normal form
chromaticity
chromaticity coefficient
chromaticity diagram
chromatic number
Chrome
Chrome OS
chunk
Church–Rosser
Church–Rosser theorem
Church’s thesis
Church–Turing thesis
CICS
CIE
CIE colour model
CIELAB
CIM
Cineon format
cipher
ciphertext
CIR
circuit
circuit board
circuit card
circuit switching
circular list
circular shift
circulating register
CISC
CIX
CKD
clamp
class
classifier systems
Classless Inter-Domain Routing
clear
Clear
CLI
click
click and drag
click rate
clicks and mortar
click speed
clickstream
click-through rate
client
client/server
client-side
clip art
clipboard
clipping
CLNS
clock
clock cycle
clocked flip-flop
clocking
clock rate
clock signal
clock skew
clone
CLOS
close
closed
closed loop
closed semiring
closed shop
closed subroutine
closed term
closed-world assumption
closure
closure properties
cloud computing
CLP
cluster
cluster analysis
clustering
CLV
CM
CMI
CMM
CMMI
CMOS
CMS
CMY colour model
CMYK colour model
CNC
CNF
CNF satisfiability
Coad–Yourdon method
coax
coaxial cable
Cobol
cocktail shaker sort
CoCom
COCOMO
CODASYL
CODASYL network model
Codd, Ted
code
codec
coded character set
code injection
code inspection
code length
code mobility
code of conduct
code point
coder-decoder
codeword
coding
coding bounds
coding standards
coding theorems
coding theory
codomain
cognitive modelling
cognitive science
cohesion
cold boot
collaborative software
collating sequence
collision detection
collision domain
collocation methods
Colossus
colour display
coloured book
colour gamut
colourimetry
colouring of graphs
colour model
colour printer
colour space
column-major order
column-ragged
column vector
COM
combination
combinational circuit
combinational logic
combinator
combinatorial circuit
combinatorial explosion
combinatorics
combinatory logic
combo box
Comega
command
command and control
command control language
command control program
command file
command language
command-line interface
comment
commit
common application environment
COMMON area
common carrier
Common Criteria
common gateway interface
common instance
Common LISP
common-sense reasoning
common user access
comms
communicating sequential processes
communication channel
communication interface
communication network
communication port
communication processor
communication server
communication subnetwork
communication system
communication theory
commutative diagram
commutative group
commutative law
commutative operation
commutative ring
commutative semiring
compaction
Compaq Computer Corporation
comparator
comparison counting sort
compartmentalization
compatibility
compilation time
compiler
compiler-compiler
compiler validation
complement
complementary logic
complemented lattice
complement number system
complete graph
complete lattice
completeness
completeness theorem
complete term rewriting system
complete tree
complex algebra
complex instruction set computer
complexity
complexity classes
complexity function
complexity measure
complex number
complex operation
com port
composition
composition table
compound document
compression
compression factor
CompuServe
computability
computable
computable algebra
computable function
computable real number
computable set
computation, model of
computational creativity
computational environment
computational geometry
computational psychology
computer
computer-aided design
computer-aided engineering
computer-aided instruction
computer-aided manufacturing
computer-aided process planning
computer-aided production management
computer-aided testing
computer animation
computer architecture
computer-assisted learning
computer-assisted software engineering
computer-based learning
computer-based training
computer chess
computer emergency response team
computer family
computer fraud
computer games
computer graphics
Computer Graphics
computer hardware description language
computer-integrated manufacturing
computer logic
computer-managed instruction
Computer Misuse Act 1990
computer numerical control
computer object model
computer power
computer science
Computer Services Association
computer-supported cooperative working
computer word
compute server
con
concatenated code
concatenated coding systems
concatenation
concatenation closure
concept learning
conceptual graphs
conceptual schema
concurrency
concurrent assignment
concurrent DOS
concurrent programming
condensation
conditional
conditional equation
conditional jump
condition-code register
condition number
cone of influence
conferencing
confidence interval
confidentiality
configuration
configuration management
configured-in, -off, -out
confluent
conformance testing
conform to
congruence relation
conjunction
conjunctive normal form
CONLAN
connected graph
connectedness
connectionism
connectionless-mode network service
Connection Machine
connection-oriented network service
connective
connectivity
connectivity matrix
CONS
consensus
consistency
console
constant
constant bit rate
constant delay
constraint
constraint-based solid modelling
constraint logic programming
constraint network
constraint satisfaction
construct
constructive function
constructive solid geometry
constructive specification
consumable resource
contact bounce
contact forces
content-addressable memory
content-addressable parallel processor
contention
context awareness
context-free grammar
context-free language
context-sensitive grammar
context-sensitive language
context switch
contingency table
continuation
continuous function
continuous inkjet printer
continuous signal, system
continuous simulation
continuous stationery
continuous-tone image
contradiction
contrapositive
control bus
control character
control circuitry
Control Data Corporation
control design
control flow
control-flow graph
control key
controlled sharing
controller
control line
control memory
control points
control record
control sequence
control stack
control structure
control total
control unit
control word
convergence
conversational mode
converse
convex hull
convolution
convolutional code
cookie
Cook–Torrance model
Coons patch
copy
copyright
copy synthesis
CORAL
CORBA
core
core store
coroutine
corrective maintenance
correctness proof
correlation
correlation coefficient
correspondence analysis
corrupt
coset
coset relation
cost estimation model
cost function
COTS
countable set
counter
counting problem
coupled
coupling
covariance
covering
covert channel
CPL
CPM
CP/M
cps
CPU
CPU cycle time
CPU time
CR
cracking
Craig’s interpolation theorem
crash
crawler
Cray Inc.
CRC
crisis time
criticality analysis
critical path method
critical region
critical resource
critical section
CRM system
cropping
cross assembler
crossbar switch
cross compiler
cross-coupling
cross-site scripting
crosstalk
cross-validation
crowbar circuit
CRT
cryogenic memory
cryptanalysis
cryptogram
cryptography
cryptology
c/s
CSCW
CSG
C-sharp
CSIRT
CSMA/CD
CSound
CSP
CSS
CSV
CTron
CU
CUA
cube
cubic spline
cull
cumulative distribution function
current address register
current instruction register
current limit
curried function
cursor
curvature
curve compression
customer relationship management system
custom software
cut
cut and paste
cutout
cut-point
cut set
cut-sheet feed
cut vertex
CVS
CWIS
cybercafé
cybercash
cybercrime
cybernetics
cyberspace
cyber warfare
cycle
cycle index polynomial
cycle stealing
cycle time
cyclic access
cyclic code
cyclic redundancy check
CYC project
cypher
Cyrus–Beck clipping algorithm
DAC
D/A converter
daemon
DAI
daisychain
daisywheel printer
dangling else
dangling reference
DANTE
dark fibre
DARPA
DASD
DAT
data
data abstraction
data acquisition
databank
database
database administration
database administrator
database integrity
database language
database management system
database programming language
database recovery
database system
data break
data bus
data capture
data cartridge
data chaining
data channel
data cleaning
data collection
datacomms
data communication equipment
data communications
data compaction
data compression
data contamination
data controller
data dependency
data description
data dictionary
data directory
data-driven design
data-driven processing
Data Encryption Algorithm
Data Encryption Standard
data entry
data field
data file
dataflow
dataflow diagram
dataflow machine
data fusion
dataglove
datagram
data hierarchy
data independence
data integrity
data item
data link
data link control protocol
data link layer
data logging
data management
data management system
data manipulation
data mark
data matrix
data medium
data mining
data model
data name
data network
data path
data preparation
data processing
data processor
Data Protection Acts
data protection legislation
data rate
data recipient
data reduction
data retrieval
data security system
data selector/multiplexer
data set
data sheet
data store
data stream
data structure
data subject
data sublanguage
data summarization
data tablet
data terminal equipment
data transfer rate
data transfer time
data translation
data transmission
data transparency
data type
data validation
data vetting
data warehouse
data word
DB2
DBA
DBMS
DC
DCE
d.c. signalling
DCT
DCVS
DDC
DDCMP
DDE
DDL
DDoS
DDP
DDS
DEA
deadlock
deadly embrace
debit/credit benchmark
debouncing
de Bruijn diagram
debugging
debug tool
DEC
decade counter
decal
de Casteljau algorithm
decidable problem
decidable set
decision gate
decision problem
decision procedure
decision support system
decision surface
decision table
decision tree
declaration
declarative languages
DECnet
decoder
decoder/demultiplexer
decoder/driver
decoder error
decoding
decollator
decompiler
decomposition
decompression
deconvolution
decryption
dedicated
dedicated mode
deduction
deductive apparatus
Deep Blue
deep case
deep structure
Deep Thought
default
default rules
defect skipping
deferral
deferred addressing
deferred approach to the limit
definition
deflation
defrag
defragmentation
degree
degree of precision
degrees of freedom
Dekker’s algorithm
Delaunay triangulation
delay differential equations
delayed branch
delay line
delay-power product
delete
delimiter
Dell
delta PCM
demand paging
demand reading, writing
Demilitarized Zone
demodulator
demon
de Morgan’s laws
demultiplexer
dendrogram
denial
denial of service
denotational semantics
density
denumerable set
deposit
depth
depth-balanced
depth buffer
depth cueing
depth-first search
deque
derivation sequence
derivation tree
derivative
DES
descendant
descriptor
design database
design pattern
design review
desktop
desktop publishing
destructive read
determinant
deterministic
deterministic language
deterministic Turing machine
DEUCE
developer
development life cycle
device
device coordinates
device driver
DFD
D flip-flop
DFT
DHCP
dhrystone benchmark
DHTML
diagnostic routine
diagonalization
diagonal matrix
diagrammatic technique
dialler
dialogue box
dialogue management
dictionary
diff
Difference Engine
difference equations
differential backup
differential dump
differential equations
differential PCM
diffuse reflection
diffusion address
digital
digital audio tape
digital camera
digital cassette
digital certificate
digital circuit
digital computer
digital copier
digital data storage
digital data transmission
digital design
digital design language
Digital Equipment Corporation
digital filtering
digital halftone
digital image
digital logic
digital signal
digital signal processing
digital signature
digital sorting
digital system
digital-to-analogue converter
digital versatile disk
digital video
digital video disk
digital video interactive
digital video interface
digitization
digitizer
digraph
Dijkstra, Edsger
Dijkstra’s algorithm
DIL
DIL switch
dimension
diminished radix complement
diminishing increment sort
DIMM
DIN connector
dingbat
diode
diode-transistor logic
DIP
direct-access storage device
direct addressing
direct-coupled machines
direct data entry
direct digital control
directed graph
directed set
directed tree
direction keys
directive
direct memory access
directory
directory services
directory tree
direct product
DirectX
Dirichlet region
disable
disarm
disassembler
disc
disconnected graph
discourse understanding
discrete and continuous systems
discrete channel
discrete component
discrete cosine transform
discrete event simulation
discrete Fourier transform
discrete mathematics
discrete process control
discrete signal
discrete source
discrete structure
discrete system
discretionary access control
discretization
discretization error
discriminant analysis
disjoint
disjunction
disjunctive normal form
disk
disk array
disk cache
disk cartridge
disk drive
diskette
disk format
disk pack
disk stack
disk striping
disk-to-plate
disk unit
dispatcher
dispersion
displacement mapping
display
Display Port
display processor
Distiller
distributed array processor
distributed artificial intelligence
distributed computing environment
Distributed Concurrent Versions System
distributed database
distributed denial of service
distributed file system
distributed problem solving
distributed processing
distributed queue dual bus
distributed system
distribution
distribution counting sort
distributive lattice
distributive laws
dithered colour
dithering
dither noise
diverse programming
divide and conquer sorting
divided difference
divider
DLL
DMA
DME
DML
DMZ
DNS
DNS server
docking station
document
documentation
document image processing
Document Object Model
document processing
document reader
document scanner
document sorter
document type definition
do loop
DOL system
DOM
domain
domain knowledge
domain modelling
domain name server
domain name system
domain theory
dominator
dongle
do-nothing instruction
don’t care
dope vector
DOS
DOS box
dot com
dot diffusion
dot matrix printer
double buffering
double click
double complement
double-density recording
double-length arithmetic
double negation
double precision
doubly linked list
do-while loop
down
downline
download
down operation
downsizing
downtime
DP
DPCM
dpi
DQDB
drag
drag and drop
DRAM
draughts-playing programs
DRAW
DRCS
DRDW
drive
driver
drop-down menu
drop-in
drop-on-demand inkjet printer
drop-out
drum plotter
drum printer
drum scanner
dry run
DSL
DSM
DSP
DSPACE
DSS
DTD
DTE
DTIME
DTL
DTP
D-type flip-flop
dual
dual attach
dual core
dual in-line package
duality
dual port memory
dual processor
dummy instruction
dump
dump check
dump point
duplex
duty cycle
DVD
DVI
dyadic
dyadic operation
Dyck language
dye-polymer media
dynamic
dynamic allocation
dynamic data structure
Dynamic Host Configuration Protocol
dynamic HTML
dynamic link library
dynamic logic
dynamic memory
dynamic programming
dynamic testing
dynamic web page
EAN
EAPROM
EAROM
Easter egg
EBCDIC
EBNF
e-book
e-business
ECB
ECBS
echo
echo check
echoing
echo suppression
ECL
ECMA International
ECMAScript
e-commerce
edge
edge board
edge card
edge connector
edge detector
edge-triggered flip-flop
EDI
EDIFACT
edit
editor
Edmonds’ algorithm
EDP
EDS
EDSAC
EDVAC
EEPROM
EEROM
effective address
effective computability
effective enumeration
effective procedure
EFT
EFTPOS
EFTS
egoless programming
EIA
EIDE
Eiffel
eigenfunctions
eigenvalue problems
eigenvectors
EIR
EISA
elapsed time
e-learning
electrographic printer
electroluminescent display
electromagnetic beam deflection
electromagnetic compatibility
electronic
electronic blackboard
electronic data interchange
electronic data processing
electronic filing
electronic funds transfer system
electronic graffiti
electronic learning
electronic mail
electronic organizer
electronic point-of-sale system
electronic publishing
electronic signature
electrophotographic printer
electrosensitive printer
electrostatic beam deflection
electrostatic printer
electrostatic storage device
electrothermal printer
element
Ellison, Larry
ELSE rule
EMACS
email
EMAS
embedded computer
embedded servo
embedding
EMC
EMI
emittance texture
emitter-coupled logic
e-money
emoticon
empty list
empty medium
empty set
empty string
EMS memory
emulation
emulator
enable
enable pulse
encapsulated PostScript
encapsulation
encoder
encoding
encryption
end-around-carry
end-around shift
endomorphism
endorder traversal
end-to-end control
end-to-end encryption
energizer
engine
engineering of computer-based systems
enhanced small-device interface
ENIAC
enterprise modelling
enterprise resource planning
enterprise server
entity
entity-relationship-attribute diagram, model
entropy
entry point
entry time
enumeration
enumeration type
environment
environment mapping
EOB
EOD
EOF
EOJ
EOR
EOT
EOT marker
epimorphism
epistemology
EPLD
epoch
EPOS
EPPT
EPROM
EPS
EPSF
EPSI
equation
equational logic
equational specification
equational term rewriting system
equipotent
equivalence
equivalence class
equivalence gate
equivalence relation
equivalent binary digits
equivalent trees
ERA diagram
ERA model
erasable programmable logic device
erasable PROM
erase head
eraser
erasure channel
ergodic source
ergonomics
Erlang
ERP
error
error analysis
error bound
error burst
error control
error-correcting code
error correction
error-detecting code
error detection
error diagnostics
error estimate
error handling
error-indicating recording
error management
error message
error propagation
error rate
error recovery
error routine
error seeding
escape character
escape sequence
escrow
ESD
ESDI
ESF coating
ESPRIT
ESSI
ETB
Ether
Ethernet
Ethernet card
e-ticket
ETX/ACK
Euclidean norm
Euclid’s algorithm
Eudora
EUI-48
EUI-64
Euler cycle
Euler operators
Euler’s formula
Euler’s method
EUREKA
European Article Numbering code
evaluation function
even parity
event-driven
event input
event tree analysis
evolutionary programming
exaexbiExcel
exception
exception handling
excess-3 code
excess factor
excess-n notation
exchangeable disk store
exchange selection
exclusive-NOR gate
exclusive-OR gate
exclusive-OR operation
executables
execute
execute phase
execute step
execution states
execution time
executive program
executive state
exerciser
exhaustive search
existential quantifier
exit point
EXNOR gate
EXOR gate
expanded memory
expansion
expansion card
expansion slot
expectation
experimental design
expert systems
explicit address
exploratory data analysis
exponent
exponentially bounded algorithm
exponential waveform
exponentiation
export list
exposed terminal problem
ExpressCard
expression
expression of requirements
extended addressing
extended ASCII
extended BNF
extended memory
extended precision
extensibility
extensible addressing
extensible language
extensible stylesheet language
extension
extension field
Exterior Gateway Protocol
external device
external fragmentation
external interrupt
external node
external path length
external schema
external sorting
external storage
extranet
extrapolation
extrapolation method
extrinsic semiconductor
Facebook
facet
facial animation
facilities management
facsimile
factorable code
factor analysis
factorial designs
FADEC
Fagan inspection
fail-safe
fail-soft
failure
failure modes
failure rate
failure recovery
fairness
fair surface design
fallback
false position method
fan-in
Fano coding
Fano decoding
fan-out
FAQ
farm
FAST
Fast Ethernet
fast Fourier transform
FAT
father file
fault
fault detection
fault diagnosis
fault-tolerant system
fault tree analysis
fax
fax card
FCC
FDDI
F distribution
FDM
feasibility study
feature detection
feature modelling
feed
feedback
feedback queue
feedback register
feed-forward register
Feistel cipher
Ferranti Mark I
ferrite
ferroelectric display
FET
fetch-execute cycle
fetch protect
FF
FFT
Fibre Channel
fibre distributed data interface
fibre optics
Fibonacci search
Fibonacci series
fiche
field
field bus
field-effect transistor
field-programmable devices
FIFO
fifth generation
file
file activity
file allocation table
file descriptor
file directory
file editing
file extension
file format
file integrity
file locking
file maintenance
file management
file management system
file manager
file mark
file name
file organization
file protection
file recovery
file server
file system
file transfer
file transfer protocol
file updating
fill area primitive
fill character
filling
film scanner
filter
filtering
filtering bridge
find
find and change
finite automaton
finite-difference method
finite-element analysis
finite-element method
finite field
finite-length arithmetic
finite-model theory
finite sequence
finite set
finite-state automaton
FIPS
Fire codes
Firefox
firewall
FireWire
firing rule
firmware
FIRST
first-class type
first fit
first generation
first in first out
first normal form
first-order logic
first-order term
fixed-base system
fixed disk drive
fixed head
fixed-length arithmetic
fixed-length code
fixed point
fixed-point notation
fixed-point theorem
fixed-radix system
fixed space
fixed word length computer
flag
flame
flash memory
flat addressing
flatbed plotter
flatbed scanner
flat file model
flat pack
flat-panel display
flat screen
flexible array
flexible disk cartridge
flexible manufacturing system
flexible PCB
flicker
flip-flop
float
floating-point notation
floating-point operation
flood-fill
floor
flop
floppy disk
floppy-disk drive
flops
floptical disk
flowchart
flow control
Floyd method
fluid logic
Flynn’s classification
FM
FMECA
FMS
FMV
folding
font
font cartridge
footprint
foreground processing
foreign key
forest
for loop
form
formal language
formal language theory
formal logic
formal method
formal parameter
formal specification
formal system
formal verification
formant
format
format string bug
formatter
form factor
form feed
form letter
form overlay
form stop
Forth
Fortran
forum
forward bias
forward chaining
forward error correction
forward error recovery
forward pruning
Fourier analysis
Fourier descriptors
Fourier series
Fourier transform
four Russians algorithm
fourth generation
fourth-generation language
FP
FPA
FPGA
FPLA
FQDN
fractal
fractal image compression
fraction
fractional-level zooming
fractional part
fractional replication
fragmentation
frame
frame buffer
frame grabber
frameless rendering
frame relay
frames
framework
Framework Programme
Framework Programmes, I–VII
FranzLisp
Fredholm integral equation
freedom of information
free list
free monoid
free occurrence
free semigroup
Free Software Foundation
free-space list
free text retrieval
free variable
freeware
freeze-frame
frequency
frequency distribution
frequency divider
frequency division multiplexing
frequency domain
frequency function
frequency modulation
frequency shift keying
Fresnel factor
friction drive
front end
front-end processor
FSA
FSF
FSK
FTAM
FTFL code
FTP
FTVL code
Fujitsu
full adder
full backup
full custom
full duplex
full-motion video
full subtractor
full text retrieval
full tree
function
functional cohesion
functional dependency
functional design
functional languages
functional partitioning
functional specification
functional testing
functional unit
function key
function point analysis
functor
fuser
fusible link
fuzzy control
fuzzy logic
FYI
G
Galerkin’s method
gallium arsenide devices
Galois field
games console
games port
game theory
game tree
Gane–Sarson
Gantt chart
gap theorem
garbage
garbage collection
garbage in garbage out
gate
gate array
Gates, Bill
gateway
gather write
Gaussian distribution
Gaussian elimination
Gaussian noise
Gaussian quadrature
GB
Gbps
GBS method
Gbyte
GCD
GCR
GDI
geek
gender bender
generalized additive models
generalized Church–Turing thesis
generalized linear model
generalized sequential machine
general-purpose computer
general-purpose interface bus
general recursive function
generating polynomial
generations
generative grammar
generator
generator matrix
generic
generic compaction
generics
genetic algorithm
genetic programming
geodesic
geodesic curves
geographic information system
geometric modeller
gesture
Gflops
gibiGIF
gigaGigabit Ethernet
GIGO
Gilbert–Varshamov bound
GINO–F
GIS
Git
GKS
glass-box testing
glass teletype
glitch
global
global discretization error
global illumination
global optimization
glossy reflection
glyph
GNU
goal-directed processing
Gödel numbering
Gödel’s incompleteness theorems
Golay codes
golden section search
gold master
Good–de Bruijn diagram
goodness-of-fit test
Google
gopher
Gopher
Goppa codes
GOTO statement
Gouraud shading
GP
GPIB
GPU
graceful degradation
graded index fibre
Gragg’s extrapolation method
grammar
grandfather file
granularity
graph
graphical device interface
graphical kernel system
graphical user interface
graphic characters
graphics
graphics adapter
graphics image format
graphics mode
graphics primitive
graphics processing unit
graphics program
graphics tablet
graphics workstation
graph plotter
graph rewrite system
gravity field
Gray code
greatest common divisor
greatest lower bound
greedy method
greeking
Green Book
Greibach normal form
grey importer
grey-level array
grey-level image
greyscale
grid
Grosch’s law
ground term
group
group code
group code recording
group graph
group mark
groupware
Grzegorczyk hierarchy
gsm mapping
guest
GUI
gulp
H2020
hacker
hacking
Hadamard codes
Hadamard matrices
half-adder
half duplex
half-height factor
halfplane
half subtractor
halfsurface
halftone
half word
halt
halting problem
Hamiltonian cycle
Hamming bound
Hamming codes
Hamming distance
Hamming metric
Hamming radius
Hamming space
Hamming sphere
Hamming weight
hand-held computer
handle
handshake
hands off
hands on
hang-up
Hanoi
haptics
hard copy
hard disk
hard return
hard-sectored disk
hardware
hardware character generation
hardware circuitry
hardware description
hardware maintenance
hardware reliability
hardware security
hardwired
Harvard Mark I
hash function
hashing
hashing algorithm
hash P complete
hash search
hash table
hash total
hash value
Haskell
Hatley–Pirbhai
Hayes command set
Hayes-compatible
hazard
hazard and operability study
HAZOP
HCI
HD
HDD
HD DVD
HDLC
HDTV
head
head crash
headend
header
head-mounted display
head-per-track drive
heap
heapsort
height
height-balanced
helical scan
help desk
help system
hemi cube
He model
Hermite interpolation
hertz
heuristic
heuristic search
Hewlett-Packard
hex
hexadecimal notation
hex pad
hibernate
hidden file
hidden-line/hidden-surface removal
hidden-line removal
hidden-surface removal
hidden terminal problem
hierarchical addressing
hierarchical B-splines
hierarchical class structure
hierarchical cluster analysis
hierarchical communication system
hierarchical database system
hierarchical data model
hierarchical encoding
hierarchical memory structure
hierarchical radiosity
hierarchy
hierarchy of functions
High-Definition DVD
higher-order term
high-level design
high-level language
high-level scheduler
highlight
highlighting
high-order language
high-pass filter
High Performance File System
High Sierra standard
highway
hill climbing
hi res
histogram
hit rate
HLHSR
HLS colour model
HMD
HMI
Hoare logic
HOL
hold time
Hollerith, Herman
Hollerith code
holographic memory
holographic scanner
home key
home page
homogeneous coordinates
homomorphic image
homomorphism
HOOD
hook into
hop
HOPE
Horizon 2020
horizon effect
horizontal check
horizontal microinstruction
horizontal recording
Horn clause
Horner’s method
host computer
hosting
host language
hot key
hot link
hotspot
hot swapping
housekeeping
HPF
HPFS
HP-PA
HSI
HSV colour model
HTML
HTTP
hub
hub polling
hue
Huffman encoding
human-computer interface
hybrid computer
hybrid integrated circuit
hypercube
hyperedge
hypergraph
hyperlink
hypermedia
hypertext
hypertext mark-up language
hypertext transfer protocol
hypervisor
IA5
IAB
IANA
IAP
IAS
IAS computer
IBG
IBM
IBM-compatible
IBM system 360
IC
I2C
ICANN
ICC
ICL
icon
ICON
ICR
ICT
IDE
IDEF
idempotent law
identification
identifier
identity burst
identity element
identity function
identity matrix
idle time
IDMS
IDP
IEC
IEEE
IEEE1394
IESG
IETF
if and only if statement
IFE
iff
IFIP
IFS
if then else statement
IGBT
IGES
ignore character
IH
iLink
ill-conditioned
illegal character
illegal instruction
ILLIAC IV
illumination
IMA
iMac
image
image capture
image compression
image display
image file format
image grabber
image management system
image map
image processing
image tearing
image understanding
image warping
IMAP
immediate access store
immediate addressing
immunization
impact printer
imperative languages
implementation
implicant
implicit surface
implied addressing
import list
imprecision
impulse noise
IMS
inactive
incidence matrix
inclusive-OR gate
inclusive-OR operation
incomplete knowledge-based system
incompleteness theorems
inconsistent
increment
incremental backup
incremental compaction
incremental compiler
incremental dump
incremental learning
indegree
indeterminate system
index
indexed addressing
indexed file
indexed sequential file
index register
indicator
indirect addressing
individual attributes
induction
industrial robotics
Industry Standard Architecture
inequality
inference
inference engine
infinite resolution
infix notation
influence
informatics
information
information and communications technology
information destination
information engineering
information hiding
information leak
information management system
information processing
information retrieval
information science
information sciences
information source
information storage and retrieval
information structure
information superhighway
information system
information systems
information technology
information theory
INFORMIX
infrared interface
infrastructure-based architecture
INGRES
inherent addressing
inherently ambiguous language
inheritance
inhibit
initial algebra
initialization
initial-value problem
injection
inkjet printer
in-line function
inner code
inoculation
inorder traversal
input
input area
input device
input-limited process
input/output
insert
install
instance
instantaneously decodable
instantiation
instruction
instruction counter
instruction cycle
instruction format
instruction register
instruction repertoire
instruction sequencing
instruction set
instruction stream
instrument
integer
integer programming
integer type
integral domain
integral equation
integrated circuit
integrated data processing
integrated device electronics
integrated modular avionics
integrated office system
integrated services digital network
integrated systems factory
integration testing
integrity
integrity level
integro-differential equation
Intel
Intel High Definition Audio
Intellect
intellectual property
intelligent front end
intelligent network
intelligent terminal
intensity
interaction
interactive
interactive development environment
interactive graphics
interblock gap
interface
interior node
interior path length
interlacing
interlock
intermediate code
intermediate storage
internal fragmentation
internal schema
internal sorting
Internet
Internet access provider
Internet address
The Anatomy of an Internet Address
Internet Architecture Board
Internet café
Internet Engineering Steering Group
Internet Engineering Task Force
Internet Explorer
Internet Message Access Protocol
internet protocol
Internet Protocol Security
Internet service provider
Internet Society
internetworking
interoperability
interpolation
interpretation
interpreter
interpretive language
interprocess communication
interquartile range
interrogation
interrupt
interrupt-driven
interrupt handler
interrupt I/O
interrupt mask
interrupt priority
interrupt service routine
interrupt vector
intersection
intersegment linking
interval analysis
interval timer
intranet
intrinsic semiconductor
invariant
inverse
inverse homomorphic image
inverse matrix
inverse power method
inverse video
inverted file
inverter
invertible matrix
involution operation
I/O
I/O buffering
I/O bus
I/O channel
I/O control
I/O device
I/O file
I/O instruction
I/O-limited
I/O mapping
ionographic printer
IOP
I/O port
I/O processor
I/O register
iOS
I/O supervisor
I/O switching
IP
iPad
IP address
IPC
IP core
iPhone
IPL
IPO
iPod
IPSec
IPv4
IPv6
IrDa
IRQ
irradiance
irradiance gradient
irrecoverable error
irreducible polynomial
irreflexive relation
irreversible encryption
IS
ISA
ISAM
ISDN
ISF
ISO
ISO-7
ISOC
isolation
isoline
isolux curves
isomorphism
ISO/OSI reference model
isosurface
ISP
ISR
IT
ITA-5
Itanium
iterated function system
iterated map
iteration
iterative deepening
iterative improvement
iterative methods
ITron
ITSEC
ITU
ITU-T
jackknife
Jackson method
JANET
Jarrot’s method
Java
JavaBean
Java Development Kit
JavaScript
JavaServer Pages
Java Virtual Machine
JCL
JDK
jewel box
JIT compiler
jitter
JK flip-flop
job
job-control language
job file
job mix
job monitoring
Jobs, Steve
job scheduling
job step
job stream
Johnson counter
join operator
Josephson junction
Josephson technology
journal tape
Jovial
joystick
JPEG
JSD
JSP
JTMP
jukebox
jump
jump instruction
junction
justify
Just-in-time compiler
JVM
K
KADS
Kalman filter
Kamarkar’s method
Karnaugh map
kB
Kbps
KBS
Kbyte
K-complexity
k-connectivity
KDC
KDD
Kerberos
Kermit
kernel
kernel field
kerning
key
keyboard
keyboard encoder
key frame
keypad
keypunch
keyring drive
key sorting
keyword
keyword parameter
Kildall, Gary
kill file
kiloKilostream
Klatt synthesizer
Kleene closure
Kleene-plus
Kleene star
Kleene’s theorem
k lookahead
kludge
KMP algorithm
knapsack problem
knot
knowledge
knowledge acquisition
knowledge base
knowledge-based system
knowledge discovery in databases
knowledge elicitation
knowledge engineering
knowledge engineering toolkits
knowledge representation
Knuth, Donald E.
Knuth–Bendix algorithm
Knuth–Morris–Pratt algorithm
Kolmogorov complexity
Königsberg bridges problem
Kraft’s inequality
kriging
Kronrod’s algorithm
Kruskal’s algorithm
label
lambda calculus
lambda expression
lambda notation
Lambert’s law
LAMP
LAN
landscape
language
language concatenation
language construct
LAP
Laplacian operator
laptop computer
large-scale integration
laser
laserdisk
laser printer
last in first out
latch
latch-up
latency
LaTeX
Latin alphabet
lattice
layer
lazy evaluation
LBA
LCA
LCC
LCD
LCM
LCSAJ
LDAP
LDU decomposition
leader
leading
leading edge
leadless chip carrier
leaf
leaf node
learning
leased line
least common multiple
least fixed point
least privilege
least significant character
least squares, method of
least squares approximation
least upper bound
LED display
Lee distance
left-linear grammar
left shift
left subtree
left-to-right precedence
legacy applications
legacy networks
legged robots
Leibniz, Gottfried Wilhelm
Lempel–Ziv compaction
Lempel–Ziv–Welch compaction
length
length-increasing grammar
Lenovo Group Ltd
LEO
letter
letter distribution
letter-equivalent languages
level
leverage point
LEX
lexical analyser
lexicographic order
lexicographic sort
LF
Liang–Barsky clipping
library
life cycle
LIFO
light-emitting diode
lighting model
light intensity
Lightning
light pen
Lightweight Directory Access Protocol
likelihood
limited license
Linda
Lindenmeyer system
linear algebraic equations
linear array
linear-bounded automaton
linear channel
linear codes
linear grammar
linear independence
linear list
linear logic
linearly dependent
linear multistep methods
linear predictor
linear programming
linear recurrence
linear regression model
linear structure
line feed
line finder
line printer
line protocol
line switching
link
link access procedure
linkage
linkage editor
LinkedIn
link editor
linked list
link encryption
link layer
link library
link loader
link testing
Linux
liquid-crystal display
Lisp
list
list box
listing
list insertion sort
list processing
list sorting
list structure
literal
literate programming
little-endian
liveness
LL parsing
loader
local
local area network
local bus
local bus architecture
local device
local discretization error
local-echo mode
local error
local illumination
localization
local loop
local optimization
location
location operator
locator
lock
lockout
locks and keys
lofting
logarithmic search algorithm
log file
logic
logical
logical cohesion
logical connective
logical encoding
logical expression
logical formulas
logical input device
logical operator
logical record
logical schema
logical shift
logical type
logical value
logic analyser
logic bomb
logic card
logic cell array
logic circuit
logic design
logic device
logic diagram
logic element
logic family
logic function
logic gate
logic instruction
logic languages
logic level
logic operation
logic operator
logic probe
logic programming languages
logic state
logic symbols
login
logistic function
logit
Logo
logoff
logon
logout
long filename
longitudinal redundancy check
lookahead
lookahead unit
lookup table
loop
loop invariant
lossless coding
lossless compression
lossy coding
lossy compression
Lotus 1–2–3
lower bound
low-level language
low-level scheduler
low-pass filter
lpm
LPT port
LQ
LRC
LRM
LR parsing
LSD
LSI
L-system
LU decomposition
luminance
lurker
Lycos
LZW
M
Mac
MAC
MAC-48
MAC address
Mach bands
machine
machine address
machine code
machine equivalence
machine-independent
machine intelligence
machine language
machine learning
machine simulation
machine translation
machine word
Macintosh
MAC layer
MACLisp
macro
macroassembler
macrogenerator
macroinstruction
macroprocessor
macro virus
magnetic bubble memory
magnetic card
magnetic cell
magnetic disk
magnetic drum
magnetic encoding
magnetic head
magnetic-ink character recognition
magnetic media
magnetic stripe
magnetic tape
magnetic tape cartridge
magnetic tape unit
magnetographic printer
magneto-optic storage
magnetostrictive tablet
mag tape
mail
mailbox
mailmerge
mailshot
mail user agent
mainframe
main memory
main program
main store
maintenance
majority element
make
malfunction
malware
MAN
managed data network service
managed device
management information system
manager
Manchester Mark I
mandatory access control
MANET
man-machine interface
Mann Whitney U-test
mantissa
many-sorted algebra
many-sorted predicate calculus
many-sorted signature
map
MAP
MAPI
map method
mapping
marching cubes
marching tetrahedra
marginal check
mark
marker
Markov chain
Markov source
mark reading
mark-space ratio
mark-up language
marriage problem
masking
mask-programmable device
masquerade
massively parallel
mass storage
master
master file
mastering
master record
master–slave flip-flop
master–slave system
master tape
matching
mathematical programming
matrix
matrix inversion
matrix multiplication
matrix norm
matrix printer
matrix-updating methods
maximize
maximum-length sequence
maximum likelihood, method of
maximum-likelihood decoding
max sort
maxterm
MB
MBONE
Mbps
Mbyte
MCA
MCAV
MCLs
MCLV
MCSs
MDNS
MDR
Mealy machine
mean
mean deviation
means/ends analysis
measure
measurement of appearance
measures of location
measures of variation
mebimechanical verifier
mechatronics
Media Access Control address
median
medium
meet operator
mega-
Megastream
member
member disk
memory
memory card
memory compaction
memory cycle
memory data register
memory dump
memory element
memory fill
memory guard
memory hierarchy
memory management
memory map
memory mapping
memory protection
memory reference instruction
memory-resident program
memory stick
memory-to-memory instruction
menu
menu bar
menu bypass
menu-driven program
Mercurial
mergeable heap
merge exchange sort
merge sort
merging
mesh
mesh interconnection
message
message passing
message queueing
message switching
message switching network
meta-assembler
metaballs
metafile
METAFONT
metalanguage
meta tag
methodology
methods
metric
metropolitan area network
Mflops
MFM
M2FM
MICR
micro
microblog
microcircuit
microcode
microcomputer
microcontroller
microfiche
microinstruction
micropipeline
microprocessor
microprogramming
microprogram sequencer
microprogram store
microrelief
microsequence
Microsoft
middleware
MIDI
midi-tower
midpoint rule
migration path
Millennium bug
milliMilnet
MIMD processor
MIME
min
minicomputer
mini DIN connector
minimal algebra
minimal machine
minimax
minimax procedure
minimization
minimization operator
minimize
minimum-access code
minimum-cost spanning tree
minimum-error decoding
Minitel
minterm
mipmap
mips
Miranda
mirror disk
mirroring
mirror set
mirror site
MIS
MISD processor
missing observations
mixed alphabet
mixed-base system
mixed cipher
mixed logic
mixed-radix system
ML
MMI
MNP
M-O
MOB
Mobile Code Languages
mobile computing
mobile robotics
MOD
modal dialogue
modal logic
mode
model
model-based reasoning
model-based specification
model checking
modeless dialogue
modelling
modelling clip
model numbers
modem
moderator
modifier bits
mod-n counter
Modula
Modula 2
modular arithmetic
modular counter
modular programming
modulation
modulator
module
module coding review
module design review
module invariant
module specification
module testing
modulo-n check
modulo operation
MOHLL
monadic
monadic operation
monalphabetic
Mondex
monic polynomial
monitor
monochrome display
monoid
monomode
monomorphism
monostable
monotonic
Monte Carlo methods
MOO
Moore machine
Moore’s Law
morphing
morphism
Mosaic
MOSFET
MOS integrated circuit
MOS transistor
most significant character
motherboard
moth-eye
motion blur
motion prediction
Motorola
Mount Rainier specifications
mouse
movement file
moving-average methods
MP3
MPEG
MPP
MSD
MS-DOS
m-sequence
MSI
MSR
MS Windows
MTA
MTBF
MTBI
MTS
MTTR
MTU
MUA
mu-law encoding
multiaccess system
multiaddress
Multibus
multicasting
multicore cable
multi-core processor
MULTICS
multidimensional array
multidimensional spreadsheet
multidrop line
multifunction device
multigrid methods
multilevel memory
multilevel security
multilinked
multimedia
multimedia mail
multimode
multimode counter
multipart stationery
multiple-address machine
multiple assignment
multiple chain
multiple inheritance
multiple instruction, multiple data
multiple-master font
multiple precision
multiple-range tests
multiple regression model
multiple-valued logic
multiplexed bus
multiplexer
multiplexer channel
multiplexing
multiplier
multiply connected
multipoint connection
multipoint line
multiport memory
multiprecision
multiprocessing system
multiprocessor
multiprogramming system
multireader
multiresolution image
multisession compatible
multiset
multitape Turing machine
multitasking
multithreading
multitouch
multiunit processor
multiuser system
multivalued logic
multivariate analysis
multivibrator
multiway search tree
Munsell colour model
mu operator
mutual exclusion
Myhill equivalence
MySpace
mySQL
nagware
naive physics
NAK
name
name lookup
nameset
namespace
NAND gate
NAND operation
nanonanostore
narrow
narrowband
NAS
Nassi–Shneiderman chart
NAT
National Information Infrastructure
native code
native software
natural binary-coded decimal
natural-language processing
natural-language understanding
natural number
NBCD
NCP
NCR
NDC
NEC Corporation
negation
negation as failure
negative acknowledgment
negative logic
negator
negentropy
neighbour
nerd
Nerode equivalence
nested blocks
nesting
nesting store
Net
netgod
netiquette
Netnews
netpolice
Netscape Navigator
Netware
network
network address translation
network administrator
network architecture
network-attached storage
network delay
Network File System
network front end
network interconnection
network layer
network management
network share
network topology
network virtual terminal
neural computer
neural network
neuron
newsgroup
newsreader
Newton–Cotes rules
Newton’s method
NFS
nibble
Nigerian fraud
nine’s complement
N-ISDN
NLP
NLQ
NMOS
no-address instruction
node
Noetherian
noise
noise immunity
noiseless coding
noise margin
noise sequence
noise source
noisy mode
nonbinary logic
nondestructive read
nondeterminism
nonequivalence gate
nonequivalence operation
nonerasable programmable device
nonfunctional requirements
nonhierarchical cluster analysis
nonimpact printer
nonlinear equations
nonlinear regression model
nonlocal entity
nonmemory reference instruction
nonmonotonic reasoning
nonparametric techniques
nonpreemptive allocation
nonprocedural language
nonreturn to zero
nonsingular matrix
nonstop processing
nonterminal
nonterminal node
nonvolatile memory
non von Neumann architecture
no-op instruction
NOR gate
norm
normal distribution
normal forms
normalization
normalized coordinates
normal plots
normal subgroup
NOR operation
NOS
NoSQL
notch filter
notebook
not-equivalence gate
NOT gate
NOT operation
Novell Inc.
NP
NPC
npn
NREN
NRZ
NS chart
NSPACE
NTFS
n-tuple
n-type semiconductor
nucleus
null
nullary operation
null character
nullity
null link
null list
null matrix
null set
null string
number cruncher
number system
numerical analysis
numerical code
numerical control
numerical differentiation
numerical integration
numerical linear algebra
numerical methods
numerical stability
numlock
NURBS
n-version programming
Nyquist interval
Nyquist rate
Nyquist sampling
Nyquist’s criterion
Nyström methods
Oberon
OBJ
object
object code
object language
object linking and embedding
Object Management Group
object management system
object-oriented architecture
object-oriented database
object-oriented design
object-oriented language
object-oriented programming
Object-oriented Programming
object program
object-relational database management system
object-relational mapping
object-space octree
occam
occam-pi
OCR
octal notation
octant
octet
octree
odd-even check
odd-even rule
odd-even transposition sort
odd parity
odds
ODP
OEM
OFB
office automation
Office of Government Commerce
office software product
offline
OLAP
OLE
OMG
OMR
OMS
OMT
one-address instruction
one-level store
one-pass program
one-plus-one address instruction
one’s complement
one-shot
one-to-one function
one-to-one onto function
one-way filter
one-way linked list
online
online analytical processing
online transaction processing
O notation
on-the-fly error recovery
onto function
ontology
OOD
OOL
OOP
op-amp
op code
open
open-collector device
open distributed processing
OpenGL
Open Group
open-reel tape
open relay
open shop
Open Software Foundation
open-source
open subroutine
open system
open systems interconnection
open term
OpenType font
operand
operating system
operation
operational amplifier
operational research
operational semantics
operation code
operation register
operations on sets
operations research
operation table
operator
optical card
optical character recognition
optical computing
optical disk
optical disk library
optical fibre
optical flow
optical font
optical mark reading
optical media
optical storage
optical switch
optical tape
optimal binary search tree
optimization
optimum programming
optional product
optoelectronics
optoisolator
OR
Oracle
ORACLE
oracle-based testing
Orange Book
ORDBMS
order
order code
ordered pair
ordered set
ordered tree
ordering relation
order of precedence
order register
order statistics
ordinary differential equations
organizational information system
Organizationally Unique Identifier
OR gate
OROM
OR operation
orthogonal analysis
orthogonal equations
orthogonal functions
orthogonal list
orthogonal matrix
orthogonal memory
orthogonal term rewriting system
orthonormal analysis
orthonormal basis
orthonormal functions
OS
OS/2
oscillator
OSF
OSI
OSI reference model
OS X
OTLP
OUI
outdegree
outer code
outlier
output
output area
output device
output-limited process
overflow
overlap
overlay
overloading
over-voltage
overwrite
own coding
P
pack
package
packed decimal
packet
packet assembler/disassembler
packet radio
packet switching
packet switching network
packing density
PAD
padding
page
Page, Larry
page break
page description language
page frame
page printer
page table
paging
paging drum
painter’s algorithm
paint program
PAL
palette
palmtop computer
PANTONE
paper slew
paper tape
paper tape I/O
paper throw
paper white display
PAR
paradigm
paradoxical combinator
parallel
parallel access
parallel adder
parallel algorithm
parallel arithmetic
parallel ATA
parallel composition
parallel computer
parallel in parallel out
parallel input/output
parallel in serial out
parallel interface
parallel port
parallel printer
parallel processing
parallel projection
parallel rewriting system
parallel running
parallel shooting method
parallel transfer
parameter
parameter passing
parametric curve
parametric patch
parametric surface
parametric techniques
parent
parent file
parenthesis-free notation
Parikh’s theorem
parity
parity bit
parity check
parity-check code
Parlog
parser
parser generator
parse tree
parsing
partial correctness, proof of
partial differential equations
partial evaluation
partial function
partially ordered set
partial ordering
partial recursive function
particle system
partition
partition-exchange sort
Pascal
pass
passband
pass instruction
passive-matrix LCD
passive optical network
passive star
password
paste
PATA
patch
patchboard
patchcord
patent
path
path testing
pattern
pattern inventory
pattern matching
pattern recognition
payload
PC
PCB
PC card
PC clone
PC-compatible
PC-DOS
PCI
PCI Express
PCL
PCM
PCMCIA
PCMCIA card
PCTE
PDA
PDF
PDH
PDL
PDN
PDP series
PE
peak-to-average ratio
Peano arithmetic
pebipeek
peephole optimization
peer-to-peer protocol
pel
pen drive
penetration
Pentium
percentile
perception
perceptron
perfect codes
perfective maintenance
perfect matching
performance model
performance monitoring
performance testing
period
periodogram
peripheral
peripheral processor
Perl
permanent error
permanent virtual circuit
permutation
permutation group
permutation matrix
persistence
persistent data
persistent programming
personal computer
personal data
personal digital assistant
perspective projection
PERT
PERT chart
pervasive computing
PES
petaPetri net
PGA
PGP
phase
phase change
phase-change inkjet printer
phase-encoded
phase-locked loop
phase modulation
phase shift keying
PHIGS
phishing
phoneme
Phong shading
photo printer
photorealism
phototransistor
PHP
phrase-structure grammar
physical
physical layer
pi benchmark
pick
Pick
pick list
picoPICT
picture
picture processing
PID controller
piecewise continuous
piecewise smooth
PIF
pi font
piggyback acknowledgments
PILOT
pin
pincushion distortion
ping
pin grid array
pin header
Pink Book
pinout
PIO
pipe
pipeline processing
pipelining
PIPO
PISO
pixel
pixel aspect ratio
pixelblt
pixelization
pixmap
pizza-box
PKZIP
PL/1
PL/360
PLA
plaintext
planar graph
planning
plasma display
plasma panel
platform
platten
platter
plausible reasoning
PL/C
PLD
plesiochronous digital hierarchy
plex
PL/I
PLL
PL/M
plotter
plotter font
plug-and-play
plugboard
plug compatible
PMOS
PMS
pneumatic logic
PNG
p-n junction
PNO
pnp
P=NP question
pocket sorting
podcast
point
point and click interface
pointer
pointing device
point of presence
point-of-sale system
point-to-point control
point-to-point line
point-to-point protocol
Poisson distribution
poke
Polish notation
polling
polyadic operation
polyalphabetic
polygon clipping
polygon filling
polyline
polymarker
polymorphic
polymorphism
polynomial
polynomial codes
polynomial equation
polynomial interpolation
polynomially bounded algorithm
polynomial number
polynomial space
polynomial time
polyphase merge sort
PON
pop
PoP
POP
POP-2
POP-11
POP3
P operation
POPL
POPLOG
population
pop-up
pop-up menu
port
portable
portable network graphics
portal
portrait
POS
poset
POS expression
positional system
position-independent code
position tree
positive acknowledgment
positive display
positive logic
POSIX
Postal
postcondition
postedit
posterization
postfix notation
PostgreSQL
postmaster
postmortem
post office protocol
postorder traversal
postprocessor
Post production system
Post’s correspondence problem
PostScript
PostScript font
POTS
Powell’s algorithm
power down
power-fail recovery
power-limited channel
power management
power method
power off
power on
PowerPC
power routing
power set
power up
ppm
PPP
pragma
preamble sequence
precedence
precedence parsing
precision
precondition
predicate
predicate calculus
predicate transformer
predictive PCM
predictor-corrector methods
pre-emptive allocation
prefix
prefix codes
prefix notation
prefix property
PREMO
preorder traversal
preprocessor
presentation graphics
presentation layer
prestore
preventive maintenance
PRF
PRI
primary index
primary key
primary memory
prime implicant
primitive
primitive element
primitive polynomial
primitive recursion
primitive recursive function
primitive recursive set
primitive type
Prim’s algorithm
principal component analysis
printed circuit
printed circuit board
printer
printer format
printout
print quality
print server
prioritize
priority
priority encoder
priority interrupt
priority processing
priority queue
privacy
private IP address
private key
privileged instructions
probabilistic compaction
probabilistic reasoning
probability
probability calculus
probability distributions
probit analysis
problem definition
problem description
problem-oriented language
procedural abstraction
procedural cohesion
procedural language
procedure
procedure-oriented language
process
process algebra
process calculus
process control
process descriptor
process model
process modelling
processor
processor allocation
processor status word
processor time
product group
production
production rule system
production run
productive time
product of sums expression
product term
profiling
program
program analysis
program compatibility
program control
program correctness proof
program counter
program decomposition
program design
program design language
program development system
program file
program library
program listing
programmable array logic
programmable devices
programmable electronic system
programmable gate array
programmable logic array
programmable logic device
programmable ROM
program maintenance
programmed I/O
programmed logic
programmed logic array
programmer
programmer unit
programmer workbench
programming
programming language
programming standards
programming support environment
programming theory
program proving
program specification
program status word
program structure
program synthesis
program testing
program transformation
program unit
program verification
program virus
Prograph
progressive encoding
progressive scanning
project Gutenberg
projection
projection function
projective transformation
project support environment
Prolog
PROM
PROM programmer
prompt
proof
propagation delay
proper ancestor
proper subgraph
properties
proportional spacing
propositional calculus
protected location
protection domain
protocol
protocol hierarchy
protocol stack
protocol translation
prototype
proxy
PS/2 keyboard/mouse interface
PSE
pseudocode
pseudoinstruction
pseudolanguage
pseudonoise sequence
pseudonymous record
pseudo-operation
pseudorandom
pseudorandom numbers
PSG
PSK
PSL/PSA
PSPACE
PSTN
PSU
PSW
P-switch
PTI
PTIME
PTO
PTT
p-type semiconductor
public data network
public domain
public key certificate
public key encryption
public key infrastructure
public network operator
public telecommunications operator
public tool interface
puck
pull
pull-down menu
pull-up resistor
pulse
pulse code modulation
pulse generator
pulse height
pulse repetition frequency
pulse shaping
pulse stretcher
pulse train
pulse-triggered flip-flop
pulse width
pumping lemmas
punched card
punched card reader
punched tape
pure BCD
push
pushdown automaton
pushdown stack
pushup stack
PVC
Python
QAM
q-ary
q-ary logic
QBE
QC
QR factorization
quad
quad core
quadratic spline
quadrature
quadrature amplitude modulation
quadtree
qualifier register
qualitative reasoning
quality assurance
quality control
quantifier
quantization
quantization noise
quantizer
quantum
quantum computing
Quantum Computing
quartile
quasiquaternary logic
query by example
query language
query processing
queue
queue management
queuing network
queuing theory
quibinary code
quickersort
quicksort
QuickTime
quiesce
q-valued
race condition
racking
rack mounting
radio button
radiosity
RADIUS
radix
radix complement
radix exchange
radix-minus-one complement
radix notation
radix point
radix sorting
ragged array
ragged right
RAID
RAM
RAM disk
RAM drive
Ramp-C benchmark
random access
random-access file
random-access memory
random-access stored-program machine
random algorithms
random logic
random numbers
random sampling
random variable
range
range image
rank
rank correlation
rank correlation coefficient
RAR
raster
raster display
raster graphics
raster image processor
rasterizer
rasterop
raster-scan display
rate
rational language
rational number
rational type
raw data
raw error rate
ray casting
Rayleigh–Ritz method
ray tracing
RBL
RBT
RC circuit
RCS
RDBMS
RDF Site Summary
reachability
reachability matrix
read
read clock
reader
read error
read head
read instruction
read-mostly media
read-only file
read-only memory
read-only optical media
readout
read time
read-while-write check
read/write head
read/write memory
ready signal
realism
Really Simple Syndication
real numbers
real-time clock
real-time language
real-time operating system
real-time system
real type
reason-maintenance system
reboot
recognize
reconfiguration
reconstitute
record
recording density
record locking
recoverable error
recovery
recovery data
recovery log
recovery point
recurrence
recursion
recursion theorem
recursive
recursive descent parsing
recursive doubling
recursive function
recursive list
recursively decidable problem
recursively enumerable set
recursively solvable problem
recursively undecidable
recursive real number
recursive relation
recursive set
recursive subroutine
Red Book
reduced instruction set computer
reducible polynomial
reduct
reduction machine
reduction system
redundancy
redundancy check
Reed–Muller codes
Reed–Solomon codes
re-engineering
re-entrant program
referent
referential integrity
referential opacity
referential transparency
refinement
reflectance function
reflectance model
reflexive closure
reflexive relation
refresh
refresh frequency
refutation
regenerate
register
register insertion ring
register optimization
register transfer language
regression analysis
regression testing
regula falsi
regular expression
regular grammar
regular language
regular operations
regular set
reinforcement learning
relation
relational algebra
relational database management system
relational model
relational operator
relative addressing
relative complement
relative frequency
relatively prime
relative product
relative-time clock
relative URL
relay
release
release candidate
reliability
relocatable code
remedial maintenance
remote
remote operations service element
remote procedure call
remote sensing
rendering
rendezvous
repair time
repeated measures
repeater
repeat-until loop
repertoire
repetition codes
repo
report generator
repository
representation
request for comments
request input
requirements analysis
requirements specification
requirements specification phase
rerun
resampling
rescue dump
reserved word
reset
resident
residual
residual mean square
residue arithmetic
residue check
resistor-transistor logic
resolution
resource
resource allocation
resource descriptor
response function
response time
restart
restore
restriction
retry
return
return channel
return instruction
reusable resource
reusable software
reversal function
reverse authentication
reverse bias
reverse engineering
reverse Polish notation
reverse video
reversible execution
review
revision control
rewritable
rewrite rule
rewriting system
Rexx
RFC
RFI
RGB colour model
RGB components
RGB monitor
RGB signal
ribbon
ribbon cable
Richardson extrapolation
Rich Site Summary
rich text format
right-linear grammar
right shift
rightsizing
right subtree
Rijndael algorithm
ring
ring counter
ringing
ring network
RIP
ripple-carry adder
ripple counter
RISC
rise time
risk
risk analysis
risk assessment
risk evaluation
risk management
Ritchie, Dennis, MacAlistair
RJE
RLL
RM code
robotics
robustness
robust statistics
rogue value
rollback
roll-call polling
roller ball
roll-in roll-out
roll stationery
ROM
Romberg method
ROM optical disk
romware
root
root certificate
root directory
rooted tree
rootkit
ROSE
rotated dither
rotation position sensor
rough surface
roundoff error
round robin
route
router
routine
routine maintenance
routing
routing protocol
row-major order
row-ragged
row vector
RPC
RPG
RPN
RS232C interface
RSA encryption
RS code
RS flip-flop
RSI
RSL
RSS
RTD Programme in IT
RTF
RTL
RTM
RTOS
R-Tree
rubber-banding
Ruby
rule-based system
ruled surface
Runge–Kutta methods
run-length encoding
run-length limited encoding
running
run time
run-time system
run-time verification
Russell’s paradox
S-100 bus
SA
SAA
SaaS
SADT
Safari
safe harbor
safety
safety case
safety-critical system
safety integrity
safety plan
safety-related system
sampled-data system
sample input
sampling
SAN
sanitization
SA/RT
SATA
satellite computer
satisfiability
satisfiability problem
saturation
sawtooth waveform
SAX
SCA
scalability
scalable
scalable font
scalable processor architecture
scalable vector graphics
scalar
scaling
scan
scan-line
scanner
scatter read
SCC
sccs
scheduled maintenance
scheduler
scheduling algorithm
schema
SCHEME
Schmitt trigger
Schonhage algorithm
Schonhage–Strassen algorithm
Schottky TTL
scissoring
scope
Scott–Ershov domain
scratchpad
screen
screen dump
screened cable
screen editor
screensaver
script
scripting
scripting language
script theory
scroll
scroll bar
SCSI
SD card
SDH
SDK
SDL
SDLC
SDPM
SDRAM
SEAC
search
search and insertion algorithm
search and replace
search engine
searching
search tree
secant method
SECDED
secondary index
secondary memory
secondary ray
second generation
Second Life
second normal form
second-order logic
sector
Secure Digital Card
security
security accreditation
security assurance
security certification
security classification
security clearance
security evaluation
security kernel
security label
security model
security policy
security processing mode
security standard
seeding
seek time
segment
select
selector
selector channel
self-adapting process
self-checking code
self-compiling compiler
self-defining
self-documenting program
self-dual
self-extending
self-learning process
self-organizing system
self-referent list
self-relative addressing
self-signed certificate
semantic analysis
semantic attack
semantic error
semantic network
semantics
semaphore
semicomputable algebra
semicomputable set
semiconductor
semiconductor memory
semicustom
semidecidable
semidecidable set
semidecision procedure
semigroup
semiring
semi-Thue system
sense
sensitivity analysis
sensor
sensor-data fusion
sentence
sentence symbol
sentential form
sentinel
separator
SEQUEL
sequence
sequence control register
sequence generator
sequencer
sequencing
sequency
sequential
sequential access
sequential algorithm
sequential circuit
sequential cohesion
sequential composition
sequential encoding
sequential file
sequential function
sequential machine
sequential quadratic programming
sequential search algorithm
sequential transducer
serial
serial access
serial adder
serial arithmetic
serial ATA
serial in parallel out
serial input/output
serial in serial out
serial interface
serial-parallel
serial port
serial printer
serial process
serial programming
serial transfer
serpentine recording
server
server farm
server-side
service bit
service engineering
service level agreement
service-oriented architecture
session
session layer
set
set algebra
set difference
set-up time
seven-layer reference model
S-gate
SGML
shading model
shadow buffer
shadow-mask cathode-ray tube
Shannon diagram
Shannon–Fano coding
Shannon–Hartley law
Shannon’s model
Shannon’s theorems
shape blending
share
shared logic system
shared memory
shareware
SHE
sheet feeder
shell
shell script
Shell’s method
shellsort
shielded twisted pair
shift
shift character
shift counter
shift instruction
shift keying
shift lock
shift-reduce parsing
shift register
Shlaer–Mellor
shooting method
shortest-path algorithm
shrink-wrap license
shrink-wrapped product
sibling
side effect
sieve benchmark
sifting technique
sig
sigma algebra
sigma language
sigma tree
sigma word
sign
signal
signal conditioning
signal operation
signal processing
signal-to-noise ratio
signature
signature analysis
signature scanning
sign bit
sign digit
signed
signed field
signed-magnitude representation
significance test
significand
sign off
sign on
SIL devices
silicon chip
silicon disk
Silicon Valley
SIMD processor
similar trees
SIMM
Simple API for XML
Simple Object Access Protocol
simple parity check
simplex
simplex codes
simplex method
Simpson’s rule
Simula
simulated annealing
simulation
simulation language
simulator
simultaneous equations
single-address instruction
single-assignment languages
single attach
single in-line devices
single instruction, multiple data
single-step operation
single threading
singly linked list
singular matrix
sinking technique
SIO
SIPO
SISD processor
SISO
site licence
site network
situation semantics
SI units
sizing
skeletal strokes
skew
skewed tree
skew-symmetric matrix
SLA
slave machine
sleep
slice
slice architecture
slider bar
SLOC
slot reader
slotted ring
Smalltalk
smart card
smart machine
smartphone
smart terminal
SMD
smiley
SML
smoothing
smooth shading
SMP
SMTP
smurf
SNA
snapshot dump
sniffer program
SNMP
SNOBOL
snowflake
SO
SOA
SOAP
social engineering
social media
soft copy
soft fill
soft font
soft keyboard
soft object
soft return
soft-sectored disk
soft shadow
software
Software as a Service
software best practice
Software Capability Maturity Model
software component specification
software development environment
Software Development Kit
software development process model
software engineering
software engineering environment
Software Engineering Institute
software environment
software fault injection
software house
software library
software life cycle
software maintenance
software metric
software monitor
software package
software piracy
software process
software prototyping
software publisher
software quality assurance
software reliability
software requirements specification
software technology
software tool
solid colour
solid-font printer
solid inkjet printer
solid models
solid-state device
solid-state memory
solid texture
solvable problem
SONET
SOP expression
sort generator
sorting
sortkey
sort merge
sound card
soundex code
soundness theorem
source alphabet
source code
source code control
source coding
source coding theorem
source compression coding
source compression factor
source language
source-level compatibility
source lines of code
source listing
source program
source route bridge
source set
spaceball
space character
space complexity
space-division switch
space domain
space-filling curve
space quantization
spacetime
spam
spanning subgraph
spanning tree
SPARC
sparse matrix
spatial coherence
spatial reasoning
special character
specialization/generalization
specification
specification language
spectral analysis
specular reflection
speech compression
speech-generation device
speech recognition
speech synthesis
speech understanding
speed
speedup theorem
spelling checker
sphere-packing bound
spider
spidering
spiral model
spline
split
split screen
spoofing
spool
spread
spreadsheet
spread spectrum signalling
sprite
spyware
SQA
SQL
SQL
SQL injection
SQL Server
square matrix
square wave
SRAM
SRB
SR flip-flop
SSADM
SSI
SSU
stability
stable sorting algorithm
stack
stack algorithm
stack architecture
stack frame
stack manipulation
stack processing
staircase waveform
stand-alone
standard
standard deviation
standard error
standard function
standard interface
standardization
standard ML
standard product of sums
standard product term
standard sum of products
standard sum term
standby time
STAR
star closure
star-height
star network
start symbol
start time
startup
starvation
statecharts
state diagram
statement
statement label
statement testing
state space
state table
state-transition diagram
state-transition function
state variable
static
static allocation
static analysis
static data structure
static dump
static RAM
static web page
station
stationery
statistical analysis
statistical compaction
statistical methods
statistical multiplexing
statistical prediction
statistics
status
status bar
status register
status signal
STD
Steffensen iteration
STEP
stepped index fibre
stepsize
stepwise refinement
stiff equations
STM
stochastic matrix
stochastic model
stochastic process
storage
storage allocation
storage area network
storage device
storage element
storage hierarchy
storage location
storage pool
storage protection
storage schema
storage structure
storage tube
store
store and forward
stored procedure
stored program
storyboard
STP
straight insertion sort
straight selection sort
Strassen algorithm
stream
stream cipher
streamer
streaming
streaming tape transport
streams interface
stream transformer
Stretch
strictness
stride
strikeout
string
string manipulation
string matching
string segment
stripe disk
strobe
stroke
stroke textures
strongly terminating
strong mobility
strong typing
Stroustrup, Bjarne
structural induction
structure
structured analysis
structured coding
structured English
structured programming
structured systems analysis
structured variable
stub
Student’s t distribution
StuffIt
STX
subdirectory
subgraph
subgroup
sublist
submatrix
submenu
subnet
subnet mask
subnotebook
sub-Nyquist sampling
subprogram
subrecursive hierarchy
subroutine
subschema
subscript
subsemigroup
subsequence
subset
substitution
substitution cipher
substring
substring identifier
subsurface scattering
subtractor
subtree
subtype
subversion
successive approximation
successive over-relaxation
successor function
suffix
suffix notation
suite
sumcheck
sum of products expression
sum term
Sun Microsystems Inc.
supercomputer
superconducting memory
superconducting technology
superconductivity
SuperJANET
super-Nyquist sampling
supersampling
superscalar
supertwisted nematic display
SuperVGA
supervisor
supervisor call
supervisor state
support programs
suppress
surface-accessibility shading
surface-colour map
surface-mount technology
surface patch
surface reconstruction
surface reflection
surface subdivision
surfing
surjection
suspended process
Sutherland–Hodgman clipping algorithm
SVC
SVG
SVGA
SVN
swapping
sweeping
sweep surface
SWIFT
swipe reader
switch
switching
switching algebra
switching circuit
switching speed
switching theory
switching waveform
Sybase
Sylvester matrices
symbol
symbolic addressing
symbolic execution
symbolic logic
symbol manipulation
symbol table
symmetric difference
symmetric function
symmetric group
symmetric list
symmetric matrix
symmetric order traversal
symmetric relation
symmetry group
synchronization
synchronizer
synchronous
synchronous bus
synchronous circuit
synchronous concurrent algorithm
synchronous counter
synchronous digital hierarchy
synchronous optical network
synchronous TDM
synchronous transmission
syndrome
syntactic error
syntactic monoid
syntax
syntax analysis
syntax analyser
syntax diagram
syntax error
syntax tree
synthetic camera
system
system accounting
system administrator
systematic code
system box
system building tools
system bus
system crash
system definition
system design
system development
system dictionary
system generation
systemic grammar
system life cycle
system requirements specification
systems analysis
system security
systems engineering
systems house
systems integrator
system software
system specification
systems programmer
systems programming
systems software
systems theory
system tables
system testing
System V
systolic array
T
tab
table
table-driven algorithm
table lookup
tablet
tabular documentation
tag
tagged architecture
tagged image file format
tail
tape
tape backup system
tape-bounded Turing machine
tape cartridge
tape deck
tape drive
tape format
tape header
tape label
tape library
tape mark
tape marker
tape transport
tape unit
tar
Targa
target alphabet
target computer
task
tautology
TB
TBS
Tbyte
T-carrier
Tcl
TCP
TCP/IP
t distribution
TDM
TDR
TDS
tear-off menu
tebitelebanking
telecommuting
teleconferencing
teleprinter
teleshopping
telesoftware
teletext
teletypewriter
teleworking
TELNET
template
temporal cohesion
temporal logic
ten’s complement
ter
teraterm
term algebra
terminal
terminal controller
terminal node
terminal server
terminal symbol
termination
termination, proof of
terminator
term language
term rewriting system
ternary logic
ternary selector gate
ternary threshold gate
tessellation
test and set
test bed
test case
test coverage
test data
test-data generator
testing
test oracle
test run
test suite
TeX
Texas Instruments
text box
text editor
text formatter
text mode
text processing
text-to-speech
texture mapping
texture placement
texturing
TFEL
T flip-flop
Tflops
TFT
TGA
T-gate
The Open Group
theorem proving
theory
theory of types
thermal inkjet
thermal printer
thermal transfer printer
thesaurus
thick Ethernet
thick wire
thin client
thin Ethernet
thin-film electroluminescent display
thin-film transistor
thin wire
third generation
third normal form
third-party maintenance
Thompson, Ken
thrashing
threaded list
threading
threat
three-address instruction
three-dimensional array
three-state output
three-term control
threshold element
throughput
Thue-system
thumb drive
thumbnail
Thunderbolt
thunk
Tianhe-2
TIFF
tile
tiling
tiling structure
time-bounded Turing machine
time complexity
time division multiplexing
time division switch
time domain
time domain reflectometer
time-of-day clock
timeout
time quantization
timer clock
time series
time sharing
time slicing
timestamp
timing analysis
timing diagram
tint fill
TIP
tip node
Tk
T2L
TLB
TLU
TM
toggle
toggling speed
token
token bus
token ring
tolerable risk
toner
toner cartridge
tool
toolbar
toolbox
toolkit
top-down development
top-down parsing
topological sort
topology
Torvalds, Linus Benedict
total correctness, proof of
total function
totally ordered structure
total ordering
total recursive function
totem-pole output
touchpad
touchscreen
touch-sensitive device
tournament
tournament method
tower
Towers of Hanoi
TPM
TP monitor
trace program
track
tracker
trackerball
tractor
trade secret
traffic
traffic control
trailer label
trailer record
trailing edge
train printer
transaction
transaction file
transaction processing
Transact-SQL
transceiver
transducer
transfer rate
transformation
transformational grammar
transformational semantics
transformation matrix
transformation monoid
transformation semigroup
transform domain
transient error
transistor
transistor-transistor logic
transitive closure
transitive relation
translation
translation look-aside buffer
translation table
translator
translator writing system
transmission channel
Transmission Control Protocol
transmission control unit
transmission line
transmission rate
transparency
transparent
transport
transportable
transport layer
transpose
transposition cipher
transputer
trap
trapezium rule
trapezoidal rule
travelling salesman problem
traversal
tree
tree automaton
tree grammar
tree language
treelike network
tree search
tree selection sort
tree walking
trial function
triangle inequality
triangular matrix
triangular patch
triangular waveform
triangulation
tridiagonal matrix
trie search
trigger
trim
triple precision
tri-state output
tristimulus values
trivial graph
Trojan horse
Tron
trouble shooting
TRS
TrueColor
true complement
TrueType font
truncation
truncation error
trunk
trunk circuit
trusted
truth-maintenance system
truth table
TSP
T-SQL
TTF
TTL
TTS
TTY
T-type flip-flop
tunnelling
tuple
Turing, Alan (Mathison)
Turing computability
Turing machine
Turing’s thesis
Turing test
turnaround time
turnkey operation
turtle graphics
TWAIN
tweening
twisted pair
Twitter
two-address instruction
two-dimensional array
two-level grammars
two-level memory
two-norm
two-plus-one address
two’s complement
two-way linked list
two-way merge
type
type 0, 1, 2, 3 language
Type 1 font
Type 3 font
typeahead
type-insensitive code
type system
typewriter terminal
UART
ubiquitous computing
UCS
UCS-2
UCS-4
UDF
UI
UIMS
ULA
UML
unary operation
unbalanced cable
unbundling
uncertainty
uncommitted logic array
unconditional jump
uncontrolled format string
undecidable
underflow
undirected graph
undo
unfolding
Unicode
unification
Unified Modelling Language
Unified Process
unilaterally connected graph
uninterruptible power supply
union
unipolar signal
uniquely decodable
Unisys
unitary semiring
unit matrix
unit testing
UNIVAC
Universal Character Set
universal flip-flop
Universal Product Code
universal quantifier
universal serial bus
universal set
universal Turing machine
UNIX
unlock
unordered tree
unpack
unshielded twisted pair
unsigned
unsolvable
up
UP
UPC
upline
upload
up operation
upper bound
UPS
uptime
up vector
upward compatibility
URI
URL
USB
USB drive
Usenet
user account
user agent
user area
user-friendly
user interface
user-interface management system
user manual
user requirements specification
user state
user view
UTF-8
UTF-16
UTF-32
utility programs
UTP
uvwxy lemma
V
vaccine
vacuum fluorescent display
VADS
validate
validation
validity check
valuator
value-added
VAN
V&V
van Wijngaarden grammar
VAR
variable
variable bit rate
variable delay
variable-length code
variable-length vector
variable word length computer
variance
variant field
variation
variational method
VAX
VAX/VMS
VBA
VB.NET
VBR
VBScript
VDI
VDL
VDM
VDT
VDU
vector
vector display
vectored interrupts
vector font
vector graphics
vector norm
vector processing
Veitch diagram
Venn diagram
verification
verification and validation
verification condition
verification system
Veronica
version control
version number
vertex
vertical check
vertical microinstruction
vertical recording
very large-scale integration
very long instruction word
VESA
VFAT
VFD
VFU
VGA
VHDL
video
videoconferencing
video scanner
video terminal
videotex
Vienna Definition Language
Vienna Development Method
view
viewing
view plane
viewport
virgin medium
virtual call service
virtual circuit
virtual connection
virtual disk drive
virtual learning environment
virtual machine
virtual memory
virtual reality
virtual screen
virtual terminal
virtual world
virus
virus detection
VisiCalc
Visual Basic
Visual Basic 2005
Visual Basic for Applications
Visual Basic .NET
Visual C++
visual display unit
visualization
Viterbi decoding
VLB
VLE
VLFMF
VLIW
VLSI
VM/CMS
VME bus
V-model
VMS
voice activation
voiceband
voice coil
voice input device
voice mail
voice messaging
Voice over Internet Protocol
voice recognition
void set
VoIP
volatile memory
Volterra integral equation
volume
volume label
volume visualization
von Neumann, John
von Neumann machine
V operation
Voronoi diagram
voting logic
voxel
VPN
VR
VSAM
V-series
VSO
VTFL code
VTVL code
vulnerability
VV&T
VW-grammar
W3
W3C
wafer
wafer-scale integration
WAIS
wait list
wait operation
wait state
walkthrough
wallpaper
Walsh analysis
Walsh functions
Walsh transform
WAN
wand
WAP
Ward–Mellor
warm boot
Warnock’s algorithm
warping
Warshall’s algorithm
watchdog timer
waterfall model
WATFIV
WATFOR
wavelength-division multiplexing
wavelet
wavelet image compression
wavelet radiosity
wavelet transform
wave-table synthesis
WC
weakening
weakest precondition
weakly terminating
weak memory model
weak mobility
Web
WEB
web 2.0
web application
Web-based Distributed Authoring and Versioning
web browser
webcam
web crawler
WebDAV
web design
web development
web feed
web log
web master
web of trust
web page
web server
web service
website
website defacement
web spider
weighted code
weighted graph
weighted least squares
weighted mean
Weiler–Atherton clipping algorithm
well-formed
well-formed formula
well-founded relation
well-ordered set
WEP
wff
W grammar
whetstone benchmark
while loop
while program
while programming language
Whirlwind
whiteboard
white-box testing
white noise
white pages
whois
whole number
wide area information service
wide area network
widget
width
WiFi
wiki
WikiLeaks
Wikipedia
wildcard
Williams-tube store
wimp
Winchester technology
winding number
window
Windows
Windows 95
Windows 98
Windows 2000
Windows 7
Windows 8
windows manager
Windows ME
Windows Millennium Edition
Windows NT
Windows Phone
windows system
Windows Vista
Windows XP
Winograd’s algorithm
WinZip
wired logic
wired-program computer
wireframe model
wireless
wireless access point
wireless applications protocol
wireless LAN
wireless sensor network
wire wrapping
Wirth, Niklaus (Emil)
wizard
WLAN
word
Word
word length
word processing
word processor
word size
word wrap
work area
workbench
work file
working set
workspace
workstation
world coordinates
World Wide Web
World Wide Web Consortium
worm
worst-case analysis
worst fit
wp
WPA
wraparound
write
writeable control store
write error
write error recovery
write head
write instruction
write-once
write protect
write ring
write time
WSDL
WWW
wysiwyg
X
X509
Xeon
Xerox Corporation
XGA
XHTML
XML
XML
XML database
XML schema
XModem
XMS memory
X-ON/X-OFF
X/OPEN
XOR
XPath
XQuery
XS3 code
X-series
XSL
XSLT
XSS
X Terminal
XUI
X user interface
X Windows
YACC
Yahoo
Yellow Book
yellow Ethernet
yellow pages
y2k
Yourdon
YouTube
Z
Z3
Z-buffer
zero-address instruction
zero function
zero matrix
zero suppression
zero-trip loop
zero-wait state
zero word
ZIF socket
ZIP
zip file
Ziv–Lempel compaction
zone
Zuckerberg, Mark Elliot
Contents
Credits
Preface
Guide to the Dictionary
A Dictionary of Computing
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Computer Graphics (Feature)
The Anatomy of an Internet Address (Feature)
Object-oriented Programming (Feature)
Quantum Computing (Feature)
SQL (Feature)
XML (Feature)
Appendices
Generic Domain Names
Country-Code Domain Names
File Extensions
Character Set
Greek Alphabet
Chronology
Useful Websites
OXFORD QUICK REFERENCE
A Dictionary of
Computer Science
Many entries in this dictionary have recommended web links. In addition to
their listing at relevant entries, a complete list of links for this title can be
found at www.oxfordreference.com/page/comp
A Dictionary of
Computer Science
SEVENTH EDITION
Great Clarendon Street, Oxford, OX2 6DP, United Kingdom
Oxford University Press is a department of the University of Oxford. It furthers the University's objective of excellence
in research, scholarship, and education by publishing worldwide. Oxford is a registered trade mark of Oxford University
Press in the UK and in certain other countries
© Market House Books Ltd, 1983, 1986, 1990, 1996, 2004, 2008, 2016
The moral rights of the author have been asserted
First edition 1983
Second edition 1986
Third edition 1990
Fourth edition 1996
Fifth edition 2004
Sixth edition 2008
Seventh edition 2016
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any
form or by any means, without the prior permission in writing of Oxford University Press, or as expressly permitted by
law, by licence or under terms agreed with the appropriate reprographics rights organization. Enquiries concerning
reproduction outside the scope of the above should be sent to the Rights Department, Oxford University Press, at the
address above
You must not circulate this work in any other form and you must impose this same condition on any acquirer
Published in the United States of America by Oxford University Press 198 Madison Avenue, New York, NY 10016,
United States of America
British Library Cataloguing in Publication Data
Data available
Library of Congress Control Number: 2015952805
ISBN 978–0–19–968897–5
ebook ISBN 978–0–19–100288–5
Links to third party websites are provided by Oxford in good faith and for information only. Oxford disclaims any
responsibility for the materials contained in any third party website referenced in this work.
Credits
Editors for this edition
Andrew Butterfield BA, BAI, PhD
Gerard Ekembe Ngondi BEng, MSc
Editors for previous editions
John Daintith BSc, PhD
Edmund Wright MA, PhD
Market House Books Editors
Jonathan Law
Anne Stibbs Kerr
Contributors
P. P. Aslin BSc, MEng, AMIEE
David Aspinall MSc, PhD, FBCS, CEng, FIEE
R. C. Backhouse MA, PhD
David W. Barron MA, PhD, FBCS
Frank Bott MA, CEng, MBCS
Alan Bradley MA, MIEE, MBCS
Alan Bundy BSc, PhD
C. T. Burton BA, MSc, PhD
Andrew Cormack MA, CEng
B. K. Daniels BSc, CEng, FIEE, MBCS, MInstMC, FSaRS
Jonathon A. Dell BSc, CEng, MIEE, MIEEE
David A. Duce BSc, PhD, CEng, MBCS
W. Fawcett BSc, PhD, MIEE, CEng
Robert P. Fletcher BA, DPhil
William Freeman BSc, MBCS, MACM, MIEEE
A. M. Frieze BA, MSc, PhD
Paul E. Garner BSc
Edward L. Glaser AB, DrSc, FIEEE, MNAE
G. Hall BA, PhD
J. Hamilton-Fey CEng, MIMechE
C. J. Higley MA, PhD, CEng, MBCS
F. Robert A. Hopgood MA, Dr -IngEh, CEng, FBCS
Martin G. Hopkins BSc
John J. Illingworth BSc, MSc
Valerie Illingworth BSc, MPhil
Ken Jackson MSc, CEng, MBCS
Alistair Kelman BSc, AMBCS, Barrister at Law
P. J. H. King DSc, CEng, FBCS
P. R. Kirk BSc, MIEE, CEng
Mark H. Lee PhD, CEng, FIEEE, FRSA
Thaddeus Lipinski BSc
I. D. MacArthur CEng, MIMechE
Andrew D. McGettrick BSc, PhD, MBCS
G. P. McKeown BSc, PhD, AFIMA
J. Norbury BSc
Patrick Olivier BA, MA, CompDip, MBCS
John Prior HND
I. C. Pyle MA, PhD, FBCS, FIEEE, CEng
V. J. Rayward-Smith MA, PhD, AFIMA, MBCS
P. D. Roberts BA, MBCS, MACM, LIMA
G. J. S. Ross BA, DipMathStats, FSS
David Sayers BSc, MSc, PhD, GradIMA
Edel Sherratt BSc, PhD
V. Stenning BSc, DPhil, MBCS
J. V. Tucker BA, MSc, PhD
Colin J. Tully MA, FBCS
Raymond Turner BSc, PhD, MBCS
Margaret Tuthill BSc
Michael Wells MA, PhD, FBCS
Jack Williams BTech, DPhil
J. V. Woods MScTech, PhD, AMIEE
P. Worsdale BTech
Preface
The first edition of this dictionary was published in 1983 as a specialist reference work for
computer professionals and for people interested in the underlying concepts and theories
of computer science. Over successive editions, the work has been expanded and changed
to reflect the technological and social changes that have occurred, especially the enormous
growth in home computing and the Internet. In particular, the fourth edition (1996)
included an additional 1700 entries catering for a wider readership. At the same time, the
editors have retained the basic principles of the original book.
In the seventh edition of the dictionary we have followed the same line. The existing
entries have been updated and over 120 new entries have been added. In particular,
coverage of areas such as database management and social networking has been increased
to reflect the growing importance of these areas. Some obsolete terms have been deleted,
although some have been kept for their historical interest. Links to useful websites have
been updated and more added. There are also six special feature spreads, giving
information on selected topics.
JL
ASK
2015
Guide to the Dictionary
Synonyms and generally used abbreviations are given either in brackets immediately after
the relevant entry title, or occasionally in the text of the entry with some additional
information or qualification.
A distinction is made between an acronym and an abbreviation: an acronym can be
pronounced while an abbreviation cannot. The entry for an acronym usually appears at the
acronym itself, whereas the entry for an abbreviation may appear either at the
unabbreviated form or at the abbreviation—depending on which form is most commonly
used. When a term is defined under an abbreviation, the entry for the unabbreviated form
simply cross-refers the reader to the abbreviation.
Some terms listed in the dictionary are used both as nouns and verbs. This is usually
indicated in the text of an entry if both forms are in common use. In many cases a noun is
also used in an adjectival form to qualify another noun. This occurs too often to be noted.
10 Base 2 An *Ethernet connection method, now obsolete, using RG58-AU coaxial
cable and operating at 10 Mbps (sometimes known as Cheapernet or thin Ethernet).
Using a bus topology there each connection to a computer’s network card is made by
means of a ‘Tee connector’. The transceiver is built into the network card.
10 Base 5 The earliest form of *Ethernet connection (now obsolete): a special type of
RG-8 coaxial cable of approximately ½-inch diameter. Each device was attached via a
transceiver with a drop cable to the network card.
10 Base FX A form of fast *Ethernet using fibre-optic cables.
10/100/1000 Base-T An *Ethernet connection method using twisted pair cables and
operating at 10, 100, or 1000 Mbps. A star connection topology is used with the individual
cables terminating at a *hub, *switch, or *router. See also CAT-5, TWISTED PAIR.
8421 code A *weighted code in which each decimal digit 0 through 9 is represented by a
four-bit codeword. The bit positions in each codeword are assigned weights, from left to
right, of 8, 4, 2, and 1. See also BINARY-CODED DECIMAL, BIQUINARY CODE, EXCESS-3
CODE, HEXADECIMAL NOTATION.
419 fraud See ADVANCE-FEE FRAUD.
4GL Abbrev. for fourth-generation language.
7-Zip A file archiving and compression program that works in a similar fashion to
PKZIP. Its 7z format gives high compression ratios.
A* algorithm A member of the class of *best-first *heuristic search techniques that
attempt to find a ‘best’ path from a given start node to a designated goal node in a problem
*graph. An *evaluation function is used to estimate the cost of the (unknown) distance
from the current node being explored to the goal and this is then added to the (known) cost
of the shortest path from the start node to the current node to give a figure of merit for the
current node. At each iteration the node with the best cost figure is used to pursue the
search. The operation of the algorithm displays a behaviour that is a mixture of *depthfirst and *breadth-first search.
ABC 1. Abbrev. for Atanasoff-Berry computer. 2. An interactive programming language
designed as a replacement for Basic by CWI (Centrum voor Wiskunde en Informatica—
the National Research Institute for Mathematics and Computer Science in the
Netherlands). It is a useful teaching language and also influenced the development of
*Python.
abduction An *inference process widely used in *artificial intelligence, particularly in
*expert systems and *production rule system. In diagnosis, for example, there may be a
rule like ‘if measles then red spots’ so that, when the symptom red spots occurs, we may
use the rule in reverse to conclude that measles is present. However, unlike *deduction,
abduction is not logically sound because of inherent uncertainty that can lead to false
conclusions—note that measles is not the only cause of red spots. Abduction is an
example of a *plausible reasoning technique.
abelian group (commutative group) See GROUP.
ABI (application binary interface) Definition of the binary-level interface between
application programs and the operating system, including the format of executable files.
Compiled binary applications can be ported between systems with the same ABI.
ablative Designating an optical recording technique in which the heat generated by the
recording beam melts or vaporizes a small area of the recording medium, leaving the
underlying layer (with a different reflectivity) exposed.
abnormal termination A termination to a *process brought about by the operating
system when the process reaches a point from which it cannot continue, e.g. when the
process attempts to obey an undefined instruction. In contrast, a process that reaches a
successful conclusion terminates normally by issuing a suitable supervisor call to the
operating system. It is common practice to inform the initiator of the process as to whether
the termination was normal or abnormal.
ABONE The Asian-Pacific Internet *backbone network that connects users throughout
East and South Asia without the need to send data via European or North American
networks.
abort (of a process) To undergo or cause *abnormal termination. Abortion may be a
voluntary act by the process, which realizes that it cannot reach a successful conclusion, or
may be brought about by the operating system, which intervenes because the process has
failed to observe system constraints.
absolute address A unique number that specifies a unique location within the *address
space where an operand is to be found/deposited, or where an instruction is located. It
generally specifies a memory location but in some cases specifies a machine register or an
I/O device. In the case of a binary machine, it is an n-bit number specifying one of 2n
locations. The result of calculating an *effective address is usually an absolute address.
absolute code Program code in a form suitable for direct execution by the central
processor, i.e. code containing no symbolic references. See also MACHINE CODE.
absolute link A hyperlink specified by its full path. If the file containing the hyperlink
destination is moved, the browser will be unable to locate the document.
absolute path The full path to a file, comprising the *drive identifier, *directory tree (if
any), and ending with the *file name (e.g.
C:\Documents\ABuser\MyDocuments\jobs\cv.doc).
absolute URL See URL. See also RELATIVE URL.
absolute value The magnitude of a number, regardless of its sign (positive or negative).
For example, 25 is the absolute value of 25 and −25. Most *spreadsheet programs include
a *function that returns the absolute value of a number.
absorption laws The two self-dual laws
(see DUALITY) that are satisfied by all elements x,y in a *Boolean algebra possessing the
two operations ∨ and ∧.
abstract computability theory The theory of functions that can be computed by
algorithms on any *algebra. Its aim is to explore the scope and limits of computation on
any kind of data. It is a generalization to arbitrary many sorted algebras of the theory of
the effectively calculable or recursive functions on the natural numbers.
Abstract computability theory starts with an analysis and classification of many models
of computation and specification that apply to algebras. This reveals the essential features
of methods, and results in a generalized *Church–Turing thesis that establishes which
functions on an *abstract data type are programmable by a *deterministic programming
language. Comparisons can be made between computations on different algebras,
modelling data types and their implementations. The theory also provides a foundation for
new theories of computation for special data types, such as algebras of real numbers,
which can be used in applications.
The *while programming language is a simple example of a method for computing
functions on any many-sorted algebra A (that possesses the Booleans). On the natural
numbers it can compute all *partial recursive functions. Computation is based on the
operations of the algebra—sequencing, branching, and iteration—and has available a
limited means of searching A. However, a vital missing component is the capacity to
compute with finite sequences of data from A. On the natural numbers finite sequences
can be simulated using pairing functions, but it is not possible to simulate finite sequences
on an algebra A. Finite sequences and operations for every data set in A are therefore
added to A to make a new algebra A*. It turns out that while programs on A* (i.e. while
programs equipped with finite sequences) have all the essential properties of the
computable functions on A. This class of functions is the subject of the generalized
Church-Turing thesis.
Most of the main results in the theory of computability on the natural numbers can also
be proved for abstract computability theory on any finite generated *minimal algebra.
abstract data type A *data type that is defined solely in terms of the operations that
apply to objects of the type without commitment as to how the value of such an object is
to be represented (see DATA ABSTRACTION).
An abstract data type strictly is a triple (D,F,A) consisting of a set of domains D, a set of
functions F each with range and domain in D, and a set of axioms A, which specify the
properties of the functions in F. By distinguishing one of the domains d in D, a precise
characterization is obtained of the *data structure that the abstract data type imposes on d.
For example, the natural numbers comprise an abstract data type, where the domain d is
and there is an auxiliary domain
The functions or operations are ZERO, ISZERO, SUCC, and ADD and the axioms are:
These axioms specify precisely the laws that must hold for any implementation of the
natural numbers. (Note that a practical implementation could not fulfil the axioms because
of word length and overflow.) Such precise characterization is invaluable both to the user
and the implementer. Sometimes the concept of function is extended to procedures with
multiple results.
abstract family of languages (AFL) There are many useful types of *formal
language, and classes often have similar properties. An AFL is a class of formal languages
that is closed under all the following operations: *union, *concatenation, Kleene-plus (see
KLEENE STAR), *intersection with *regular set, Λ-free homomorphic image, and inverse
homomorphic image (see HOMOMORPHISM). An AFL is full if it is also closed under
Kleene star and homomorphic image. The motivation for the concept of an AFL is to
investigate properties of classes of languages that follow merely from the assumption of
these *closure properties. Each member of the *Chomsky hierarchy is an AFL; all except
for the class of context-free languages are full.
abstraction The principle of ignoring those aspects of a subject that are not relevant to
the current purpose in order to concentrate solely on those that are. The application of this
principle is essential in the development and understanding of all forms of computer
system. See DATA ABSTRACTION, PROCEDURAL ABSTRACTION.
abstract machine A machine can be thought of as a collection of resources together
with a definition of the ways in which these resources can interact. For a real machine
these resources actually exist as tangible objects, each of the type expected; for example,
addressable storage on a real machine will actually consist of the appropriate number of
words of storage, together with suitable address decoders and access mechanisms. It is
possible to define an abstract machine, by listing the resources it contains and the
interactions between them, without building the machine. Such abstract machines are
often of use in attempting to prove the properties of programs, since a suitably defined
abstract machine may allow the suppression of unneeded detail. See VIRTUAL MACHINE.
abstract reduction system (abstract rewrite system, abstract replacement system)
A general characterization of the process of deriving or transforming data by means of
rules. It is an abstraction based primarily on examples of *term rewriting systems: it is
simply a reflexive and transitive binary relation →R on a nonempty set A. For a,b ∈ A, if a
→R b then a is said to reduce or rewrite to b.
Using this abstraction, it is easy to define a range of basic notions that play a role in
computing with rules.
(1) An element a ∈ A is a normal form for →R if there does not exist b, different from
a, such that a →R b.
(2) The reduction system →R is Church–Rosser (or confluent) if for any a ∈ A if
there are b1,b2 ∈ A such that a →R b1 and a →R b2 then there exists c ∈ A such that b1
→R c and b2 →R c.
(3) The reduction system →R is weakly terminating (or weakly normalizing) if
for each a ∈ A there is some normal form b ∈ A so that a →R b.
(4) The reduction system →R is strongly terminating (or strongly normalizing or
Noetherian) if there does not exist an infinite chain
of reductions in A wherein
(5) The reduction system →R is complete if it is Church–Rosser and strongly
terminating.
(6) A reduction system is Church–Rosser and weakly terminating if, and only if, every
element reduces to a unique normal form. Let ≡R denote the smallest equivalence
relation on A containing →R. If →R is a Church–Rosser weakly terminating reduction
system then the set NF(→R) of normal forms is a transversal for ≡R, i.e. a set that
contains one and only one representative of each equivalence class.
abstract specification A specification for software expressed in a (mathematically)
*formal language such that the specification is completely independent of, and does not
imply, any design and implementation method and languages. It does not normally express
the constraints that the final software must satisfy. See also FORMAL SPECIFICATION.
A-buffer A buffer used with a *Z-buffer to hold information concerning the visible
transparent surfaces to be considered at each *pixel of an image. The A-buffer originated
in an *anti-aliasing *hidden-surface removal algorithm developed by Loren Carpenter
around 1984. It resolves visibility among an arbitrary collection of opaque, transparent,
and intersecting objects. The algorithm was developed for the REYES system at
Lucasfilm Ltd. Road to Point Reyes was a famous image produced by the system.
AC97 A specification by Intel for a *codec providing audio input and output for a
computer. It allows low cost audio and is fitted as a standard feature on many personal
computers. See also INTEL HIGH DEFINITION AUDIO.
accelerated graphics port (AGP) A port specification that facilitates the high-speed
high-resolution display of graphics. Developed by Intel, it provides a direct connection for
data transfer between an AGP-compatible display adapter and the system’s main memory.
As a result, images are displayed more quickly and smoothly than is otherwise possible
over a system’s *PCI bus. The AGP standard has been superseded by *PCI Express.
acceleration time (start time) The time taken for a device to reach its operating speed
from a quiescent state.
accelerator key A key, or combination of keys, on a keyboard that can be used to
perform a particular operation. For example, in many applications pressing ctrl+a (holding
down the control key and pressing letter ‘a’) is ‘select all’. Other examples are ctrl+c
(copy), ctrl+x (cut), and ctrl+v (paste). The *function keys are single accelerator keys.
accent-sensitive Requiring or making a distinction between accented and unaccented
forms of a letter and between different accents. In any situation where a computer program
is reading characters, a decision has to be made whether to treat each accented form of a
letter as a different character. In most cases it is appropriate to do so; however, accents are
often ignored in alphabetical sorting and in indexed searches. Modern database
management systems generally offer extensive facilities to specify which data is accentsensitive and which is not.
accept (recognize) A formal language. See AUTOMATON, FINITE-STATE AUTOMATON.
acceptable use policy (AUP) The set of rules governing the use that can be made of a
network. All network users are expected to conform to any existing legislation, and to any
commercial conditions that form part of any contract for the use of commercial networks.
In the case of academic or research networks there are also likely to be constraints on
using the network to carry commercial traffic, and these will be embodied in the AUP.
acceptance testing See TESTING. See also REVIEW.
access 1. The reading or writing of data, with the connotation that the content of the
reading or writing is taken into account. The word is most commonly used in connection
with filed information and is often qualified by an indication as to the types of access that
are to be permitted. For example, read-only access means that the contents of the file may
be read but not altered or erased. 2. The right or opportunity to read or write data or
programs. The UK *Computer Misuse Act 1990 states that ‘a person secures access to any
program or data held in a computer if by causing a computer to perform any function he
alters or erases the program or data, copies or moves it to any storage medium other than
that in which it is held or to a different location in the storage medium in which it is held,
uses it or has it output from the computer in which it is held (whether by having it
displayed or in any other manner)’. 3. To gain entry to data, a computer system, etc. In the
US, to access strictly means to instruct, communicate with, store data in, retrieve data
from, or otherwise obtain the ability to use the resources of a computer or any part thereof.
Access Trademark A *relational database management system for PCs produced by
Microsoft.
access control A *trusted process that limits access to the resources and objects of a
computer system in accordance with a *security model. The process can be implemented
by reference to a stored table that lists the *access rights of subjects to objects, e.g. users
to records. Optionally the process may record in an *audit trail any illegal access attempts.
access method Any algorithm used for the storage and retrieval of records from a *data
file or *database. Access methods are of two kinds: those that determine the structural
characteristics of the file on which it is used (its *file organization) and those that do not
(as in secondary indexing (see INDEXED FILE) and *data chaining). In the first case
essentially the same algorithm is used for the retrieval of a record as was used for its
original physical placement, whereas in the second these algorithms are quite distinct.
Hence in the first case the same term may be used interchangeably (and loosely) for both
the access method and the file organization (see RANDOM ACCESS (def. 2), SEQUENTIAL
ACCESS).
access path The name given to the set of names of devices, *directories,
*subdirectories, and a specific *file, by means of which the file-management system is
able to reach the specified file. Depending on the details of the file-management system
actually in use, the access path may start with the name of a physical or logical device,
which holds a number of directories that associate the identity of an object with its
location on the device; these objects may in turn be further directories (usually then
known as subdirectories) or they may be files containing end-user data. The complete set
of intermediate objects, in the order in which they are used, is the access path.
access point (wireless access point) A device that acts as the core of a wireless
network. It communicates with wireless nodes within its range and provides the necessary
facilities for them to network successfully. Access points commonly also manage a link to
a wired network, allowing their nodes to link with corporate networks, the Internet, etc.
access provider An organization, usually a commercial company, that offers Internet
access services. See ISP.
access rights (access privileges) A classification of the modes of access to an object
granted to particular subjects, or groups of users. Thus, the owner of a file will typically
have rights to read, write, or delete the file. Some or all these rights may also be granted to
other users on the system. See ACCESS CONTROL.
access time The time taken to retrieve an item of information from storage. The access
time may be counted in nanoseconds for a semiconductor device, in milliseconds for a
magnetic disk, or in minutes if the file containing the required data is on magnetic tape.
In the case of disk storage, the access time is the average time taken for a disk drive to
provide the first byte of data, measured from the time the host issues a read command. To
a good approximation, the average access time is the sum of the average *seek time, the
command overhead, and the average *latency. See also MEMORY HIERARCHY.
access vector A vector that is used in the representation of a *ragged array. For
example, the elements of a row-ragged array, A, would be stored row by row in a vector B.
The ith element of the access vector would then point to the position in B where the first
element of the ith row of A was stored (see diagram). A column-ragged array would be
similarly represented using an access vector referring to the beginning of columns and a
listing of the elements column by column.
Access vector.
account The environment in which a user interacts with a computer system. Each
account has a unique name, which the user specifies when logging in. System data
associated with an account controls what resources (files, programs, networks, etc.) the
user can access and in what ways (e.g. whether files that are normally writeable are readonly for particular users) and to what extent (e.g. the total size of files a user creates may
be limited). Where applicable, a record can be kept of the resources used for billing
purposes.
accounting file A file that contains records of the resources used by individual jobs.
These records are required both to regulate the amount of resource used by a job and, in a
commercial environment, to manage the charging for use of the system. As each job is
started, an entry is opened in the accounting file into which records concerning system
utilization are written as the job is processed. See also SYSTEM ACCOUNTING.
accumulator A *register that is implicitly specified by one-address format instructions
and is used to contain the results of an operation performed by the *ALU. It can normally
be one of the inputs to the ALU, thus the results of a number of successive operations may
be built up—hence the name. In addition to holding results, the accumulator commonly
has the ability to perform the various *shift and circular shift instructions. It may be part
of the *processor status word.
accuracy See PRECISION.
ACE (Automatic Computing Engine) An electronic stored-program computer
designed in 1945–46 by Alan *Turing while he was at the National Physical Laboratory
(NPL), near London. The prototype version Pilot ACE was built at the NPL, ran its first
program in 1950, and was in full-time use in 1952. The final version was working by
1957. A production model of Pilot Ace, called DEUCE, was marketed by the English
Electric company.
ACIA (asynchronous communications interface adapter) See UART.
ACID (Atomicity, Consistency, Isolation, Durability) These are the essential
qualities of a *transaction in database processing: either all or none of the subtasks
composing the transaction must be performed (atomicity); the database satisfy all its
*constraints both at the beginning and at the end of the transaction (consistency); no other
database user can access the data being manipulated by the transaction while it is an
intermediate, and possibly inconsistent, state (isolation); and, once completed, the effect of
the transaction will not be reversed, for example by a system crash and subsequent
recovery (durability). See also BASE, CAP THEOREM.
ACK The ‘acknowledge’ control character. See ACKNOWLEDGMENT.
Ackermann benchmark A use of the *Ackermann function to provide a *benchmark
for computer performance. Typically in excess of 100,000 recursive calls to the function
are made and the number of completed calls per second measured. The benchmark gives a
good indication of the overhead associated with procedure and function calls.
Ackermann function The *function A defined inductively on pairs of nonnegative
integers in the following manner:
where m,n ≥ 0. Thus
The highly recursive nature of the function makes it a popular choice for testing the ability
of *compilers or computers to handle *recursion. It provides an example of a function that
is general *recursive but not *primitive recursive because of the exceedingly rapid growth
in its value as m increases.
The Ackermann function may also be regarded as a function Ack of a single variable:
where A is defined as above.
acknowledgment 1. A message that describes the status of one or more messages sent
in the opposite direction. A positive acknowledgment (ACK) confirms that the
previous messages were received correctly. A negative acknowledgment (NAK)
indicates that the previous messages were not received correctly and should be
retransmitted. In some *protocols, acknowledgments are also used as a simple form of
*flow control: sending an ACK implies that another message may be sent in the same
direction as the message being acknowledged.
Different layers of a protocol hierarchy may have their own acknowledgment systems
operating simultaneously. For example, an end-to-end transport protocol may be used to
send a message reliably from one host to another in a packet switching network. When the
message reaches its destination, an acknowledgment will be generated and sent in the
opposite direction. Both the original message and its acknowledgment will cause data link
layer acknowledgments to be generated as they travel from node to node in the network.
See also BACKWARD ERROR CORRECTION. 2. Output to the operator or user of a graphics
system that indicates that some input has been received. See also PROMPT, ECHOING,
FEEDBACK.
ACM Association for Computing Machinery, a US organization founded in 1947 and
dedicated to the development of information processing as a discipline, to the exchange of
information about the subject, and to the responsible use of computers in an increasing
diversity of applications. It publishes a wide range of influential scholarly and professional
journals, the best known of which are the Communications of the ACM and the Journal of
the ACM. Although based in the USA, the Association has branches (known as chapters)
in many countries.
http://www.acm.org
• The ACM home page
acoustic coupler A type of *modem that converts serial digital data into a *frequency
shift keyed sound signal in the audio range for transmission down telephone lines, and
decodes similar incoming sound signals. The connection between the acoustic coupler and
the telephone system is made by means of a small microphone and loudspeaker held close
to the earpiece and mouthpiece of an ordinary telephone handset in a sound-absorbent
enclosure.
Although largely superseded by devices that connect directly to the telephone network,
acoustic couplers are still used. The lack of any electrical connection between terminal
and phone lines is of benefit when obtaining the approval of the PTT for the use of such a
device. The quality of ordinary switched voice circuits normally limits the speed of
transmission to 300 baud or less.
acoustic delay line See DELAY LINE.
acoustic memory An alternative name for acoustic delay line.
Acrobat Trademark A program produced by Adobe Systems Inc. for the production and
manipulation of portable document format (*PDF) files. Adobe Reader is a utility for
reading, displaying, and printing PDF files, and is available free. Most personal computers
have a version of Adobe Reader and most browsers now allow download and display of a
PDF file using Reader plugins. The full version of Acrobat (which is not free) provides a
number of other features. It was originally called Acrobat Exchange (up to version 3)
and includes a number of other features, in particular Acrobat Distiller (a program for
converting *PostScript files into PDF files). The program also has facilities for combining,
splitting, or rearranging documents, adding bookmarks, notes, etc.
action selection The decision problem of choosing between several competing goals,
when each has conflicting characteristics, time is limited, and the environment is dynamic.
Action selection, which is a topic in *artificial intelligence, may seem to be a technical
issue but is in fact a deep and fundamental problem faced by all *agents in complex
environments. Animals, mobile robots, and software agents must all respond to changing
events in their worlds and they must opportunistically decide which goals are best to
pursue, and when to interrupt action towards current goals and divert resources to new
goals.
active Another term for running.
Active Directory Trademark An implementation of *directory services for Windows. It
was introduced with Windows 2000 Server edition and has been developed in subsequent
Windows releases.
active filter A combination of operational amplifiers and reactive elements that
performs a variety of *filtering functions.
active-matrix LCD See LCD.
Active Server Pages (ASP) A technology from Microsoft to generate *server-side
*dynamic web pages. Its core is an extension to *HTML syntax that allows program
fragments written in a scripting language (usually *VBScript) to be embedded in web
page templates; these scripts are executed by an ASP-aware web server and their results
are combined with the template to form the web page sent to the client. Introduced in
1996, ASP is now part of the .NET framework (ASP.NET) and web pages can be created
in any .NET programming language. See also JAVASERVER PAGES.
active star A network topology in which the outer *nodes connect to a single central
node that processes all messages in the network, including messages that it forwards from
one outer node to another. A failure of the central node causes the entire network to fail.
See also NETWORK ARCHITECTURE, PASSIVE STAR, STAR NETWORK.
active transition (of a clock signal) See CLOCK.
active vision A subfield of computer vision where controlled movement of the
viewpoint of the imaging camera is an integral part of the image-processing task.
Previously in computer vision research, in order to reduce the enormous complexity of
visual data, fixed camera geometry and static images have been beneficial in constraining
and simplifying the image-processing tasks. Active vision takes a different approach and,
by analogy with animal vision, does not avoid movement but gains information from the
dynamics of changing viewpoints to resolve ambiguities, gain depth information, and
establish relationships between visual sensing and action.
active widget A *widget that both displays its current value and achieves the relevant
action.
ActiveX Trademark A *COM (def. 2) technology developed by *Microsoft.
activity network (activity graph) A graphical method for showing dependencies
between tasks (activities) in a project. The network consists of *nodes connected by arcs.
Nodes denote events and represent the culmination of one or more activities. Arcs
represent activities and are labelled with the name of the activity and have an estimated
time to complete the activity. Dummy unlabelled arcs with zero completion time are used
to fan out from one event to other dependent events. Before progress can be made from
one event to another, all activities leading to that event must have been completed. The
longest path through the activity network gives the completion time for the project
represented by the network. See also CRITICAL PATH METHOD, PERT CHART.
actor language An *object-oriented language in which objects exist as concurrent
processes (see CONCURRENCY).
actors An early message-passing model of concurrent computation in artificial
intelligence. The model has many features that relate to *object-oriented programming
and conceptual similarities with the language *Smalltalk. See also ACTOR LANGUAGE.
actual parameter Information passed to a *subprogram at the *call. See also
ARGUMENT, PARAMETER.
actuator of a disk drive. The mechanism that causes the head carriage and heads to be
moved to the desired track. The voice coil actuator gains its name because its operating
principle is similar to that of a moving-coil loudspeaker. This type of actuator invariably
forms part of a closed loop servosystem. The reference information may be provided by a
disk with a dedicated servosurface: the servohead positions itself symmetrically between
two servotracks by sensing positioning information from both tracks (di-bits) and moving
in such a way that the amplitudes of the two signals are equal. A second method records
the servo information in a fixed number of equiangular ‘spokes’; this technique is known
as embedded servo. Dedicated servo drives suffer head stack and/or disk stack tilt, due
to temperature variations—especially after being powered-on. This causes heads located
further away from the servo head to be misaligned from the corresponding data track
centreline. Accordingly, these drives must interrupt the data flow to the host system to
carry out regular calibrations. Embedded servo drives do not need to interrupt the data
flow and so are better suited to applications that must provide a continuous data stream,
e.g. video-on-demand systems. As track densities have increased embedded servo
techniques have become more common.
acyclic graph A *graph possessing no *cycles; when the term is applied to directed
graphs the direction associated with the edges must be taken into account. See also TREE.
Ada Trademark A programming language developed at the behest of the US Department
of Defense for use in *real-time systems containing *embedded computers. The name
commemorates Augusta Ada King, Countess of Lovelace, who assisted Charles *Babbage
and has some claim to be the world’s first programmer.
The original version (now known as Ada 83) was designed by international
competition, published in 1980, and adopted as an ANSI standard in 1983 and as an ISO
standard in 1987. It incorporated ideas of *modular programming, *concurrent
programming, and separate compilation to support the development of large programs. It
also introduced the idea of a programming support environment (*APSE) whereby
program development tools are specified along with the language as an integral whole.
However, the absence of agreement on specific tools has led to a number of different and
incompatible support environments for Ada.
From 1986 use of Ada was made mandatory for US military applications (unless the
contractor could show ‘good cause’ for a waiver), and several European countries have
followed suit.
The language was revised in the early 1990s (when it was called Ada 9x) and adopted
by ISO in 1995; this version is now known as Ada 95. In spite of differences in
presentation, Ada 95 is virtually a superset of Ada 83, so almost all Ada-83 programs are
valid Ada-95 programs. The core of Ada 95 includes facilities for *object-oriented
programming and facilities for synchronized access to shared data (protected objects).
There are annexes for distributed systems, information systems, real-time systems,
systems programming, safety and security, numerics, and interfaces to other languages.
The current standard, Ada 2005, is a corrected and amended version of Ada 95.
http://www.adaic.org/ada-resources/standards/ada05/
• The Ada 2005 Language Reference Manual
Ada 95, Ada 83, Ada 2005 See ADA.
Adams methods See LINEAR MULTISTEP METHODS.
adaptive channel allocation A process by which the capacity of a communication
channel is multiplexed (shared) among several sources depending upon their relative
requirements. The resource distribution varies with time to match changing requirements.
See MULTIPLEXING.
adaptive compression (adaptive compaction) A *compression technique that
chooses between different techniques depending on the information to be compressed. See
also STATISTICAL COMPACTION.
adaptive-control system An automatic (process) control system that uses adaptation
as part of its prediction of process behaviour in order to optimize the control. See
ADAPTIVE PROCESS.
adaptive interface A human-computer interface (see HCI) that adjusts to user skill.
adaptive maintenance See SOFTWARE MAINTENANCE.
adaptive meshing Meshing an area where each element of the *mesh can be
independently subdivided to ensure a desired effect is achieved. For example, *finite-
element calculations will require more detailed meshes where there are rapid changes in
the structure or the parameter of interest is changing rapidly.
adaptive process The process of performing computations on a set of measured or
presented data (believed to be) from a physical, i.e. natural, source in such a way as to
develop a ‘best’ parametric model of that physical source, i.e. one that best fits the
observed data according to some error criterion. See also ADAPTIVE-CONTROL SYSTEM,
SELF-ORGANIZING SYSTEM.
adaptive quadrature See NUMERICAL INTEGRATION.
adaptive ray tracing See RAY TRACING.
ADC Abbrev. for analogue-to-digital (A/D) converter.
ADCCP (advanced data communication control procedure) A bit-oriented
*data link control protocol developed by ANSI and similar to *SDLC and *HDLC.
A/D converter (ADC) (analogue-to-digital converter) A device that can accept
an analogue, i.e. continuous, signal whose amplitude lies within a given range, and
produce an equivalent digital signal, i.e. an n-bit parallel binary word that represents this
analogue signal. The analogue signal is ‘examined’ at discrete fixed intervals of time by
means of a *sampling process in order to produce the digital signal. Analogue signals
originating from devices such as analogue sensors or tachogenerators may thus be
converted into a form that can then be processed by, say, a microprocessor.
The resolution of an A/D converter gives the smallest change in analogue input that
can be discriminated by the device. If the resolution of an n-bit A/D converter is ΔV, then
its range is either
or
according as it is *unsigned or *signed. In practice, the value of n is usually 8, 10, 12, 14,
or 16. Since the resolution is finite, the conversion process introduces quantization noise
(see DISCRETE AND CONTINUOUS SYSTEMS). A/D converters are available in integrated
circuit form. See also D/A CONVERTER.
adder In its simplest form, a digital electronic device that performs the operation of
addition on two binary digits, the augend and the number to be added, the addend. It is
therefore also known as a binary adder. This operation is exemplified by the truth table
shown in the diagram, where Σ is the sum and Co is the carry. From this it can be seen that
binary addition may generate a carry to subsequent stages.
A full adder has provision for inputs of addend, augend, and a carry bit and is capable
of generating sum and carry outputs. These adders may be cascaded when it is desired to
add binary words greater than one bit in length by connecting the carry inputs of each
stage to the carry output of the previous stage.
A half-adder (see diagram) is an implementation of an adder that has provision only
for input of addend and augend bits and is capable of generating sum and carry outputs.
These devices cannot directly be cascaded as can full adders but may be made to perform
a similar function by including additional logic gating.
See also CARRY LOOKAHEAD, PARALLEL ADDER, SERIAL ADDER.
Adder. Truth table of binary half-adder
add-in card (add-on card, expansion card) A *printed circuit board that plugs into an
*expansion slot in a computer to provide some extra facility. The sockets normally
connect to a *bus, and the type of connector and the use to which each contact is put are
strictly defined to ensure compatibility between the card and the computer. Cards are
available that provide extra memory, communications interfaces, sound I/O capabilities,
device interfaces to extra disks, for instance, or perhaps extra processors in multiprocessor
systems. See also PCMCIA.
address 1. The term most generally used to refer (in some way) to a location within the
computer memory; the word location is actually used as a synonym. Such reference is
usually made for the purpose of retrieving or storing some information at that location.
The reference may be explicit (see DIRECT ADDRESSING) or it may be made in any of a
number of ways for convenience or brevity (see ADDRESSING SCHEMES). In some
architectures the registers in the CPU and/or the I/O devices are also addressed.
The word address is also used as a verb: to specify a location. 2. In communications,
see ADDRESSING.
addressability (of a display device) See RESOLUTION.
addressable location A location whose position in a storage medium is precisely
defined and can be accessed. As a safeguard it is usual to arrange that not all memory
locations are addressable by all programs.
address book In an email program, a database containing details of contact names,
email addresses, etc.
address bus A *bus that is dedicated to passing address information. It may be a set of
conductors that are physically separate from other dedicated buses or it may be a subset of
a system bus. The number of conductors is often the same as the maximum allowable
number of bits in the address (with the possible addition of some extra conductors
carrying control signals).
address calculation sorting A form of *sorting that uses extra storage space to
improve upon a *straight insertion sort. One method employs n *list heads, corresponding
to n different ranges of the sortkey, together with a *link field on each record.
address format See INSTRUCTION FORMAT.
addressing The method used to identify the location of a participant in a *network.
Ideally, addressing specifies where the participant is located rather than who they are (see
NAME) or how to get there (see ROUTING). This is true for flat addressing, in which
addresses are assigned independently of each other and carry no internal structure. More
common, however, is hierarchical addressing, in which addresses are grouped to
reflect relationships among the addressed entities. Often the grouping reflects the physical
topology of the network, so addressing and routing are interrelated. Sometimes the
grouping reflects administrative or functional relationships (logical addressing), so
addressing and naming are interrelated.
In a system employing layered protocols (see SEVEN-LAYER REFERENCE MODEL),
different forms of addressing may be used at different levels. The data link level may use
addresses that identify specific stations on a multidrop line. The network level uses
addresses that identify the source and destination hosts associated with a packet. Higher
protocol layers may use addresses that distinguish different connections or processes.
Addresses may be fixed-length or extensible. In fixed-length addressing all
addresses occupy a fixed number of digits. An example is the Ethernet protocol, which
uses 48-bit addresses. In extensible addressing the length of an address may vary
from case to case. For example, in X121 ‘international data numbers’ are defined and
these may be from 3 to 14 decimal digits in length.
addressing schemes The wide variety of schemes developed in order to provide
compact or convenient *address references in cases where the *absolute address is too
large to be accommodated in an instruction (see INSTRUCTION FORMAT) or where it is not
possible or even necessary to assign an explicit address. *Augmented, *indirect, *implied,
*immediate, and *relative addressing schemes provide compact references. *Indexed,
relative, and *symbolic addressing schemes provide convenient references. In the absence
of any of these addressing schemes *direct addressing is used.
address mapping Use of one of the *addressing schemes to convert an address that is
specified in an instruction into an *absolute address. *Virtual memory and *cache memory
use forms of address mapping for additional memory-management functions.
address mark The special code on a magnetic disk track that occurs just prior to the
address information of a *sector. In the case of an MFM drive (see DISK FORMAT), the
encoding rules for MFM are broken so that the code is unique. The purpose of the address
mark is to bring the drive control electronics into byte synchronization with the header
data.
The data mark fulfils the same function with respect to data as the address mark to
the address.
address register A *register in which an *address is stored. See also CONTROL UNIT.
address-relative Having or involving a relative address or relative addresses. See
RELATIVE ADDRESSING.
Address Resolution Protocol (ARP) A *TCP/IP protocol. It handles the translation
of network-layer addresses (typically, IP) to the corresponding link-layer address (e.g.
Ethernet).
address space The total range of distinct locations that may be referred to with the
*absolute address. For most (i.e. binary) machines it is equal to 2n, where n is the number
of bits in the absolute address. The address space is often larger than the number of
physical or real addresses that are present in the system, and some mapping scheme is
necessary to obtain the physical address from the specified address. The physical address
space embraces the primary memory, the I/O devices, and, in some cases, the registers in
the CPU.
address table sorting A form of *sorting that is useful when the information records
are long. A table of addresses that point to the records is formed and these addresses,
rather than the records themselves, are manipulated.
add–subtract time The time required by a computer to find the sum or difference of
two numbers; it may or may not include the time required to obtain the numbers from
memory. This was once used as one form of (speed) figure of merit for computers. See
also COMPUTER POWER.
adequacy theorem A theorem about a logical system L and a semantics S stating that if
a formula is valid in the semantics S then it is provable in the logic L. An adequacy
theorem confirms that the logic can express and derive all properties that are valid
according to the semantics. See also COMPLETENESS THEOREM.
ad hoc network A peer-to-peer network formed by a set of nodes that dynamically
configure themselves in the form of a temporary network. An ad hoc network is typically
a *wireless LAN configuration. A MANET (Mobile Ad hoc NETwork) is an ad hoc
network in which all the nodes are wireless mobile nodes capable of self-organizing
themselves dynamically. See also WIRELESS SENSOR NETWORK.
adjacency list Another name for adjacency structure.
adjacency matrix (connectivity matrix, reachability matrix) A *matrix used as a
means of representing an *adjacency structure, which in turn represents a *graph. If A is
the adjacency matrix corresponding to a given graph G, then
if there is an edge from vertex i to vertex j in G; otherwise
If G is a directed *graph then
if there is an edge directed from vertex i to vertex j; otherwise
If the vertices of the graph are numbered 1,2,…m, the adjacency matrix is of a type m×m.
If
is evaluated, the nonzero entries indicate those vertices that are joined by a *path of length
p; indeed the value of the (i,j)th entry of Ap gives the number of paths of length p from the
vertex i to vertex j. By examining the set of such matrices,
it can be determined whether two vertices are connected.
It is also possible for adjacency matrices to be formed from *Boolean matrices.
adjacency structure (adjacency list) A means of representing a *graph. The
adjacency structure corresponding to a *path G is the set
If G is an undirected graph, then a vertex w is in Adj(v) if and only if there is an edge in G
between v and w; if G is a directed graph, then w is in Adj(v) if and only if there is an edge
in G directed from v to w.
Adobe Reader See ACROBAT.
ADP (automatic data processing) See DATA PROCESSING.
ADSL (asymmetric digital subscriber line) A mechanism by which *broadband
communication via the *Internet can be made available via pre-existing telephone lines,
while allowing simultaneous use of the line for normal telephone calls. Data
communication via ADSL is asymmetric in that upstream (transmitting) communication is
slower than downstream (receiving) communication, typically one fifth or less as fast.
Downstream data rates vary. In the UK the notional maximum, 8Mbps, is rarely achieved,
with 1–4Mbps being more common. Faster rates are available in other countries. ADSL
coexists with standard telephone operation on the same line by the use of band separation
filters at each telephone socket.
Advanced Encryption Standard A replacement for the Data Encryption Standard
(DES) cipher, selected in 2000 by the National Institute of Standards and Technology
(NIST) after an open competition. AES supports key sizes of 128, 192 and 256 bits. The
competition was won by the Rijndael algorithm, developed by Joan Daemen and
Vincent Rijmen.
advance-fee fraud A form of fraud, often attempted by email, in which the victim is
invited to pay financial fees in the hope of sharing in a much greater reward. It is also
known as Nigerian fraud or 419 fraud (419 is the number of the statute forbidding
this practice in Nigeria).
adware 1. Software that is free of charge to the user but makes money for its creator by
displaying advertisements. Many websites are adware. 2. Software that displays unwanted
advertisements on the user’s computer screen. Often concealed in downloaded web pages,
it installs itself surreptitiously, either by exploiting security weaknesses or by tricking the
user into giving consent, and is often difficult to remove. Adware is regarded as *malware
and may include an element of *spyware.
AES Abbrev. for Advanced Encryption Standard.
affine mapping (affine transformation) A mapping from one coordinate system to
another under which parallel lines remain parallel and ratios of collinear points are
preserved. An affine mapping can be decomposed into linear transformations (rotation,
scaling, and shear) and translation.
AFIPS American Federation of Information Processing Societies, founded in 1961 to
provide a structure for professional societies with a primary interest in information
processing to join together in order to advance the state of the art. AFIPS was dissolved in
1990. AFIPS is best remembered for its Spring and Fall Joint Computer Conferences at
which many important technical developments in the field were first reported. Its role as
the US representative in IFIP was taken over jointly by the *ACM and the *IEEE
Computer Society.
AFL Abbrev. for abstract family of languages.
agenda mechanism A control scheme often used in *knowledge-based systems,
*blackboard systems, and *production rule systems, to order the sequence of action
execution. While the system is running, inference processes may examine the agenda and
manipulate it by the dynamic addition, removal, or reordering of items.
agent An autonomous system that receives information from its environment, processes
it, and performs actions on that environment. Agents may have different degrees of
intelligence or rationality, and may be implemented in software, hardware, or both.
Software agents operate in symbolic environments, and perceive and act upon strings of
symbols; examples include personal assistant agents that enhance and customize facilities
for computer users, and *data mining agents that search for interesting patterns in large
databases. In a *distributed system, the agent for a *remote procedure call is in a different
computer from the caller; its environment is the network and the procedure body. A robot
(see ROBOTICS) is an example of an agent that perceives its physical environment through
sensors and acts through effectors.
agile methods An approach to software development that is iterative, adaptive, and
responsive to the particular needs of the client, who is considered a full member of the
development team. In practice, this generally means the use of flexible, self-organizing
teams whose methods can evolve with increasing knowledge of the project and the
changing requirements of the customer. The 2001 Agile Manifesto states strong
preferences for ‘Individuals and interactions over processes and tools’, ‘Working software
over comprehensive documentation’, ‘Customer collaboration over contract negotiation’,
and ‘Responding to change over following a plan’. At bottom the concept of ‘agility’ is
based on a view that software is a product unlike any other.
Various frameworks for agile working have been defined, for example Scrum, XP
(eXtreme Programming), and ASD (Adaptive Software Development).
AGP See ACCELERATED GRAPHICS PORT.
AGV Abbrev. for autonomous guided vehicle.
AI Abbrev. for artificial intelligence.
Aitken’s Δ2 process A method to convert any convergent sequence {xn} into a more
rapidly convergent sequence {xn′}. For linearly converging sequences the formula is:
AIX An IBM version of *UNIX.
ALARP principle A principle that is associated with the design and development of
safety systems, and captures the notion that the risk to individuals, society, and the
environment should be As Low As Reasonably Possible. See also SAFETY-CRITICAL
SYSTEM, SAFETY-RELATED SYSTEM.
aleph null See CARDINALITY.
alert box An on-screen panel that is displayed to give the user a warning or other
message.
algebra 1. The investigation of mathematical properties of data, such as numbers, and of
operations on data, such as the addition and multiplication of numbers. 2. A collection of
*sets together with a collection of *operations over those sets. Many examples involve
only one set, such as the following:
(a) the set N = {0,1,2,…} of natural numbers together with, for example, the operations of
addition, subtraction, and multiplication;
(b) the set B = {TRUE, FALSE} of Boolean truth values together with the operations
AND, OR, and NOT (see also BOOLEAN ALGEBRA);
(c) the set of all finite strings over a set of symbols together with the operation of
*concatenation;
(d) a set of sets together with the operations of *union, *intersection, and *complement
(see also SET ALGEBRA).
In computer science, however, it is natural to consider algebras involving more than one
set. These are called many-sorted algebras, in contrast to single-sorted algebras
with only one set. For example, in programming languages there are different *data types
such as Boolean, integer, real, character, etc., as well as user-defined types. Operations on
elements of these types can then be seen as giving rise to a many-sorted algebra. By
stating axioms that define properties of these operations, an *abstract data type can be
specified. See also ALGEBRAIC STRUCTURE, SIGNATURE.
algebraic abstract data type An *abstract data type whose behaviour is defined in
algebraic terms using sets, mappings, functions, relations, morphisms, and categories.
algebraic language Another name for context-free language.
algebraic model See ALGEBRAIC STRUCTURE.
algebraic semantics A refinement of *denotational semantics that stresses the
algebraic structure on both syntactic and semantic entities. Typically syntactic and
semantic entities are expressed as elements of some *algebra, and the mapping from
syntax to semantics is then a *homomorphism. The syntax and semantics of expressions
and simple languages invariably have obvious and natural algebraic structures. Any
context-free language has the structure of an algebra of *terms over a *signature.
*Equations and *initial algebras play a fundamental role in algebraic semantics. A feature
of this approach is that it seeks, as far as possible, to study properties of programs subject
only to some precisely stated axiomatic assumptions about the range of possible semantic
algebras.
algebraic specification A special type of axiomatic specification in which the axioms
are *equations or *conditional equations. See also MODULE SPECIFICATION.
algebraic structure An alternative expression for an *algebra. Sometimes there is a
technical difference: algebras are always sets with constants and functions; algebraic
structures are sometimes algebras to which are added relations. A common term for this
latter case is algebraic system (or model).
algebraic surface A surface specified by *patches in an algebraic form rather than a
parametric or geometric one.
algebraic symbol manipulation language A programming language in which the
data are algebraic expressions in symbolic form, and the operations are the operations of
algebra. The operations provided usually include multiplying out brackets, simplification,
factorization, polynomial division, and differentiation with respect to one or more
variables. Such languages are now rare, their function being subsumed into *algebra
systems.
algebraic system See ALGEBRAIC STRUCTURE.
algebra system An interactive system that performs the operations of algebra
(simplification, factorization, multiplying out brackets, etc.) on algebraic expressions
typed in by the user. These systems are increasingly used in ‘mathematical assistants’,
particularly in the field of general relativity. Popular systems include MAPLE and
MATHEMATICA. See also ALGEBRAIC SYMBOL MANIPULATION LANGUAGE.
Algol (algorithmic language) The generic name for a family of high-level languages
of great significance in the development of computing. In 1958 the Association for
Computing Machinery (ACM) in the US and the Gesellschaft für Angewandte
Mathematik und Mechanik (GAMM) in Europe set up a joint committee to define an
international algorithmic language (IAL). The language that was designed became
known as Algol, and was later called Algol 58 to distinguish it from later versions. Algol
58 was not intended to be a viable language, and in 1960 an augmented committee was
convened to devise the second iteration, which was published as the language Algol 60.
See also JOVIAL.
Algol 60 was much more popular in Europe than in the US, probably due to the
dominance of IBM and Fortran in the North American market. It introduced many new
concepts, notably block structure (see BLOCK-STRUCTURED LANGUAGES), nested scopes,
modes of parameter passing to procedures, and the definition of the language introduced
the now classic *BNF notation for describing syntax. The influence of Algol 60 can be
seen in all succeeding languages, and it stands as a milestone in the development of
programming languages.
In the years following the publication of the Algol 60 Report, a working group of the
International Federation for Information Processing was set up to consider the definition
of a successor to Algol 60. There were many dissensions within the group, and eventually
a minority report was issued proposing the language Algol 68. Although Algol 68
introduced many novel concepts of great theoretical interest and significance, its
specification was very difficult to understand and its practical application was almost nil.
One of the most significant effects of the split in the Algol 68 working group is that it led
indirectly to the development of *Pascal.
algorithm A prescribed set of well-defined rules or instructions for the solution of a
problem, such as the performance of a calculation, in a finite number of steps. Expressing
an algorithm in a formal notation is one of the main parts of a *program; much that is said
about programs applies to algorithms, and vice versa. An effective algorithm is one
that is effectively computable (see EFFECTIVE COMPUTABILITY). The study of whether
effective algorithms exist to compute particular quantities forms the basis of the theory of
algorithms.
Save for the simplest of algorithms it is difficult to prove that an algorithm is correct
(see PROGRAM CORRECTNESS PROOF), or even to specify the effect it is intended to
achieve. In practice it is usually necessary to be content with algorithm validation.
This process certifies, or verifies, that an algorithm will perform the calculation required
of it. It involves testing the routine against a variety of instances of the problem and
ensuring that it performs satisfactorily for these test cases. If the test set is chosen
sufficiently well there can then be confidence in the algorithm.
Algorithm analysis is the study of the performance characteristics of a given algorithm.
One branch of this study, average-case analysis, examines the average behaviour of
the algorithm. Worst-case analysis studies the behaviour when all circumstances are as
unfavourable as possible. Algorithms can be analysed in terms of their *complexity and
efficiency, where *algorithm efficiency is characterized by its *order.
algorithm analysis See ALGORITHM.
algorithm efficiency A measure of the average execution time necessary for an
algorithm to complete work on a set of data. Algorithm efficiency is characterized by its
*order. Typically a *bubble sort algorithm will have efficiency in sorting N items
proportional to and of the order of N2, usually written O(N2). This is because an average of
N/2 comparisons are required N/2 times, giving N2/4 total comparisons, hence of the order
of N2. In contrast, *quicksort has an efficiency O(N log2N).
If two algorithms for the same problem are of the same order then they are
approximately as efficient in terms of computation. Algorithm efficiency is useful for
quantifying the implementation difficulties of certain problems.
algorithmic language A language or notation used to express clearly an algorithm. It
is usually part of a programming language.
alias An alternative name for a person or group using email.
aliasing A distorting effect caused by *sampling an image at too low a rate. When a
signal is undersampled, high-frequency components cannot be distinguished from lowerfrequency components. Thus the higher frequencies assume the alias (or false identity) of
the lower frequencies. Some common computer-graphics artefacts due to aliasing are
jagged lines, small objects missing from a scene, and jerky motion. Aliasing effects can be
removed or subdued by *anti-aliasing. Fine detail, such as mesh curtains, can be totally
lost or distorted without anti-aliasing. Aliasing effects are even more prominent in
animated images.
allocation routine A routine that is responsible for the allocation of resources to a
*process. See RESOURCE ALLOCATION.
Alpha AXP Trademark A 64-bit *RISC *scalable processor family developed by
*Digital Equipment Corporation, designed for applications from PCs to large systems.
Alpha became available in 1992 and was discontinued in 2007.
alphabet An ordered *character set. See also FORMAL LANGUAGE, LATIN ALPHABET.
alphabetic code A code whose target alphabet contains only letters and/or strings of
letters from the Roman alphabet.
alpha buffer A plane in a *frame buffer that contains information concerning the
*transparency of each object in a scene, just as a *Z-buffer contains information about
depth. It may be implemented as an associated resource rather than be part of the frame
buffer itself.
alphamosaic Graphics characters used by videotext. To produce the overall graphic
required, the screen is divided into small areas (say, 40 × 28), each of which contains a
specific character.
alphanumeric character Any letter of the English alphabet, upper or lower case, or
any of the decimal digits, 0 to 9.
alphanumeric code A code whose target alphabet contains *alphanumeric characters
and/or strings thereof.
alpha test See BETA TEST.
Alt key See KEYBOARD.
ALU (arithmetic and logic unit) A portion of the *central processor that generally
forms functions of (usually) two input values and produces a single output result. These
functions usually consist of the common *arithmetic operations, the common *logic
operations, and *shift operations. Associated with the ALU is a *condition-code register
that holds certain properties of the result of the most recent ALU operation (see also
PROGRAM STATUS WORD).
ambient computing See UBIQUITOUS COMPUTING.
ambient light The background illumination applied to all objects in a scene. The
*lighting model assumes an imaginary light hits each point of every object in the scene
with the same colour and intensity. Ambient light approximates the overall diffuse
interreflections in the scene. Ambient light does not need to be specified if the lighting
model takes account of the *diffuse reflection of light between surfaces.
ambiguous grammar A *context-free grammar that derives the same word by
different *derivation trees, or equivalently by different *derivation sequences. A familiar
programming language example is:
where S and C stand for statement and condition. This grammar is ambiguous since the
following compound statement
has two interpretations, corresponding with two derivation trees, as shown in the diagram.
See also INHERENTLY AMBIGUOUS LANGUAGE.
Ambiguous grammar. Two derivation trees in an ambiguous grammar
amplitude See SIGNAL.
amplitude modulation (AM) See MODULATION.
amplitude quantization See DISCRETE AND CONTINUOUS SYSTEMS, QUANTIZATION.
analogue computer A computer that performs computations (such as summation,
multiplication, integration, and other operations) by manipulating continuous physical
variables that are analogues of the quantities being subjected to computation. The most
commonly used physical variables are voltage and time. Some analogue computers use
mechanical components: the physical variables become, for example, angular rotations
and linear displacements. See also DISCRETE AND CONTINUOUS SYSTEMS.
analogue signal A signal, often a voltage or current, whose amplitude may have any
value between limits defined by the associated circuitry. It may represent a measured
physical quantity, such as temperature or position, or may carry information as audio or
video waveforms, etc. See also A/D CONVERTER, D/A CONVERTER, DISCRETE AND
CONTINUOUS SYSTEMS.
analogue-to-digital converter See A/D CONVERTER.
analysis of variance (ANOVA) A technique, originally developed by R. A. Fisher,
whereby the total variation in a vector of numbers y1 … yn, expressed as the sum of
squares about the mean
is split up into component sums of squares ascribable to the effects of various classifying
factors that may index the data. Thus if the data consist of a two-way m×n array, classified
by factors A and B and indexed by
then the analysis of variance gives the identity
Geometrically the analysis of variance becomes the successive projections of the vector y,
considered as a point in n-dimensional space, onto orthogonal hyperplanes within that
space. The dimensions of the hyperplanes give the degrees of freedom for each term;
in the above example these are
A statistical model applied to the data allows mean squares, equal to (sum of
squares)/(degrees of freedom), to be compared with an error mean square that measures
the background ‘noise’. Large mean squares indicate large effects of the factors
concerned. The above processes can be much elaborated (see EXPERIMENTAL DESIGN,
REGRESSION ANALYSIS).
Analytical Engine The logic design for a mechanical computer conceived by Charles
Babbage around 1834, but never built. The design envisioned a memory of a thousand 50digit numbers. The machine, which could do addition, subtraction, multiplication, and
division, was to be controlled by programs punched into loops of cards; the machine was
thus to be directed through a variety of computations, and alternative paths could be taken
depending on the values of intermediate results. It was to have included a printer to obtain
the results. The design was remarkable in anticipating so many elements of modern
computers.
analyser A program, such as a parser, that determines constituents in a string; the word is
rarely used except in the combinations syntax analyser and lexical analyser. See also
STATIC ANALYSIS.
ancestor (of a node in a *tree) Any node on the unique path from the root of the tree to
the node in question. A proper ancestor of a node, A, is a node, B, such that B is an
ancestor of A and A ≠ B. See also PARENT.
AND gate An electronic *logic gate whose output is logic 1 (true) only when all (two or
more) inputs are logic 1, otherwise it is logic 0 (false). It therefore implements the logical
*AND operation on its inputs and has the same *truth table. The diagram shows the usual
circuit symbol and the truth table of a two-input gate.
AND gate. Two-input AND gate, circuit symbol and truth table
AND operation The logical *connective combining two statements, truth values, or
formulas P and Q in such a way that the outcome is true only if both P and Q are true;
otherwise the outcome is false (see table). The AND operation is usually denoted by ∧,
and occasionally by, or by juxtaposition, as in PQ. It is one of the dyadic operations of
*Boolean algebra and is both *commutative and *associative.
When implemented as a basic machine operation on computers, the AND operation is
usually generalized to operate on complete words. Then the operation described above is
applied to the corresponding bits in each word. In this context AND is often used for
*masking purposes, i.e. to select parts of words, such as the address field.
AND operation. Truth table for AND operation
AND/OR graph A form of *graph or *tree used in problem solving and problem
decomposition. The nodes of the graph represent states or goals and their successors are
labelled as either AND or OR branches. The AND successors are subgoals that must all be
achieved to satisfy the parent goal, while OR branches indicate alternative subgoals, any
one of which could satisfy the parent goal.
Andreessen, Marc (1971– ) US software developer and businessman. While still an
undergraduate at the University of Illinois, he led the team that developed the *Mosaic
web browser (1992–93). In 1994 he co-founded Mosaic Communications, later Netscape
Communications Corporation, which in the same year released *Netscape Navigator.
Andreessen left Netscape following its acquisition by AOL in 1999. He has subsequently
founded two further companies: Loudcloud (now Opsware, Inc.) and Ning (now part of
Glam Media). He is also active as an investor in technology startups, and on the boards of
Facebook and Oculus VR among others.
Android A *smartphone operating system based on the *Linux kernel; it was developed
by *Google and is now used in phones by various manufacturers including Samsung,
HTC, and Sony. Unlike other smartphone operating systems, Android contains a
significant proportion of *open-source code. The first commercial phone to use Android
went on sale in 2008.
animation See COMPUTER ANIMATION.
ANN Acronym for artificial neural network.
annotation Explanation added to a program to assist the reader. This may take the form
of manuscript additions to the program listing, but more often takes the form of
*comments included in the program text.
anonymization A process that removes personally identifiable information from data
sets or communications. Various data anonymization techniques can be used, including
*data encryption, substitution, shuffling, number and date variance, and nulling out
specific fields or data sets. They can, however, be bypassed, by using deanonymization, a *data mining strategy in which anonymous data is cross-referenced
with other data sources to re-identify the anonymous data source.
anonymous FTP A mechanism that allows a user to take copies of files from a network
*file server, without having a named account on the server. The user ‘anonymous’ is
allowed to log into the server, and has limited privileges allowing him or her to initiate an
outgoing file transfer. See also FILE TRANSFER PROTOCOL.
anorak See NERD.
ANOVA Acronym for analysis of variance.
ANSI American National Standards Institute, an organization, founded in 1918, that
establishes US industrial standards. It accredits organizations from the public and private
sector to write these standards following the rules established by ANSI, and provides a
forum and a framework within which the organisations cooperate to develop American
National Standards. It is the US representative to *ISO (International Organization for
Standardization) and to *IEC (International Electrotechnical Commission).
http://www.ansi.org/
• The ANSI home page
anti-aliasing Taking specific action to remove or subdue *aliasing effects. *Supersampling or smoothing the image by *filtering are techniques often used to reduce
aliasing.
anti-pattern A negative pattern of behaviour in software development (e.g. in
development practices, technical approaches, design concepts) that may lead to poorquality software and project failure. The conscious avoidance of anti-patterns can be of
great benefit in software development practice.
anti-static precautions Precautions taken to prevent damage to sensitive components
by the discharge of electrical energy. It is common to provide a static-free working area in
which floor and work surfaces are covered by electrically conducting mats and the
operator uses a conducting wrist strap. Adequate safety precautions must be in force to
protect the operator.
antisymmetric relation A *relation R defined on a set S and having the property that
where x and y are arbitrary members of S. Examples include ‘is a subset of’ defined on
sets, and ‘less than or equal to’ defined on the integers. See also ASYMMETRIC RELATION,
SYMMETRIC RELATION.
anti-virus program A *program that detects and isolates *viruses in a computer’s file
storage devices. It also checks incoming files, for example email message attachments,
and makes sure that outgoing files are virus free.
any-time algorithms A class of algorithms intended for use in *real-time systems, in
which, after a specified minimum period, a result is always available. The accuracy of the
result increases with the time the algorithm has been running.
AOL An American *ISP and *portal. The former full name, America Online, was
dropped in 2006.
Apache The Apache Software Foundation, created in 1999; an *open-source
collaborative venture that provides one of the most popular web-server infrastructures in
use today, particularly on *Linux systems. See also LAMP.
APA mode (all points addressable mode) Usually applied to printers that can display
graphical data. A mode of operation in which the printout is not constrained to rows of
characters. The term is seldom used now that most printers can print graphically.
API (application programming interface) An interface that is defined in terms of
a set of functions and procedures, and enables a program to gain access to facilities within
an application. A typical example would be a *CASE tool that provides an API to enable
users to develop special programs to utilize the information within the CASE tool’s
internal database. The use of such facilities enables users to customize the application for
their own purposes and to integrate the application into a customized development
environment.
APL (a programming language) Originally devised by Iverson as a mathematical
notation in the mid-1960s, and only later implemented as a programming language, APL
had a meteoric rise in popularity that lasted until the 1980s. The main feature of APL is
that it provides a rich set of powerful operators for handling multidimensional arrays,
together with the capability for users to define their own operators. The built-in operators
are mainly represented by single characters using a special character set. Thus APL
programs are very concise and often impenetrable.
APP Abbrev. for application portability profile.
Apple Inc. A US-based producer of Macintosh (‘Mac’) personal computers and
peripherals, and subsequently of the *iPod. Founded by Steve *Jobs and Steve Wozniak, it
pioneered the *desktop and *windows metaphors for the user interface and was an early
market leader in the field. The first commercial *spreadsheet, VisiCalc, was developed for
its machines. As well as running Apple’s own software, the computers can run Microsoft
*Windows and other PC applications that it supports. Apple’s products are widely seen as
the major alternative to the personal computers based on the IBM PC model. As such, they
have attracted a substantial cult following in the academic and high technology worlds,
and in design and desktop-publishing applications.
applet See JAVA.
application (app) A particular role or task to which a computer system can be applied,
or, more usually, the software used for such a purpose. See APPLICATION PACKAGE,
APPLICATIONS PROGRAM.
application binary interface See ABI.
application generator A computer program—a *software tool—that is capable of
creating a range of application programs in a particular domain. The generated program
will be configured by information provided by the person using the application generator.
Domains in which application generators are frequently encountered include simulation,
process control, and user interface software. See also FOURTH-GENERATION LANGUAGE.
application layer of network protocol function. See SEVEN-LAYER REFERENCE MODEL.
application package (software package) A collection of programs or modules that is
directed at some generic application and that can be tailored (perhaps with some additions)
to the needs of a specific instance of that application.
application portability profile (APP) A statement of the characteristics of a
computer program that defines the facilities (of the *programming language, *operating
system, *APIs, etc.) which it utilizes. This profile then defines the minimum set of
facilities that must be available on any computer system to enable that program to be
executed.
application programming interface See API.
applications program (application program, app) Any program that is specific to a
particular role and makes a direct contribution to performing that role. For example, where
a computer handles a company’s finances a payroll program would be an applications
program. By contrast, an *operating system or a *software tool may both be essential to
the effective use of the computer system, but neither makes a direct contribution to
meeting the end-user’s eventual needs.
applications programmer A person who specializes in writing *applications
programs. Compare SYSTEMS PROGRAMMER.
applications software Collective term for *applications programs.
application store An online facility enabling users of particular computers or
smartphones to search for, purchase, and download applications programs tailored for
their particular device. Many of the major operating-system developers provide such
stores, for example, Apple’s App Store, Google’s Google Play, and Microsoft’s Store.
application terminal A combination of input and output devices configured into a unit
to meet the requirements of a particular type of business activity and environment. They
usually have some built-in processing capability and are connected to a controlling
processor via a data communication link. Examples include *point-of-sale (POS)
terminals and automated teller machines (*ATMs).
applicative language Another name for functional language.
approximation theory A subject that is concerned with the approximation of a class
of objects, say F, by a subclass, say P ⊂ F, that is in some sense simpler. For example, let
the real continuous functions on [a,b], then a subclass of practical use is Pn, i.e.
polynomials of degree n. The means of measuring the closeness or accuracy of the
approximation is provided by a metric or norm. This is a nonnegative function that is
defined on F and measures the size of its elements. Norms of particular value in the
approximation of mathematical functions (for computer subroutines, say) are the
Chebyshev norm and the 2-norm (or Euclidean norm). For functions
these norms are given respectively as
For approximation of data these norms take the discrete form
The 2-norm frequently incorporates a weight function (or weights). From these two norms
the problems of Chebyshev approximation and least squares approximation
arise. For example, with polynomial approximation we seek
for which
are acceptably small. Best approximation problems arise when, for example, we seek
for which these measures of errors are as small as possible with respect to Pn.
Other examples of norms that are particularly important are vector and matrix
norms. For n-component vectors
important examples are
Corresponding to a given vector norm, a subordinate matrix norm can be defined for n × n
matrices A, by
For the vector norm
this reduces to the expression
where aij is the i,jth element of A. Vector and matrix norms are indispensable in most areas
of numerical analysis.
APSE (Ada programming support environment) The *PSE that was intended to
be used for software development using *Ada.
arc (of a graph) See GRAPH.
architectural design (high-level design) See PROGRAM DECOMPOSITION, PROGRAM
DESIGN, SYSTEM DESIGN.
architecture The specification of a (digital) computer system at a somewhat general
level, including description from the programming (user) viewpoint of the instruction set
and user interface, memory organization and addressing, I/O operation and control, etc.
The *implementation of an architecture in members of a given *computer family may be
quite different, yet all the members should be capable of running the same program.
Implementation differences may occur in actual hardware components or in subsystem
implementation (e.g. *microprogramming as opposed to wired control), generally in both.
Different implementations may have substantially different performances and costs. An
implementation feature—such as a cache memory—that is *transparent to the user does
not affect the architecture. Common architecture provides *compatibility from the user’s
viewpoint.
In the context of engineering and hardware design, the term architecture is used to
describe the nature, configuration, and interconnection of the major logic organs of a
computer (and is thus closer to the general meaning of the word). These devices would
normally include the memory and its components, the control unit and the hardware
components designed to implement the control strategy, the structure, range, and
capability of the ALU, and the interconnection of the input/output—such as whether star
or bus connected—and the nature and capabilities of any channel controllers. A detailed
block diagram or schematic of the actual (as distinct from the virtual) machine would
normally form part of, or even be central to, such a description.
archive A repository for information that the user wishes to retain, but without requiring
immediate access. (The word is also used as a verb: to transfer into the archive system.)
There are three quite different activities that must be distinguished:
(a) the routine taking of *backup copies, initiated by the system manager, to protect users
and system managers against *corruption of stored information;
(b) the autonomous transferring of information from a higher-performance to a lowerperformance storage system, initiated by the *operating system, to achieve economies
in the total cost to the system manager of information storage;
(c) the voluntary transferring of a file between normal file storage and archive storage,
initiated by the user, to achieve economies in the total costs to the user of information
storage.
Most systems retain information that the user can alter on magnetic disk or solid-state
drives. (Information that the user cannot alter may either be held on a nonwritable form of
storage such as a *CD-ROM, or on a writable form but with some form of hardware or
system write-inhibit control.) Magnetic disks and solid-state drives offer high
performance, but the user may be prepared to use a slower medium such as magnetic tape,
which has lower unit costs for storage. Users may do this on their own behalf by attaching
a magnetic-tape subsystem to their workstation, and overseeing the transfer of files to the
magnetic tape and their subsequent recovery when the information is required again.
Alternatively, in a large multiuser multiserver environment, there may be a *server set
aside specifically for the purpose of allowing users to transfer their information onto
shared magnetic-tape devices. This server will also cooperate with the system’s file-access
software in maintaining the modified directory entries that allow the overall system to
keep track of the information held on the magnetic tapes, and to oversee its recovery on
behalf of the user. A growing trend in archiving is the transference of data over the
Internet to a third-party data-warehousing service (see CLOUD COMPUTING). See also
MEMORY HIERARCHY.
Arden’s rule A *formal language can be specified by means of equations, based on
operations on languages. Arden’s rule states that A*B is the smallest language that is a
solution for X in the linear equation
where X, A, B are sets of strings. (For notation, see UNION, CONCATENATION, KLEENE
STAR.) A*B is furthermore the only solution, unless A contains the empty string, in which
case A*B′ is a solution for any subset B′ of B.
Although simple, Arden’s rule is significant as one of the earliest fixed-point results on
equation solving in computer science. In conjunction with the normal process of
eliminating variables, it can be used to solve any set of simultaneous linear equations over
sets of strings. See also KLEENE’S THEOREM (on regular expressions).
area coherence The constancy of a property over an area. Computer-graphics
algorithms often take advantage of area coherence, *image compression being an
example.
area filling Painting a defined area with a specific colour or pattern. If the area is
defined by a set of boundary *pixels, there are specific algorithms for area filling starting
from a seed pixel inside the boundary.
argument A value or address passed to a procedure or function at the time of call. Thus
in the Basic statement
X is the argument of the SQR (square root) function. Arguments are sometimes referred to
as actual parameters.
arithmetic and logic unit See ALU.
arithmetic instruction An instruction that specifies an *arithmetic operation to be
carried out by the computer.
arithmetic/logic unit See ALU.
arithmetic operation An operation that forms a function of two numbers. This
function is usually one of the class of operations: add, subtract, multiply, and divide.
These operations may be carried out on integers, fractional numbers, or floating-point
numbers and are normally performed in the *ALU. See also FLOATING-POINT NOTATION.
arithmetic operator A type of *operator appearing in an expression denoting one of
the operations of arithmetic, e.g. +, −, * (multiplication), / (divide).
arithmetic shift See SHIFT.
arithmetic unit (AU) Short for arithmetic and logic unit. See ALU.
arity Of an operator. The number of operands to which the *operator applies. See also
OPERATION.
arm To bring a device to a state of readiness.
ARMA (autoregressive moving average) See TIME SERIES.
ARM Holdings A British multinational semiconductor and software design company,
founded in 1990. Its business model involves the design and licensing of intellectual
properties rather than the manufacture and sale of actual semiconductor chips. Its largest
business is designing processors (CPU) bearing the ARM name.
ARP See ADDRESS RESOLUTION PROTOCOL.
ARPA (Advanced Research Projects Agency) now called *DARPA An agency of
the US Department of Defense responsible for research and technical development in
areas where no single service (Army, Navy, Air Force, Marine Corps) has a clear
jurisdiction or interest. It is perhaps most famous for the network technology development
that led to the *ARPANET.
ARPANET (Advanced Research Projects Agency Network) The ARPANET
was initiated as a four-node network in Dec. 1969, and has evolved via DARPANET into
the present *Internet.
The impetus for the ARPANET came from a small group of workers in universities and
private research laboratories in the USA, who were funded by the US Department of
Defense Advanced Research Project Agency to create a data network that was capable of
continuing to function even when parts of the network were destroyed. The solution
proposed relied on the use of *packet switching, which was implemented by small
dedicated computers called interface message processors (IMPs), and used a distributed
routing algorithm to manage the movement of self-contained *packets of data between
their source and destination.
ARPANET pioneered many of the network concepts now in current use, including the
use of layered *protocols. Each protocol governs the transfer of information for a range of
associated applications, and delegates the control of the traffic flow to cooperating
processes located either at the end-user applications, or, for the lower layers of the
protocol, to processes located in the switching nodes.
array 1. An ordered collection of elements of the same type, the number of elements
being fixed unless the array is *flexible.
Each element in an array is distinguished by a unique list of *index values that
determine its position in the array. Each index is of a discrete type. The number of indices
is fixed, and the number and ordering of the indices determines the dimensionality of the
array.
A one-dimensional array, or *vector, consists of a list of elements distinguished by a
single index. If v is a one-dimensional array and i is an index value, then vi refers to the ith
element of v. If the index ranges from L through U then the value L is called the lower
bound of v and U is the upper bound. Usually in mathematics and often in
mathematical computing the index type is taken as integer and the lower bound is taken as
one.
In a two-dimensional array, or *matrix, the elements are ordered in the form of a table
comprising a fixed number of rows and a fixed number of columns. Each element in such
an array is distinguished by a pair of indexes. The first index gives the row and the second
gives the column of the array in which the element is located. The element in the ith row
and jth column is called the i,jth element of the array. If i ranges from L1 through U1 and j
ranges from L2 through U2 then L1 is the first lower bound of the array, U1 is the
first upper bound, L2 is the second lower bound and U2 is the second upper
bound. Again it is common practice to take the indexes as integers and to set both L1 and
L2 equal to one. An example of such a two-dimensional array with U1 = m, U2 = n is
given in the diagram.
In three-dimensional arrays the position of each element is distinguished by three
indexes. Arrays of higher dimension are similarly defined. 2. Short for disk array. See also
RAID.
Array. Two-dimensional array
array management software See DISK ARRAY.
array processor A computer/processor that has an architecture especially designed for
processing *arrays (e.g. matrices) of numbers. The architecture includes a number of
processors (say 64 by 64) working simultaneously, each handling one element of the array,
so that a single operation can apply to all elements of the array in parallel. To obtain the
same effect in a conventional processor, the operation must be applied to each element of
the array sequentially, and so consequently much more slowly.
An array processor may be built as a self-contained unit attached to a main computer
via an I/O port or internal bus; alternatively, it may be a distributed array processor
where the processing elements are distributed throughout, and closely linked to, a section
of the computer’s memory.
Array processors are very powerful tools for handling problems with a high degree of
parallelism. They do however demand a modified approach to programming. The
conversion of conventional (sequential) programs to serve array processors is not a trivial
task, and it is sometimes necessary to select different (parallel) algorithms to suit the
parallel approach.
See also PARALLEL PROCESSING, VECTOR PROCESSING.
arrow keys (direction keys) Four keys on a computer keyboard with arrows engraved
on the keycaps pointing up, down, left, and right. They can be separate keys, usually
found to the right of the typewriter keys, or combined with other keys. A 102-key PC
keyboard has separate arrow keys as well as arrow keys on the numeric keypad. A laptop
keyboard will often have the arrow keys combined with the typewriter keys and activated
by a special shift key. The action performed by arrow keys is under program control, but
usually involves moving the cursor or some part of the display in the indicated direction.
articulation point Another name for cut vertex.
artificial immune system A type of *machine learning. Biological immune systems
are natural adaptive learning systems that use a variety of mechanisms to defend an
organism from invading pathogens. Artificial immune systems are inspired by processes
identified within animal immune systems. They attempt to learn and recognize patterns for
use in applications such as anomaly recognition, fault detection, security, and
optimization.
artificial intelligence (AI) A discipline concerned with the building of computer
programs that perform tasks requiring intelligence when done by humans. However,
intelligent tasks for which a *decision procedure is known (e.g. inverting matrices) are
generally excluded, whereas perceptual tasks that might seem not to involve intelligence
(e.g. seeing) are generally included. For this reason, AI is better defined by indicating its
range. Examples of tasks tackled within AI are: game playing, *automated reasoning,
*machine learning, *natural-language understanding, planning, *speech understanding,
and *theorem proving.
Perceptual tasks (e.g. seeing and hearing) have been found to involve much more
computation than is apparent from introspection. This computation is unconscious in
humans, which has made it hard to simulate. AI has had relatively more success at
intellectual tasks (e.g. game playing and theorem proving) than perceptual tasks.
Sometimes these computer programs are intended to simulate human behaviour to assist
psychologists and neuroscientists (see COGNITIVE MODELLING). Sometimes they are built
to solve problems for technological application (see EXPERT SYSTEMS, ROBOTICS).
Both theoretical and applied AI research have made very significant contributions to
computer science. Computational techniques that originated from AI include *augmented
transition networks, *means/ends analysis, *production rule systems, *resolution,
*semantic networks, and *heuristic search.
Philosophers have long been interested in the question, ‘can a computer think?’ There
are two schools of thought: weak AI, which is the proposition that computers can at least
simulate thought and intelligence; and strong AI, which argues that a machine that can
perform cognitive tasks is actually thinking. This is a complex topic that has received new
interest with a focus on consciousness.
artificial life A research field in *artificial intelligence that aims to understand the
principles underlying the behaviour of natural living systems. Experiments with software
simulations are used to synthesize self-organizing self-replicating dynamic models of
phenomena from the living world.
artificial neural network (ANN) Formal name for neural network.
ASCC (Automatic Sequence Controlled Calculator) See HARVARD MARK I.
ASCII (Ascii) (American standard code for information interchange) A
standard character encoding scheme introduced in 1963 and used widely on many
machines. It is a 7-bit code with no parity recommendation, providing 128 different bit
patterns. This encoding now forms the ‘Basic Latin’ block of the *Unicode encoding
scheme.
See also ISO-7, CHARACTER SET.
ASF Abbrev. for aspect source flag.
ASIC (applications specific integrated circuit) An integrated circuit designed to
carry out one or more specific functions and implemented on a single semiconductor chip
in order to reduce the size of a system, reduce the number of interconnections that are
required at printed circuit board level, and to reduce the number of components that, at a
lower level of integration, might otherwise be used to implement the function. ASICs are
economic where production runs in the high hundreds are required and have become
viable due to advances in VLSI design, layout, and fabrication technology. See also
SEMICUSTOM.
ASM (algorithmic state machine) A technique, based upon annotated charts, used
in the design of computer hardware.
AS number See AUTONOMOUS SYSTEM.
ASP See ACTIVE SERVER PAGES.
aspect The characteristic that changes the appearance of a graphical output primitive.
Typical aspects are colour, line width, and line style. Aspects define the property but not
how it is bound to an output primitive. See also ATTRIBUTE.
aspect ratio The ratio of width to height for a specified rectangular area such as a
display surface or window.
aspect source flag (ASF) A flag associated with a graphical output primitive to define
whether an *aspect associated with the primitive (colour, etc.) is defined by a value
specified globally or for a specific device.
assembler 1. A program that takes as input a program written in *assembly language
and translates it into *machine code or *relocatable code. 2. Colloquial An assembly
language.
assembly language A notation for the convenient representation of machine-code
programs in human-readable terms. An assembly language allows the programmer to use
alphabetic operation codes with mnemonic significance, to use personally chosen
symbolic names for memory registers, and to specify *addressing schemes (e.g. indexing,
indirection) in a convenient way. It also allows the use of various number bases (e.g.
decimal, hexadecimal) for numerical constants, and allows the user to attach *labels to
lines of the program so that these lines can be referenced in a symbolic manner from other
parts of a program (usually as the destination of a control transfer or jump).
assertion A statement that is claimed to be true. When placed within a program, an
assertion indicates what the programmer thinks is a true statement about the behaviour of
the program at that place: this is exploited in the *Floyd method for proving program
correctness.
assertion checker An automated system for checking whether *assertions attached to
the text of some program are consistent with the *semantics of that program as given by
some formal semantic definition of the programming language. See also MECHANICAL
VERIFIER.
assignment-free language A programming language that does not include the concept
of assigning values to variables. Common examples are *functional languages.
assignment statement A fundamental statement of all programming languages (except
*declarative languages) that assigns a new value to a variable. The typical form in Algollike languages is
where := is read as ‘becomes’; the symbol suggests a left-pointing arrow to signify the
conveyance of a value to the variable on the left. Other languages (particularly Basic, C,
C++, Java, and Fortran) use = as the assignment operator, e.g.
This leads to problems in expressing the concept of equality. Basic, being an
unsophisticated language, is able to use = for both purposes; C, C++, and Java use = = for
equality and Fortran uses .EQ.
associative addressing A method of addressing a location by virtue of its data content
rather than by its physical location. An access is made by specifying something about the
contents of the desired location rather than by using a normal address. An *associative
memory (or content-addressable memory) provides a search mechanism to match on the
whole or on partial memory contents for a word that satisfies the match. In some
applications it may be permissible for more than one word to be found. The desired data
will be in close association or proximity, possibly as an additional field of the retrieved
word. An *associative processor exploits the parallel-access facility of associative
memory to achieve a form of parallel processing.
associative law See ASSOCIATIVE OPERATION.
associative memory (content-addressable memory, CAM) A memory that is capable
of determining whether a given datum—the search word—is contained in one of its
addresses or locations. This may be accomplished by a number of mechanisms. In some
cases parallel combinational logic is applied at each word in the memory and a test is
made simultaneously for coincidence with the search word. In other cases the search word
and all of the words in the memory are shifted serially in synchronism; a single bit of the
search word is then compared to the same bit of all of the memory words using as many
single-bit coincidence circuits as there are words in the memory. Amplifications of the
associative memory technique allow for *masking the search word or requiring only a
‘close’ match as opposed to an exact match. Small parallel associative memories are used
in *cache memory and *virtual memory mapping applications.
Since parallel operations on many words are expensive (in hardware), a variety of
stratagems are used to approximate associative memory operation without actually
carrying out the full test described here. One of these uses *hashing to generate a ‘best
guess’ for a conventional address followed by a test of the contents of that address.
Some associative memories have been built to be accessed conventionally (by words in
parallel) and as serial comparison associative memories; these have been called
orthogonal memories. See also ASSOCIATIVE ADDRESSING, ASSOCIATIVE PROCESSOR.
associative network A means of representing relational knowledge as a labelled
directed *graph. Each vertex of the graph represents a concept and each label represents a
relation between concepts. Access and updating procedures traverse and manipulate the
graph. A semantic network is sometimes regarded as a graphical notation for *logical
formulas. See also KNOWLEDGE REPRESENTATION.
associative operation Any *dyadic operation ∘ that satisfies the law
for all x, y, and z in the domain of ∘. The law is known as the associative law. An
expression involving several adjacent instances of an associative operation can be
interpreted unambiguously; the order in which the operations are performed is irrelevant
since the effects of different evaluations are identical, though the work involved may
differ. Consequently parentheses are unnecessary, even in more complex expressions.
The arithmetic operations of addition and multiplication are associative, though
subtraction is not. On a computer the associative law of addition of real numbers fails to
hold because of the inherent inaccuracy in the way real numbers are usually represented
(see FLOATING-POINT NOTATION), and the addition of integers fails to hold because of the
possibility of *overflow.
associative processor (content-addressable parallel processor) A processor having
parallel processing capabilities by virtue of the parallel memory manipulation properties
of *associative memory. The ability to interrogate and write to selected bits in each word
of associative memory in parallel makes possible word-parallel bit-serial operations,
which are efficient for the manipulation of large data sets.
A-stability See STABILITY.
astable An electronic circuit that has no stable output state and whose output therefore
oscillates between two voltage levels. As a result it functions as a square-wave oscillator
or a pulse generator. See also MULTIVIBRATOR.
asymmetric encryption See PUBLIC KEY ENCRYPTION.
asymmetric relation A *relation R defined on a set S and having the property that
then it is never the case that
where x and y are arbitrary elements of S. The usual ‘is less than’ ordering defined on the
integers is an asymmetric relation. See also ANTISYMMETRIC RELATION, SYMMETRIC
RELATION.
asymptotic Denoting a (usually simpler) value that in the limit gets closer and closer,
indeed arbitrarily close, to a given value; for example,
is asymptotic to n * n as n tends to infinity.
asymptotic analysis The analysis of a situation under limiting conditions, frequently
involving *asymptotic expansions.
asymptotic expansion A series
that may either converge for large values of |z| or diverge for all values of z, is called an
asymptotic expansion of the function F(z), valid in a given range of values of arg z, if, for
every fixed value of n, the expression
tends to zero as | z| → ∞, while arg z remains in the given range.
asynchronous Involving or requiring a form of computer control timing protocol in
which a specific operation is begun upon receipt of an indication (signal) that the
preceding operation has been completed, and which indicates to a subsequent operation
when it may begin. The rate at which operations proceed is determined by the time
required by individual operations. See also INTERRUPT, GLITCH. Compare SYNCHRONOUS.
asynchronous bus A bus that interconnects devices of a computer system where
information transfers between devices are self-timed rather than controlled by a
synchronizing clock signal. A connected device indicates its readiness for a transfer by
activating a request signal. A responding device indicates the completion of this transfer
by activating an acknowledge signal. The time required to complete the transaction is
determined by the response times of the devices and the delays along the interconnecting
bus and may vary for different devices.
asynchronous circuit An electronic logic circuit in which logic operations are not
performed under the control of a clock signal with the result that logic transitions do not
occur (nominally) simultaneously. In asynchronous circuits transitions may follow one
another with minimum delay, but at some cost in circuit complexity and risk of incorrect
operation.
asynchronous interface A set of signals that comprises the connection between
devices of a computer system where the transfer of information between devices is
organized by the exchange of signals not synchronized to some controlling clock. A
request signal from an initiating device indicates the requirement to make a transfer; an
acknowledging signal from the responding device indicates the transfer completion. This
asynchronous interchange is also widely known as *handshaking.
asynchronous TDM See TIME DIVISION MULTIPLEXING.
asynchronous transfer mode See ATM.
asynchronous transmission A method of data transmission in which data is
transmitted in small fixed-size groups, typically corresponding to a character and
containing between five and eight bits, and in which the timing of bits within the group is
not directly determined by some form of clock. The standard practice is to precede each
group of data by a start bit, whose duration indicates the expected duration of each
subsequent bit within the group, and to follow the group by a stop bit whose duration is
at least one and a half times that of the start bit. The presence of the start and stop bits
necessarily reduces the rate of sending genuine data bits. Asynchronous transmission is
normally used only for relatively slow data rates, up to say 2400 bps. See also
SYNCHRONOUS TRANSMISSION.
ATA (Advanced Technology Attachment) A parallel interface used for attaching
storage devices and supported by the IBM PC BIOS (see also IDE, EIDE). ATA was
followed by ATA-2, used in the *EIDE interface; the current version is ATA-7. ATA is
now called Parallel ATA (PATA) to distinguish it from *Serial ATA, which has largely
superseded it.
Atanasoff-Berry computer (ABC) The first known attempt at an electronic digital
computer, designed in 1936–38 by John Atanasoff, a mathematics professor at Iowa State
College, primarily for the solution of linear algebraic equations. It was built by Atanasoff
and his assistant Clifford Berry, using vacuum tubes (valves) as the logic elements, but
was never fully operational and was abandoned in 1942. Atanasoff’s ideas were used by
Mauchly in his design of *ENIAC. A replica has been constructed by Iowa State
University and was first demonstrated in 1997.
AT&T (American Telephone and Telegraph Company) From its origins in
1875 to 1984, AT&T ran the Bell System, the US telephone monopoly. In the computer
industry, the company is best known for the work carried out at its *Bell Telephone
Laboratories. In 1984, the company was broken up into eight companies (the new AT&T
itself and seven regional operating companies), following an agreement with the US
Department of Justice. In 1991, AT&T acquired the computer company *NCR; other
acquisitions followed. In 1996, however, a major restructuring took place in which AT&T
split into three companies, a systems and equipment company (Lucent Technologies), a
computer company (NCR), and a communication services company (AT&T itself). AT&T
was bought by SBC Communications, Inc., in 2005, which then renamed itself ‘AT&T
Inc’.
ATL Abbrev. for automated tape library.
Atlas The first computer to incorporate many features now considered standard,
including: a virtual (logical) address space larger than the actual (physical) address space;
a *one-level memory using core backed by drum; an architecture based on the assumption
of a software operating system, with hardware features to assist the software. The design
commenced in 1956 under Tom Kilburn at the University of Manchester, UK, and the
project was supported from 1958 by Ferranti Ltd. The prototype was operating in 1961
and production models appeared in 1963. See also VIRTUAL MACHINE.
ATM 1. (asynchronous transfer mode) A form of *switching system designed to
minimize the magnitude of switching times. In most switching systems an entire *packet
must be received and checked for accuracy before the software within the switch will
initiate the onward transmission of the packet to the next switch or to the final destination.
By using a simple fixed structure for the data, ATM can reduce the time needed to
recognize and process packets as they move through a switch.
In common with other systems, data to be transmitted in ATM is subdivided into a
number of small units that are transmitted in sequence and reassembled at the receiving
end. ATM uses a very small fixed‐length *cell, with each cell having an identical format.
The format of the cell guarantees that the addressing information for each cell is always
found in a fixed position and format. This allows the actual switching operation for each
cell to be implemented in table-driven firmware, which in turn allows a very short
switching time for each cell so that very large numbers of cells can be switched each
second.
An ATM cell is made up of a header, holding 5 bytes, and a body, holding 48 bytes.
The header holds all the addressing, routing, and control information and is transmitted as
the first part of the cell, followed immediately by the body, which contains the user’s data.
The accuracy of the header is checked by a single parity bit forming part of the header. As
soon as the header is received and verified as having the correct parity, the software in the
switch will immediately initiate the onward transmission of the complete cell, attaching it
to a queue of outgoing cells on the appropriate connection. The overall effect is that the
onward transmission of the cell may well overlap the receipt of the body of the cell, being
started shortly after the receipt of 5 bytes (i.e. the end of the header) rather than after 53
bytes (i.e. the receipt of the entire cell). The switching algorithms used are also very
simple, relying on the creation of a *virtual circuit before the actual transmission of user
data, with the identity of the virtual circuit embedded in the header and serving to define
the switching action by what is in effect a table lookup. This simple algorithm can be
implemented largely as *firmware. ATM can operate at rates up to 10 Gbps and is a key
component of many telecommunications networks and *ADSL implementations. 2.
(automated teller machine) A computer-controlled device that dispenses cash, and
may provide other services, to customers who identify themselves with a *pin.
atom A value that cannot be decomposed further. In *Lisp an atom is a representation of
an arbitrary string of characters or the special atom NIL, i.e. nothing. The word is also
used as a predicate in Lisp-like languages to determine whether an arbitrary value is or is
not an atom:
always yields FALSE but
and
evaluate to TRUE.
atomic action An indivisible sequence of primitive operations that must complete
without interruption (or that can be expected to do so), or can be considered as
instantaneous.
atomic formula See PROPOSITIONAL CALCULUS.
atomicity A term used in connection with the extent to which a resource can be
subdivided. For some resources the amount allocated to a process can be completely
arbitrary; an example is processor time (outside *critical sections). For other resources
allocations must be in terms of a smallest allowable amount; an example might be
memory, which may only be allocated in multiples of, say, 1024 bytes.
attach To make a device available for use by a system. On simple systems this may be
achieved by simply engaging the appropriate plug and socket of the interface and putting
the device into a state of readiness. In more complex systems it is often necessary to make
the operating system aware of the type of device and the address of the connector to which
it is attached. It is also necessary to ensure that the operating system has available the
appropriate utility program for that device. In some designs the operating system can itself
determine the type and address of all the peripherals that are electrically connected. See
also INSTALL, PLUG -AND PLAY.
attachment A data file that is embedded in an *email message. The technicalities of this
embedding are hidden by the user agent—to users, the data file appears as a distinct object
attached to the message.
attenuation The reduction in amplitude of a *signal when it passes through a medium
that dissipates its energy. It is usually measured in decibels (attenuation then being
negative while gain is positive).
attribute A defined property of an entity, object, etc. In computer graphics it is a
particular property that applies to a graphical output primitive; lines have attributes such
as line width, colour, and line style. See also ERA MODEL, INHERITANCE.
attribute grammar A *context-free grammar that has been augmented with attribute
evaluation rules or conditions enabling non-context-free aspects of a language to be
specified. Associated with each symbol of the grammar is a finite set of attributes or
conditions. Rules for evaluating the attributes are associated with the productions of the
grammar. Using these rules the attributes of each node in a *parse tree may be evaluated.
The attributes may either be inherited, meaning that their values are a function of the
attribute of their parent node in the parse tree, or synthesized, meaning that their values
are a function of the attributes of their children in the parse tree.
The concept of an attribute grammar was introduced by D. E. *Knuth who suggested
that the semantics of a program could be specified by the attributes of the root node in its
parse tree.
audio card Another name for sound card.
audio response unit An obsolete type of output device that could give a spoken
response. The message could be prerecorded phrases, a collation of prerecorded words, or
it could be synthesized from digital data. This function is now performed by software. See
SOUND CARD.
audit trail 1. A record showing the occurrence of specified events relevant to the
security of a computer system. For example, an entry might be made in the audit trail
whenever a user logs in or accesses a file. Examination of the audit trail may detect
attempts at violating the security of the system and help to identify the violator. 2. The
external file that contains the sequential flow of information between the application and a
graphics system.
augmented addressing (augmenting) A method of expanding a short specified
address by concatenating the specified address (as low-order address bits) with the
contents of the augmented address register (as high-order bits) to produce an
*absolute address. See also ADDRESSING SCHEMES.
augmented reality See VIRTUAL REALITY.
augmented transition network A generalization of *finite-state automata that is
used to represent natural-language grammars and hence to parse and generate naturallanguage text (see PARSING, NATURAL-LANGUAGE UNDERSTANDING). The grammar is
represented as a set of labelled directed *graphs whose labels are word categories, or
recursive calls to itself or other graphs, or calls to update or access a set of registers.
Procedures can be associated with the arcs to build a *parse tree or a semantic
representation, or to generate text, etc.
AUI (attachment unit interface) An interface connecting an *Ethernet transceiver
to the controller.
AUP Abbrev. for acceptable use policy.
authentication A process by which subjects, normally users, establish their identity to a
system. This may be effected by the use of a *password or possession of a physical
device, e.g. a coded token. In reverse authentication, the object is required to
authenticate to the subject, e.g. to establish user confidence regarding the object, before
sensitive information is entered into a system.
authentication code An appendage to a message that indicates to the recipient whether
the message has been tampered with during transit. Authentication codes can be derived
cryptographically as a function of the message using either *public key encryption or a
secret key held by the sender and recipient. See also CRYPTOGRAPHY.
authoring language A *high-level language used for creating CAL (*computerassisted learning) and other educational and training software packages.
authorization A process by which users, having completed an *authentication stage,
gain or are denied access to particular resources based on their entitlement.
autobaud Colloquial expression for automatic baud rate detection. A feature of some
communication systems that automatically detect and adapt to the transmission speed of
incoming data.
autochanger Short for automatic disk changer. A device in which a single read head is
linked to a caddy containing several CD-ROMs. The head is moved to select the required
disk.
autocode The generic name given to the precursors of modern high-level programming
languages. The term is now obsolete.
autodial A modem feature that allows it to dial a telephone number automatically.
autodump See AUTOLOAD.
autoload 1. Automatic operation of a program or procedure. See AUTOPLAY. 2. A
facility provided on some tape transports whereby a tape reel is automatically located and
clamped on the hub and the tape is then automatically threaded. 3. A facility in a magnetic
tape subsystem whereby a single unqualified command from the host causes a quantity of
data from the tape mounted on a transport, selected according to predetermined rules, to
be read and transferred to the host. The function is provided to assist in initial program
loading. The corresponding process in which data is written to tape is known as
autodump.
autoload cartridge See MAGNETIC TAPE CARTRIDGE.
automated disk library See OPTICAL DISK LIBRARY.
automated reasoning The use of computer programs that perform *inference
processes. see THEOREM PROVING, PRODUCTION RULE SYSTEMS.
automated tape library (ATL) A peripheral device in which a large number of
cartridges or reels of magnetic tape are stored in cells in a storage matrix. Any chosen
cartridge can be transferred mechanically to a tape transport where it can be accessed by
the host system, and then returned to the same or another cell. The device also contains
one or more drawers that can also be reached by the transfer mechanism: these are
accessible to an operator so that cartridges can be introduced to or removed from the
library.
automatic coding A term used in the early stages of development of computers to
signify the use of a primitive high-level language or *autocode, as contrasted with the
more usual ‘hand coding’.
Automatic Computing Engine See ACE.
automatic data conversion The conversion of data from one form to another without
any direct action by the programmer, e.g. decimal integers on input to stored form of
integer. Such facilities are commonly available for individual items of data in modern
programming languages. Many database input systems carry out more complex
transformations of the data, and at the extreme may translate data from the format of one
database system to another.
automatic data processing (ADP) See DATA PROCESSING.
automatic programming 1. The use of a high-level programming language. The term
in this sense is now obsolete. 2. Generation of programs automatically from a
nonprocedural description of their desired effect. The term is falling into disuse. See also
GENERATOR.
automaton A general term for a device that mechanically processes an input string with
the aim either of deciding whether it belongs to some set of strings (i.e. to a *formal
language) or of producing an output string.
There are two senses in which an automaton A is said to recognize (or accept) a
language L: for any input string w,
(a) A halts and indicates that it accepts or rejects w, corresponding with whether or not
w ∈ L;
(b) A halts if w ∈ L and fails to halt otherwise.
In the case of *Turing machines, the languages recognizable in sense (a) and the weaker
sense (b) are the *recursive sets and the *recursively enumerable sets, respectively.
Turing machines are a particular kind of automaton. Other kinds include the *finitestate automaton, *pushdown automaton, and *linear-bounded automaton. *Sequential
machines are automata that produce an output string. According to the *Church–Turing
thesis, if a language is recognizable (in either of the above senses) by any kind of
automaton, it is so recognizable by a Turing machine.
automorphism An *isomorphism from an *algebra to itself.
autonomous guided vehicle (AGV) A form of mobile robot that can transport goods
and materials from one place to another in a constrained environment, usually in
manufacturing industries but also increasingly in service and health-care applications. See
also MOBILE ROBOTICS.
autonomous system On the Internet, a network or group of networks that can be
viewed by the rest of the Internet as a single system for routing purposes. Autonomous
systems must be registered and allocated a unique AS number by *IANA, and their
routers must communicate with each other using the *Border Gateway Protocol.
Autonomous systems are usually run by large organizations, in particular Internet Service
Providers.
autoplay A feature on personal computers in which a CD is automatically recognized on
insertion. In the case of an audio or video CD the system opens the appropriate media
application and begins to play the CD. If the CD contains a program (e.g. to install new
software) the system runs the program.
autoregression See TIME SERIES.
autosave A program feature that automatically saves data at user-defined intervals,
ensuring that in the event of a system failure, a recent copy of the data will be available.
autothread A facility provided on some open-reel tape transports whereby magnetic
tape is automatically threaded from the file reel through the tape path and secured to the
hub of the take-up reel see also (AUTOLOAD). The first autothreading transports required
the tape reels to be manually mounted on the transport hub. More recent types only require
the tape reel to be ‘posted’ through a slot in the transport housing.
auxiliary memory Another name for backing store.
availability 1. The probability that a system will be capable of functioning according to
specification at any point in time throughout a stated period of time. Compare
RELIABILITY. 2. The ratio of *available time to total time for a system in a given period.
available list (free list) A list of the unallocated parts of a sharable resource. Some
resources, such as processors, are shared by being allocated in their entirety to a *process
for a period of time. Other resources consist of a number of functionally similar units, e.g.
pages within memory, and the resource is shared by units of the total resource being
allocated to a process. This allocated share remains with the process until the process
releases it. The available list provides the resource controller with a convenient record of
which parts of the resource are not allocated to a process. See also FREE-SPACE LIST.
available time The amount of time in a given period that a computing system can be
used by its normal users. During available time the system must be functioning correctly,
have power supplied to it, and not be undergoing repair or maintenance. Available time is
comprised of productive time and idle time. Productive time is the amount of time in
a given period that a system is performing useful work for the users. Idle time is the
amount of time in a given period that a system is performing no useful function. It usually
occurs when waiting for completion of some I/ O function or backing-store transfer.
avatar A graphical object that is created and maintained by software to mimic a human
or other being. Avatars are most often used in computer games, especially *virtual worlds,
to represent the player within the game.
average-case analysis See ALGORITHM.
avionics In a computing context, the use of hardware and software to control aircraft and
space vehicles. Traditionally, each key function or application had its own hardware and
software, which was isolated from other systems. However, the newer approach, known as
*integrated modular avionics (IMA), enables different functions to share the same
platform.
AVL tree (height-balanced tree) A *binary search tree such that for each node the
*heights of the left and right subtrees differ by at most one. Thus the *balance of each
node is − 1, 0, or + 1. During insertion or deletion, a node in an AVL tree may become
critical or unbalanced and then the tree has to be reorganized to maintain its balanced
property. The tree is named after its originators, Georgy Maximovitch Adel’son-Vel’skii
and Yevgeney Mikhailovitch Landis.
AWK An interpreted language for manipulating textual data. Programs take the form of a
collection of patterns expressed as *regular expressions, with associated actions in a Clike syntax to be performed if the pattern appears in the input. The name is derived from
the initials of the authors—Alfred Aho, Peter Weinberger, and Brian Kernighan.
axiom In logic, a statement that is stipulated to be true for a particular chain of reasoning.
See DEDUCTION.
axiomatic semantics An approach to defining the *semantics of programming
languages in which the meaning of a language is given by describing the true statements
that can be made about programs in that language using axioms and proof rules. Typically
the statements are written in some suitable formal notation, such as *predicate calculus or
*modal logic, and concern the states before and after running the program. For example,
the formula
expresses: if a state satisfies property p then there is an output state after executing
program S, and it satisfies property q. This assertion is called a total correctness
assertion; another type is a partial correctness assertion.
The approach grew out of the early work of R. W. Floyd and C. A. R. Hoare. Though
originally intended as methods for *program correctness proofs (in particular as an
alternative notation for the *Floyd method), it was observed that *Hoare logic could also
be viewed as an axiomatic semantics for a very simple programming language, namely the
*while programming language. The approach was consequently extended to the
description of practically useful languages.
axiomatic specification A particular approach to writing *abstract specifications for
programs, modules, or data types. What distinguishes this approach is the fact that
specifications are expressed purely in terms of the effects of operations characteristic of
the system, and not in terms of their implementations or of the particular representation of
any data involved. A specification in this style consists of a collection Σ of operation
names, together with a collection T of axioms that express how these operations combine
with each other. The operation names can be thought of as comprising a *signature, and
the axioms are written in a formal logical language over the signature, such as first-order
logic; thus T could be a first-order theory over Σ. An implementation of the operation
names can be thought of as an *algebra over that signature, satisfying the axioms. See also
FORMAL SPECIFICATION. Compare CONSTRUCTIVE SPECIFICATION.
axonometric projection A *projection where the view plane is perpendicular to the
direction of projection and the major axes of the object do not coincide with the direction
of projection.
b (B) Symbols for byte.
B A programming language derived from *BCPL, developed in 1970 as an
implementation language for the PDP-11 version of the *UNIX operating system. Like
BCPL, B was a type-free language: it was soon superseded by *C, the main difference
being the addition of types.
Babbage A machine-oriented high-level language (*MOHLL) for the GEC 4080 series
machines and their derivatives. Particularly noteworthy is the fact that it was supplied by
the manufacturer and entirely replaced the assembler for these machines.
Babbage, Charles (1791–1871) British mathematician and engineer who
designed calculating machines that anticipated the principles of modern computers.
Educated at Cambridge University, he was a fellow of the Royal Society from 1816 and
Lucasian Professor of Mathematics at Cambridge (1828–39). Babbage sought to create a
machine that could calculate and print numerical tables (mathematical tables, navigational
tables, etc.) automatically, thus eliminating the high error rate inevitable in human
calculation. His Difference Engine, conceived in 1821, could calculate a series of
polynomial functions from initial values set by the operator; a later simplified version,
Difference Engine 2, was designed around 1847–49. The *Analytical Engine, conceived
around 1834, was a general-purpose arithmetical calculator that could be programmed by
*punched cards. It included separate memory and processing units, and its programming
capabilities included *loops and *conditional jumps. However, neither machine was
actually constructed in Babbage’s lifetime and they were largely forgotten after his death.
Although his work is now credited as a forerunner of the modern computer—the London
Science Museum constructed a working replica of Difference Engine 2 in 1991 to
celebrate the bicentenary of his birth—his significance in the development of computing is
questionable.
backbone network (bearer network) The underlying *nodes of a multilevel
distributed network, providing communication services for the rest of the network (the
hosts). The backbone network usually consists of dedicated packet, message, or circuit
switches connected by high-capacity trunk circuits, along with some special diagnostic
and control equipment.
Backbone networks must be extremely reliable. For this reason they are usually built
out of homogeneous (essentially similar) processors and run by a centralized
administration, although the rest of the network may be highly heterogeneous and under
distributed authority. Distributed procedures are often used to control the operation of the
backbone network in order to reduce the possibility that a single failure might disrupt the
entire network. When a central control system is used, there is usually a standby system
ready to take over when the active system fails.
Backbone networks are often characterized by distributed traffic patterns. *Packet
switching may be used internally by backbone networks to take advantage of these traffic
patterns, even though the backbone network may present a *circuit switching appearance
to external hosts (see VIRTUAL CIRCUIT). Traffic-pattern analysis may be used to construct
backbone networks that minimize certain network parameters, such as average delay,
circuit costs, etc. Backbone networks may themselves be multilevel, incorporating lowcapacity terrestrial links, high-capacity terrestrial links, and satellite links.
backdoor A means whereby an individual can gain access to a system without passing
the normal *login process. Backdoors are often installed by *hackers, *Trojan horses, and
*worms.
back driving A technique used in the production and field testing of complex logic
systems, in which a signal of short duration is injected into the output of an element
forcing it to the desired state regardless of any signals that would otherwise define its
state. This technique simplifies testing and reduces the need for additional logic purely for
test purposes. It must be used carefully if damage is to be avoided.
back end (engine) The part of an application that stores and manipulates data. It
receives its instructions and input from and sends its output to the application’s front
end, which is responsible for interacting with the user. Separating the two has advantages:
for example, it is often necessary to tweak the front end in response to user feedback, and
it is convenient to do this in the knowledge that the back end will continue to work
unchanged. However, the rigidity with which this separation is implemented varies
between applications.
back-end processor A processor that is used for some specialized function such as
database management, or a special-purpose ALU. Compare FRONT-END PROCESSOR.
back-face detection Determination of whether a face of an object is facing backward
and therefore invisible. The usual test is whether the surface normal points into the screen
or not. Special attention is needed for faces on the silhouette of the object.
background processing Processing without the opportunity for interaction with the
user, within a system that provides for interaction by *foreground processing. Background
processing is given a lower priority than foreground processing for access to CPU time
and other machine resources.
backing store (auxiliary memory, bulk memory, secondary memory) The memory
on which information is held for reference but not for direct execution. Backing store is
the lower part of the *memory hierarchy, in which the speed of access to the information
stored is matched to the requirements of the system so as to achieve the greatest economy.
The term may be used either in an absolute sense, in which case it usually refers to a disk,
or it may be used in a relative sense to refer to the device next down in the memory
hierarchy.
backplane A hardware device that may be considered as the physical ‘plane’ by means
of which a computer or similar device communicates with its various peripherals.
Normally a backplane consists of a series of multiway sockets that are wired in parallel
and are connected to the internal wiring, or *buses, of the computer. Peripherals may then
be attached to the computer simply by inserting compatible interface cards into any one of
these sockets.
back plane A plane parallel to the *view plane and on the opposite side to the point of
projection in a viewing system. Objects behind the back plane are not displayed.
back propagation A supervised learning procedure for training feed-forward *neural
networks to learn from test samples. A series of test cases, known as the training set, are
presented to the net, one at a time. The errors between the actual and desired output of the
net are propagated backward to the internal layer(s) in order to adjust the connection
weights in proportion to their contribution to the error. The least mean squares of the
errors is often used as the optimizing criterion.
backtracking A property of an algorithm that implies some kind of tentative search for
a goal, and the possibility that any search path may turn out to be a dead end; the
algorithm then retreats back down the search path to try another path. The technique is
generally suitable for solving problems where a potentially large but finite number of
solutions have to be inspected. It amounts to a systematic tree search, bottom-up.
backup A resource that is, or can be used as, a substitute when a primary resource fails
or when a file has been corrupted. The word is also used as a verb, to back up, i.e. to
make a copy in anticipation of future failure or corruption. Thus a *dump forms a backup
to be used in cases where a user’s file has become unusable; the taking of the dump can be
regarded as backing up the version on disk.
Backus normal form, Backus–Naur form See BNF.
backward chaining (goal-driven processing) A strategy for controlling inference
procedures, or goal selection, during problem solving. In the case of a rule-based system, a
rule whose consequent part matches the desired goal can be used to generate subgoals
from the rule’s antecedent part. The subgoals then become target goals and the process is
repeated recursively until all subgoals have been satisfied. Compare FORWARD CHAINING.
backward compatibility See COMPATIBILITY.
backward error analysis See ERROR ANALYSIS.
backward error correction (backward correction) Error correction that occurs in a
channel through the detection of errors by the receiver: the receiver responds to any errors
in a *block by requesting the transmitter to retransmit the affected block. Backward
correction requires a *return channel, by contrast with *forward error correction.
There are two ways in which the return channel can be used to indicate errors: positive
acknowledgment and negative acknowledgment. With positive acknowledgment,
the receiver returns confirmation of each block received correctly, and the transmitter is
prepared to retransmit a block that is not acknowledged within an appropriate time. With
negative acknowledgment, the receiver returns a request to retransmit any block received
erroneously, and the transmitter is prepared to retransmit such a block (implying that the
transmitter retains a copy of every block sent, indefinitely).
Since the return channel itself may be prone to errors, and to limit the amount of storage
necessary at the transmitter, the positive acknowledgment and retransmission (PAR)
technique is generally preferred. See also ERROR-DETECTING CODE.
backward error recovery A mechanism that, on discovery of an error, restores a
system to an earlier state (a *recovery point) by undoing the effects of operations that have
been performed since that earlier state was last current. This is achieved by saving
*recovery data during the execution of operations.
badge reader A device designed to read information encoded into a small plastic card.
It is often part of a data collection system in which each operator can be identified by the
badge they present to the machine. It can also be used to control access to areas associated
with electrically operated door locks, and when built into keyboards and other parts of
information systems it can control access to information. The badge is usually of plastic,
or paper laminated between plastic, and may contain a photograph and other information
in addition to what is encoded. The encoding takes many forms, some of which are
proprietary and complex to achieve greater security.
bad sector A magnetic disk *sector that has become defective and cannot store data
reliably. The usual cause is damage to the magnetic medium, and it is quite usual for disks
to acquire bad sectors over time in normal usage. Such sectors can be marked as ‘bad’,
traditionally by utility programs or the operating system, so that they are not used again. If
possible their data is recovered and transferred to vacant good sectors. Modern disks
initially contain unused sectors that can be transparently substituted for bad sectors by the
disk controller, with the rest of the system being unaware that there has been a problem.
The accumulation of many bad sectors is often a sign that the magnetic surface is starting
to fail and that the disk should be replaced.
bag (multiset) 1. An unordered collection of items where more than one instance of the
same item is allowed. 2. Any data structure representing a bag. Representations are
similar to those used for *sets. In a set, however, it is only necessary to represent the
presence (or absence) of an element whereas in a bag it is also necessary to represent the
number of times it occurs.
balance (of a node in a *binary tree) A measure of the relative size of the left and right
subtrees of the node. Usually, the balance is defined to be the height of the left subtree
minus the height of the right subtree (or the absolute value thereof). However, formulas
are also used that measure balance in terms of the total number of nodes in the left and
right subtrees.
balanced (height-balanced, depth-balanced) Denoting a tree that has *height (and thus
*depth) approximately equal to the logarithm of the number of nodes in the tree. This
property is usually achieved in a binary tree by ensuring every node is balanced according
to some measure. See also AVL TREE, B-TREE.
balanced cable A form of cable with two conductors per signal path. Equal and
opposite signals are applied simultaneously to each conductor. Balanced cables are used
where high-speed, long distance, and minimum *EMI are essential. See also CABLE,
TWISTED PAIR. Compare UNBALANCED CABLE.
band 1. A set of adjacent tracks on a magnetic or optical disk. 2. A section of the
frequency spectrum lying between limits that are defined according to some requirement
or to some functional aspect of a given signal or transmission channel. When used as a
suffix the word is a contraction of *bandwidth, as in narrowband, wideband.
band-limited channel A transmission channel with defined finite *bandwidth. All
physically realizable channels are band-limited by the constraints of the transmission
medium and the drivers and receivers. The *bandwidth may be deliberately constrained by
*filtering to limit the emission of or susceptibility to *EMI. See also CHANNEL CODING
THEOREM, DISCRETE AND CONTINUOUS SYSTEMS.
band matrix A *sparse matrix in which the nonzero elements are located in a band
about the main diagonal. If A is a band matrix such that
where p and q are the distances above and below the main diagonal, then the bandwidth
w is given by
band-pass filter A *filtering device that permits only those components in the
frequency domain whose frequencies lie between two critical values to pass through with
little attenuation, all other components being attenuated. See also BAND-STOP FILTER,
HIGH-PASS FILTER, LOW-PASS FILTER.
band printer (belt printer) An obsolete type of *impact *line printer in which the font
—characters and timing marks—is etched on a steel band. The operating principle,
involving horizontal movement of the font, is similar to that of the earlier *chain printer
and *train printer. Machines were available at speeds from 300 lpm to 2500 lpm, the
higher-speed printers using a 64 character repertoire.
band-reject filter Another name for band-stop filter.
band-stop filter (band-reject filter) A *filtering device that permits only those
components in the frequency domain whose frequencies lie below one critical value or
above another (higher) critical value to pass through with little attenuation; all components
whose frequencies lie between the critical values are attenuated.
If the two critical values are very close together, the device is called a notch filter.
Notch filters are used, for example, in *modems in order to prevent certain components of
the data signal from interfering with equipment in the telephone system. See also BAND-
PASS FILTER, HIGH-PASS FILTER, LOW-PASS FILTER.
bandwidth 1. (of a transmission *channel) A measure of the information-carrying
capacity of the channel, usually the range of *frequencies passed by the channel. This will
often consist of a single *passband, but may instead consist of several distinct
(nonoverlapping) passbands. Each passband contributes to the bandwidth of the channel a
quantity equal to the difference between its upper and lower frequency limits; the sum of
all such differences plus necessary guard-bonds gives the total bandwidth required.
In these cases bandwidth is measured in frequency units, i.e. hertz (Hz). If the
bandwidth is considered in a transform domain other than frequency (such as *sequency)
then it is measured in the appropriate units. In defining channels and filters in the
*frequency domain, bandwidth, unless otherwise defined, is assumed to be the frequency
range between the points at which the frequency response is 3 decibels lower than the
passband frequency and is sometimes known as the half-power bandwidth. See also
BAND-LIMITED CHANNEL, CHANNEL CODING THEOREM, NYQUIST’S CRITERION. 2. A
measure of the rate of transfer of digital information, usually expressed in bits or bytes per
second. 3. See BAND MATRIX.
bank switching A technique for *memory management formerly used in
microcomputer systems that required more memory than the microprocessor could
directly address. Such systems contained several banks of *RAM, all sharing the same
range of memory addresses, with only one bank accessible at a time. Switching between
banks was software controlled.
banner A feature on a Web page used for advertising. Typically, banners span the full
page, are about one inch high, and contain graphics and links to other sites. They are a
common advertising feature.
bar code (barcode) A printed machine-readable code that consists of parallel bars of
varied width and spacing. The application most commonly observed is the coding on food
and other goods that is read at the checkout and translated into a line of print on the bill
showing product and cost. The information is also used to update stock records and
provide sales statistics.
In the US the code used for this purpose is the Universal Product Code (UPC) and in
Europe it is the European Article Numbering (EAN) code. The UPC decodes initially into
two five-digit numbers. The first five identify the supplier and the next five are the item
number within that supplier’s range of goods. From this information the checkout terminal
can access the details to be printed on the bill. The EAN code has a two-digit number to
indicate country of origin, then the two five-digit numbers, followed by a check digit. The
EAN arrangement simplifies the allocation of codes to suppliers. Only the two-digit code
and the format need to be agreed internationally.
Other codes are used for shop-floor data collection, library systems, and monitoring the
circulation of confidential documents. The advantage of bar codes is that they can be
produced and read by relatively simple equipment. Codes used for these purposes are
Code 39, Codabar, and ‘2 of 5’. See also BAR-CODE SCANNER.
Two-dimensional (2D) bar codes, e.g. PDF417, are becoming more common but do
require a special reader. PDF417 is a two-dimensional bar code that can store up to about
1800 printable ASCII characters or 1100 binary characters per symbol. The symbol is
rectangular; the dimensions can be adjusted to grow with the data. There is no theoretical
limit on the amount of data that can be stored in a group of PDF–417 symbols.
bar-code scanner A device for scanning a *bar code. It may take the form of a handheld *wand, a *holographic scanner, a laser beam deflected by an oscillating mirror, a
telescope with a sensor, or a slot containing a sensor. Newer designs use an array of
*LEDs or a *CCD array.
Barker sequence In data communications, a sequence of symbols (binary or *q-ary)
that, when embedded in a string of randomly chosen symbols (from the same alphabet),
has zero autocorrelation except in the coincidence position. Barker sequences are used to
check, and if necessary to correct, the synchronization and framing of received data.
barrel printer See DRUM PRINTER.
base 1. Another name for the radix of a positional number system. Hence decimal
numbers are base 10 numbers and binary numbers are base 2 numbers. See NUMBER
SYSTEM. 2. See BASE-BOUND REGISTER, RELATIVE ADDRESSING.
BASE (Basically Available, Soft state, Eventual consistency) An approach to
*distributed database design that acknowledges the constraints of the *CAP theorem. It
weakens the requirement for database consistency to that of ‘eventual consistency’, in
order to ensure that reasonable performance can be offered. It is a design principle
increasingly used by very large-scale online sales websites. See also ACID.
base addressing See RELATIVE ADDRESSING.
base band A waveform in its native form prior to being applied as modulation to a
*carrier.
baseband networking Communication in which a digital signal is placed directly on
the transmission medium without requiring a carrier, i.e. without modulation. Only one
signal may be present on the baseband channel at a time. This type of signalling,
baseband signalling, is also called d.c. signalling because in some baseband networks
a continuous d.c. voltage is present when the data does not change. Baseband networks
may use twisted pair, coaxial cable, or optical fibre for data transmission. Compare
BROADBAND NETWORKING.
baseband signalling See BASEBAND NETWORKING.
base-bound register (base-limit register) Hardware used for *virtual memory
allocation. A base-bound register is associated with each *segment of data or code and
defines the position in physical memory of word zero for that segment, the so-called
base, and the number of words available to that segment, the so-called bound or
limit(or alternatively the physical memory address of the next word after the end of the
segment, in which case it is a *bounds register). Whenever a process attempts to access
the memory segment, the hardware of the system checks that the address of the word lies
within the range
and then adds the address to the value contained in the base register to give the physical
address. A restriction on this system is that the storage for the segment must be allocated
in a contiguous area of memory (see BEST FIT, FIRST FIT).
The base register, used in the construction of relative addresses, should not be
confused with the base of a base-bound system; the result of modifying an address by a
base register’s contents is still an address within virtual memory space of the process, and
is not necessarily a physical address.
base field See POLYNOMIAL.
base-limit register See BASE-BOUND REGISTER.
base register See RELATIVE ADDRESSING.
Basic (BASIC) (beginners’ all-purpose symbolic instruction code) Originally
a simple programming language developed in the mid-1960s for use in education in order
to exploit the then novel capability of using a computer interactively from a remote
terminal. The language could be learned very quickly, and the Basic system incorporated a
simple program editor, so that the user was insulated from the complexities of the
underlying operating system. At first only numeric variables were provided, but later
Basic was extended to handle string variables, and was provided with a set of procedures
for simple string manipulation that has become a de facto standard.
The simplicity of Basic made it a natural choice of programming language for the early
microcomputers, and incompatible dialects proliferated, despite the production of an ISO
standard. As microcomputers evolved into more powerful desktop computers, new
versions of Basic appeared that incorporated modern control structures. The most
important such development was the introduction of *Visual Basic (1991) as a means of
prototyping and developing applications for Microsoft Windows, and the adoption of
Basic as the underlying language for control of Microsoft applications software, first in
the form of Word Basic and later in the form of *Visual Basic for Applications (VBA).
The latest version is *Visual Basic .NET.
batch control Correctness checks built into *data processing systems and applied to
batches of input data, particularly in the data-preparation stage. There are two main forms
of batch control: sequence control involves numbering the records in a batch
consecutively so that the presence of each record can be confirmed during *data
validation; control totals involve establishing record counts, or totals of the values in
selected fields within each record, and checking these totals during data validation.
Control totals may be ‘meaningful’, in the sense that they may have a use (for instance to
an auditor) that is additional to their function within the system. Most commonly,
however, they are meaningless totals (e.g. of employee numbers), often referred to as
*hash totals.
The scope of batch control may extend beyond the data validation stage for as far into
the system as batches retain their separate identities. In particular, they may be used to
check that incorrect records, rejected during data validation, are resubmitted before a
batch is released for further processing.
Batcher’s parallel method (merge exchange sort) A form of *sorting by selection
that chooses nonadjacent parts of sortkeys for comparisons. The sequence of comparisons
was discovered by K. E. Batcher in 1964. It is particularly appropriate for *parallel
processing.
batch learning (one-shot learning) See MACHINE LEARNING.
batch processing 1. Originally, a method of organizing work for a computer system,
designed to reduce overheads by grouping together similar jobs. One form avoided
reloading *systems software. The jobs were collected into batches, each batch requiring a
particular compiler, the compiler was loaded once, and then the jobs submitted in
sequence to the compiler. If a job failed to compile it took no further part in the
processing, but those jobs that did compile led to the production on magnetic tape or other
backing store of an executable binary. At the end of the batch of compilations those jobs
that had produced an executable binary form were loaded in sequence and their data
presented to the jobs. Another form avoided the time taken to read cards and print on
paper by offline processing, having a batch of jobs on magnetic tape.
The term has also come to be applied to the *background processing of jobs not
requiring intervention by the user, which takes place on many multiaccess systems. 2. A
method of organizing a *data processing system in which *transactions are input in a
batch, sorted, and sequentially processed to update and/or query a *master file. This is the
only possible method if magnetic tape is used as backing store; there are applications
where it is the most efficient method even using disks. See also TRANSACTION
PROCESSING.
baud rate The number of times per second that a system, especially a data transmission
*channel, changes state. In the particular case of a binary channel, the baud rate is equal to
the bit rate, i.e.
In the general case, however, the baud rate is equal to the number of data elements
transmitted per second and with more complex modulation techniques each element can
represent four or more bits at the same time (see QUADRATURE AMPLITUDE MODULATION).
The rate was named for J. M. E. Baudot.
Bayesian network See BAYES’S THEOREM.
Bayesian statistics *Statistical methods that make use of assumed prior information
about the *parameters to be estimated. The methods make use of a theorem of Rev.
Thomas Bayes, measuring the change in *probability attributed to observational data. The
use of Bayesian statistics is sometimes regarded as controversial.
Bayes’s theorem A theorem used for calculating the conditional probability of an
event, where conditional probability, Prob(x|y), is the probability of x while y holds.
This is a method in *probabilistic reasoning where Prob(causes|symptoms) can be
computed from knowledge of Prob(symptoms|causes), i.e. if we know statistical data on
the occurrence of symptoms associated with a disease we can find the probability of those
symptoms correctly indicating the disease. A classic application of Bayes’s theorem is
found in the Prospector *expert system, which successfully predicted the location of
valuable mineral deposits.
The combinatorial number of conditional probabilities that have to be computed by the
method can be significantly reduced by using Bayesian networks, where arcs between
propositions define causal influences and the independence of relations.
BBS Abbrev. for bulletin board system.
BCD Abbrev. for binary-coded decimal.
BCD adder A 4-bit binary *adder that is capable of adding two 4-bit words having a
BCD (*binary-coded decimal) format. The result of the addition is a BCD-format 4-bit
output word, representing the decimal sum of the addend and augend, and a carry that is
generated if this sum exceeds a decimal value of 9. Decimal addition is thus possible using
these devices.
BCH code Short for Bose–Chaudhuri–Hocquenghem code.
BCPL A systems programming language that incorporates the control structures needed
for *structured programming. Its main distinguishing feature is that it is type-free, i.e. the
only type of data object that can be used is a word made up of bits (hence the suitability
for systems programming). BCPL was implemented on many machines, but it is now little
used. See also B, C, CPL.
BCS The British Computer Society, a professional and learned society covering all
branches of computing. It was founded in 1957 and granted a royal charter in 1984. It is a
member of the Engineering Council UK and suitably qualified members can therefore be
registered as Chartered Engineers. It publishes the Computer Journal, the first issue of
which appeared in 1957. It is the UK member of IFIP.
http://www.bcs.org/
• The BCS home page
BDF methods See LINEAR MULTISTEP METHODS.
beam deflection Deflection of the electron beam in a *cathode-ray tube. It is controlled
either by means of two pairs of magnetic coils mounted around the tube (electromagnetic
beam deflection) or by two pairs of plates mounted inside the tube (electrostatic beam
deflection). Electromagnetic deflection is nonlinear with respect to the applied current,
causing *pincushion distortion of the image; this has to be compensated for by circuitry.
Electrostatic deflection tends to be more expensive than electromagnetic deflection but is
more accurate.
bearer The means by which data is carried in a network. The term may either refer to a
simple physical device such as a cable or optical fibre, or may describe a complete service
designed to transport individual data items.
bearer network Another name for backbone network.
behavioural animation See COMPUTER ANIMATION.
behaviour-based systems An alternative approach to symbolic *artificial intelligence,
whereby autonomous *agents are designed to be driven by goal-seeking processes, called
behaviours, implemented in low-level reactive architectures rather than symbolic
cognitive structures. The behaviour-based approach has close links with *mobile robotics.
belief systems Belief can be viewed as unsupported fact, i.e. data that are believed to be
true (or false), in contrast to knowledge, which is often considered to be known to be true
(or false). Partial knowledge thus indicates missing or incomplete data, but partial belief
implies a degree of doubt about some given data. Methods for representing degrees of
belief have been developed in *probabilistic reasoning. Other techniques include reasonmanagement systems, which record dependencies between data and thus act as
justifications that support beliefs (see TRUTH-MAINTENANCE SYSTEMS).
In distributed *artificial intelligence, the local collections of belief of individual agents
in a multiagent environment are called belief spaces.
Bell Telephone Laboratories The Bell Telephone Laboratories, generally known as
Bell Labs, were originally owned by *AT&T (American Telephone & Telegraph
Company) and Western Electric Corporation (the manufacturing arm of AT&T). Bell Labs
are one of the most successful commercial research organizations. The products of Bell
Labs include Shannon’s seminal work on information theory, the transistor, and the UNIX
operating system, and 11 members of staff have won Nobel prizes. AT&T was broken up
in 1984 and restructured in the mid-1990s. Its systems and technology arm became a
separate company under the name of Lucent Technologies and it is to this company that
Bell Labs now belong.
belt printer Another name for band printer, used to describe the early versions of those
machines, but also used to describe printers in which the font is carried on plates or fingers
attached to a flexible belt.
benchmark (benchmark problem) A problem that has been designed to evaluate the
performance of a system (hardware and software). In a benchmark test a system is
subjected to a known workload and the performance of the system against this workload is
measured. Typically the purpose is to compare the measured performance with that of
other systems that have been subject to the same benchmark test; the performance is then
said to be benchmarked.
Examples of benchmark programs include the *Ackermann benchmark, *debit/credit
benchmark, *pi benchmark, *Ramp-C benchmark, and *whetstone benchmark.
BER 1. Abbrev. for bit error rate. 2. Abbrev. for beyond economic repair.
Berners-Lee, Sir Tim (Sir Timothy John Berners-Lee) (1955– ) British
software developer who invented the *World Wide Web. After graduating in physics from
Oxford University he worked as a computer programmer. While working briefly for
CERN (European Organization for Nuclear Research) at Geneva in 1980 he developed a
hypertext system for sharing information. Returning to CERN (1984), in 1989 he
proposed an Internet-hosted global hypertext system, for which he coined the term ‘World
Wide Web’. This concept was implemented by Berners-Lee himself: he created the first
*Web browser and *Web server and in 1991 launched the first *website. As the Web
began its explosive growth, he founded the *World Wide Web Consortium in 1994 and
remains its Director. He also holds the 3Com Founders Chair at the MIT Computer
Science and Artificial Intelligence Laboratory. He became a director of the World Wide
Web Foundation when it was launched in 2009, is President of the Open Data Institute,
and leads the Alliance for Affordable Internet.
best-first search A search of a directed *graph or *tree in which a set of ‘best yet’
nodes are maintained. As nodes are visited an *evaluation function is used to estimate
their value (in terms of a problem solution), and the search proceeds by exploring the node
with the best value from the set of best yet nodes. The A *algorithm is an example
method.
best fit A method of selecting a contiguous area of memory that is to be allocated for a
segment. The available areas are examined in order of increasing size; the area that
exceeds the request by the smallest amount is taken and the request met by allocating the
amount requested from this area.
beta (beta release) A version of a software product in the final stages of development,
released to selected users for field testing. See BETA TEST.
Beta An *object-oriented language featuring *concurrency.
beta reduction See LAMBDA CALCULUS.
beta test A test of a packaged software product in a small number of normal working (as
opposed to development) environments. The beta test is usually performed at carefully
selected customer sites. A beta test is carried out following acceptance *testing at the
supplier’s site (alpha test) and immediately prior to general release of the software as a
product. It is a confidence-building exercise that also limits the costs of correcting faults
revealed when new or upgraded software is first exposed to its normal working
environment and workload.
Bézier curve A *spline approximation developed by Pierre Bézier and widely used in
computer-aided design. An nth-degree Bézier curve is an nth-degree polynomial defined
by n + 1 control points, r0…rn. The Bézier curve is defined by
where Bi n(u) is the Bernstein polynomial of degree n defined by
Bézier curves have a number of important properties. For example, the curve passes
through the first and last control points and is completely contained within the polygon
that forms the *convex hull of the control points; the gradient at each of the end points is
the same as the gradient of the line joining the end point to its immediate neighbour; the
control points exert a pull on the direction of the curve which is clamped by the slope at
the end points.
Bézier patch A *patch defined in the same way as a *Bézier surface.
Bézier surface A surface swept out by a moving *Bézier curve of constant degree. Each
control point of the original Bézier curve also moves through space on a Bézier curve and
the curves on which the control points move all have the same degree.
Suppose the initial curve is a Bézier curve of degree m,
and let each ri traverse a Bézier curve of degree n,
then the point rm,n(u,v) on the surface is given by
BGP See BORDER GATEWAY PROTOCOL.
bias 1. The d.c. component of an a.c. signal. 2. The d.c. voltage used to switch on or off a
*bipolar transistor or *diode (see FORWARD BIAS, REVERSE BIAS), or the d.c. gate-source
voltage used to control the d.c. drain-source current in a *field-effect transistor. The word
is also used as a verb: to switch. 3. The d.c. voltage or current used to set the operating
point in linear amplifiers. 4. In statistical usage, a source of error that cannot be reduced
by increasing sample size. It is systematic as opposed to random error.
Sources of bias include (a) bias in *sampling, when members of the sample are not fully
representative of the population being studied; (b) nonresponse bias in sample surveys,
when an appreciable proportion of those questioned fail to reply; (c) question bias, a
tendency for the wording of the question to invite an incorrect reply; (d) interviewer
bias, a problem of personal interviewing when respondents try to reply in the way the
interviewer is thought to expect.
A narrower definition of bias in statistical analysis (see STATISTICAL METHODS) is the
difference between the mean of an estimating formula and the true value of the quantity
being estimated. The estimate
for the variance of a population is biased, but is unbiased when n is replaced by (n–1).
5. (excess factor) See FLOATING-POINT NOTATION.
biased exponent Another name for characteristic. See FLOATING-POINT NOTATION.
bicomponent algorithm A *depth-first search with the addition of tests to check
whether a vertex in the tree is a *cut vertex, i.e. to make sure a particular path is not
searched twice, which could happen if a vertex could be reached in two different ways.
biconditional A logical statement combining two statements, truth values, or formulas P
and Q in such a way that the outcome is true only if P and Q are both true or both false, as
indicated in the table.
The biconditional *connective can be represented by
and is read as ‘if and only if’ or ‘iff’ or ‘is equivalent to’. Note that P ≡ Q has the same
truth table as the conjunction
where → denotes a simple *conditional. The biconditional connective itself is also known
as the biconditional.
Biconditional. Truth table
biconnected graph A *graph G, either directed or undirected, with the property that
for every three distinct vertices u, v, and w there is a path from u to w not containing v. For
an undirected graph, this is equivalent to the graph having no *cut vertex.
Two edges of an undirected graph are said to be related either if they are identical or if
there is a *cycle containing both of them. This is an *equivalence relation and partitions
the edges into a set of *equivalence classes, E1, E2,…En, say. Let Vi be the set of vertices
of the edges of Ei for i = 1, 2,…n. Then each graph Gi formed from the vertices Vi and the
edges Ei is a biconnected component of G.
bidirectional reflection distribution A *reflectance model for producing realistic
images of rough surfaces by means of computer graphics developed by Robert Cook in
1981. Reflectance models describe both the colour and the spatial distribution of reflected
light. The bidirectional reflection model predicts the directional distribution and spectral
composition of the reflected light. This is split into two components that represent the light
reflected from the surface of the material and a diffuse component that is dependent on the
nature of the surface. Bidirectional reflection distribution was one of the first models to
render images that could look plastic or metallic depending on the parameters of the
surface.
bifurcation A splitting in two. The term can be applied in computing in various ways.
1. Bifurcation is the generic name for a collection of algorithms that initially convert a
*decision table into a *tree structure, which can then be systematically encoded to produce
a program.
The bifurcation method involves choosing some condition C and eliminating it
from the decision table to produce two subtables, one corresponding to the case when C is
true and the other to when C is false. The method is then applied recursively to the two
subtables. From this approach a *decision tree can be built, each node of the tree
representing a condition and subtrees representing subtables; leaf nodes identify rules. 2.
Bifurcation theory is the theory of equilibrium solutions of nonlinear differential
equations; an equilibrium solution is a steady solution, a time periodic, or a quasi-periodic
solution. Generally bifurcation points are points at which branches and therefore
multiple solutions appear.
big-endian Denoting an addressing organization whereby the section of a memory
address that selects a byte within a word is interpreted so that the smallest numerical byte
address (e.g. 00) is located at the most significant end of the addressed word. See also
LITTLE-ENDIAN.
bijection (one-to-one onto function) A *function that is both an *injection and a
*surjection. if
is a bijection, then for each y in Y there is a unique x in X with the property that
i.e. there is a one-to-one correspondence between the elements in X and the elements in Y.
The sets X and Y will have the same number of elements, i.e. the same *cardinality. There
will be a unique function
such that f and f-1 are *inverses to each other; f-1 will also be a bijection.
binary adder See ADDER.
binary chop Informal name for binary search algorithm.
binary code A *code whose alphabet is restricted to {0, 1}. In general, any *q-ary code
has the important special case q = 2. See BINARY SYSTEM.
binary-coded decimal (BCD) A code in which a string of binary digits represents a
decimal digit. In the natural binary-coded decimal (NBCD) system, each decimal digit 0
through 9 is represented by the string of four bits whose binary numerical value is
equivalent to the decimal digit. For example, 3 is represented by 0011 and 9 is represented
by 1001. The NBCD code is the *8421 code such that the weighted sum of the bits in a
codeword is equal to the coded decimal digit. See also EBCDIC, PACKED DECIMAL.
binary counter See COUNTER.
binary digit See BINARY SYSTEM, BIT.
binary encoding 1. The representation of symbols in a source alphabet by strings of
binary digits, i.e. a *binary code. The most commonly occurring source alphabet consists
of the set of *alphanumeric characters. See CODE. 2. The encoding of a number into a
binary string in which the ith bit from the end carries weight 2i. For example, 13 is
represented by 1101. This encoding of natural numbers can be extended to cover signed
integers and fractions. See also FIXED-POINT NOTATION, FLOATING-POINT NOTATION,
RADIX COMPLEMENT. 3. (of a set A) Any assignment of distinctive bit strings to the
elements of A. See also CHARACTER ENCODING, HUFFMAN ENCODING.
binary-level compatibility *Compatibility that exists when a program in executable
binary form may be executed on different computer systems without recompilation. This
will normally only be possible between systems with the same operating system and with
processors or *emulations of processors capable of executing the same instruction set. See
also ABI, SOURCE-LEVEL COMPATIBILITY.
binary logic *Digital logic employing two states. See also LOGIC CIRCUIT, q-ARY
LOGIC.
binary notation See BINARY SYSTEM.
binary number A *binary encoding of a number.
binary operation 1. (dyadic operation) defined on a set S. A *function from the
domain S×S into S itself. Many of the everyday arithmetic and algebraic operations are
binary, including the addition of two integers, the union of two sets, and the conjunction of
two Boolean expressions.
Although basically functions, binary operations are usually represented using an infix
notation, as in
The operation symbol then appears between the left and right operand. A symbol, such as
°, can be used to represent a generalized binary operation.
When the set S is finite, *Cayley tables and sometimes *truth tables are used to define
the meaning of the operation. 2. An operation on binary operands.
binary prefixes A set of prefixes for binary powers designed to be used in data
processing and data transmission contexts. They were suggested in 1998 by the
International Electrotechnical Commission (IEC) as a way of resolving the ambiguity in
use of kilo-, mega-, giga-, etc., in computing. In scientific usage, these prefixes indicate
103, 106, 109, etc. (see SI UNITS). In computing, it became common to use the prefix
‘kilo-’ to mean 210, so one kilobit was 1024 bits (not 1000 bits). This was extended to
larger prefixes, so ‘mega-’ in computing is taken to be 220 (1 048 576) rather than 106 (1
000 000). However, there is a variation in usage depending on the context. In discussing
memory capacities megabyte generally means 220 bytes, but in disk storage (and data
transmission) megabyte is often taken to mean 106 bytes. (In some contexts, as in the
capacity of a floppy disk, it has even been quoted as 1 024 000 bytes, i.e. 1000 times a
(binary) kilobyte.) The IEC attempted to resolve this confusion by introducing binary
prefixes, modelled on the normal decimal prefixes, as follows:
These names are contractions of ‘kilobinary’, ‘megabinary’, etc., but are pronounced so
that the second syllable rhymes with ‘bee’. Using these prefixes, one gebibyte would be 1
073 741 824 bytes and one gigabyte would (unambiguously) be 1 000 000 000 bytes. At
the present time (2008) these prefixes are not widely used. The IEEE has suggested that
the normal SI prefixes (kilo-, mega-, etc.) should be used with their standard meanings
unless an explicit explanation of the meaning is given.
binary relation A *relation defined between two sets.
binary search algorithm (logarithmic search algorithm, bisection algorithm) A
*searching algorithm that uses a file in which the sortkeys are in ascending order. The
middle key in the file is examined and, depending upon whether this is less than or greater
than the desired key, the top or bottom part of the file is again examined. Continuing in
this way the algorithm either finds the desired record or discovers its absence from the
file. Thus the algorithm treats the file as though it were a *binary search tree.
binary search tree A *binary tree in which the data values stored at the nodes of the
tree belong to a *well-ordered set, and the value stored at any nonterminal node, A, is
greater than the values stored in the left subtree of A and less than the values stored in the
right subtree of A. To search a binary search tree, t, to see if the value, v, is present, the
recursive search algorithm shown in the figure is used.
In data-processing applications, the data values stored at the nodes of a binary search
tree will be key values with an associated link to the record to be retrieved. The same
principle is used in the *binary search algorithm. The concept can be generalized to a
*multiway search tree. See also AVL TREE, OPTIMAL BINARY SEARCH TREE.
binary sequence A sequence of binary digits. Such a sequence, produced randomly or
pseudorandomly (see RANDOM NUMBERS) and generally of known statistical properties,
may be employed either as a model of noise affecting a binary channel or as a means of
controlling synchronization between transmitter and receiver.
binary signal See DIGITAL SIGNAL.
binary space-partitioning tree (BSP tree) A description of a scene obtained by
recursive binary splitting. The BSP tree formed the basis of an algorithm developed by
Henry Fuchs et al in 1980 to generate realistic images of scenes composed of polygons
(planes) where many images of the same static environment are required. The BSP tree’s
root node defines a chosen polygon in the image. The two subtrees define the set of
polygons on either side of the root plane. At each level, this process is repeated. If
polygons straddle the specified plane at any stage, the polygon is split into two parts. Node
polygons are chosen to minimize the number of polygons that are split.
binary symmetric channel (BSC) A binary communication channel in which the
random errors are such that substitution of a 0 for a 1 occurs with the same probability as
substitution of a 1 for a 0. Much of the theory of *error-correcting and *error-detecting
codes assumes a BSC.
binary synchronous communications See BISYNC.
binary system Usually, the binary number system, i.e. the positional *number system
with base 2. This is the number system most commonly used in computers. A binary
digit (or bit) is either 0 or 1. The representation of numbers by binary digits is called
binary notation.
The term binary system is also used to describe any system in which there are just two
possible states. For example, each of the elements comprising the memory of any
computer is a binary system, one of whose states is used to denote the binary digit 0 and
the other to denote the binary digit 1. It is customary to refer to such a storage element, or
to the unit of information in any binary system, as a bit.
binary tree 1. A *tree in which each node has at most two subtrees, called the left and
right subtrees of the node. At *level h of a binary tree there is a maximum of 2h nodes.
A binary tree of *depth d thus has at most (2d+1 –1) nodes and one with n nodes has a
minimum depth of log2n.
The term binary tree is also used to describe any (ordered) tree of *degree two. 2. Any
data structure used to represent a binary tree. Each node is usually represented by pointers
to the left and right subtrees as well as to the data value associated with the node. The
binary tree can then be represented as a pointer to its root node.
binary-tree representation 1. A binary tree constructed to represent a tree of
arbitrary *degree. For any node, the root of the left subtree in the binary-tree
representation is the eldest child of the node in the original tree and the root of the right
subtree is the next eldest sibling (see diagram). 2. See BINARY TREE (def. 2).
Binary-tree representation. A tree and its binary representation
bind To resolve the interpretation of some *name used in a program for the remaining
lifetime of that instance of the program. For example, upon invocation of a procedure the
formal parameters are bound to the actual parameters that are supplied for that invocation,
and this binding remains in force throughout the lifetime of that invocation. Similarly, at
some time the variables in a program must be bound to particular storage addresses in the
computer, and this binding typically remains in force for as long as the variable continues
to exist. In a *virtual memory system, there is further binding between the virtual
addresses used in the program and the physical addresses of the hardware.
For an *abstract specification, the implementation will involve binding to a language.
For example, the *PCTE specification is available in *C and *Ada language bindings,
each having a binding to *UNIX.
binding See BIND.
binding occurrence See FREE VARIABLE.
binomial distribution The basic discrete *probability distribution for data in the form
of proportions. An event, E, can occur with *probability p. In a sample of n independent
trials the probability that E occurs exactly r times is
(see COMBINATION). The distribution is discrete, taking only the values 0, 1, 2,…, n. The
mean of the binomial distribution is np and the variance is
bioinformatics See INFORMATICS.
biomimetic robotics The study of biologically inspired robots, based on principles and
ideas taken from the animal world. This is a multidisciplinary field that includes
mechanical design, material technologies, sensor and actuator engineering, physiology,
and neuroscience. The aim is to build systems that exhibit autonomous robust yet
compliant behaviour in natural environments.
BIOS (basic input/output system) *Firmware permanently resident in
microcomputer systems that executes as the first stage of a *cold boot. It verifies and
initializes the various hardware components, then loads and runs software that loads the
*operating system. Formerly, in such operating systems as *CP/M and *MS-DOS, the
BIOS was also responsible for most input and output operations; modern operating
systems use *device drivers for this purpose.
bipartite graph A *graph G whose vertices can be split into two *disjoint sets, U and
V, in such a way that the only edges of G join a vertex in U and a vertex in V. Bipartite
graphs tend to provide a convenient graphical representation of *relations and therefore
*functions.
biplot A graphical technique for displaying the results of *multivariate analysis in which
both the measured variables and the observed units are displayed on one plot. Units with
similar values of the measured variables appear close together, and variables closely
associated with particular units appear among those units. The original methods are due to
K. Gabriel.
bipolar integrated circuit See INTEGRATED CIRCUIT.
bipolar signal A signal whose signalling elements consist of both positive and negative
voltages. Bipolar signals are used in data-communication systems. Compare UNIPOLAR
SIGNAL.
bipolar transistor A semiconductor device having three electrodes: emitter, base,
and collector. It is effectively a sandwich of two types of doped *semiconductor, usually
p-type and n-type silicon, and so contains two p-n *junctions. When the region common to
both junctions is p-type, an npn transistor is formed; when it is n-type a pnp
transistor is formed. This central region forms the base electrode.
Bipolar transistors are so named because both charge carriers, i.e. electrons and holes,
contribute to the flow of current. Current flow between collector and emitter is established
by applying a *forward bias between base and emitter. In linear (i.e. nonsaturated)
operation, the magnitude of this current is proportional to the input current drawn at the
base. The current flow is in opposite directions in npn and pnp transistors.
If the base current is increased but the collector current is restrained, so that the
transistor effectively receives more base current than it would seem to require, the
transistor is driven into a state of saturation, also known as bottoming. It then
behaves as a very efficient switch since the base-collector junction becomes *reverse
biased and, in saturation, the collector-emitter voltage can fall as low as 20 millivolts. The
device thus seems virtually a short circuit. Bipolar transistor switches, working into
saturation, are the basis of *TTL circuits. Saturated transistors do however have a fairly
low switching speed. The much higher switching speeds of *Schottky TTL and *ECL
circuits are achieved by using a nonsaturated mode of operation.
biquinary code (quibinary code) A seven-bit *weighted code, two bits of which are
used to indicate whether the encoded number (a decimal digit) is or is not at least 5 in
value, the remaining five bits comprising four zeros and a single one whose position is
used to determine the number completely. Thus from left to right the weights of the bits
are 5, 0, 4, 3, 2, 1, and 0. The weighted sum gives the value of the encoded decimal digit;
for example, 3 is represented by
0101000
and 9 is represented by
1010000
Birkhoff’s completeness theorem Equational logic is a formal system for reasoning
with *equations. It has simple rules for manipulating equations, based on the reflexivity,
symmetry, transivity of equality and the substitution of equal terms into equations.
Birkhoff’s completeness theorem says that an equation e is provable in equational logic
from the equations in a set E if and only if e is true in all *algebras that satisfy the
equations in the set E. Related to the theorem is the fact that a class of algebras is
definable as the class of all models of some set of equations if and only if the class is
closed under constructing subalgebras, homomorphic images, and direct products. These
results were proved by G. Birkhoff in 1935. See also EQUATIONAL SPECIFICATION, TERM
REWRITING SYSTEM.
bis See CCITT.
B-ISDN (Broadband ISDN) See ISDN.
bisection algorithm Another name for binary search algorithm.
bistable An electronic circuit, usually an integrated circuit, whose output has two stable
states to which it is directed by the input signal or signals. It is more usually known as a
*flip-flop. The term is also applied to other devices with two stable states, such as certain
*switches and *relays. See also MULTIVIBRATOR.
BISYNC (BSC) (binary synchronous communications (protocol)) A *line
protocol created by IBM in the 1960s for synchronized communication between
mainframe computers and remote job-entry terminals. BISYNC is a character-oriented
protocol: it uses special control characters to mark the beginning and end of a *message,
etc. It is no longer widely used.
bit (binary digit) 1. Either of the two digits 0 and 1 in the binary number system. Bits are
used in computing for the internal representation of numbers, characters, and instructions.
The bit is the smallest unit of storage and hence of information in any *binary system
within a computer. 2. The fundamental unit of information used in *information theory. It
is the quantity of information required to distinguish between a pair of equiprobable
events.
bit-block transfer See BITBLT.
bitblt (pronounced bitblit) (bit-block transfer) An operation that, in its simplest form, can
rapidly change the contents of a *bitmap and thus the displayed image. Such operations
are frequently required by window management systems. It can also be used for graphical
operations such as *area filling and image rotation.
The operation has three operands—source, destination, and pattern—that are each
rectangular arrays of bits. The pattern operand is usually smaller and is used periodically
to create an operand of the same size as the other two. First the pattern and destination
operands are combined by a bitblt operator. The result is combined with the source
operand by a second bitblt operator and replaces the destination. The two bitblt operators
may be any one of the 16 possible *logic operations between two Boolean variables. The
bitblt function is usually implemented in hardware with fast parallel circuitry.
The *pixelblt function extends the bitblt to shaded and colour displays.
bit density The number of bits stored per unit length or area of a magnetic recording
medium. The figure is usually calculated as the maximum density achieved, i.e. it does not
take account of the unrecorded areas between blocks, tracks, sectors, etc.
bit error rate The error rate in a digital channel, usually expressed as the number of
errors per million bits transmitted.
bit handling The facility provided in some programming languages to manipulate the
individual bits of a byte or word. Operators provided usually include bitwise ‘and’ and ‘or’
between two bytes (or words), bitwise ‘not’ (inversion) of a single byte (or word), and
circular shifts.
bitmap 1. An array of bits that map one to one to the monochrome image on a *raster
display. If a colour or grey-level image is required, needing many bits to define each
*pixel in the display, a *pixmap is required. 2. A data structure consisting of an array of
bits. 3. In popular but incorrect usage, a pixmap.
bit matrix A two-dimensional *array in which each element is equal to 0 or to 1.
Compare BOOLEAN MATRIX.
Bitnet (because it’s time network) A system established as a *message switching
network, originally linking IBM mainframe systems located in North America and with
backing from IBM. Bitnet operated in a store-and-forward mode, in which each complete
message was transmitted from one mainframe system to the next until the destination was
reached. Bitnet use declined from the 1990s as the Internet grew and it is now defunct.
bitpad A device for digitizing the position of a pen. See DIGITIZER.
bit rate The number of bits transmitted or transferred per unit of time. The unit of time is
usually one second, thus giving rise to bits per second, bps. See also BAUD RATE.
bit-slice architecture A computer architecture or design, used especially for
microprocessors, in which the CPU is constructed by concatenating a number of highperformance processing units. Each of these ‘slice’ elements represents a limited width
(commonly 2, 4, or 8 bits) of an ALU and CU section; a parallel computer of any desired
word size can therefore be constructed. Specific system customization is accomplished by
*microprogramming. This form of architecture permits the use of standard (thus low-cost)
VLSI elements to produce different computer systems.
bits per pixel The number of bits used to define the greyscale value or colour value of a
*pixel. Modern colour systems often have 24 or 48 bits per pixel giving 256 or 65 536
possible values for each of the red, green, and blue components (See RGB COLOUR
MODEL).
bit string A *string of bits.
bit stuffing 1. A means of providing synchronization in a *data link control protocol
such as HDLC where, for example, a 0 is automatically inserted whenever a
predetermined number of 1s is present in a data stream at the sending end of the link. The
receiving equipment automatically deletes the extra 0s before delivering the received
message to the receiving terminal. 2. A means of inserting and deleting bits on multiply
connected high-speed digital transmission links that are not synchronously clocked.
BlackBerry Trademark A *PDA introduced in 1999 by Research in Motion Ltd. Its
initial success was based on its wireless electronic mail capabilities, where it was the first
device to find widespread market acceptance. These in turn depended on two features: a
full, although small, keyboard optimized for easy operation with the thumbs; and the use
of cell-phone networks to connect to the Internet, which gave users wide-ranging access to
the global *email network. With the emergence of *smartphones BlackBerry has lost its
position as a market leader.
blackboard system An architecture for building problem-solving systems. A series of
separate processes, i.e. expert systems, databases, or other sources of expertise in the
application domain, communicate through a central global database known as the
blackboard. Partial solutions are built up on the blackboard, which effectively
coordinates the problem-solving process. A blackboard system has the characteristics of
parallel, incremental, opportunistic operation. An *agenda mechanism is frequently used
as the main control mechanism to schedule the flow of activity in the system.
black box A unit of software or hardware that interacts with the rest of its system
entirely through its *interface. The details of how it implements this interface’s
functionality are completely opaque to the rest of the system. Provided this functionality is
not altered in any way, these internal workings can be altered or even completely
reconstructed without jeopardizing system stability. Black boxes are an important concept
in any large software project and are essential to component-based development.
black-box testing A style of *testing that considers only the inputs, the outputs, and the
relationships specified between them to derive test inputs that will demonstrate that the
required outputs occur. Usually the term is applied to software, but is also used for any
system component (hence ‘box’) for which no knowledge of the internal structure or
processing is used to derive the test (hence ‘black’). Compare GLASS-BOX TESTING.
black Ethernet Another name for thin Ethernet. See THICK WIRE.
blank Empty, i.e. not containing meaningful data. In a memory, blank cells may contain a
particular bit pattern that has no assigned value.
blank character A character that creates a blank space when displayed or printed.
Compare SPACE CHARACTER.
blend A surface introduced between two existing surfaces to smooth out the join between
them. The blend may be a different type of surface from the two that it blends between.
blending The process of constructing *blends.
blink An attribute that causes a character to be intermittently displayed on a screen at a
regular rate, usually in the range 1–10 Hz. Compare FLICKER.
blobby model A model where objects have a basic shape that can be perturbed by
interactions with neighbours or the environment. Such objects are described as soft and
include muscles and the human body. See also METABALLS.
block 1. A collection of data units such as words, characters, or records (generally more
than a single word) that are stored in adjacent physical positions in memory or on a
peripheral storage device. A block can therefore be treated as a single unit whereby data
can be (and usually is) transferred between storage device and memory, using one
instruction. Blocks may be fixed or variable in size. 2. In coding theory, an ordered set of
symbols, usually of a fixed length. The term is generally synonymous with word or string,
but with the implication of fixed length. 3. See BLOCK-STRUCTURED LANGUAGES. 4. In
parallel programming, to prevent further execution of one sequence of instructions until
another sequence has done whatever is necessary to unblock it. See also BLOCKED
PROCESS.
block cipher A cipher in which a fixed-length block of data is encrypted, or decrypted,
at each iteration of the algorithm: each block is input, encrypted, and output, with no
memory (to retain message-dependent information) between blocks (compare STREAM
CIPHER). Nevertheless, it is possible to use a block cipher as a component within a more
complex system that effects a stream cipher. See also CRYPTOGRAPHY.
block code A type of *error-correcting or *error-detecting code in which a fixed number
(conventionally k) of digits are taken into the encoder at a time and then output in the form
of a codeword consisting of a greater number (conventionally n) of digits. It is often
specified as an (n, k) code, with block length k and codeword length n. The corresponding
decoder takes in n digits, and outputs k digits, at a time. Since the codewords are longer
than the input words, the possible received words are no more numerous. The codewords
are only a selection of all possible words of their length: the selection method gives any
code its particular properties. See also CODE.
block compaction Another name for memory compaction.
block diagram A diagram that represents graphically the interconnection relationships
between elements of an electronic system, e.g. a computer system. These elements may
range from circuits to major *functional units; they are described as labelled geometric
figures. The whole block diagram may represent any level of computer description from a
compound circuit to an overall computer complex.
blocked process A *process for which a process description exists but which is unable
to proceed because it lacks some necessary resource. For example, a process may become
blocked if it has inadequate memory available to it to allow the loading of the next part of
the process.
blockette See BLOCK.
blocking factor The number of records, words, characters, or bits in a block.
block length 1. See BLOCK (def. 1). 2. The input word length, k, of an (n, k) *block
code. The term is also applied to the codeword length, n, of an (n, k) block code. 3. The
input word length (i.e. the *extension of the source) used in a *variable-length code.
block retrieval Fetching a block from backing store as part of a *memory management
process.
block-structured languages A class of high-level languages in which a program is
made up of blocks—which may include nested blocks as components, such nesting
being repeated to any depth. A block consists of a sequence of statements and/or blocks
that is treated as a single unit in its enclosing block. Variables declared at the head of a
block are visible throughout the block and any nested blocks, unless a variable of the same
name is declared at the head of an inner block. In this case the new declaration is effective
throughout the inner block, and the outer declaration becomes effective again at the end of
the inner block. Variables are said to have nested scopes.
The concept of block structure was introduced in the *Algol family of languages, and
block-structured languages are sometimes described as Algol-like. The concept of nested
scopes implicit in block structure contrasted with Fortran, where variables were either
local to a program unit (subroutine) or global to several program units if declared to be
common. Both of these contrasted with Cobol, where all data items were visible
throughout the entire program. Modern languages are almost all block-structured, and
such languages as Fortran and Basic have acquired features of block structure in later
versions.
blog (Web log) A publicly accessible journal maintained on the Web by an individual or
group. The topics covered in a blog are dictated by the author and so vary widely: some
reflect personal interests and concerns, whereas others comment on aspects of current
affairs or discuss work of public interest that their author is engaged in. Some have
become respected sources of information or opinion, while others are vehicles for
corporations or other bodies to disseminate information and obtain feedback. Many blogs
include facilities for readers to post comments and to engage in debate; in this function
they have tended to replace earlier forms of online discussion, such as *Usenet and
*forums run by online service providers. Such technologies as *RSS allow registered
readers of a blog to be informed of a new entry.
Blogs had antecedents before the explosive growth of the Internet from the 1990s, but,
as in other areas, it was the global nature of the Web that encouraged the growth of
modern blogging. It is very easy to create and maintain a blog, using freely available
software and services, that can be read using a standard Web Browser; and blogs can
contain links to other blogs, forming an extended online community. The term ‘blog’ was
only coined in 1997, yet by the mid-2000s blogging had become a mainstream activity not
confined only to Internet enthusiasts; in some professions, such as politics, it is becoming
almost a required activity.
blogosphere The set of all *blogs regarded as a single online community.
Blue Book 1. The *coloured book that formerly defined the file transfer protocol used
by the UK academic networking community. 2. Part of the defining documentation for the
*ISDN standards, which further refines the definitions appearing in the earlier *Red Book.
Bluetooth A wireless technology designed to replace cables between cell phones,
laptops, and other devices. Bluetooth wireless technology works within a 1-, 10-, or 100metre range and uses the 2.4 GHz band, which is unlicensed and can be used by many
other types of devices such as cordless phones, and baby monitors. See also WIFI.
Blum’s axioms Two axioms in complexity theory, formulated by M. Blum. Let
be an effective *enumeration of the Turing machines and let fi be the *partial recursive
function of a single variable that is computed by Mi. (For technical reasons it is simpler to
think in terms of partial recursive functions than set (or language) recognizers.) if
is a sequence of partial recursive functions satisfying
axiom 1:
fi(n) is defined if and only if Fi(n) is defined, and axiom 2:
Fi(x) ≤ y is a recursive predicate of i, x, and y,
then Fi(n) is a computational complexity measure and can be thought of as the amount of
some ‘resource’ consumed by Mi in computing fi(n). This notion represents a useful
abstraction of the basic resources—time and space. Several remarkable theorems about
computational complexity have been proved for any measure of resources satisfying the
two axioms (see GAP THEOREM, SPEEDUP THEOREM).
Blu-ray An *optical disk format. Developed by a consortium of over 180 companies led
by Sony, Blu-ray disks are intended to supersede the *DVD both for the distribution of
video and for data storage—Blu-ray disks can hold up to 25 Gb on each of up to two
layers. Like its rival *HD DVD format, it achieves this greater capacity by using a
‘blue’(actually, a violet) laser rather than the red laser used for DVDs; the shorter
wavelength allows the beam to be focused more precisely and so more data to be packed
into a given space. Currently (2008) some high-definition DVDs have been released in
Blu-ray format, and computer Blu-ray drives are becoming available. The prospects for
Blu-ray were considerably enhanced by the effective demise of HD DVD in early 2008.
BM algorithm See BOYER–MOORE ALGORITHM.
BMP (bitmap format) A Microsoft protocol for storing raster images in an
uncompressed form.
BNF (Backus normal form, Backus-Naur form) The first widely used formal notation for
describing the *syntax of a programming language; it was invented by John Backus. BNF
was introduced as a defining mechanism in the Algol 60 Report (editor Peter Naur) to
describe the syntax of Algol 60. BNF is capable of describing any *context-free language,
and variants of it are still in use today.
A BNF grammar consists of a number of production rules, which define syntactic
categories in terms of other syntactic categories, and of the terminal symbols of the
language. Examples are shown in the diagram. The name of the syntactic category that is
being defined is placed on the left, its definition on the right; the two are separated by the
symbol ::=, read as ‘is defined to be’. The names of syntactic categories are enclosed by
angle brackets. The symbol | is read as ‘or’.
See also EXTENDED BNF.
BNF. Production rules of a BNF grammar
body (payload) The part of a *cell or *packet in a network that holds the information
supplied by the end-user for transmission from the sender to the receiver.
boilerplate A frequently used section of text, such as a heading or a standard paragraph,
kept on a permanent online storage medium, such as a hard disk, and retrieved as a whole
into a document that is being created or edited, usually by a *word processing program.
BOM See BYTE-ORDER MARK.
bookmark 1. A marker placed in a document to allow easy access to that point. 2. A
link to a URL stored on a computer (e.g. in a ‘favourites list’) so that the user may easily
access it.
Boole, George (1815–64) British mathematician. Largely self-taught in mathematics,
Boole began to publish a series of original in influential papers in 1839. In 1849 he
became professor of mathematics at Queen’s (now University) College, Cork, despite
having no degree himself. From the perspective of computer science, his most important
work was his innovative algebraic treatment of logic, first presented in his pamphlet
‘Mathematical Analysis of Logic’ (1847) and subsequently elaborated in An Investigation
into the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic
and Probabilities (1854). This system, in which symbols representing logical values are
manipulated by operators according to the principles of logic, is now called *Boolean
algebra and is fundamental to the operation of computers.
Boolean algebra An *algebra that is particularly important in computing. Formally it is
a *complemented *distributive lattice. In a Boolean algebra there is a *set of elements B
that consists of only 0 and 1. Further there will be two *dyadic operations, usually denoted
by ∧ and ∨ (or by. and +) and called and and or respectively. There is also a *monadic
operation, denoted here by ′, and known as the complement operation. These
operations satisfy a series of laws, given in the table, where x, y, and z denote arbitrary
elements of B.
There are two very common examples of Boolean algebras. The first consists of the set
with the dyadic AND and OR operations replacing ∧ and ∨ respectively, and the NOT
operation producing complements. Thus 1 and 0 are just TRUE and FALSE respectively.
This idea can be readily extended to the set of all n-tuples
where each xi is in B. The AND and OR operations are then extended to operate between
corresponding pairs of elements in each n-tuple to produce another n-tuple; the NOT
operation negates each item of an n-tuple.
The second common example of a Boolean algebra is the set of subsets of a given set S,
with the operations of *intersection and *union replacing ∧ and ∨ respectively; set
*complement fills the role of Boolean algebra complement.
Boolean algebras, named for George *Boole, the 19th-century English mathematician,
are fundamental to many aspects of computing—logic design, logic itself, and aspects of
algorithm design. See table.
Boolean algebra. Laws
Boolean expression (logical expression) An expression in *Boolean algebra, i.e. a
well-formed formula of Boolean variables and constants linked by *Boolean operators. An
example is
Any *combinational circuit can be modelled directly and completely by means of a
Boolean expression, but this is not so of *sequential circuits.
Boolean function (logical function) A *function in *Boolean algebra. The function is
written as an expression formed with binary variables (taking the value 0 or 1) combined
by the dyadic and monadic operations of Boolean algebra, e.g.
For any particular values of its constituent variables, the value of the function is either 0 or
1, depending on the combinations of values assigned to the variables. A Boolean function
can be represented in a *truth table. It can also be transformed into a *logic diagram of
logic gates. See also PRODUCT OF SUMS EXPRESSION, SUM OF PRODUCTS EXPRESSION.
Boolean matrix A two-dimensional *array in which each element is either TRUE or
FALSE. Compare BIT MATRIX.
Boolean operation (logical operation) An operation on *Boolean values, producing a
Boolean result (see also BOOLEAN ALGEBRA). The operations may be *monadic or
*dyadic, and are denoted by symbols known as *Boolean operators. In general there are
16 Boolean operations over one or two operands; they include *AND, *OR, *NOT,
*NAND, *NOR, *exclusive-OR, and *equivalence. Boolean operations involving more
than two operands can always be expressed in terms of operations involving one or two
operands.
In *constructive solid geometry, Boolean operations are the three set operations *union,
*set difference, and *intersection.
Boolean operator (logical operator) Any one of the logical connectives of *Boolean
expressions, i.e.
or, in another notation,
See also BOOLEAN OPERATION.
Boolean type (type Boolean, logical type) A *data type comprising the Boolean values
TRUE and FALSE, with legal operations restricted to *logic operations.
Boolean value (logical value) Either of the two values TRUE and FALSE that indicate
a truth value.
boom An input device consisting of a long shaft whose end can be moved in three
dimensions, so allowing three-dimensional input.
boot To start a computer by turning the power on. Specifically, to invoke a *bootstrap,
especially to read from backing store the operating system of a computer and load it into
the empty memory.
boot sector virus See VIRUS.
bootstrap 1. In general, a means or technique for causing a system to build up from
some simple preliminary instruction(s) or information. The preliminary instruction may be
hardwired and called by the operation of a switch. The word is used in a number of
contexts.
For example, a bootstrap can be a short program, usually held in *nonvolatile memory,
whose function is to load another longer program. When a computing system is first
powered-on, the contents of its memory are in general undefined except for those parts
that are fabricated from read-only memory or for the contents of nonvolatile memory. The
bootstrap routine is stored in ROM and is capable of reading from backing store the
complete operating system, which is loaded into the empty memory. The computer is then
said to be booted or booted up.
A bootstrap is also a method by which a compiler is transferred from one machine to
another, and which depends on the compiler being written in the language it compiles. To
transfer from machine A to machine B, given a compiler that runs on machine A, it is first
necessary to make the compiler generate B’s machine code. The source code of the
compiler is then compiled by this modified compiler, so generating a version of the
compiler for machine B. In practice it is usually necessary to recode some machinedependent portions of the compiler by hand to complete the transfer.
The term originates from a story told by Baron Munchausen, who boasted that, finding
himself trapped and sinking in a swamp, he lifted himself by the bootstraps and carried
himself to safety on firm ground. 2. (statistical bootstrap) A family of techniques
introduced by B. Efron in which empirical distributions of estimators are obtained by
intensive resampling from a given data set. Bootstrap estimators make few assumptions
about the theoretical distribution of errors in a statistical model. The mean, variance, and
confidence intervals of quantities of interest may be computed, and the empirical
*histogram plotted.
Border Gateway Protocol (BGP) The *routing protocol used to connect
*autonomous systems on the Internet. BGP was introduced as a replacement for the earlier
Exterior Gateway Protocol (EGP); unlike its predecessor it allows fully decentralized
routing, with no part of an inter-network having a privileged position or being especially
important to the operation of the whole. Version 4, which has been used since 1994,
supports *Classless Inter-Domain Routing. Its use on the Internet is obligatory, but it is
often used within autonomous systems to link the subnetworks they administer.
http://tools.ietf.org/html/rfc4271
• The Border Gateway Protocol (version 4) specification
Borland Software Corporation A major US-based producer of tools to support
software development. It was founded in 1983 and its first major product was Turbo
Pascal. It currently produces development environments for C++ and Java and life cycle
management software.
Bose–Chaudhuri–Hocquenghem codes (BCH codes) An important family of
*binary *linear *error-correcting *block codes. They are reasonably efficient and have
reasonably good error-correcting abilities, but their importance lies in their ease of
encoding (by means of *shift registers) and of decoding. They can be regarded as a
generalization of *Hamming codes, and as a special case of *Reed–Solomon codes. BCH
codes can be arranged to be *cyclic.
bot A background program that operates unsupervised on the Internet. Bots often perform
repetitive tasks—*Web crawlers are the most common example of this—or provide
automated responses. Bots can also be used for malicious purposes: see BOTNET.
BOT marker (beginning of tape marker) A physical feature of a magnetic tape by
which the tape transport senses on the tape the start of the volume into which data can be
recorded, or has been recorded. When the transport senses the marker it commences the
logical sequence of recording or reading data. The marker may be, for example, a
rectangular strip of reflective material adhering to the tape, a transparent part of the tape,
or a hole in the tape. See also EOT MARKER. Compare TAPE MARK.
botnet A collection of computers compromised by malicious *bots controlled by the
same intruder. Botnets are often used for coordinated activities, such as distributed denial
of service attacks.
bottleneck A point of congestion in a system. The congestion occurs when workloads
arrive at that point more quickly than they can normally be handled; the result is often a
queue and a longer processing time. Bottlenecks are commonly found in network
interconnection, when a faster network is connected to a slower one. A bottleneck may
also be the element of a system that consumes the greatest quantity of a resource that is
needed by other elements in the system, thus slowing down the whole system’s execution.
bottoming See BIPOLAR TRANSISTOR.
bottom-up development An approach to program development in which progress is
made by composition of available elements, beginning with the primitive elements
provided by the implementation language and ending when the desired program is
reached. At each stage the available elements are employed in the construction of new
elements that are more powerful in the context of the required program. These new
elements will in turn be employed at the next stage in the construction of still more
powerful elements, and so on until the available elements can be employed directly in the
construction of the desired program.
In practice, ‘pure’ bottom-up development is not possible; the construction of new
elements must always be guided by a look-ahead to the requirements of the eventual
program, and even then it will often be discovered at a later stage that some earlier
construction sequence was inappropriate, leading to a need for iteration. Compare TOPDOWN DEVELOPMENT.
bottom-up parsing (shift-reduce parsing) A strategy for *parsing sentences of a
*context-free grammar that attempts to construct a *parse tree beginning at the leaf nodes
and working ‘bottom-up’ toward the root.
Bottom-up (or shift-reduce) parsers work by ‘shifting’ symbols onto a stack until the top
of the stack contains a right-hand side of a production. The stack is then ‘reduced’ by
replacing the production’s right-hand side by its left-hand side. This process continues
until the string has been ‘reduced’ to the start symbol of the *grammar.
The string of symbols to be replaced at each stage is called a handle. Bottom-up
parsers that proceed from left to right in the input string must always replace the leftmost
handle and, in so doing, they effectively construct a rightmost *derivation sequence in
reverse order. For example, a rightmost derivation of the string abcde might be
A bottom-up parser would construct this derivation in reverse, first reducing abcde to
Acde, then to ACde, then to ACD, and finally to the start symbol S. The handle at each
stage is respectively ab, c, de, and ACD.
See also LR PARSING, PRECEDENCE PARSING.
bounce 1. Informal The return of an email message to the original sender when it is not
possible to deliver the message, usually because the name of the putative recipient of the
email is not known to the receiving system. 2. The return of a *packet to the original
sender of a *ping request.
bound See LOWER BOUND, UPPER BOUND.
boundary protection See BOUNDS REGISTERS.
boundary representation A description of a solid object in terms of the faces that
bound it. Faces can be either planar or curved although some algorithms for manipulating
boundary representations are limited to planar faces. Information about faces, edges, and
vertices are stored as part of the representation.
boundary-scan testing A technique used to facilitate effective testing of the digital
ICs, and their interconnections, on high-density *printed circuit boards in the factory and
in the field. Extra logic is included and this intercepts the logic signals at each functional
pin of the logic components. The extra logic is transparent in normal operation but can be
configured as a long *shift register in a special test mode. The shift registers on each
component are connected into a daisychain so that all the logic circuits can be accessed
through a special group of test connections brought out to the *edge connector. This
structure is used to feed predefined information to the input pins and collect the results
from the output pins, thus enabling several types of test to be performed (function and
interconnect). See also BACK DRIVING.
boundary-value problem See ORDINARY DIFFERENTIAL EQUATIONS, PARTIAL
DIFFERENTIAL EQUATIONS.
bounded delay A term used to describe a network in which the total delay experienced
by data traversing the network can be guaranteed not to exceed some predetermined value.
This is especially important where the network is used to carry speech, as the human ear is
very intolerant of breaks in speech. See also NETWORK DELAY.
bound occurrence See FREE VARIABLE.
bounds registers Two registers whose contents are used to denote an area of memory
for which there is *access control. The area may be defined by beginning and ending
addresses, or by the beginning address and the area length—in which case it is a *basebound register. The use of bounds registers is a form of hardware security, and is
sometimes known as boundary protection. See also MEMORY PROTECTION.
bound variable A variable with a bound occurrence in an expression. See FREE
VARIABLE.
Box–Jenkins forecasting techniques See TIME SERIES.
boxplot A simple display of an observed *frequency distribution in which the main body
of the data between the 10th and 90th *percentile are displayed as a rectangular box,
divided at the median, while the lower and upper portions are indicated by lines drawn to
the extreme values of the range.
Boyer–Moore algorithm (BM algorithm) A string search developed by R. Boyer and
J. Moore in 1975. This search compares characters at the end of the pattern rather than at
the beginning, until a match is found.
bpi Abbrev. for bits per inch.
bps (bits per second) See also BIT RATE.
bpt Abbrev. for bits per track.
branch 1. A *control structure in which one of two or more alternative sets of program
statements is selected for execution. The selection is achieved during execution by means
of a branch instruction; this instruction thus breaks the normal sequential program
flow. (Branch instruction is usually regarded as synonymous with jump instruction.) See
also CASE STATEMENT, GOTO STATEMENT, IF THEN ELSE STATEMENT, JUMP. 2. The set
of instructions selected for execution as a result of a branch instruction. 3. To perform
such a selection.
branch and bound algorithm An organized and highly structured search of all
possible solutions to a problem. It is a general form of the *backtracking methods, and is
used extensively in artificial intelligence and operations research.
branching factor The average number of branches (successors) from a (typical)
node in a *tree. It indicates the bushiness and hence the complexity of a tree. If a tree
branching factor is B, then at depth d there will be approximately B d nodes.
branch instruction (jump instruction) See BRANCH.
branch testing A test strategy seeking to choose test data values that lead to the testing
of each *branch in a program at least once (branching occurring at each decision point). It
is equivalent to finding a set of paths through the *control-flow graph whose union covers
all the arcs of the graph. Branch testing normally requires more tests than *statement
testing but fewer than *path testing. See also TEST COVERAGE.
breadboard An easily adapted *circuit board on which experimental arrangements of
electronic components may be realized. Access to the individual components is simple and
hence the overall arrangement may be readily modified. Breadboards are used mainly for
the development of prototype circuit designs.
breadth-first search A technique of searching through a tree whereby all nodes in a
tree at level k are searched before searching nodes at level k + 1. Compare DEPTH-FIRST
SEARCH.
breakpoint See DEBUGGING.
Bresenham’s algorithm An algorithm that efficiently calculates the *pixel positions
needed to define a specified line using only integer arithmetic.
BRI (basic-rate ISDN) See ISDN.
bricks-and-clicks See E-COMMERCE.
bridge A unit that supports a low-level link of two regions of a single network. In
networks using a broadcast *protocol, in which all network nodes receive all messages, it
is helpful to subdivide the network into a number of regions in which the majority of
traffic is between pairs of nodes within that region, with only a small amount of traffic
leaving the region. A bridge can be inserted between two such regions: it allows
interregion traffic to cross the bridge but will not forward into the second region traffic
that is addressed to a destination in the same region as the sender. To achieve this, a bridge
must be capable of interpreting the sender and receiver addresses in the data. It must
therefore be capable of interpreting the network protocol, and will almost certainly need to
store an entire packet before forwarding it. The bridge will be designed so as to function at
the lowest possible level within the protocol stack, consistent with achieving correct
partitioning of the network.
Despite the complexity of the unit, and the delay it introduces, large networks almost
invariably include bridges since their presence greatly reduces the total network traffic. A
bridge may be adaptive, determining the addresses in each region by examining the
contents of the address fields of the packets. A bridge may operate as a filtering bridge,
with a fixed set of node identities that will be allowed to send packets across the bridge,
providing a limited form of safeguard against unwanted attempts to connect to a sensitive
system. See also FIREWALL, ROUTER.
bridgeware Any software or hardware that eases the transition from use of one
computer system to use of another not entirely compatible one. Bridgeware is normally
supplied by a computer manufacturer when a new range of machines does not offer
complete upward *compatibility from some previous range. Typically the bridgeware will
permit programs developed for the previous range to be executed (perhaps after minor
modifications) on the new range of machines. Compare MIDDLEWARE.
Brin, Sergey (1973– ) Russian-born US computer scientist and businessman.
Graduating from the University of Maryland (1993), Brin pursued postgraduate studies in
computer science at Stanford University. He and fellow student Larry *Page shared
interests in data mining and the structure of the World Wide Web, which led to several
papers including their seminal The Anatomy of a Large-Scale Hypertextual Web Search
Engine. Their theoretical work was realized (1996–98) in the *Google search engine, and
they founded Google Inc. in 1998. Brin is currently a director and president of
Technology. He is currently ‘on leave’ from his doctoral course at Stanford.
broadband 1. Communication by a system that supports a wide range of frequencies, so
that identical messages can be carried simultaneously. 2. A popular term for *ADSL.
broadband coaxial systems Communication systems that use *broadband
networking techniques on coaxial cable. The 300 megahertz (MHz) bandwidth of a
coaxial cable is divided into multiple channels through *frequency division multiplexing.
The channels can transmit signals at different data rates, allowing diverse applications to
share the cable by means of dedicated channels. Channel bandwidth may range from a few
kilohertz to several megahertz. A single cable may carry both digital data and analogue
data (voice, television) simultaneously. Access to the cable is provided through radiofrequency *transceivers (modems) assigned to a particular channel. Frequency-agile
modems may be used to communicate on different bands at different times.
There are two classifications of broadband coaxial systems. In a one-way system signals
travel in only one direction in the cable. This kind of system is common in cable TV
(CATV) systems. In a two-way system signals can travel in both directions on the cable.
All traffic that originates from network nodes travels on the inbound channels to the
headend. The headend is the origin of all traffic on the outbound channels, routing all
messages on inbound channels to the proper outbound channel to reach their destination.
Network nodes transmit messages on inbound channels and receive messages on outbound
channels.
Two-way systems fall into midsplit or subsplit categories. Midsplit systems divide
the cable bandwidth equally between inbound and outbound channels. Subsplit systems
put inbound traffic in the 5–30 MHz bands and outbound traffic in the 54–100 kHz bands.
This format is the easiest way to retrofit onto a one-way CATV system, and leaves the
VHF TV channels on their normal ‘off-the-air’ frequency assignments.
broadband ISDN See ISDN.
broadband networking 1. Communication using a modulated carrier (see
MODULATION)
to apply a data signal to a transmission medium in analogue form. Multiple
signals can be present simultaneously using *frequency division multiplexing. Different
bandwidths may be allocated to different signals, and different kinds of traffic (digital
data, analogue voice, television) may be carried at the same time. See also BROADBAND
COAXIAL SYSTEMS. Compare BASEBAND NETWORKING. 2. A term sometimes used for
wideband networking, i.e. networking with wideband channels (see BANDWIDTH).
broadcast domain A region of a network where packets sent to one special address,
called the diffusion address, are broadcast to all the other hosts in the network. There is a
distinction between layer 2 broadcast, which involves physical addresses, and layer 3
broadcast, which involves IP addresses. On an *Ethernet network, all hosts connected to a
*hub or *switch and forming part of the same virtual LAN (VLAN) constitute a single
broadcast domain. For two hosts situated on different VLANs, even where they are
connected to the same switch (see TRUNK), a router is necessary for their interconnection,
thus breaking the broadcast domain into separate domains: routers are thus said to
‘segment’ broadcast domains. Segmenting a network into many broadcast domains is
important for reducing the amount of *bandwidth and resources used by broadcast
messages. See also COLLISION DOMAIN.
broadcasting A message-routing algorithm in which a *message is transmitted to all
*nodes in a network. Some data-communication media, such as the *Ethernet, are
inherently broadcast in nature. Address filtering is used to restrict the set of messages
that any one host actually reads. The network service that delivers the message is known
as broadcast service and is implemented using a special address, which all stations are
prepared to accept. Other communication systems may require that a copy of the message
be separately addressed to each possible recipient in order to implement broadcasting.
Broadcasting may be used for a variety of purposes. For instance, to find the shortest
path to a destination, a message can be broadcast to all intermediate nodes repeatedly until
the destination node is reached. If path information is recorded as the message traverses
the network, the same path can be used for future messages to the same destination node.
As a second example, in local area networks with a tree-like topology, or in satellite
communication links with multiple ground stations within a beam radius, broadcasting can
be used to simplify addressing. This allows certain messages, such as request for a
bootstrap, to be sent to all hosts with the expectation that at least one host will be able to
satisfy the request. Thirdly, a broadcast message may be one that carries general
information of potential interest to all nodes on the net.
brouter Informal A unit in a network that combines the functions of a *bridge and a
*router.
browse To examine the contents of a large data set, especially the *World Wide Web,
particularly when locating and retrieving information with a search strategy that cannot be
predicted at the outset, or possibly with no search strategy at all. See also GOPHER.
browser A utility program that allows the user to locate and retrieve information from
networked information services. The term is now most frequently used as a synonym for
*Web browser.
brute force An approach to solving a computing problem by trying every possible
solution in turn until the correct one for the specific case in hand is found. A common case
is searching for the first occurrence of a given string s1 within a larger string s2 by
attempting to match s1 at every position in s2 until a match is found. Algorithms based on
brute force are often easy to implement, but are generally computationally expensive and
quickly cease to be viable when the number of possible solutions becomes very large.
They are the baseline upon which more sophisticated and efficient algorithms seek to
improve.
brute force attack An attempt to break a code (see CRYPTOGRAPHY) by *brute force,
by systematically running the decoding algorithm with each possible value of the key until
the correct value is found. The possibility of a brute force attack is countered by making
the range of possible key values so large that such an approach is not practical.
BS7799 The British Standard for Information Security. Part 1, Code of Practice for
Information Security Management, has been adopted as an international standard
ISO/IEC17799. Part 2 is a specification with guidance for use.
BSC 1. Abbrev. for binary symmetric channel. 2. See BISYNC.
BSI Group An organization that has grown out of the British Standards Institution,
founded in 1901 and the recognized authority in the UK for the preparation and
publication of national standards for industrial and consumer products. It represents the
UK at *ISO and European standards meetings. The Group has extended far beyond its
original remit of developing and promulgating standards in the UK and is now active
internationally in certification, inspection, and standards publication.
http://www.bsigroup.com/
• The BSI Group home page
B-spline A piecewise polynomial function, defined over a knot sequence, that has local
support and is nonnegative (see SPLINE). The B-spline of order n (degree n–1) is zero
everywhere except over the n successive spans
The importance of B-splines is that any spline can be expressed as a sum of multiples of
B-splines, and if a spline of degree n–1 is expressed in terms of B-splines, then changing
the coefficient of one of the B-splines alters precisely n spans of the curve without
affecting its continuity properties.
B-spline patch A surface *patch defined by *B-spline curves in the same way that a
*Bézier patch is defined by *Bézier curves. Given a characteristic polygon defined by
vertices rij, i = 0,1,…p, j = 0,1,…q, the B-spline patch is defined by
where B is the B-spline basis function of degree ρ.
BSP tree Short for binary space-partitioning tree.
B+ tree See B-TREE.
B-tree (b-tree) 1. (balanced multiway search tree) of *degree n (≥2). A *multiway
search tree of degree n in which the root node has degree ≥2, every nonterminal node
other than the root has degree k, where
and every leaf node occurs at the same level. Originally defined by R. Beyer and E.
McCreight, the data structure provides an efficient dynamic retrieval device.
An extension to a B-tree is a B+ tree, which is used as a primary index to an *indexed
file. It comprises two parts: a sequential index containing an entry for every record in the
file, and a B-tree acting as a multilevel index to the sequential index entries. B+ trees are
used in *VSAM. 2. A binary tree with no nodes of degree one.
BTron See TRON.
bubble jet A type of *inkjet printer.
bubble memory See MAGNETIC BUBBLE MEMORY.
bubble sort (exchange selection) A form of *sorting by exchanging that simply
interchanges pairs of elements that are out of order in a sequence of passes through the
file, until no such pairs exist. The method is not competitive with *straight insertion.
bucket 1. A subdivision of a *data file, serving as the unit within which records are
located. Buckets are specially used in connection with *hashing techniques, and with
indexing techniques (see INDEX) where index entries point to groups of records. In these
circumstances, hashing or indexing will yield the address of the start of the bucket; the
location for storage or retrieval within the bucket will then be found by searching. 2. A
capacitor whose electric charge is used as a form of dynamic *RAM. A fully charged
bucket, or full bucket, is equivalent to a logic 1; an uncharged or empty bucket is
equivalent to a logic 0. The charge may be passed through an array of capacitors and
associated electronics, which together form a bucket brigade.
bucket sort An external sort in which the records to be sorted are grouped in some way,
and each group stored in a distinct *bucket. Different buckets will probably be stored on
different storage devices. If searching is to be performed on the data, then each bucket
should contain records with the same hash value (see HASHING). In this way all the records
that might contain the required key may be fetched from the external memory at once.
buddy system A method of implementing a *memory management system. The
available memory is partitioned into blocks whose sizes are always exact powers of two. A
request for m bytes of memory is satisfied by allocating a block of size 2p+1 where
if no block of this size is available then a larger block is subdivided, more than once if
necessary, until a block of the required size is generated. When memory is freed it is
combined with a free adjacent block (if one exists) to produce a larger block, always
preserving the condition that block sizes are exact powers of two.
buffer 1. A temporary memory for data, normally used to accommodate the difference in
the rate at which two devices can handle data during a transfer. The buffer may be built
into a peripheral device, such as a printer or disk drive, or may be part of the system’s
main memory. See BUFFERING. 2. Any circuit or device that is put between two others to
smooth changes in rate or level or allow asynchronous operation. For example, line
*drivers can be used to isolate (or buffer) two sets of data lines.
buffering A programming technique used to compensate for the slow and possibly
erratic rate at which a peripheral device produces or consumes data. If the device
communicates directly with the program, the program is constrained to run in synchronism
with the device; buffering allows program and device to operate independently. Consider a
program sending output to a slow device. A memory area (the *buffer) is set aside for
communication: the program places data in the buffer at its own rate, while the device
takes data from the buffer at its own rate. Although the device may be slow, the program
does not have to stop unless the buffer fills up; at the same time the device runs at full
speed unless the buffer empties. A similar technique is used for input. See also DOUBLE
BUFFERING.
buffer overflow A common type of *vulnerability where a program does not check the
quantity of input before reading it into a fixed length *array or *buffer. In some cases the
excess input will be discarded, but if the programming language does not enforce the
bounds of the array then memory locations adjacent to the array may be overwritten,
replacing their correct values. In the worst case this may allow the *program counter to be
altered, directing the computer to execute code placed in the buffer by the attacker.
buffer register A storage location or device for the temporary storage of information
during the process of writing to or reading from main memory. It generally has a capacity
equivalent to one byte or one word.
bug An error in a program or system. The word is usually used to mean a localized
implementation error rather than, say, an error introduced at the requirements or systemdesign stage. See also DEBUGGING.
bug seeding See SEEDING.
bulk memory Another name for backing store.
bulletin board system (BBS) A *teleconferencing system that allowed its users to
post notices that they wished seen by other users on a variety of topics, to read the notices
left by previous users, and to *download software and information for use on their own
systems. Bulletin boards were the forerunners of such Internet facilities and *blogs, *chat
rooms, and file-sharing websites.
bump mapping A method of rendering realistic shading on bumpy surfaces without
actually rendering a full three-dimensional model of the bumps. The surface is treated as
smooth for the purpose of visible surface determination. The appearance of bumps or
roughness is created by perturbation of the surface normals. See also DISPLACEMENT
MAPPING.
bundle 1. To sell the hardware and software components of a computer system as a
single package. See also UNBUNDLING. 2. In telecommunications, a collection of channels
having the same source and destination and using the same protocols.
bundled attributes *Attributes of a graphical output primitive that are defined in a
device-dependent table pointed at by an index associated with the primitive.
burn To write information to a compact disk or DVD.
burst error (error burst) An error pattern, generally in a binary signal, that consists of
known positions where the digit is in error (‘first’ and ‘last’), with the intervening
positions possibly in error and possibly not. By implication, digits before the first error in
the block and after the last error in the block are correct.
burst mode Usually, dedicated use of a multiplexer *channel for a single I/O device,
thus permitting that device to operate at high (burst) speed. A number of data characters or
words are transferred as one group rather than character by character.
bus A signal route to which several items of a computer system may be connected in
parallel so that signals can be passed between them. A bus is also called a trunk in the
US, and a highway in the UK. The signals on a bus may be only of a particular kind, as
in an *address bus or *data bus, or they may be intermixed. To maximize throughput, the
number of lines in the bus should equal the sum of the number of bits in a data word, the
maximum address, and the number of control lines. As this is expensive to implement, a
*multiplexed bus may be used.
There is a widely used instrumentation bus standard, referred to as *IEEE 488 or as
GPIB, general-purpose interface bus. For microprocessors there are a number of
standardized bus systems, one of the first to be widely used being the *VME bus. The
rapid development of the home computer has led to the introduction of several generations
of bus systems of ever increasing speeds. Examples are *ISA bus, *PCI bus, *accelerated
graphics port, *USB, *FireWire, and *PCI Express.
bus arbitration The procedure in bus communication that chooses between connected
devices contending for control of the shared bus; the device currently in control of the bus
is often termed the bus master. Devices may be allocated differing priority levels that
will determine the choice of bus master in case of contention. A device not currently bus
master must request control of the bus before attempting to initiate a data transfer via the
bus. The normal protocol is that only one device may be bus master at any time and that
all other devices act as slaves to this master. Only a bus master may initiate a normal data
transfer on the bus; slave devices respond to commands issued by the current bus master
by supplying data requested or accepting data sent.
bus driver See DRIVER.
bused interface Another name for daisychain.
bus hierarchy An interconnection system used when a single system bus cannot
provide the degree of *connectivity required. Devices are connected using multiple buses
that are themselves then interconnected to form a hierarchical connection system.
business graphics Computer graphics related to business, commerce, industry, and
nonscientific applications. Examples include pie charts, graphs, and clip art.
bus master See BUS ARBITRATION.
bus terminator An electric circuit connected at the end of a bus to hold it at a
predetermined signal level when it is not active, and also to ensure impedance matching
and thus avoid unwanted reflections of signals. It is often available as a single package for
mounting onto a printed circuit board.
It is important to ensure that the electric impedance of a bus carrying high-frequency
signals does not have any abrupt changes. If the ends of the conductors are not terminated,
the signals see an almost infinite impedance and are reflected back along the conductor. A
fast switching circuit connected to an unterminated bus could detect both the signal and
the reflection and so give rise to errors.
bus topology See NETWORK ARCHITECTURE.
busy signal A signal from a device indicating that it cannot accept any new commands
or data for the time being. Compare READY SIGNAL.
button 1. An area on a screen that when activated by means of a *pointing device or
predetermined key sequence causes an action to be initiated. Buttons can be any shape or
size and need not be visible. The commonest form is a small rectangular area shaded to
give the appearance of protruding slightly from the screen and labelled with text that
indicates its function (‘close’, ‘ok’, ‘print’, etc.) or with an *icon. When the button is
activated or ‘pressed’, its appearance will normally change so that it appears recessed. A
horizontal or vertical row of buttons is called a button bar. 2. On a *mouse (or similar
device), a switch that a user presses to initiate a specific function (see CLICK).
byte A fixed number of *bits that can be treated as a unit by the computer hardware. It is
a subdivision of a *word, and almost always comprises 8 bits although 6, 7, or 9 bits are
occasionally encountered.
The letters B and b are commonly used as symbols for byte, as in MB (megabyte), and
GB (gigabyte), although the word is often written in full in such cases, as in Mbyte.
See also CHARACTER.
byte code See JAVA.
byte-order mark (BOM) The Unicode codepoint U+FEFF when occurring at the start
of a file. Its purpose is to give file-reading software a means of determining which of
several popular Unicode encoding schemes the file is using. Additionally, for some
encodings it indicates whether the most- or least-significant byte comes first. If the
software detects a byte pattern at the start of the file that represents this codepoint in a
recognized encoding, it assumes that the rest of the file also uses this encoding. The file’s
content is considered to start at the position following the byte-order mark.
Byzantine Generals problem The problem of devising an algorithm that will decide
whether a collection of generals, who communicate using messages some of which may
be lost due to deficient transmission, agree to carry out an attack on a target. This is a
reformulation in familiar terms of a problem that occurs in the design and development of
distributed computer systems.
C A programming language originally developed for implementation of the *UNIX
operating system. C is the preferred language for systems software development in the
UNIX environment, and is widely used on personal computers. It combines the control
and data structures of a modern high-level language with the ability to address the
machine hardware at a level more usually associated with assembly language. The terse
syntax is attractive to professional programmers, and the compilers generate very efficient
object code. C is derived from *BCPL, via a short-lived predecessor *B.
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
• The current C standard
C++ A programming language derived from *C. C++ is a superset of C that adds type
checking, operator overloading, abstract data types, and classes to the original language. It
thus combines the power of *object-oriented programming with the efficiency and
notational convenience of C. C++ has become the language of choice for implementing
applications to run under Microsoft *Windows.
http://www.open-std.org/jtc1/sc22/wg21/
• The C++ standards committee Web page
C# (C-sharp) An object-oriented programming language based on C++, with features
similar to those of Java. An extended version, Comega (Cω), is being developed.
http://standards.iso.org/ittf/licence.html
• The ISO C# specification
C2, C3, C4 See COMMAND AND CONTROL.
CA See CERTIFICATE AUTHORITY.
cable A physical medium for carrying signals.*Fibre optics requires specially prepared
optical fibres to carry light signals. Electric cable is usually insulated copper wire
encountered in various forms depending on the intended application; common forms
include *twisted pair (unshielded and shielded), *coaxial cable, and *ribbon cable.
An electric circuit must always contain an outward and a return path. For low-frequency
and low-power signals the outward path can consist of a single conducting wire, with the
return path carried by a common ground (earth) return, which can be shared by many
different circuits. At higher frequencies and powers this system is no longer effective, and
it is necessary to provide both an outward and a return conductor. At still higher
frequencies, the two conductors need to be kept close to one another, as in twisted pair, so
that the outward current in one conductor is balanced by the corresponding inward current
in the other; this reduces the amount of energy lost by radiation. Screened cable is a
multipath electric cable with a surrounding screen usually formed from an interwoven fine
wire mesh, and used for example in shielded twisted pair; the screen provides some
isolation from external sources of electrical interference. Multicore cable is a multipath
cable frequently containing a mixture of screened and single conductors; sometimes one
or more coaxial cables are included to provide paths for high-frequency or other special
signals.
cache (cache memory) A type of memory that is inserted between the processor and
memory proper. The *memory hierarchy on a system contains registers in the processor,
which are the highest-speed storage, and, at a slightly lower level of accessibility, the
contents of the main memory. The cache is intended to reduce the discrepancy in
accessibility between these two types of unit, and functions by holding small regions that
map the contents of main memory. The formal behaviour of the cache corresponds closely
to that of the *working set in a *paging system. Modern CPUs, particularly *multi-core
processors, have two caches between the process registers and main memory: the L1
cache is found in each core, whereas the L2 cache sits on the main memory bus.
Magnetic disk *controllers can have a cache. The working of the cache is not visible to
the main CPU, but again provides a mapping of the current contents of part of the disk
units in order to provide improved performance.
See also DISK CACHE.
CAD Abbrev. for computer-aided design.
CADCAM See COMPUTER-AIDED DESIGN.
CADMAT See COMPUTER-AIDED DESIGN.
CAE 1. Abbrev. for computer-aided engineering. 2. Abbrev. for common application
environment.
CAFS (content-addressable file system) A development by ICL of *associative
memory, it is now obsolete.
CAI (computer-aided instruction) See COMPUTER-ASSISTED LEARNING.
CAIS–A See PCTE.
CAL Abbrev. for computer-assisted learning.
call To transfer control to a *subroutine or *procedure, with provision for return to the
instruction following the call at the end of execution of the subroutine/procedure.
call by name See PARAMETER PASSING.
call by reference (call by address) See PARAMETER PASSING.
call by value See PARAMETER PASSING.
calling sequence The code sequence required to effect transfer of control to a subroutine or procedure, including *parameter passing and the recording of the return
address. Uniformity of calling sequences is vital if it is required to call procedures written
in a different language from the calling program.
call instruction An instruction that saves the contents of the *program counter before
branching to a *subroutine or *procedure. Compare RETURN INSTRUCTION.
CAM 1. Abbrev. for computer-aided manufacturing, 2. Abbrev. for content‐addressable
memory, 3. Abbrev. for cellular automata machine.
CAMAC A standardized multiplexing intermediate interface. It does not usually connect
directly to a processor or a peripheral, but provides a standardized interface to which a
number of peripheral interface adapters and a single computer interface controller can be
connected.
The peripheral adapters may each have different functions (e.g. digital to analogue
converter, level changers, parallel to serial converter), and thus have different interfaces
facing outward from the CAMAC. Similarly the controller module connects to the
CAMAC interface but the outward-facing interface can be chosen to suit the available
computer. The name CAMAC was chosen to symbolize this characteristic of looking the
same from either direction. The adapters are typically a single printed circuit card that
plugs into the internal 86-way connector. The outward-facing connections are usually
mounted on a panel attached to the circuit card or may be made via a second connector
mounted above the 86-way CAMAC connection. The interface is widely used for
connecting instruments and transducers to computers.
CAMAC was proposed as a standard by the UK Atomic Energy Authority and further
development and documentation was done by the European Standards of Nuclear
Electronics (ESONE) and the Nuclear Instrument Module Committee of the US. The
parallel interface is documented in IEC-522 and the modular construction is in IEC-516.
Cambridge Ring A pioneering high-speed *local area network, originally developed at
Cambridge University, UK. It used a minipacket of 40 bits: 16 bits held 2 bytes of data,
two groups of 8 bits specified the addresses of the source and destination nodes, and the
remaining 8 bits were used for control purposes. A master station controlled the inter-bit
time and the gap between packets, so that the ring circulated an exact number of packets
and gaps. Each packet contained a single-bit indicator as to whether it was full (i.e. the
packet contained useful data) or empty (i.e. the packet data had been received by the
destination node, and the packet had completed a circuit of the ring back to the original
source node). The Cambridge Ring was thus an example of an ‘empty slot’ ring. See also
TOKEN RING.
campus-wide information service See CWIS.
cancellation The loss of significant digits in subtracting two approximately equal
numbers. This is a frequent cause of poor accuracy in numerical results but it can usually
be avoided by some reorganization of the calculation. Consider, for example, the quadratic
equation
The formula for the roots of a quadratic is
if b2 is large compared with 4|ac| severe cancellation occurs in one of the roots. This root
can be computed from the fact that the product of the roots is c/a.
C&C See COMMAND AND CONTROL.
capability architecture An architecture that extends across both the hardware and the
(operating system) software of a computer system. It is intended to provide better
protection features to facilitate both multiprocessing and computer security. In this form of
architecture there are two types of words in memory: data (including programs) and
capabilities. Capabilities can only be manipulated by privileged portions of the system.
The capability descriptor tells where data is and what sorts of access to that data are
permitted. *Object-oriented architecture is an extension of this concept.
capability list The list of permitted operations that a subject can perform on an object.
See OBJECT-ORIENTED ARCHITECTURE, CAPABILITY ARCHITECTURE.
Capability Maturity Model (CMM) A five-level model for assessing the capability
and maturity of software development organizations. It was developed by Watts
Humphrey at the *Software Engineering Institute and the first version was released in
1987. The level of an organization is assessed in terms of key process areas and key
practices.
Level 1, the initial level, is characterized by lax procedures and lack of management
appreciation of software issues. At level 2, the repeatable level, basic procedures are
defined and there is sufficient discipline to enable earlier successes to be repeated; there is,
however, no framework for improvement and the risks associated with new and different
developments are high. The defined level, level 3, is the level at which all software
development projects in the organization use a documented and approved version of the
organization’s process for developing and maintaining software; in addition, there are
procedures in place for maintaining the process model. At level 4, the managed level,
detailed measurements of process and product quality are collected and analysed, so that
the causes of changes in process performance can be identified. The last level is the
optimizing level, characterized by steady process improvement arising from the
feedback obtained from the projects.
After 1997 CMM was subsumed into Capability Maturity Model Integration (CMMI),
which extends its concepts to other types of organization.
capacity 1. The amount of information that can be held in a storage device. The amount
may be measured in words, bytes, bits, or characters. 2. The maximum range of values
that can be held in a register. 3. of a transmission channel. See CHANNEL CODING
THEOREM.
CAPM Abbrev. for computer-aided production management.
CAPP Abbrev. for computer-aided process planning.
caps lock A mode of keyboard operation whereby the effect of the shift key is reversed
for alphabetic characters. See also SHIFT LOCK.
capstan The component of a tape transport that transmits motion (sometimes indirectly)
to the magnetic tape and controls the speed of its motion past the head; the motion of the
tape reels is usually separately controlled. *Streaming tape transports often have no
capstan.
CAPTCHA (Completely Automated Public Turing test to tell Computers
and Humans Apart) A technique used to prevent *web crawler *bots from signing on
to web services intended for human users. It typically consists of an image that features
distorted text easily recognized by humans, but too difficult for current image or text
recognition software to handle. The user enters the recognized text into a dialogue box to
prove that the entity interacting with the system is in fact human. See also TURING TEST.
CAP theorem A theorem stating that a *distributed system cannot deliver on all three of
the following guarantees: that all system entities see the same view of the overall system
state (Consistency); that a response regarding success or failure is delivered to every
request (Availability); and that loss of messages or failure of part of the system does not
prevent the system as a whole from operating (Partition tolerance). In effect, a distributed
system designer needs to choose which one of these three will be sacrificed, whilst
guaranteeing the other two. See also ACID, BASE.
CAR The *Lisp function that when applied to a list yields the *head of the list. The word
was originally an acronym for contents of address register. Compare CDR.
card See ADD-IN CARD, MAGNETIC CARD, PCMCIA, PUNCHED CARD, SMART CARD.
card cage A framework in which *circuit boards can be mounted. It comprises channels
into which the boards can be slid and sockets and wiring by means of which they are
interconnected.
cardinality A measure of the size of a *set. Two sets S and T have the same cardinality
if there is a *bijection from one to the other. S and T are said to be equipotent, often
written as S ~ T. If the set S is finite, then the cardinality of S is the number of elements in
the set. For an infinite set S, the idea of ‘number’ of elements no longer suffices. An
important fact, discovered by Cantor, is that not all infinite sets have the same cardinality.
The two most important ‘grades’ of infinite set can be illustrated as follows.
If S is equipotent to the set of natural numbers
then S is said to have cardinality ℵ0 (a symbol called aleph null).
If S is equipotent to the set of real numbers then S is said to have cardinality C, or
cardinality of the continuum. It can be shown that in some sense
since the real numbers can be put in bijective correspondence with the set of all subsets of
natural numbers.
card punch An obsolete machine formerly used to punch a pattern of holes in a
*punched card. The pattern had a coded relationship to the data passed to the machine
from another data-processing machine or an operator at a keyboard.
card reader A machine that senses the data encoded on a card and translates it into
binary code that can be transmitted for further processing (see also MAGNETIC CARD,
SMART CARD, PUNCHED CARD).
The magnetic card (or magnetic stripe) reader can have a power-driven
transport that will draw the card into the machine and move it past the read head. The
direction of travel is reversed after the card has been read and thus the card is returned to
the user. In designs used with automatic cash dispensers the direction of travel may not
reverse if the card and/or the associated identification number are not valid.
A slot reader is a relatively simple device for reading badges or plastic cards. The
badge or card is manually moved along a slot that guides it past a sensing station. The data
to be read may be encoded magnetically or printed in *bar code or a machine-readable
font. Since the rate of movement past the read head is not controlled by the device, the
sensing head and electronics are generally designed to work over a range of speeds.
Compared to a reader with a powered transport the device is much cheaper and quicker.
Some designs for use with bank teller terminals can read the printed encoding on checks
and the magnetic encoding on plastic cards.
The smart card reader has a guide and a connector that engages contacts on the
card. When the machine senses that the card is in place and the related code has been
keyed in, the memory device embedded in the card can be read. Some types can also
modify the data on the card, e.g. debiting the amount of credit available.
caret The symbol ʌ. It is sometimes used to indicate exponentiation as in 10ʌ2 (for 102).
It is also used to indicate a control character, as in ʌa (holding down the control key and
pressing ‘a’).
carriage return (CR) A control code that is used in the formatting of printed or
displayed output. It indicates that the next data character is to appear in the leftmost
position on a line. In some serial printers, the CR code may cause a physical movement of
the printing carriage to the leftmost print position. In other types of printer the characters
will be correctly positioned on the line although they may be printed in some other
sequence or even simultaneously. Some operating systems use CR to terminate a line of
input and often an implied *line feed is added.
carrier 1. See MODULATION. 2. (of an algebra) See SIGNATURE.
carry lookahead A method that is used in multibit *parallel adders whereby the carry
into an individual element of the adder can be predicted with a smaller delay than that
required for the carry to be produced by rippling through previous adder stages as a result
of adding the less significant addend and augend bits. Logic to achieve this examines, in
parallel, each pair of addend and augend bits and infers whether carries generated in
previous stages will be propagated to the carry input of each adder stage.
Carry lookahead affords a considerable improvement in performance over, say, ripplecarry adders since the carry is generated in parallel at all stages of addition rather than
sequentially, as in the ripple-carry adder. Adders using the lookahead technique are thus
often described as high-speed adders.
Cartesian product of two *sets S and T. The set of all *ordered pairs of the form (s,t)
with the property that s is a member of S and t is a member of T; this is usually written as
S × T. Formally,
If R denotes the set of real numbers, then R × R is just the set of points in the (Cartesian)
plane or it can be regarded as the set of complex numbers, hence the name.
The concept can be extended to deal with the Cartesian product of n sets,
This is the set of ordered n-tuples
with the property that each si is in Si. In the case where each Si is the same set S, it is
customary to write S n for
Cartesian structure Any data structure where the number of elements is fixed and
linearly ordered. The term is sometimes used as a synonym for *record.
cartridge A container used to protect and facilitate the use of various computer-related
media such as *magnetic disk, *magnetic tape, *optical disk, integrated circuitry, or
printer ink *ribbon. It is usually designed so that the medium remains permanently within
the cartridge or at least attached to it, and the medium itself is not touched by an operator.
See MAGNETIC TAPE CARTRIDGE, DISK CARTRIDGE, ROM cartridge.
cartridge drive Either a tape transport for handling cartridge tape, or a disk drive for
handling disk cartridges.
cartridge font See FONT CARTRIDGE.
cartridge tape Tape carried in a *magnetic tape cartridge.
cascadable counter An individual counter element, usually containing a number of
*flip-flops in a chain of such elements. Each element has facilities for a count input and is
capable of generating an overflow (or carry) output. The counter elements may typically
have count lengths of integer powers of 2 (binary counters) or integer powers of 10
(decimal counters). Cascading a counter that has a count length of 4 with one having a
count length of 10 will give a counter that has a count length of 40.
Since cascadable counters are available as integrated-circuit blocks or modules,
cascadable counters are also called modular counters. See also COUNTER.
cascade A configuration in which the output of one electronic device drives the input of
another.
cascaded windows See TILE.
cascading style sheets See CSS.
CASE (computer-assisted software engineering) A marketing term, used to
describe the use of *software tools to support *software engineering. There are two
distinct classes of CASE, referred to as lower CASE and upper CASE. Lower CASE
generally supports the programming aspects of the development life cycle and here the
term is synonymous with programming support environment (*PSE). Upper CASE is used
to describe tools that support methods used earlier in the life cycle to elicit or record user
requirements, software (or system) requirements, and design.
case-based reasoning A technique from *artificial intelligence that attempts to solve
new problems by using past experience. The main task involves matching problem details
against a library of previous cases. The cases are stored together with solutions so that
when the nearest case is located the corresponding solution can be adjusted to suit the
current problem. There are many different approaches to the design of the matching
process, the storage of the cases, and methods for modifying the retrieved solution to fit
the current problem.
case grammar A theory of grammar, originally devised by Charles Filmore within the
general orientation of *generative grammar, that regards *deep cases as the grammatical
primitives in terms of which sentences are constructed.
case-sensitive Requiring or making a distinction between upper- and lower-case letters.
In any situation where a computer program is reading characters, a decision has to be
made whether to treat upper- and lower-case letters the same or differently. In some cases,
such as *word processor or *text editor input, case must be preserved, while when
performing an alphabetic sort or an indexed search, case might be ignored. Modern
database management systems generally offer extensive rules to specify which data is
case-sensitive and which is not. Passwords may or may not be case-sensitive, depending
on the circumstances. In some areas there is no consensus; for example, *UNIX
commands are case-sensitive whereas *Windows commands are not.
case statement A conditional *control structure that appears in most modern
programming languages and allows a selection to be made between several sets of
program statements; the choice is dependent on the value of some expression. The case
statement is a more general structure than the *if then else statement, which allows a
choice between only two sets of statements.
cassette Nominally another name for cartridge; in practice the term is normally reserved
for the type of cassette originally introduced by Philips for audio purposes under the
trademark Compact Cassette and used as backing store on some early
microcomputers.
The digital audio tape cartridge is sometimes referred to as a cassette.
CAT Abbrev. for computer-aided testing.
CAT-3 (category-3) One of the standards for *twisted pair cabling defined in
EIA/TIA-568-B. It supports data transfer rates up to 10 Mbps.
CAT-5 (category-5) One of the standards for *twisted pair cabling defined in
EIA/TIA-568-B. CAT-5 and CAT-5e (CAT-5 enhanced) support data transfer rates up to
100 Mbps.
CAT-6 (category-6) One of the standards for *twisted pair cabling defined in
EIA/TIA-568-B. It supports data transfer rates up to at least 1 Gbps.
CAT-7 An informal name for ISO/IEC 11801/Class F, a standard for *twisted pair
cabling. It supports data transfer rates up to 10 Gbps.
catastrophic code A *convolutional code that is prone to catastrophic error
propagation, i.e. a situation in which a finite number of *channel errors causes an
infinite number of decoder errors. Any given convolutional code is or is not a catastrophic
code.
catastrophic error propagation See CATASTROPHIC CODE.
category A collection of objects A, together with a related set of morphisms M. An
object is a generalization of a *set and a morphism is a generalization of a *function that
maps between sets.
The set M is the *disjoint *union of sets of the form [A,B], where A and B are elements
of A; if α is a member of [A,B], A is the domain of α, B is the codomain of α, and α is
said to be a morphism from A to B. For each triple (A,B,C) of elements of A there is a
*dyadic operation ° from the *Cartesian product
to [A,C]. The image β°α of the ordered pair (β,α) is the composition of β with α; the
composition operation is *associative. In addition, when the composition is defined there
is an identity morphism for each A in A.
Examples of categories include the set of *groups and *homomorphisms on groups, and
the set of *rings and homomorphisms on rings. See FUNCTOR.
cathode-ray tube (CRT) A display device in which a beam of electrons (cathode rays),
emitted by an electron gun, is focused and deflected to a series of specific positions on the
phosphor-coated screen of the display. The image is generated as the electron beam moves
over the screen (see also RASTER-SCAN DISPLAY, VECTOR DISPLAY, BEAM DEFLECTION).
Electrons striking a spot of phosphor on the screen increase the phosphor’s energy state so
that it becomes excited. The excited phosphor emits light as it returns to its ground state,
thus creating a small area of the image. As light is emitted for a short period, it is
necessary to provide some mechanism for continually redrawing or *refreshing, the
display if a constant image is required. Different phosphors emit different coloured light.
By coating the screen with small areas of red, green and blue phosphors and having three
electron guns it is possible to produce a colour display (see also RGB COLOUR MODEL,
SHADOW-MASK CATHODE-RAY TUBE).
For many years the most widely used computer display device, the CRT is being rapidly
superseded by *flat-panel displays.
Catmull–Clark surfaces A class of recursively generated *B-spline surfaces on
arbitrary topological meshes that converge to a surface.
causal reasoning A form of reasoning that is used in *artificial intelligence and is
based on a causal model of the problem. A causal model attempts to represent the
underlying principles in the domain or device being modelled and frequently takes the
form of rules, which express causes (actions or events) and their effects.
caustic In optics, light focused by reflection from or refraction through a curved object.
For example, when a magnifying glass is used to burn a piece of paper, the intense point
of focused light at the paper’s surface forms a caustic. *Ray tracing algorithms in
computer graphics typically have difficulty correctly detecting and handling this
phenomenon. An example might be the form of the sunlight on the bottom of a swimming
pool when there are ripples on the surface of the water that focus the light into caustics.
CAV (constant angular velocity) A mode of operation used for magnetic disks and
some optical disks in which the disk is rotated at a steady speed. Compare CLV, MCAV,
MCLV.
Cayley table (composition table, operation table) A tabular means of describing a
finite *group, first used by the 19th-century mathematician Arthur Cayley. To illustrate,
the set
forms a group under the *dyadic operation ° as described by the Cayley table shown in the
diagram. The value of −1°i, for example, is −i. The name composition table is usually
used when the group operation is *composition of functions.
Cayley table.
CBC (Cipher Block Chaining) See DATA ENCRYPTION STANDARD.
CBL (computer-based learning) See COMPUTER-ASSISTED LEARNING.
CBR Abbrev. for constant bit rate.
CBT Abbrev. for computer-based training.
CCD (charge-coupled device) A semiconductor device that has the structure of a
*MOSFET with an extremely long channel and many gates, perhaps 1000, closely spaced
between the source and drain electrodes. A MOS capacitor is formed between each gate
and the substrate; since this capacitor is capable of storing a charge, CCDs can be used as
memory devices. The CCD essentially acts as a long (high-density) *shift register since,
by manipulating the voltages applied to the gates, charge can be transferred from one
MOS capacitor to its neighbour, and so on along the channel.
The physical structure of the device and the way in which the gate voltages are
manipulated determines the number of gates needed to store one bit of information,
typically two or three gates being required. Since the stored charge leaks away, CCDs
must be continuously clocked, typically at a frequency of one megahertz.
CCDs are also manufactured in arrays and as they are sensitive to light they are widely
used in video cameras, where they replace the vidicon tube used previously, and in other
sensing applications. Both monochrome and colour arrays are available. Digital cameras
rely on CCD arrays to capture the image.
CCITT Comité Consultatif Internationale de Télégraphique et Téléphonique
(International Telegraph and Telephone Consultative Committee), originally, an agency of
the International Telecommunications Union (ITU), itself an agency of the UN. The
CCITT acted as a worldwide coordinating agency for telephone and data communications
systems, dealing with regulatory matters and with technical standards. The voting
members of the CCITT included the national telecommunications administrations such as
the *FCC and the *PTTs in Europe, and recognized private administrations such as AT&T
and BT. Nonvoting members included scientific and industrial organizations and standards
bodies such as ISO.
The CCITT produced definitive versions of the standards to be used in both national
and international telecommunications. CCITT standards are categorized by an initial letter,
which indicates the broad topic area for the material, and a decimal number, which
identifies the particular standard. Standards specifically relating to data transmission have
the letter V (over analogue circuits (see V) or X (over digital circuits (see X); standards
relating to *ISDN have the letter I while standards for monitoring and controlling
communications systems have the letter M. Where there have been major revisions of
standards that have been in use for some time, the number will be followed by either bis
or ter, indicating a second or third version of the standard.
In 1992, there was a reorganization of the ITU, which led to the CCITT being renamed
as the ITU-T (International Telecommunications Union—Telecommunication
Standardization Sector; see ITU).
CCS (calculus of communicating systems) A mathematical treatment of the
general theory of *concurrency and *synchronization derived by R. J. Milner. See also
PROCESS CALCULUS.
CCTA (Central Computer and Telecommunications Agency) See OFFICE OF
GOVERNMENT COMMERCE.
CDC Control Data Corporation, a US-based manufacturer of supercomputers, intended
primarily for scientific and engineering applications. It was established in the mid-1950s
by a group of engineers including Seymour Cray and for many years led the field with its
6600 and 7600 ranges of computers. It lost ground in the 1980s and began to look to other
markets. In 1992 it split into two companies, Ceridian taking the noncomputer business
and Control Data Systems Inc. taking the computer products. The latter is now part of BT
Group plc.
CD-DA (CD-A) See CD-ROM FORMAT STANDARDS.
CDDI (copper distributed data interface) A high-speed network system that uses
the same protocols and signalling conventions as FDDI, but is designed to operate over
*CAT-5 twisted-pair cabling rather than an optical fibre. See FIBRE DISTRIBUTED DATA
INTERFACE.
CD-E CD-erasable. See CD-RW.
CD-I CD interactive, a CD format that allows the interleaving of data, sound, and images
on the same disk. It was popular in the early 1990s but is now little used. See also CDROM FORMAT STANDARDS.
CDIF (CASE data interchange format) A format for encoding data gathered by
*CASE tools so that the data can be moved from one CASE tool to another. Work is
progressing on the definition of an international standard definition for CDIF.
CDOS (concurrent DOS) A version of *DOS that supported multitasking.
CDR The *LISP function that when applied to a list yields the *tail of the list. The word
was originally an acronym for contents of decrement register. Compare CAR.
CD-R CD-recordable, a *write-once optical-disk format designed to be readable by
systems that can read CD-ROM disks. CD-R disks have a spiral track and a recording
layer of a special cyanine or azo dye. There is a thin layer of gold or silver alloy coating
the dye. In the writing process, the laser ‘burns’ patches of the dye layer. These have
different reflectivity and correspond to the pits on a CD-ROM disk. CD-R is a cheap and
reliable method of data storage. Although the data cannot be erased, more data can be
added later in multisession recording. See also CD-ROM FORMAT STANDARDS.
CD-ROM CD read-only memory, a means of providing read-only access to data for use
on computer systems; the term applies to the medium in general (based on the 120 mm
diameter audio CD) and to a particular instance.
A CD-ROM drive must be used with the computer system to read the information from
disk. Most drives can also play CD audio disks, but audio disk players cannot handle CDROMs. A standard CD-ROM is capable of holding about 700 Mbytes of data. The first
CD-ROM drives moved the disk at the same speed as the audio product, both using *CLV,
and had a much lower rate—about 150 Kbytes per second—than hard magnetic disks
(although higher than floppy disks). Modern drives operate at about 50 times this speed,
giving data transfer rates of 7.5 Mbytes per second.
The data on CD-ROMs is encoded in the form of a spiral of minute pits impressed into
one surface of the disk at the time of manufacture, and cannot normally be rewritten (but
see CD-R, CD-RW). The data may be in any form—text, sound, static or video images, or
binary data, or a mixture (see MULTIMEDIA); various *CD-ROM format standards exist to
handle these.
CD-ROM is widely used for the distribution of data, images, and software. Many
commercial databases and indexes are available on CD-ROM, often as an alternative to an
online service. It has now been almost completely superseded by the *DVD as dataset
sizes increase.
CD-ROM was first announced in 1983 and became a mass-market medium in the mid1990s.
CD-ROM drive (CD-ROM transport) See CD-ROM.
CD-ROM format standards The *formats of *CD-ROMs are defined by several
standards. The first is a proprietary standard known as the ‘Red Book’ (formerly CDDA), which defines those features that are common to CD-Audio and CD-ROM. It
includes a measure of error correction that is adequate for audio disks. The second
standard, the international standard ISO 10149, defines the additional features (including
more powerful error correction) needed to allow data to be held on the disk, i.e. for
recording on CD-ROM; it supersedes the proprietary ‘Yellow Book’ standard. The third
standard, ISO 9660 (developed from the earlier High Sierra standard), defines how a
data file is represented on the disk in such a way that it can be accessed by different
operating systems. A commonly supported extension to ISO 9660, Joliet, allows less
restrictive filenames.
The CD-R format is regulated by the proprietary standard known as the ‘Orange
Book’. This defines a recordable (*write-once) disk that is closely compatible with CDROM; systems that can read CD-ROM disks can also read the CD-R format. The later
*CD-RW format allowed disks to be erased and reused.
A less frequently used format standard is CD+G, which allows an audio CD to carry a
few graphic images; it is intended for consumer products rather than computers.
As the Red Book standard is common to all CD disks, most CD-ROM drives can play
standard audio CD disks on which sound is recorded in the simple Red Book format and
not interleaved with data or images.
CD-ROM library See OPTICAL DISK LIBRARY.
CD-RW (CD-rewritable) A CD format launched around 1997 that enabled recording
and re-use of CDs. CD-RW uses a phase change to record data. The recording layer is a
special alloy (typically silver/indium/antimony/tellurium). The laser in the CD drive has
three power levels. The highest level melts small regions of the recording layer and these
cool quickly to an amorphous form, thereby creating small pits in the recording surface.
This level is used for writing data to the disk. The intermediate power level heats the
surface to a temperature below the melting point, but high enough to cause
recrystallization of the amorphous pits. This is used for erasing data. The lowest power
level is used for reading data from the disk in the same way that data is read from a CDROM.
These disks were originally described as CD-E (CD-erasable). In the earliest type it
was possible to add data incrementally to the disk, but to re-use space it was necessary to
erase (i.e. reformat) the whole disk. Drag-and-drop could be used only with special
packet-writing applications. These problems were solved by the Mount Rainier
specification. Designed to enable native operating-system support for CD-RW, it
eliminated the need for third-party software and enabled CD-RW to function in (almost)
the same way as a magnetic disk.
CDTV See CD-ROM FORMAT STANDARDS.
ceiling If x is a real number, then ceiling(x), also written as ⌈x⌉, is the smallest integer
greater than or equal to x.
cel (celluloid transparency) A transparent sheet used in traditional animation to
superimpose one object relative to another.
Celeron Trademark See INTEL.
cell 1. An address, a location in memory, or a register, usually one capable of holding a
binary number. It is sometimes a location capable of holding one bit. 2. The basic unit of a
*spreadsheet or some other table of text, formed by the intersection of a row and column.
It contains a label, value, or formula with attributes such as size, font, and colour. 3. The
name given to a *packet in one version of a packet switching system. Packet switching
systems subdivide the data to be transmitted into a number of packets. In contrast to many
systems, a cell is short—for instance 53 bytes in the case of an *ATM cell—and its
internal structure is fixed. Small size and fixed structure allow the cell to be switched
using a very simple algorithm; the processing time required for switching is thus reduced,
with a corresponding increase in the number of cells switched in a given time. 4. The
coverage area provided by a base station to a mobile (wireless) phone. As the user moves
geographically, the conversation is ‘handed over’ to another cell at another base station.
cell array A computer-graphics output primitive defined by a rectangular grid of equalsize rectangular cells each having a single colour.
cell relay A form of switching in which the individual packets, or *cells, have a fixed
length and a fixed internal structure; in many cases the cells are also deliberately kept to a
small size, typically a few tens of bytes. Once the initial decision on cell routing has been
made, typically at the time of creating a *virtual circuit, it is possible to realize the actual
switching activity almost entirely in table-driven hardware, rather than invoking a
software implementation, allowing very short switching times. The large number of cells
into which even a short message is subdivided increases the ratio of overheads to useful
payload. See also ATM, FRAME RELAY.
cellular automata machine (CAM) A *multiprocessor machine based on an array of
cellular automata. Each automaton is usually a simple processor capable of simple
computational tasks. In a normal architecture, each of these processing nodes can
interchange data only with its immediate neighbours and all processing nodes carry out the
same computational operation. Although the operations available at each node are quite
simple, the aggregated effect of many such nodes can exhibit complex behaviour and can
rapidly model quite complex dynamic systems.
CEN/CENELEC European Committee for Standardization (CEN; Comité Européen de
Normalisation) and European Committee for Electrotechnical Standardization
(CENELEC; Comité Européen de Normalisation Électrotechnique), voluntary associations
of *ISO/*IEC members that in effect represent federations of all the national standardsmaking institutes of the European Union. CEN/CENELEC aims to harmonize members’
national standards and adopt new European standards, including those for computing.
centralized structure store (CSS) The conceptual workstation-independent storage
area for structure networks in *PHIGS.
central processor (CPU, central processing unit) The principal operating part of a
computer. It is usually defined as the *ALU (arithmetic and logic unit) and the *control
unit (CU). It must be joined to a *primary memory to form the processor-memory pair of
the basic *von Neumann machine.
Centronics interface A de facto standard plug-compatible *parallel interface for
printers, first used in printers manufactured by Centronics Corp.
CEPIS (Council of European Professional Informatics Societies) Thirty-five
professional informatics societies, from 32 European countries, are members of CEPIS.
Together they represent more than 250 000 ICT professionals. CEPIS administers the
European Computer Driving Licence (ECDL), a qualification for computer users, and the
European Certification of Informatics Professionals (EUCIP), a first level qualification for
IT professionals.
CERT Acronym for computer emergency response team.
certainty factor A device used in *production rule systems to assign weight to facts or
pieces of knowledge. The weights express the perceived certainty of a fact being true:
usually −1 indicates certainly false, +1 indicates definitely true, and intermediate values
represent varying degrees of certainty, with 0 meaning unknown. The medical *expert
system MYCIN used certainty factors, with conjunctions of rules taking the minimum
value. The use of certainty factors is similar to *probabilistic reasoning but is less formally
related to probability theory.
certificate (public key certificate, digital certificate) A means of authenticating public
keys (see CRYPTOGRAPHY). *Public key encryption is a very powerful system but has an
important security hole: there is no intrinsic guarantee that the people or organizations
distributing public keys are who they claim to be. A certificate is a file issued by a trusted
third party—a *certificate authority—that contains both a public key and details of the
person or organization to whom it belongs, which the third party declares to be correct.
Crucially, the certificate is digitally signed by the third party. A recipient can verify that
the certificate itself is genuine by using the third party’s public key, and can then be
confident in using the public key it contains. Certificate files comply with the *X509
standard and their use on the Internet is governed by RFC 3280.
http://tools.ietf.org/html/rfc3280
• The Internet X509 specification
certificate authority (CA) A person or organization that issues *certificates. By such
an act it asserts the validity of the certificate, and so the integrity and reliability of
certificate authorities is crucial to the operation of *public key infrastructure systems.
They will therefore be expected to do appropriate checks before issuing certificates.
Conceptually a certificate authority is a ‘trusted third party’. This might literally be true: in
a small company that issues certificates for internal use, the certificate authority might be
somebody who knows all the staff personally. At the other end of the scale specialist
certificate authorities, especially those at the top of public key infrastructure hierarchies,
build their trustworthiness by a track record of reliability based on care and extensive
checking.
certification 1. A formal demonstration that a system or component complies with its
specified requirements and is acceptable for operational use. 2. A written guarantee to this
effect.
See also CONFORMANCE TESTING.
CFB (Cipher Feedback) See DATA ENCRYPTION STANDARD.
CFF (critical flicker fusion frequency) 1. The minimal frequency of flashes of
light per second below which an intermittent light stimulus is no longer seen as a
continuous visual sensation. 2. The *refresh frequency of a displayed image at which
*flicker is perceived by the operator. It depends upon the brightness of the display, the
angle subtended at the eye, and on the persistence of the phosphor. This frequency varies
between individuals, but for typical cathode-ray tubes flicker is generally accepted as
being perceptible to less than 5% of users when the CFF exceeds 80 hertz.
CGA (colour graphics adapter) A general-purpose *graphics adapter used in early
IBM-compatible PCs but now superseded. It could generate a 320 × 200 four-colour
screen and a 640 × 200 two-colour screen.
CGI 1. Abbrev. for common gateway interface. 2. (computer graphics interface)
The ISO/IEC 9636 standard, Interfacing Techniques for Dialogues with Graphical
Devices. A device-independent interface standard between a graphical input or output
device and a graphics utility program (see GRAPHICAL DEVICE INTERFACE). The initial
(ANSI) name of the interface was VDI (abbrev. for virtual device interface).
CGM (computer graphics metafile) The ISO 8632 standard, Metafile for the
Storage and Transfer of Picture Description Information. A standardized file format for
transmission and storage of two-dimensional pictures.
chain 1. A *singly linked linear *list. 2. See DIRECTED SET.
chain code 1. A method of describing contours by a succession (chain) of symbols
representing a discrete set of directional vectors. It is used in computer graphics and
pattern recognition for description of line drawings (including characters). 2. Another
name (chiefly UK) for simplex code.
chained file A file that uses *data chaining.
chained list Another name for linked list.
chaining 1. An extension of *pipelining in which the results of the operations are used
in the operations that follow within the next clock cycle. The delay associated with the
storing and subsequent reaccess of a result for the next operation is bypassed. 2. Short for
data chaining.
chaining search A search in which each item contains the means for locating the next.
chain printer An obsolete type of *solid-font *line printer in which the font was etched
or engraved on small plates linked together to form a chain. The chain carrying the type
font moved continuously at high speed relative to the paper, and the characters were
printed by briefly impacting the paper and an inked ribbon against the moving type font.
The chain printer was superseded by the *train printer.
challenge/response A means of authentication in which the system poses a challenge
to the user who must give the correct response to prove his identity. In the most common
implementation, a unique number is sent as the challenge; the response should be the
result of a cryptographic calculation using the challenge and a secret, such as a *password,
that is known only to the legitimate user. A third party who captures this exchange will be
unable to reuse it to authenticate himself, as the challenge will be different on every
occasion.
change dump (differential dump) An output, usually printed, that lists the content of
all memory locations that have changed subsequent to a defined event. This is usually the
result of a routine that is written and used as an aid to debugging a program.
channel 1. In telecommunications in general, a separate path through which signals can
flow. 2. In the public switched telephone network (PSTN), one of multiple transmission
paths within a single link between network points. 3. In mainframe parlance, a specialized
processor that comprises an information route and associated circuitry to control input
and/or output operations. It normally provides for formatting and buffering and has the
necessary control to meet the timing requirements of an I/O device.
Several different I/O devices may be connected to one channel and the control circuitry
within the channel directs the data streams to or from the appropriate device. If the I/O
devices have a relatively slow data rate, then a multiplexer channel is used in which
transfers to or from the separate devices are interleaved, character by character, such that
several devices can work simultaneously.
When a number of devices with high data rates, e.g. magnetic disk and tape, are to be
connected, a selector channel is used. This will transfer a complete record to or from a
device before reselecting.
A channel is often a *wired-program processor. As channels have become more
elaborate they have tended to become programmed computers (I/O processors) in
themselves. See also PERIPHERAL PROCESSOR. 4. A *greyscale digital image equivalent to
one of the components of a colour image. For example, an RGB image consists of red,
green, and blue channels. 5. On the World Wide Web, a pre-defined website that can
automatically send updated information for immediate display or viewing on request. 6. In
computer marketing, a ‘middleman’ between a product creator and the marketplace. This
is distinct from direct selling where the manufacturer sells directly to the end user. Valueadded resellers (VAR) and retail store chains are examples of channels in this context. 7.
In a field-effect transistor (FET), the path in the semiconductor through which current
flows.
channel capacity See CHANNEL CODING THEOREM.
channel coding The use of *error-detecting or *error-correcting codes in order to
achieve reliable communication through a transmission *channel. In channel coding, the
particular *code to be used is chosen to match the channel (and especially its *noise
characteristics), rather than the source of the information. See CHANNEL CODING
THEOREM, SHANNON’S MODEL. Compare SOURCE CODING.
channel coding theorem In *communication theory, the statement that any channel,
however affected by *noise, possesses a specific channel capacity—a rate of
conveying *information that can never be exceeded without error, but that can, in
principle, always be attained with an arbitrarily small probability of error. The theorem
was first expounded and proved by Claude Elwood Shannon in 1948.
Shannon showed that an *error-correcting code always exists that will reduce the
probability of error below any predetermined level. He did not, however, show how to
construct such a code (this remains the central problem of *coding theory), although he
did show that randomly chosen codes are as good as any others, provided they are
extremely long.
Among Shannon’s results for specific channels, the most celebrated is that for a
*power-limited continuous-amplitude channel subject to *white *Gaussian noise. If the
signal power is limited to PS and the noise power is PN, the capacity of such a channel is
If it is a discrete-time channel, ν is the number of *epochs per second; if it is a continuoustime channel, ν is the minimum number of samples per second necessary to acquire all the
information from the channel. In the latter case, if ν is to be finite, the channel must be
*band-limited; if W is its *bandwidth (in Hz), then, by *Nyquist’s criterion,
This is sometimes called the Shannon-Hartley law, and is often applied, erroneously,
in circumstances less restricted than those described. This and other expressions for the
capacity of specific channels should not be confused with the channel coding theorem,
which states only that there is a finite capacity (which may be zero) and that it can be
attained without error.
See also SHANNON’S MODEL, SOURCE CODING THEOREM.
channel controller The control unit for an I/O *channel. See also I/O PROCESSOR.
channel error An error, in a signal arriving at the *decoder in a communication system,
whose occurrence is due to *noise in the channel. By contrast, a decoder error is an
unsuccessful attempt by the decoder (of an *error-correcting code) to correct a channel
error.
channel mobility See MOBILE CODE LANGUAGES.
channel switching 1. A means of communicating on or switching between several
different communication channels. 2. Another name for circuit switching.
channel time response See CONVOLUTION.
chaos The phenomena of apparently random behaviour generated by simple deterministic
systems. An essential hallmark of chaos in nonlinear systems is the extreme sensitivity of
the system to initial conditions.
character 1. An element of a given *character set. 2. A subdivision of a *word in a
machine, usually comprising 8 bits. This is also called a byte. 3. The smallest unit of
information in a *record.
character cell See TEXT MODE.
character encoding A mapping of a *coded character set onto a *character
representation for manipulation in a computer. A single character set may have more than
one character encoding. Many character encodings, such as the ISO 8859 series, assign a
single byte to each character. Other character encodings, such as the Unicode *UTF-8,
*UTF-16 and *UTF-32 encoding forms, define a number of ways of encoding the same
character.
characteristic (biased exponent) See FLOATING-POINT NOTATION.
characteristic function of a *subset S of a *universal set U. A *function that indicates
whether or not an element is a member of the subset S. It is the function
defined as follows:
The codomain might also be given as {true,false} or {1,2}.
characteristic vector 1. A *vector of bits representing a set in a finite universe. If the
universe has n elements a1, a2,…, an then any set, A, can be represented by a vector of n
bits where the ith bit is 1 if and only if ai ∈ A. 2. Another name for *eigenvectors.
character machine See VARIABLE WORD LENGTH COMPUTER.
character mode Another name for text mode.
character recognition A process in which a machine senses and encodes printed
characters that are also readable by a person. The characters may be printed using a
special magnetic ink and/or a special style of character, but modern software can read
good print, in a variety of type fonts. Software is becoming available capable of
recognizing hand-written script though this has scope for considerable improvement. See
ICR, MICR, OCR.
character representation A representation of a character as a distinctive bit string
that is defined by some *character encoding.
character set 1. The set of characters that is handled by a specified machine or allowed
by a given programming language or protocol. The set usually includes graphic
characters, which denote a printed mark or a space, while *control characters produce
some particular effect.
Two of the widely used early character sets were *ASCII (American standard code for
information interchange) and *EBCDIC (extended binary coded decimal interchange
code). Today most computer systems use *Unicode. 2. Any set of symbols used for a
particular purpose, not necessarily connected with computing.
character string A *string of elements from a given *character set.
character type (type character) A *data type whose members can take the values of
specified *characters and can be operated on by character operations, such as
*concatenation. See also ASCII.
charge-coupled device See CCD.
chassis In general, a mechanical system that is designed to provide a supporting and/or
enclosing medium for an item of electronic equipment. The system may be equipped with
supporting structures to carry standard-sized *circuit boards in addition to a *motherboard
or *backplane into which the boards are inserted and connected via sockets. Alternatively
the individual components may be hardwired onto tag strips attached to the chassis.
For safety reasons the metal parts of most chassis are permanently connected to a local
zero-voltage reference or ground. In some equipment, however, it is more convenient (but
potentially dangerous) to connect the chassis to one side of the a.c. or d.c. line (mains)
supply; the equipment is then said to have a hot (or live) chassis. The chassis may also
be left unconnected or floating.
chat room A facility on a network enabling a user to engage in ‘conversation’ by
exchanging written messages with another user or users in real time. Chat rooms based on
websites are especially popular, but their sometimes unregulated nature has raised
concerns about security and privacy.
CHDL (computer hardware description language) A formal language with a
lexicon that enables the nomination of the individual logical or physical elements of a
computer. It has a syntax to enable a description of the way such elements are
interconnected and the way they behave to provide the structure that is capable of
performing a computation. The behaviour of these elements is described as the sequence
in which they change their state to enable the structure to perform the function. CHDLs in
use include *VHDL and Verilog. See also ISP, REGISTER TRANSFER LANGUAGE.
Cheapernet See 10 BASE 2.
Chebyshev approximation, norm See APPROXIMATION THEORY.
check Some means or process of validating the accuracy of a segment of data, the result
of a computation, or completion of a successful message transmission (across a network or
to an I/O device).
check box A small square in a *dialogue box with an option given alongside, allowing
the option to be *selected or cleared. When the option is selected, a cross or check
appears. With multiple check boxes, as many options as needed may be selected.
check character A character, or more generally some element of specified size ranging
from a single bit to a few bytes, that contains the result of a check computation performed
on a segment of data.
check digit Another name for check character.
checkers-playing programs The game of checkers (draughts in the UK) has been
automated up to a very high level of performance, as with chess-playing programs (see
COMPUTER CHESS). The classic work of the late Arthur Samuel still provides inspiration
and many important game-playing techniques can be found in his work.
checking program A program that examines other programs or data for certain classes
of error, usually relatively straightforward ones such as syntax errors in the source text of
a program.
checkout 1. All activities concerned with bringing a program to the state where it
produces some results (as distinct from, say, failing to compile or terminating abnormally)
so that *testing can begin. Such activities might include desk checking, i.e. checking by
human inspection, and use of a special ‘checkout’ mode of compilation and execution that
provides extensive information on erroneous use of the programming language or
abnormal program termination. 2. The action of taking a configuration item from a
repository prior to making changes to it. The act of removal usually locks the item so that
nobody else may check it out until it has been formally returned.
checkpoint A point in a process or job at which a *dump check is taken (and hence also
referred to as a dump point), and the point from which a subsequent *restart will be
effective.
checksum (modulo-n check, residue check) A simple error detection method that
operates on some set of information (usually data or program). If this information is in
units that are m bits wide, a sum is taken modulo n, where n = 2m, and appended to the
information. At a later time or different location the check may be recomputed and most
simple (all single) bit errors will be detected. A *parity check is the simplest version of
this check with m = 1 and n = 2.
chemoinformatics See INFORMATICS.
chess-playing programs See COMPUTER CHESS.
chief programmer team A programming team in which responsibility for program
design and implementation rests entirely with one highly skilled member, the chief
programmer. The other team members provide various forms of support. A typical
team could consist of the chief programmer, a backup programmer, librarian,
administrator, and secretary: the backup programmer assists the chief programmer and is
able to take over that role if necessary; the librarian maintains all technical documents on
the project, such as design documents, source modules (in all versions), and test histories;
the administrator relieves the chief programmer of all administrative duties on the project.
Various other services might be obtained from outside the team as needed.
This team organization has been advocated for the production of large programs: a
single highly skilled programmer, when properly supported, can produce programs more
quickly and more reliably than a team of less talented programmers working as equals. In
particular, the problem of communication within the team is minimized.
The approach was pioneered in the early 1970s by the Federal Systems Division of
IBM, particularly by Harlan D. Mills.
child Any node in a *tree, except the root. Every child thus has a *parent.
CHILL (CCITT high-level language) A programming language developed by
*CCITT and adopted as the standard language for the programming of computer-based
telecommunication systems and computer-controlled telephone exchanges. CHILL is a
*real-time language, bearing a substantial resemblance to *Ada. It is no longer widely
used.
Chinese remainder theorem Let
be positive integers that are relatively prime to one another, and let their product be m:
Let n, u1, u2,…, ur be integers; then there is exactly one integer, u, that satisfies
and
chip 1. A small section of a single crystal of *semiconductor, usually silicon, that forms
the substrate upon which is fabricated a single semiconductor device or all the individual
devices comprising an *integrated circuit. 2. Informal name for integrated circuit.
chip card Former name for smart card.
chip set A set of integrated circuits that when connected together form a single functional
block within an electronic system.
chip socket A device that allows easy replacement of chips (*integrated circuits) on a
*printed circuit board. The chip socket is soldered to the circuit board; the chip is pushed
into the socket, which has a small hole for each of the chip’s legs. With larger chips care is
needed to avoid bending the legs of the chip on insertion.
chi-squared distribution An important *probability distribution with many uses in
statistical analysis. Denoted by the Greek symbol Χ2, it is the distribution of the sum of
squares of f independent *random variables, each being drawn from the *normal
distribution with zero mean and unit variance. The integer f is the number of *degrees of
freedom. Critical values of the probability distribution are widely available in tables, but
exact calculations involve the incomplete gamma function. The most common
applications are
(a) testing for interactions between different classifications of data using *contingency
tables;
(b) testing *goodness-of-fit;
(c) forming *confidence intervals for estimates of *variance.
choice A type of input to a graphics system that provides a choice between a small
number of possibilities. Choice devices are *logical input devices and are most likely to be
implemented by menus.
Cholesky decomposition See LU DECOMPOSITION.
Chomsky hierarchy A series of four classes of *formal languages whose definition in
1959 by Noam Chomsky marked the beginning of formal language theory, and that have
ever since remained central to the subject. In increasing complexity they are called type 3,
type 2, type 1, and type 0, each one a subclass of the next. Each type can be defined either
by a class of *grammars or by a class of *automata, as indicated in the table. Type 0
consists of all *recursively enumerable languages. Type 1 is a subclass of the languages
recognizable by *primitive recursive functions. Languages in types 2 and 3 can be
recognized by a *Turing machine in cubic and linear time, respectively.
Chomsky hierarchy.
Chomsky normal form A restricted type of *context-free grammar, namely one in
which each production has the form
i.e. each right-hand side consists of either two nonterminals or one terminal. Any contextfree language is generated by such a grammar, except that derivation of the empty string,
Λ, requires the additional production
chromaticity The colour quality of light that is defined by its dominant wavelength and
purity.
chromaticity coefficient The ratio of any one of the *chromaticity values of a threecomponent colour to the sum of the three values. See also COLOUR MODEL.
chromaticity diagram A triangle where the vertices represent the specified primary
colours in a *colour model (no combination of two primary colours can create the third).
A colour is defined by a point within the triangle. The relative contribution of each
primary to the colour is defined by the triangular area from the point to the other two
vertices.
chromatic number See COLOURING OF GRAPHS.
Chrome A *web browser developed by *Google and released in 2008. It runs on most
operating systems including Google’s own, Chrome OS. It is currently (2014) at version
38.
Chrome OS Trademark An operating system developed by Google; it is based on
*Linux and intended for devices that operate mainly on the web. Currently (2014) it is
only available for certain hardware platforms developed by Google partners.
chunk of data. See RAID.
Church–Rosser (confluent) Admitting an appropriate version of the *Church–Rosser
theorem. See also ABSTRACT REDUCTION SYSTEM.
Church–Rosser theorem A theorem, proved jointly by Alonzo Church and J. B.
Rosser, concerning Church’s *lambda calculus. It states that if a lambda-expression x can
be reduced in two ways leading respectively to expressions y1 and y2 then there must be an
expression z to which both y1 and y2 can be reduced. The choice of ways to reduce an
expression arises from the possibility of separately reducing different ‘parts’ of the
expression. The Church-Rosser theorem shows that either part can be worked on first,
without the loss of any possibilities obtainable from starting with the other part. A
corresponding theorem exists for combinatory logic. More generally, any language for
which there is a notion of reduction for expressions within the language is said to have the
Church-Rosser property, or to be confluent, if it admits an appropriate version of
the Church-Rosser theorem. The property plays an important role in *term rewriting with
equations.
Church’s thesis The hypothesis, put forward by Alonzo Church in 1935, that any
function on the natural numbers that can be computed by an algorithm can be defined by a
formula of the *lambda calculus. See also CHURCH–TURING THESIS.
Church–Turing thesis The proposition that the set of functions on the natural
numbers that can be defined by algorithms is precisely the set of functions definable in
one of a number of equivalent models of computation. These models include *Post
production systems, Church’s *lambda calculus, *Turing machines, Kleene’s murecursion schemes, Herbrand-Gödel equational definability, Shepherdson-Sturgis register
machines, the while programming language, and flow charts. The proposition is a
scientific hypothesis, subject to empirical and theoretical confirmation rather than
mathematical proof. The evidence that it is true is roughly the following.
First, a large number of disparate methods (e.g. those listed above) for computing
functions have been shown to be equivalent in power when computing on the natural
numbers. Second, there has been a failure to find a function and a convincing method of
computing it that has not been computable by one of the known models of computation.
Third, philosophically distinct notions—mechanical computability, digital and analogue
computability, definability in a formal calculus, definability in an algorithmic language—
have been investigated and interrelated. Fourth, a generalization of the theory of
computable functions to an *abstract computability theory for *algebras has revealed new
connections and distinctions between models, but confirmed the primary nature of the
features of the computation theory on the natural numbers.
The Church–Turing thesis leads to a mathematical theory of digital computation that
classifies what data can be represented, what processes simulated, and what functions
computed (see COMPUTABLE ALGEBRA). It provides a scientific foundation for a
discussion of the scope and limits of computable processes in the physical and biological
sciences, and hence attracts the attention of philosophers, scientists, and engineers.
CICS (customer information control system) A *transaction processing system
widely used on IBM mainframes.
CIE (Commission Internationale de l’Éclairage) The body responsible for
making recommendations with regard to photometry and *colourimetry.
CIE colour model A *colour model developed by the *CIE and based on a standard
observer whose colour vision is representative of the human population having normal
colour vision. The first CIE colour model was published in 1931. A colour is specified by
a triad of numbers (X,Y,Z). These *tristimulus values give the amount of each of three
hypothetical supersaturated primaries in the colour. The Y value gives the *luminance of
the object and the primaries are chosen such that the perceptible colours are defined by
positive values.
In 1964, the model was updated and based on data with a wider viewing angle and
correcting the Y primary, which was found to be slightly in error. Two new specifications,
CIELAB and CIELUV, were defined in 1976. The CIELAB model represents colours
on subtractive media, where light is absorbed by inks, dyes, and other pigments; the
CIELUV model represents colours on additive colour media such as emissive phosphor
displays and coloured lights. The lightness scale for both is the same and is based on the
cube root of luminance, which gives a linear scale.
CIELAB, CIELUV See CIE COLOUR MODEL.
CIM 1. Abbrev. for computer-integrated manufacturing. 2. (computer input (on)
microfilm) The process, or the input itself; it is not widely used. Input devices that have
been produced have relied on optical character recognition (*OCR) to recode
alphanumeric data on microfilm or have read special microfilm on which the data was
recorded as binary code. See also COM.
Cineon format An image file format for storing 35 mm motion-picture images at a
resolution of 4096 by 3112 with 10 bits for each colour per pixel. The Walt Disney film
‘Snow White and the Seven Dwarfs’ was digitized and enhanced frame by frame using
this process.
cipher 1. An *algorithm employed for *encryption, or, in its *inverse form, for
*decryption. See CRYPTOGRAPHY. 2. An encrypted message.
ciphertext The result of enciphering plaintext. See CRYPTOGRAPHY.
CIR Abbrev. for current instruction register.
circuit 1. The combination of a number of electrical devices and conductors that, when
interconnected to form a conducting path, fulfil some desired function. See also
INTEGRATED CIRCUIT, LOGIC CIRCUIT, PRINTED CIRCUIT. 2. A physical (electrical)
connection used for communication. See also CIRCUIT SWITCHING, VIRTUAL CIRCUIT. 3.
(of a graph) Another name for cycle.
circuit board A single rigid board of insulating material on which an electric circuit has
been built. It often has an *edge connector at one end for making all the connections to
other circuits so that the board may be plugged into a piece of equipment. Circuit boards
come in a variety of sizes, some of which are standardized. The term circuit card is
often used synonymously but is sometimes considered smaller than a circuit board. See
also BACKPLANE, PRINTED CIRCUIT.
circuit card See CIRCUIT BOARD.
circuit switching A method of communications that is used in telephone systems and
requires a physical transmission path—a circuit—to exist between the two devices
wishing to communicate. The end-to-end path must exist before data can be sent. The only
delay to which the data is subject is the propagation delay along the transmission medium
(6 microseconds per 100 km for copper telephone lines). Since the path is reserved during
the entire connection, any unused bandwidth is wasted. Compare MESSAGE SWITCHING,
PACKET SWITCHING, VIRTUAL CIRCUIT.
circular list A *linked list in which the last item contains a link to the first. This allows
access to all of the list from any starting point. Circular lists are most useful if the pointer
to the list links to the last node, allowing easy access to both ends of the list. See also
RING.
circular shift (end-around shift) See SHIFT.
circulating register A *shift register in which quantities (data) shifted out at one end
are entered into the other end. This accomplishes a circular *shift and may be performed
in either direction.
CISC (complex instruction set computer) A conventional computer in which the
*instruction set has evolved to satisfy the needs of high-level languages and system
software to enable generation of compact efficient *object code, often in a time-sharing
environment governed by an *operating system. Compare RISC.
CIX (computerlink information exchange) A commercial agency offering
bulletin board and conferencing services as well as general access to the Internet.
CKD Abbrev. for centre for key distribution (in *data security).
clamp 1. An electronic circuit that is designed to limit the excursion of the signal voltage
to the desired level, e.g. to limit the reverse voltage produced when the current in a
conductor is abruptly changed. 2. An electronic circuit that is designed to return the d.c.
voltage level at a given point in the circuit to a fixed reference value at fixed points in
time, often in response to an externally generated clamp pulse.
class A facility introduced in the programming language *Simula. The class provides a
form of *abstract data type. It is also the basis of the concept of *object that underlies
object-oriented languages.
classifier systems Programs in *artificial intelligence that partition sets of data into
different classifications on the basis of specified features in the data. Techniques from
*machine learning are used when the classification structure is to be constructed by the
system. See also DECISION SURFACE, CONCEPT LEARNING.
Classless Inter-Domain Routing (CIDR) The current system for allocating and
interpreting IP addresses on the Internet, introduced in 1993. Formally IP version 4
addresses (see TCP/IP) were interpreted as belonging to one of four classes when
determining how many bits signified the network identity and how many the hosts on that
network; the effect was that networks had to have either 8-, 16-, or 24- bit host numbers.
This system was crude and wasteful of the limited store of possible IP addresses—an issue
that became acute as the Internet grew. CIDR adopts a more flexible approach: the
division point between network identity and host number can appear between any two
bits, allowing for much more precise and appropriate allocations. The division point can
be varied for the same IP address, allowing related networks to be grouped into a
hierarchy with the lower levels using progressively longer network identities. This
technique considerably reduces the amount of routing data that has to be stored and
transmitted. CIDR is also used with IP version 6.
clear An *instruction or *microinstruction that causes a designated variable, register, or
counter to be set to the all-zero state (i.e. cleared).
Clear A language for writing formal *specifications, first described by R. M. Burstall and
J. A. Goguen in 1977. The language provides a formalism for expressing a complex
specification hierarchically as a combination of simpler ones. This formalism can be given
a precise semantics using ideas familiar from *algebra and *category theory.
CLI Abbrev. for command-line interface.
click To press and release a button on a *mouse or similar device, or (as a noun) the
action of pressing and releasing a button. This will be interpreted by the current program
as a request for some action to be performed. Most mice have one, two, or three buttons,
so the prefixed forms left click, right click, middle click are often used. The
double-click consists of two clicks of the same button in quick succession; when
performed too quickly or too slowly then the user’s intention is misunderstood and,
typically, no action is performed. To click and drag involves holding a button down
while moving the mouse; this technique is often used first to select (click) and then to
move (drag) an object on the screen (see DRAG AND DROP).
click and drag See CLICK.
click rate (click-through rate) The number of times in a given period that visitors to a
website click on a particular advertising banner, used to charge advertisers.
clicks and mortar See E-COMMERCE.
click speed The maximum time between two clicks on a mouse button, above which the
clicks register as two single clicks rather than a double click. It can usually be set by the
operating system.
clickstream The path that a user takes in navigating through a website. Monitoring
clickstreams is important to designers of large websites.
click-through rate See CLICK RATE.
client In general, someone or something receiving a service of some kind. Within
computing the term frequently refers to one element of a *client/server system, typically
an *application, that communicates with the end-user by means of a *server.
client/server (c/s) In general terms a client receives a service of some sort from a server.
As applied to computing, the relationship between the *clients and the *servers is
formalized so as to allow different aspects of a computational task to be subdivided among
a server, which acts as an agent on behalf of the end-user, and a collection of clients for
the service(s) offered by that server. Each client needs to bring about the completion of a
set of activities that represent components of a complete computational task; the client
achieves this by requesting services from the collection of servers for each separate
activity. Clearly it may be necessary to complete some activities before others can be
started, while it may be possible to allow some activities to be run in any order or to be
run all at the same time. When a client calls on a server to perform a service, the client
will indicate the service to be carried out and the details of the way in which the server
should respond to the client when the service is completed. The response from the server
may indicate successful conclusion, together with the value of the result, or may indicate
some form of failure. The role of the client is to combine the responses from the servers,
and to ensure that the separate subactivities are run in such a way as to observe any
necessary constraints on the order in which they are initiated or completed.
It is not necessary for the clients and the servers to be running on the same computer
system. Indeed, the use of client/server systems is especially effective where many users
on a network require a range of different services, which can be best supplied by the use of
a specialized hardware configuration provided at a small number of locations on the
network.
Many of the ideas underlying client/server computing were first given a firm definition
in the *X Windows system. See also INTERPROCESS COMMUNICATION, REMOTE
PROCEDURE CALL.
client-side Denoting an activity that occurs on a *client rather than a *server. The term
usually occurs to clarify the actual position when the activity could happen in either
location: for example, client-side *scripting.
clip art Simple drawings held in digital form on a computer. These items are often
supplied in large libraries of files that can easily be incorporated into word processor or
presentation graphics documents. They are either supplied as a component of a software
package, such as a word processing package, or as a separate product. The individual
pictures are often line drawings of a single object, free of background material.
clipboard A temporary storage location where a section *cut or *copied from displayed
textual or graphical information is held until it can be *pasted into another location. The
technique can be used within a text editor or word processor session to move or copy
within a given document, or in a *graphical user interface to move items between one
application and another. For instance, part of a spreadsheet display could be copied into
the clipboard and then inserted into a word processor document.
clipping The process in computer graphics of removing part of an object outside a
specified region. Only that part within the specified region is passed on for further
processing.
CLNS Abbrev. for connectionless network service.
clock An electronic device, generally a stable oscillator, that generates a repetitive series
of pulses, known as the clock signal. The *pulse repetition frequency is accurately
controlled.
The clock rate is the frequency, expressed in *hertz, at which active transitions of
a given clock signal occur. The active transition may be from a low to a high voltage level,
or vice versa, but will always be followed after a fixed time by an opposite inactive
transition. The clock signal is thus formed as a series of fixed-width pulses having a
fixed repetition frequency (see diagram of clock signal). The pulse width, t1, is often 50%
of the pulse repetition period, t2, i.e. t1 = t3. The clock rate is 1/t2 hertz. A clock cycle is
considered to be one complete cycle of the clock signal and will always contain one active
transition of the clock. For the clock signal illustrated, a clock cycle occurs in t2 seconds.
Because of its constant rate, a clock signal is used to initiate actions within a
*sequential logic circuit and to synchronize the activities of a number of such circuits.
These circuits are said to be clocked. The primary clock rate controls the fastest parts
of a computer while slower components are timed by numerous submultiples of the basic
frequency.
clock cycle See CLOCK.
clocked flip-flop See FLIP-FLOP.
clocking 1. In synchronous communication networks, the use of a single time standard
to control all bit transmissions and switching throughout the network. See SYNCHRONOUS
TRANSMISSION. 2. In modem-terminal interconnection, the use of a timing signal to
indicate when data can be properly transferred between the modem and the terminal
device. The signal is usually from the modem to the terminal, although in some cases it
can be the reverse.
clock rate See CLOCK.
clock signal See CLOCK.
Clock signal.
clock skew See SKEW.
clone A computer or other system that is claimed by its manufacturer or supplier to
behave in exactly the same way as a system from another company, i.e. it will produce
identical results from an identical program. PC clones were personal computers that
behaved like one of IBM’s personal computer range.
CLOS An *object-oriented programming system based on *Common Lisp.
close To instruct an application that a file is no longer required. When a file is closed, any
changes that have been made can be committed to disk, and the file may be released so
that other applications can use it. In some cases an entirely new version of the file will be
created and the previous version discarded, or renamed in such a way as to make clear that
it is a *backup version. See also OPEN.
closed A term applied to a *set S on whose elements a *dyadic operation ° is defined and
that possesses the property that, for every (s,t) in S, the quantity s ° t is also in S; S is then
said to be closed under °. A similar definition holds for *monadic operations such as ∼. A
set S is closed under ∼ provided that, when s is in S, the quantity ∼ s is also in S.
The set of integers is closed under the usual arithmetic operations of addition,
subtraction, and multiplication, but is not closed under division.
closed loop A term used in the early development of programming to describe the
repetition construct now known just as a *loop. (Since a loop is necessarily closed, the
short term suffices.)
closed semiring A *semiring S with two additional properties:
(a) if a1,a2,…,an,… is a *countable sequence of elements of S then
exists and is unique; the order in which the various elements are added is irrelevant;
(b) the operation • (see SEMIRING) distributes over countably infinite sums as well as finite
sums.
A special unary operation called closure can be defined on closed semirings. Given an
element a in S, powers can be defined in the expected manner:
Then the closure a* can be defined as follows:
The properties of a semiring imply that
Closed semirings have applications in various branches of computing such as automata
theory, the theory of grammars, the theory of recursion and fixed points, sequential
machines, aspects of matrix manipulation, and various problems involving graphs, e.g.
finding shortest-path algorithms within graphs.
closed shop A method of running a computing facility such that the design,
development, writing, testing, and running of programs is carried out by specialist
computing staff and not by the originators of the problem. Closed shop operation is
the operation of a computing system, excluding terminals, by specialist computer
operators and not by other computing staff or computer users. Compare OPEN SHOP.
closed subroutine See SUBROUTINE.
closed term (ground term) See TERM.
closed-world assumption An approach for dealing with incompleteness in *artificial
intelligence. In a logic knowledge base, all facts are taken to be either true or false. Any
items that have unknown truth values cannot be represented without awkward
modifications. The closed-world assumption deals with this by assuming that anything
that is not contained within the knowledge base is false; in other words, unknown is
equivalent to false.
closure 1. See CLOSED SEMIRING. See also KLEENE STAR.
2. A technique used in lazy *functional languages (and increasingly in non-functional
languages) to delay computation until a value is actually needed.
closure properties A class L of *formal languages is closed under an operation f if the
application of f to languages in L always yields a language in L. For example, if, for any
L1 and L2 in L,
is also in L, then L is closed under union. Typical operations considered are:
*union, *intersection, *complement, intersection with *regular set; *concatenation,
*Kleene star; image under *homomorphism, inverse homomorphism, *substitution; *gsmmapping, etc.
Most familiar classes of languages are closed under these operations. The detailed
picture for the *Chomsky hierarchy is given in the table. Certain classes of languages, e.g.
*regular languages, can be uniquely characterized by their closure properties.
Closure properties. Closure properties for Chomsky hierarchy
cloud computing An approach to computing in which the end user connects to a
remote network of computers (the cloud) in order to run programs, store data, etc. This
enables users to access large amounts of data storage and computing power from
anywhere in the world without having to own and maintain these resources themselves.
CLP Abbrev. for constraint logic programming.
cluster 1. A group of similar devices, such as processors, storage units, or peripheral
devices, brought together to provide enhanced performance, security, or resilience to
failure. 2. A unit of storage, usually on a disk, that comprises a contiguous area made up
from a number of basic units of storage. 3. See CONCEPT LEARNING.
cluster analysis Any statistical technique for grouping a set of units into clusters of
similar units on the basis of observed qualitative and/or quantitative measurements,
usually on several variables. Cluster analysis aims to fulfil simultaneously the conditions
that units in the same cluster should be similar, and that units in different clusters should
be dissimilar. It is not usually possible to satisfy both conditions fully, and no single
method can be recommended as best for all sets of data. Among other desirable properties
of clusters are that some variables should be constant for all units within a cluster, which
makes it possible to provide a simple scheme for identification of units in terms of
clusters.
Most cluster analysis methods require a similarity or distance measure to be defined
between each pair of units, so that the units similar to a given unit may be identified.
Similarity measures have been proposed for both quantitative (continuous) variables and
qualitative (discrete) variables, using a weighted mean of similarity scores over all
variables considered. The term distance comes from a geometric representation of data as
points in multidimensional space: small distances correspond to large similarities.
Hierarchical cluster analysis methods form clusters in sequence, either by
amalgamation of units into clusters and clusters into larger clusters, or by subdivision of
clusters into smaller clusters and single units. Whichever direction is chosen, the results
can be represented by a dendrogram or family tree in which the units at one level are
nested within units at all higher levels.
Nonhierarchical cluster analysis methods allocate units to a fixed number of
clusters so as to optimize some criterion representing a desired property of clusters. Such
methods may be iterative, involving transfer of units between clusters until no further
improvement can be achieved. The solution for a given number of clusters need bear little
relation to the solution for a larger or smaller number.
Cluster analysis is often used in conjunction with other methods of *multivariate
analysis to describe the structure of a complex set of data.
clustering 1. In computer graphics, the collecting of nearby objects into groups so that
their effect in a *radiosity calculation with another well-separated group can be
approximated by a single interaction. 2. An approach used in *machine learning and *data
mining that attempts to place data into groups. The intention is that groupings or clusters
will emerge that have meaning for the application problem (see CONCEPT LEARNING).
Clusters may be formed on the basis of some similarity features but their characteristics do
not have to be predefined (in contrast to *classifier systems).
CLV (constant linear velocity) A mode of operation used for an *optical disk in
which the rotation rate is varied according to the radius of the track accessed so that a
constant data transfer rate corresponds to a constant bit density along the track. This
allows an increase in capacity as compared to *CAV, but the access time is also increased.
CLV is used in the *CD-ROM disk drive (as in the Compact Audio product on which it is
based), the *DVD disk drive, and in some other optical disk drives. See also MCLV.
CM Abbrev. for configuration management.
CMI (computer-managed instruction) See COMPUTER-ASSISTED LEARNING.
CMM Abbrev. for Capability Maturity Model.
CMMI Abbrev. for Capability Maturity Model Integration.
CMOS (complementary metal oxide semiconductor) A family of logic circuits
that uses pairs of complementary *MOSFETs, i.e. PMOS plus NMOS, to implement the
basic logic functions. The complementary transistors are arranged so that there is no direct
current flow through each pair of PMOS and NMOS. In the circuit of the CMOS inverter
(see diagram), the PMOS conducts when the input is logic 0 and the NMOS conducts (to
ground) when the input is logic 1.
By scaling down the dimensions of the MOS devices, higher switching speeds and larger
packing densities are possible; these devices are often termed HMOS. The term is used
colloquially to refer to the nonvolatile *RAM used in most computer systems to store
parameters needed at start-up, such as passwords, types of disk present, language
requirements, etc.
CMOS. CMOS inverter
CMS See VM/CMS.
CMY colour model A *colour model that specifies colours by the three parameters
cyan (C), magenta (M), and yellow (Y), which define the amount of light subtracted in
each case. The model is used for defining colours on output devices such as plotters.
CMYK colour model A *colour model that specifies colours by the three parameters
cyan (C), magenta (M), and yellow (Y) plus black (indicated by K). The model is used in
the four-colour printing process. Black is used in place of equal amounts of cyan,
magenta, and yellow.
CNC Abbrev. for computer numerical control.
CNF (conjunctive normal form) See CONJUNCTION.
CNF satisfiability See P=NP QUESTION.
Coad–Yourdon method An object-oriented software development method devised by
Peter Coad and Ed Yourdon.
coax Short for coaxial cable.
coaxial cable (coax) A form of electric *cable that consists of a single central conductor
surrounded by and insulated from a concentric sheath usually fabricated from an
interwoven fine wire mesh. One or more coaxial cables may be included in multicore
*cable to provide paths for high-frequency or other special signals. The physical
dimensions of coax are usually arranged to present a particular characteristic impedance
(50 ohms or 75 ohms) to electric signals. See also BROADBAND COAXIAL SYSTEMS,
ETHERNET.
Cobol (COBOL) (common business-oriented language) A programming
language that was developed by *CODASYL and is a de facto standard for commercial
data processing. Cobol first came into use in 1960; the current version Cobol 2002 is an
ANSI standard adopted by ISO and replaces the earlier standards Cobol 68, Cobol 74, and
Cobol 85.
A Cobol program is divided into four divisions, of which the most important are the
DATA division and the PROCEDURE division. In the DATA division the programmer
defines the working storage and the files to be used by specifying their record structure.
The PROCEDURE division is made up of statements, grouped into sentences, paragraphs,
and sections. These statements define manipulation of data from the current record(s) of
one or more files. The notation is English-like, e.g.
File input-output is defined in terms of complete records, so the typical program reads a
record from its input file, processes it, and writes a record to its output file, repeating this
sequence until the whole file is processed. A powerful feature allows the data definition to
specify editing that will take place as a side-effect of output, such as suppressing
nonsignificant zeros.
cocktail shaker sort A refinement of the *bubble sort in which alternate passes go in
opposite directions.
CoCom Coordinating Committee on Multilateral Export Controls. In the Cold War era,
the export of various technologies, including computing systems, networking, hardware,
and software, was restricted under circumstances in which this might enhance the military
capability of the other country, or place at risk the technology advantage of the exporting
country. CoCom was the committee, with representatives from the 15 western nations in
the NATO alliance plus Japan, that specified the technology for which (CoCom) export
approval was required. Following the end of the Cold War, CoCom was replaced in 1996
by the Wassenaar Arrangement on Export Controls for Conventional Arms and Dual-Use
Goods and Technologies.
COCOMO (CoCoMo) (constructive cost model) An algorithmic software *cost
estimation model devised by Barry Boehm. The basic model is intended to give an order
of magnitude estimate of cost based on three classes of project: organic mode,
semidetached mode, embedded mode. For each class an estimate for effort and
duration can be calculated as a function of thousands of delivered source instructions
(kdsi).
Organic mode projects require relatively small teams working in familiar environments
on familiar projects. Semidetached mode projects have a mixture of experienced and
inexperienced staff, with limited experience of the application type and probably
unfamiliar with some of the aspects of the project. Embedded mode projects have tight
time constraints, strong coupling between software, hardware, regulations, and operational
procedures. Variations in specifications are usually impracticable, and validation is
rigorous. Project team members are usually inexperienced in the particular application.
The intermediate COCOMO model applies a series of multipliers to the basic estimates
for effort and time. There are 15 modifiers in four groups of attributes: Product
attributes are required software reliability, database size, product complexity;
computer attributes are execution time constraints, storage constraints, virtual
machine volatility, computer turnaround time; personnel attributes are analyst
capability, application experience, virtual machine experience, programmer capability,
programming language experience; project attributes are modern programming
practices, software tools, required development schedule.
Each attribute multiplier may be selected from points on a qualitative scale. The
modifier value for modern programming practices also varies with the estimated kdsi size
of the delivered software. The combined effect of all modifiers leads to a maximum
multiplier of 84.6, and a minimum of 0.0076, for the basic estimates for each mode.
The COCOMO models essentially estimate cost to deliver, which may be a small
proportion of the total software life-cycle cost. Boehm also provides models to estimate
maintenance effort.
CODASYL A now-defunct organization dedicated mainly to the development of the
data processing language *Cobol and associated software. It originated at a meeting, the
Conference on Data Systems Languages, called in the Pentagon by the US Department of
Defense in 1959 to consider both the desirability and feasibility of establishing a common
language for data processing. The acronym for that conference, CODASYL, became the
name of the continuing organization. The initial version of the language, COBOL-60, was
published the following year, with subsequent versions being adopted by ISO.
During 1965–67 CODASYL established a Database Task Group (DBTG) to investigate
and develop proposals for a common database management system to be used in
association with Cobol as the host language (see DATABASE LANGUAGE). In 1969 a report
giving a specification was published and widely discussed. A revised report published in
1971 allowed also for other languages to be used as the host programming language.
IDMS is the leading product based on these proposals.
CODASYL itself no longer exists, although some of its committees continue to operate.
See CODASYL NETWORK MODEL.
CODASYL network model The *data model proposed by the CODASYL DBTG
(see CODASYL) in which data is organized into records of different types and records are
organized into sets of different types, both record and set types being named. A particular
set type is defined as having an owner record type and one or more member record
types. An instance of a set type consists of a single instance of its owner record type and
zero, one, or more instances of each of its member record types. A member record
instance may not occur in more than one instance of a particular set type.
In practice sets usually have only one member record type when, in effect, the
CODASYL network model provides for a one-many relationship between the two types of
records to be maintained, modelled as an isomorphism between the owner record instances
and the elements of a disjoint partition of the member record instances. A set is said to be
mandatory if this partition is constrained to be a complete cover and optional if it
need not be. A way of implementing database systems based on this model is by pointers
embedded in the records, but pointers and this implementation technique are not inherent
to the model, which is formulated in terms of abstractions.
Interest in the CODASYL network model declined with the rise of the *relational
model from the 1980s.
Codd, Ted (Edgar Frank) (1923–2003) British computer scientist. After graduating from
Oxford University and serving in World War II, Codd joined IBM in 1948 as a
mathematical programmer; he received a doctorate of computer science from the
University of Michigan in 1967. He subsequently developed the principles of the
*relational model of database management, which were published internally within IBM
in 1969 and publicly in 1970 in the seminal paper ‘A Relational Model of Data for Large
Shared Data Banks’. Codd continued to develop his theories, but he was not included in
the IBM project to implement his ideas. As relational database systems grew in popularity
in the early 1980s, he became increasingly frustrated that his vision was not being
implemented correctly. In 1985 he published Codd’s 12 rules that defined his criteria
for the essential qualities for a database management system to be considered relational.
code 1. A rule for transforming a message from one symbolic form (the source
alphabet) into another (the target alphabet), usually without loss of information. The
process of transformation is called encoding and its converse is called decoding. These
processes are carried out by an encoder and a decoder respectively; the encoder and
decoder may be implemented in hardware or software, the encoding and decoding
processes being algorithmic in nature. The term ‘an encoding’ is sometimes used
synonymously with ‘a code’.
From a more formal viewpoint, a code is a one-to-one *homomorphism h from the set
of Σ-words, Σ1*, to the set Σ2*, where Σ1 and Σ2 are alphabets (see WORD, FORMAL
LANGUAGE).
Since h is one to one, h(w) may be ‘decoded’ to obtain w for any w in Σ1*.
See also CHANNEL CODING THEOREM, CRYPTOGRAPHY, ERROR-CORRECTING CODE,
ERROR-DETECTING CODE, FIXED-LENGTH CODE, SOURCE CODING THEOREM, VARIABLELENGTH CODE. 2. Any piece of program text written in a programming language (as
opposed to a data structure or algorithm illustrated by a diagram or flowchart, or a
program specified or sketched out in natural language prose). The term sometimes implies
executable code as opposed to declarations or tables, but this is by no means always the
case. See also CODING. 3. The particular language in which some code is written, e.g.
*machine code, *source code.
codec (coder-decoder) A device that converts an incoming *analogue signal into an
encoded representation as a digital *stream (the coder), and converts an incoming stream
of digital signals into an analogue signal (the decoder). Codecs are used in both telephone
and video systems to convert an analogue speech or video signal into a digital form, which
can then be treated as a stream of data for the purposes of transmission and switching; the
advantages are that digitally encoded signals can be transmitted at higher data rates, with
lower error rates, and are more readily switched using *packet switching means than can
be achieved by *circuit switching.
All codecs operate by sampling the analogue signal at a sufficiently high rate (of the
order of twice the frequency of the highest Fourier component that is to be transmitted).
At the transmitting end, the sampled signal is converted by an *A/D converter to a digital
form with the necessary precision, and the resulting bit stream is transmitted across the
network to the receiver’s codec. At the receiving end each sample is converted by a *D/A
converter to recreate an approximation to the original analogue signal. These same
techniques can be applied to the storing of a signal, for example in a standard computer
file, for later replaying.
A standard telephone codec operates at 8000 samples per second, and generates an 8-bit
digital value for each sample, giving a total data rate of 64 000 bps. This is adequate for
the realistic reproduction of speech, with a nominal frequency response up to 4 kilohertz
and with a nominal accuracy of 0.4%. For broadcast-quality or high-fidelity audio
transmissions, higher sampling rates and greater precision are used, giving a signal with a
higher bit rate. It is also common to add redundancy to the digitally encoded signal to
allow error recovery. For example, a normal compact-disk system uses two channels, each
sampled approximately 44 000 times per second with 16-bit precision, giving a total data
rate of 176 Kbytes/second. Many codecs use compression techniques (both *lossless and
*lossy) to reduce this data rate.
A video codec must handle much higher sampling rates, and a variety of techniques are
used. Rather than simply digitizing a standard broadcast composite video signal, which
includes one or more audio channels as well as synchronization information, it is common
practice to treat the video line and frame synchronization separately, and to isolate the
audio from the video. It is also common to apply a considerable amount of *data
compression, in the digital domain, to reduce the overall bandwidth of the digital output.
For *videoconferencing the codec produces an encoded output at 128 Kbps, which can be
transmitted over two B-channels of *ISDN; the result gives a high-grade audio signal but
with noticeable degradation of the coloured video image, especially where the scene
includes rapid movement. Other systems use higher data rates, achieving correspondingly
improved video quality. For broadcast-quality video very high sampling rates are required,
with a resulting high bandwidth for the digital signal.
coded character set A character set that consists of a set of *code points. The effect is
that each character can be identified by a unique number.
code injection A type of attack that exploits errors in the data processing of a program
to enable the insertion of malicious code. A very popular form of code injection on the
World Wide Web is SQL injection, which involves inserting *SQL queries in user data
that are sent to the database (e.g. in an authentication form). See also CROSS-SITE
SCRIPTING.
code inspection A *review technique carried out at the end of the coding phase for a
module. A specification (and design documentation) for the module is distributed to the
inspection team in advance. M. E. Fagan recommends an inspection team of about four
people. The module programmer explains the module code to the rest of the team. A
moderator records detected faults in the code and ensures there is no discussion of
corrections. The code designer and code tester complete the team. Any faults are corrected
outside the inspection, and reinspection may take place subject to the quality targets
adopted.
code length In an encoder, the number of symbols output when an encoded operation
takes place. Usually the number of symbols input to the encoder is fixed; the number
output may or may not vary, depending on whether the encoder is designed to give a
*variable-length code or a *fixed-length code.
code mobility See MOBILE CODE LANGUAGES.
code of conduct A recommendation or guideline produced by a professional or trade
body regarding the operation of a type of business particularly with regard to ethical and
moral considerations. Codes of conduct have no statutory effect but can have legal
consequences: e.g. a code of conduct for the handling of personal data in a particular trade
may be referred to by a court in determining whether there is a prima facie case of misuse
of data under the Data Protection Act in determining, as an issue, whether the business has
acted fairly.
code point An unsigned integer denoting a position in a character encoding system.
Each codepoint may either be occupied by one character or be unassigned. *Unicode
codepoints are generally represented as U+ followed by a four-byte hexadecimal number:
for example, U+0041 (decimal 65, the letter capital A).
coder-decoder See CODEC.
codeword (codeword length) See BLOCK CODE.
coding The transformation of a detailed design into a program. Use of the term coding
generally implies a straightforward activity-simply expressing an existing design in some
formal programming language-and that any decisions made during the activity (such as
the choice among arbitrary locations for particular variables) would not be classed as
design decisions since they are of a relatively trivial nature. See also SOFTWARE LIFE
CYCLE.
coding bounds A variety of inequalities that apply, generally or specifically, to *errordetecting and *error-correcting codes, setting bounds to their performance as expressed by
parameters such as the number of codewords (see BLOCK CODE), minimum *Hamming
distance, codeword length, and efficiency. Of the many bounds that are known, the most
important are the *Hamming bound and the *Gilbert–Varshamov bound.
coding standards See PROGRAMMING STANDARDS.
coding theorems See CHANNEL CODING THEOREM, SOURCE CODING THEOREM.
coding theory The branch of *communication theory that deals with the mathematical
study of *codes with a view to their employment in *communication systems, usually for
the purpose of increasing their efficiency and reliability. See CHANNEL CODING, SOURCE
CODING.
codomain See CATEGORY, FUNCTION, RELATION.
cognitive modelling An approach taken by psychologists in which models of human
behaviour are developed in order to explain or engineer systems involving human
components. This is important in areas where an operator is an essential part of the
system, for example a pilot or chemical-plant operator.
cognitive science A multidisciplinary research field involving artificial intelligence,
cognitive psychology, linguistics, neuroscience, and philosophy. The goal is to understand
the phenomena of thinking and the relationship between brain and mind. Progress depends
upon work on computer simulations, perception, language, mental states, and
consciousness.
cohesion (functional cohesion) A measure of the degree to which parts of a program
module are closely functionally related. High cohesion means that each part is directed
toward and essential for that module to perform its required function, and that the module
performs only that function. Low cohesion might be due to convenience grouping of
functions that are unrelated by function, timing, logic, procedure, or by sequence.
Temporal cohesion occurs where a module contains several functions that must be
performed at the same time, but are not closely related by function.
Logical cohesion is where several logically related functions are placed in the same
module. For example a unit may handle all input to a program irrespective of its source
being from disk, communications port, keyboard, etc.
Procedural cohesion is where functions that must be performed in a certain order are
grouped together in the same module.
Sequential cohesion occurs when the output from one part of a module is the input to
the next part, but if the module is not constructed for functional cohesion it is possible that
not all the related parts will occur in the one module.
High functional cohesion might be seen as one characteristic of good design. See also
COUPLING.
cold boot (cold restart) A method of starting a computer or other equipment either from
a switched-off state, or in a way that has the same effect as switching it off and on again.
See also WARM BOOT.
collaborative software See GROUPWARE.
collating sequence An ordering of the internal character set, used in alphabetic and
alphanumeric sorting.
collision detection See ETHERNET.
collision domain A region of a network where the *packets sent by different host
computers may collide with one another. A link between any two hosts, A and B,
constitutes a collision domain if packets sent by A may collide with those sent by B. If
many hosts are connected to a *hub, the domain constituted by the hub and all the hosts
connected to it also form a collision domain, since a packet sent by one host (i.e. present
on one segment of the network) is broadcast to all the other hosts (i.e. sent on all other
segments). If the hosts are connected to a *switch, each segment host-switch forms a
single collision domain, except when the link is between a *router and a hub. Switches are
therefore said to ‘segment’ collision domains. In effect, messages that transit by a switch
are directly sent to the destination host, thus restricting collisions to the segment between
host and switch. For the same reason, routers also segment collision domains: every link
to a router is its own collision domain, except where the link is between a router and a
hub. See also BROADCAST DOMAIN.
collocation methods An important approach to the numerical solution of *ordinary
differential and *integral equations. Approximations are obtained on the basis that the
equation is satisfied exactly at a particular set of points in the given problem range. For
example, for
an approximation
can be obtained from a suitable set of orthogonal functions ϕi(x) by choosing the
coefficients αi for which
for some set of collocation points
Initial conditions and boundary conditions may also be incorporated into the process.
Colossus An electronic special-purpose digital “computer” that was built in great secrecy
by the Post Office Research Station in London and began useful work at the government
establishment at Bletchley Park, Buckinghamshire, in late 1943. It contained 1500 vacuum
tubes (valves) and could operate at high speed. The strategy or ‘program’ was controlled
from patchboards and switches. The faster Mark II machines, operating by mid-1944,
contained 2500 tubes. Both versions were used for code-breaking purposes during World
War II.
colour display A device capable of displaying pictures in colour.
coloured book The UK academic networking community was one of the earliest to
attempt to devise a complete set of *open systems interconnection (OSI) standards for all
aspects of its networking requirements, and to make a concerted effort to apply these to
the entire community. A main thrust of the approach was the definition of *protocols for
each of the major networking requirements, each protocol being issued in a different
coloured binder. The important protocols were:
Yellow Book
Green Book
Blue Book
Grey Book
Red Book
Pink Book
Orange Book
defining a transport service, roughly equivalent to layer 4 of
the ISO *seven-layer reference model.
defining a terminal connection protocol.
defining a file transfer protocol.
defining an electronic mail service.
defining a job transfer and submission protocol.
defining a transport service to run over an ISO OSI
*CSMA/CD service.
defining a network service running over a *Cambridge Ring
.
Colours have been used to identify various other standards, including *CD-ROM format
standards.
colour gamut The range of colours that can be produced on a particular device or by a
particular process.
colourimetry The branch of physics that defines colours in a quantitative way.
colouring of graphs An assignment (of colours) to the vertices of a *graph in such a
way that adjacent vertices are assigned different colours. The minimum number of colours
needed to colour a graph is known as the graph’s chromatic number.
colour model A coordinate system in which colours can be specified and measured. In a
trichromatic colour model, a colour is defined in terms of three components. See also
CIE COLOUR MODEL, CMY COLOUR MODEL, CMYK COLOUR MODEL, HLS COLOUR
MODEL, HSV COLOUR MODEL, RGB COLOUR MODEL.
colour printer A printer, such as an *inkjet or *laser printer, that is able to render
coloured images.
colour space A means of defining colours precisely by their position in a
multidimensional space, usually three-dimensional. An example is the RGB colour space
with points normalized to the range (0,1) in each dimension.
column-major order One way of mapping the elements of a two-dimensional *array
onto a vector, e.g. for representation in memory. If a two-dimensional array, A, with m
rows and n columns is mapped in column-major order onto a vector b with m × n elements
then
See also ROW-MAJOR ORDER.
column-ragged See RAGGED ARRAY.
column vector See MATRIX.
COM 1. (computer output (on) microfilm) Output recorded in miniaturized form
on microfilm, either on a reel of film or on card-sized sheets of film known as
microfiche. The term COM also applies to the techniques used to produce this form of
output. Special optical viewers must be used to enlarge the information on the microfilm
for reading purposes. The facility has been available since the early 1960s. Computerassisted retrieval of information stored on microfilm usually involves the interrogation of
an index, maintained on disk, of the documents stored on the microfilm. See also CIM. 2.
(component object model) A component software architecture that allows
applications and systems to be built from components supplied by different software
vendors.
combination 1. A *subset of a finite set of elements. The number of combinations of n
distinct objects taken k at a time is
nC
k
= n!/[k!(n−k)!]
2. A method of combining *functions in a parallel manner (compare COMPOSITION). For
functions f and g,
the combination f × g is such that
where S × U and T × V are *Cartesian products, and
(see ORDERED PAIR).
combinational circuit A *logic circuit whose outputs at a specified time are a function
only of the inputs at that time. In practice, any physically realizable combinational circuit
will have a finite transit time, or delay, between the inputs changing and the outputs
changing; the intention of the term combinational is to include algebraic elements (*AND
gates, *OR gates, etc.) and preclude memory elements (*flip-flops, etc.). Analysis and
synthesis of combinational circuits is facilitated by *Boolean algebra and *Karnaugh
maps. Compare SEQUENTIAL CIRCUIT.
combinational logic *Digital logic restricted to the description of *combinational
circuits. See also BOOLEAN EXPRESSION.
combinator A *lambda expression containing no *free variables. While this is the most
general definition, the word is usually understood more specifically to refer to certain
combinators of special importance, in particular the following four:
The combinators I, K, and S were introduced by Schönfinkel and Curry, who showed that
any λ-expression can essentially be formed by combining them. More recently
combinators have been applied to the design of implementations for *functional
languages. In particular Y (also called the paradoxical combinator) can be seen as
producing *fixed points, since Y(f) reduces to f(Y(f).
combinatorial circuit Another (UK) name for combinational circuit.
combinatorial explosion The exponential growth rate experienced in many *search
problems. For example, in the game of chess the number of choices at each level increases
by the *branching factor, which may typically multiply the options by 20 or more at each
move. Although in theory it should be possible to analyse the game of chess from start to
finish, the number of states to be examined is so enormous that it is completely
impractical, not only at present but for any conceivable computer in the future.
One of the main thrusts of *artificial intelligence work has been to find ways, such as
*heuristic search, to circumvent the combinatorial explosion.
combinatorics The branch of mathematics concerned with the counting problems and
enumeration problems associated with such topics as *combinations, *permutations,
number theory, arithmetic, and the theory of *graphs, *groups, and other *discrete
structures. *Induction, *recursion, and *recurrence relations tend to play a significant role
in much of this work. In computational combinatorics the underlying theory is applied to
algorithms of any kind.
combinatory logic A version of *lambda calculus in which all expressions are
constructed out of certain basic *combinators.
combo box A control on a graphical user interface that is similar to a *list box, but with
the added feature that text can also be keyed in. It is a combination of a list box and a *text
box.
Comega See C♯.
command 1. See JOB-CONTROL LANGUAGE. 2. Obsolete name for instruction or
statement, i.e. the elementary unit from which a program is built up.
command and control (C&C, C2) A term referring to a system for military (or quasimilitary) operational decision-making. The term command, control, and
communications (C3) is intended to convey further complexity, and this is sometimes
extended to the form C4.
command control language A programming language designed for the
implementation of *command control programs. The earliest such language was *Jovial;
the latest is *Ada.
command control program A program that controls some piece of equipment,
especially in the military context. Such programs are now more usually called embedded
systems.
command file Another name for script.
command language Another name for job-control language.
command-line interface (CLI) An interactive system where user input is achieved
through lines of text. The user learns these commands by consulting an online *help
system or a reference manual. Users familiar with the interface may use abbreviations or
mnemonic commands to speed access and reduce the number of keystrokes required for a
given command. Compare GRAPHICAL USER INTERFACE.
comment Part of a program text included for the benefit of the reader and ignored by the
compiler. Each language has its own syntax for comments, usually a form of bracketing,
e.g.
Some languages, including Ada, prefer ‘end-of-line’ comments, which are introduced by a
characteristic symbol and are automatically terminated at the end of a line. Older
languages such as Basic and Fortran restrict comments to be whole lines and do not allow
them to be appended to a line of code.
commit 1. To indicate that the changes made to a database as part of a *transaction are
complete and should be made permanent. 2. The process or command by which a
software developer asks the *source code control system to take note of the changes they
have just made.
common application environment (CAE) The set of services available to an
application program on a Macintosh computer, defined in such a way that these services
can be implemented on a different platform.
COMMON area In Fortran, an area of storage accessible from more than one program
unit (subroutine). Data is local to the subroutine in which it is defined unless it is declared
to be in a COMMON area. There is one anonymous COMMON area, called ‘blank
COMMON’, and any number of other areas, which are named (‘labelled COMMON’).
common carrier In the US, a private business or corporation that offers to the public
general communication services such as telephone or intercomputer communications.
Common carriers are regulated by the Federal Communications Commission (FCC), and
all services offered must charge according to tariff schedules filed with and approved by
the FCC.
Common Criteria An internationally agreed set of criteria for *security evaluation,
ratified as ISO standard 15408.
common gateway interface (CGI) A protocol for exchanging data between a web
server and an application. For example, if a user fills in a form on a web page and submits
it to the server, the server passes the data to an application program, which analyses it. The
program may also create a reply to the user, which initially goes to the server. The CGI is
a standard way of passing this information from server to program and back again. It is
part of HTTP. CGI programs are often written in *Perl.
common instance See UNIFICATION.
Common LISP A version of *Lisp that integrates the facilities of FranzLisp and
MACLisp, adopted as an informal standard by the major users and suppliers of LISP
systems.
common-sense reasoning Most reasoning in *artificial intelligence concerns higherlevel functions, such as game playing, language processing, and symbolic problem
solving. Common-sense reasoning is concerned with the understanding and manipulation
of information about the everyday world of objects and their interactions. Deciding that a
pile of objects is unstable or that a vehicle will not get through a red light in time are
examples of common-sense reasoning. Unfortunately this is surprisingly difficult to
automate as the problem domain is so ill defined and open-ended; for example, the
*closed-world assumption is invalid. One approach is to provide large amounts of domain
knowledge (see CYC PROJECT), while others concentrate on reasoning about materials,
physics, space, and time (see NAIVE PHYSICS, IMPRECISION). The topic has also stimulated
research into philosophical and logical issues in a search for formal structures.
common user access See SAA.
comms (coms, com) Short for communications, as in comms equipment, comms link,
datacomms, and telecomms.
communicating sequential processes See CSP.
communication channel See SHANNON’S MODEL.
communication interface A computer *interface designed to allow connection to
other digital equipment. This may be by way of a modem and telephone lines or through a
computer network. See also COMMUNICATION PORT.
communication network See COMMUNICATION SYSTEM, NETWORK.
communication port (com port) Any external socket on a computer that can be
connected to a communication line and used to exchange information with other
computers or electronic systems. Communication ports can be *serial ports such as *USB
or *RS232C, *parallel ports such as the *Centronics or *SCSI interfaces, or ports for
networks such as *Ethernet or *token ring. Each type of port has strictly defined connector
types and pin assignments as well as electronic and logical signal protocols.
communication processor An obsolete term for a specialized *I/O processor that is
used to control a number of communication lines and/or communication devices.
communication server Another name for gateway. See also SERVER.
communication subnetwork (subnet) An identifiable and separate part of network.
A division of a network into subnetworks generally reflects an organization’s organigram
or a division of the tasks to be accomplished by the network. The concept of subnetwork is
especially important in *internetworking, as it allows two initially distinct networks to be
seen as parts (subnetworks) of a third—the network composed of their interconnections.
communication system Any system whereby a source of information is enabled to
convey that information, with due regard for efficiency and reliability, to a destination.
Such a system may contain more than one source and/or more than one destination, in
which case it is called a communication network. Communication systems are
usually studied with *Shannon’s model in mind.
communication theory The study of *communication systems through mathematical
models of their operation. It is broadly divided into *information theory (the entropy
formulation of sources and channels) and *coding theory (source coding and channel
coding).
commutative diagram A method for displaying equations between *functions. For
example, suppose that there is a function ϕ of the form
and what is needed is to represent or code the data in X and Y, and the function, by means
of the data sets A and B, respectively. Functions α and β are chosen where
and a function f : A → B is defined to be a representation or function for ϕ on the code sets
A and B if, for all a ∈ A, the following equation holds:
This equation is depicted by the commutative diagram shown in the figure.
Equations and commutative diagrams of this form play an important role in relating
different levels of abstraction, and are used to formulate the correctness of data-type
implementations, compilers, and machine architectures. As equations grow in complexity,
commutative diagrams become essential. See also COMPUTABLE ALGEBRA.
Commutative diagram.
commutative group (abelian group) See GROUP.
commutative law See COMMUTATIVE OPERATION.
commutative operation Any *dyadic operation ° that satisfies the law
for all x and y in the domain of °. The law is known as the commutative law. The usual
addition of integers is commutative but subtraction is not.
commutative ring See RING.
commutative semiring See SEMIRING.
compaction 1. Any of a number of methods to reduce unused or unusable space in
primary, secondary, or other memory. See MEMORY COMPACTION. 2. Removal of
redundant data from a record. Many systems work with fixed-length records as a
convenient method of handling files. This has the disadvantage that all records must be
capable of holding the longest record, giving uneconomic use of storage. The fixed-length
records can be processed (compacted) into a variable-length form. One method involves
the removal of trailing spaces; another involves the replacement of long strings of
identical characters by a *flag that indicates the occurrence of such a string, together with
a count of the number of characters and a single instance of the character. Compaction will
require CPU time when the record is stored and again when it is unpacked to fixed-length
form, but the consequent saving in storage may justify this. 3. See DATA COMPACTION.
Compaq Computer Corporation Compaq was an early and successful entrant into
the personal computer market and into portables. In 1997, it bought Tandem Computers, a
manufacturer of very high-reliability computers for the business market. In 1998, in the
largest acquisition in the computer industry up to then, it bought the *Digital Equipment
Corporation. In 2002, it merged with the *Hewlett-Packard Corporation.
comparator 1. A piece of hardware or software that checks the outputs of a system
while that system is operational. For a single channel system (i.e. no redundancy or
diversity), the comparator might check across several outputs to see that only valid
combinations are produced. The comparator may deal only with binary signals, usually
termed voting logic, or may compare analogue signals. 2. A piece of software that, for
example, compares the contents of two text files and highlights any differences between
the contents. It is often used in *word processing or editing of program source files and as
a *software quality assurance tool in *configuration management.
comparison counting sort A sorting algorithm that stores, for each sortkey, the
number of keys less than the given key. If Nj denotes the number of keys less than the jth
key then (assuming that keys are unique) the jth record should be in position Nj + 1 in a
file sorted into ascending order of the keys. This is a simple but inefficient algorithm.
compartmentalization (compartmentation) The process of keeping resources with
differing access attributes in separate groupings.
compatibility 1. Of hardware, the ability of a subsystem (e.g. memory) or an external
device (e.g. a terminal) to be substituted for the originally designated equipment. To
designate that one manufacturer’s hardware can be connected to another manufacturer’s
hardware, the terms plug-to-plug compatible, or plug-compatible, are used. The
ability of new hardware to handle interfaces of previous generations is called backward
compatibility. 2. Of software, the ability of a computer to execute directly program
code that was compiled, assembled, or written in machine language for another computer.
Generally this occurs for successive computers in a given manufacturer’s line. Since later
computers are usually more capable (i.e. have a larger instruction set and/or more
memory), the ability to run the program of a less capable machine is usually called
upward compatibility or backward compatibility. See also PORTABLE,
EMULATION. 3. (of a new piece of software) The ability to reproduce the behaviour of its
predecessor, in particular to accept the same input formats.
compilation time The time at which a high-level language program is translated into
some other representation, such as machine code, so that the program can subsequently be
executed by some computer system. Compare RUN TIME.
compiler A program that translates high-level language into *absolute code,
*intermediate code, or sometimes *assembly language. The input to the compiler (the
source code) is a description of an algorithm or program in a problem-oriented language;
its output (the object code) is an equivalent description of the algorithm in a machineoriented language. See also JIT COMPILER.
compiler-compiler A program that accepts the syntactic and semantic description of a
programming language and generates a *compiler for that language. The syntax is
expressed in *BNF or a derivative thereof, and must conform to the rules dictated by the
parsing technique to be used in the generated compiler. The semantics of the language are
usually described by associating a code-generation procedure with each syntactic
construct, and arranging to call the procedure whenever the associated construct is
recognized by the parser. Thus the user still has to design the run-time structures to be
used, and decide how each syntactic construct is to be mapped into machine operations.
Then he/she has to write the code-generating procedures. A compiler-compiler is therefore
a useful tool to aid the compiler writer, but nothing more.
Strictly speaking a compiler-compiler includes a parser generator as a component part,
but the two terms are often used synonymously. See also LEX, YACC.
compiler validation See CONFORMANCE TESTING.
complement 1. of a *set, S, with respect to some universal set U. The set consisting of
elements that are in U but not in S; it is usually denoted by S′, ~S, or S̶. Formally,
The process of taking complements is one of the basic operations that can be performed on
sets.
The *set difference (or relative complement) of two sets S and T is the set of
elements that are in S but not in T; it is usually written as S—T. Thus
See also OPERATIONS ON SETS. 2. See BOOLEAN ALGEBRA. 3. of a *subgraph G′, with
vertices V′ and edges E′, of a *graph G, with vertices V and edges E. The subgraph
consisting of the vertices V and the edges in E but not in E′. 4. See RADIX-MINUS-ONE
COMPLEMENT. See also COMPLEMENT NUMBER SYSTEM, RADIX COMPLEMENT.
complementary logic See NEGATIVE LOGIC.
complemented lattice A *lattice in which there are identity elements 0 and 1 and in
which each element a has at least one complement b, i.e.
It will also be the case that b is a complement of a and that 0 and 1 are the complements of
each other.
complement number system An alternative representation of numbers in a fixedradix *number system. In a complement system each positive integer is represented in its
usual form in the given radix system except that it is prefixed by at least one leading zero.
Each negative number is then represented by the complement of the corresponding
number. For example, in both the ten’s complement system and the nine’s complement
system any number with leading digit 9 represents a negative number. See also RADIX
COMPLEMENT, RADIX-MINUS-ONE COMPLEMENT.
complete graph A *graph G in which there is an edge joining every pair of distinct
vertices; every vertex is adjacent to every other vertex. If G contains n vertices then the
number of edges is
complete lattice A *set D on which there is a *partial ordering and in which every
subset of D has both a least *upper bound and a greatest *lower bound in D. By contrast,
the weaker notion of *lattice requires only that finite subsets have least upper bounds and
greatest lower bounds.
completeness The property or state of being logically or mathematically complete. In
logic, an inference procedure is complete if it can derive every possible valid conclusion
from the given axioms. A knowledge-based system can be considered incomplete if
missing data hinders its operation or corrupts the results.
completeness theorem A theorem about a logical system L and a semantics S stating
that a formula is provable in the logic L if and only if it is valid in the semantics S. A
completeness theorem consists of a *soundness and an *adequacy theorem: it confirms
that the logic is expressing and deriving precisely the properties that are valid according to
the semantics.
complete term rewriting system See TERM REWRITING SYSTEM.
complete tree Any tree constructed from a *full tree of depth k by deleting some of the
leaf nodes and the arcs leading to them. In a complete binary tree, the deleted nodes are
often constrained to be the rightmost terminal (leaf) nodes.
The term is also sometimes used as a synonym for full tree.
complex algebra The rules for performing operations on *complex numbers in a way
that forms a useful and effective model for many scientific and engineering processes.
complex instruction set computer See CISC.
complexity The ‘ease’ or ‘difficulty’ of solving computational problems, measured in
terms of some resource consumed during computation. The resource can be an abstract
measure, or something specific like space or time. The analysis of the complexity of
computational problems is a very active and large area of research at present and has
important practical implications. See also COMPLEXITY CLASSES, COMPLEXITY MEASURE.
complexity classes A way of grouping algorithms, computable functions, or
specifications according to their computational *complexity. Computable functions that
have the same complexity according to some measure are placed in the same complexity
class; functions in the same class are equally difficult to compute with respect to the
measure.
The classification is most thoroughly done for *formal languages that can be recognized
by *Turing machines. If L is a formal language that can be recognized by a deterministic
Turing machine program M, and the time complexity (see COMPLEXITY MEASURE) for M
is a function TM(n) of the length n of the input string, then L is classified according to the
nature of TM(n). If TM(n) is bounded (e.g. by a polynomial or exponential function) then
there exists a bounding function S(n) such that for all n,
For a particular function S(n) there is consequently a class of languages for which the
above bound on time holds. This class is denoted by
Thus DTIME(S(n)) is the class of languages recognizable within time S(n).
There is a similar definition of a class of languages
in terms of the space complexity (see COMPLEXITY MEASURE).
There are various known relations between complexity classes. For example, if for two
bounding functions S1 and S2
then there is a language in DSPACE(S2(n)) that is not in DSPACE(S1(n)). Note that this
applies if S1 is polynomial and S2 is exponential. There are similar results for time
complexity classes.
Complexity classes can also be defined for nondeterministic *Turing machine
programs. Thus a language L is in
if there is some nondeterministic Turing machine program that recognizes L and such that
on an input string of length n none of the possible computations uses more than S(n) tape
squares. Time complexity classes, NTIME, can be similarly defined. It is known for
example that
complexity function If A is an algorithm for solving a particular class of problems and
n is a measure of the size of a particular problem in this class, then a complexity function
fA(n) is a function of n giving an upper bound on the maximum number of basic
operations that algorithm A has to perform to solve any problem of size n. For example, n
might be the number of records in a file and fA(n) the maximum number of comparisons
required to sort the file. There are many algorithms and problems where the number of
basic operations depend on the data rather than the size of the data (e.g. Euclid’s algorithm
for greatest common divisors). See also COMPLEXITY MEASURE.
complexity measure A means of measuring the resources used during a computation.
A general definition is contained in *Blum’s axioms. In the special case of *Turing
machines, during any Turing machine computation various resources will be used, e.g.
space and time. These can be defined formally as follows.
Given a Turing machine program M and an input string x, then Time(M,x) is defined as
the number of steps in the computation of M on x before M halts. Time is undefined if M
does not halt on x. The time complexity of M is defined to be the integer function TM
where
for nonnegative integer n.
Space(M,x) is similarly defined as the number of tape squares used by M on x, and the
space complexity SM is defined by
However, in order to distinguish the space required for working as opposed to the space
for the input string x, the machine is sometimes considered as having a read-only input
tape, and Space(M,x) is defined as the number of squares used by M on x.
The more general measures of complexity share many of the common properties of time
and space (see BLUM’S AXIOMS).
An algorithm for which the complexity measure TM(n) or SM(n) increases with n no
more rapidly than a polynomial in n is said to be polynomially bounded; one in which
it grows exponentially is said to be exponentially bounded.
See also COMPLEXITY CLASSES.
complex number A number that, for mathematical convenience, is regarded as being
composed of two *scalars (called the real and imaginary parts of the complex
number), and is subject to a standard set of operations according to the rules of *complex
algebra.
In engineering, and especially control engineering and electrical and electronic
engineering, complex numbers and *complex operations are an essential tool without
which calculations would be much more difficult to express and understand.
Consequently, support for complex numbers and operations is an important consideration
in the design of programming languages, packages, and libraries for use in engineering
applications.
complex operation One of a number of *operations (addition, subtraction,
multiplication, etc.) defined on ordered pairs of *scalars according to the conventions of
*complex algebra. Many programming languages provide complex operations as standard
language features, or make them available in standard packages or libraries. See also
COMPLEX NUMBER.
com port (comm port), (communications port) Usually refers to a *serial RS232
port found on most personal computers.
composition 1. (relative product) A method of combining *functions in a serial
manner. The composition of two functions
is the function
with the property that
This is usually written as g ° f. The process of performing composition is an *operation
between functions of suitable kinds. It is *associative, and *identity functions fulfil the
role of units.
If R denotes the set of real numbers and
then f° g is the function h:
The idea of composition of functions can be extended to functions of several variables. 2.
A subdivision of a positive integer n into parts a1, a2,… ak in which the ordering is
significant and in which
where each ai is a positive integer. It is thus similar to a partition (see COVERING) but in a
partition the ordering is not significant. In general the number of compositions of n is 2n−1.
3. A particular form of association between entities found in object-oriented approaches.
The association is used to indicate a hierarchy of objects such that objects lower in the
hierarchy are part of objects higher in the hierarchy. Thus the hierarchy indicates a
component structure.
composition table See CAYLEY TABLE.
compound document A document that contains sound or video components as well as
text.
compression Reduction of the space needed to define an entity using one of the many
techniques available. The compression factor is the ratio of the storage size of an
uncompressed representation to that of the compressed representation. See also DATA
COMPRESSION, IMAGE COMPRESSION, SPEECH COMPRESSION.
compression factor See COMPRESSION.
CompuServe A US-based commercial agency that pioneered online email,
conferencing, bulletin board, and publishing facilities. It is now an *ISP and *portal and is
part of AOL.
computability See EFFECTIVE COMPUTABILITY. See also COMPUTABLE ALGEBRA.
computable See TURING MACHINE, CHURCH–TURING THESIS, EFFECTIVE
COMPUTABILITY.
computable algebra An *algebra that can be faithfully implemented or represented on
a computer, in principle. The notion is made mathematically precise using the theory of
the effectively computable functions on the set of natural numbers (and the *Church–
Turing thesis).
An algebra is computable if
(a) there is a mapping α : Ω → A, called a numbering, that uses a *recursive set Ω of
natural numbers to represent, or code, the set A of elements of the algebra;
(b) there are *recursive functions on numbers that track the operations of the algebra in the
set Ω of natural number codes;
(c) there is a recursive function that can decide whether or not two numbers in Ω code the
same element of A.
The idea in (b) of tracking operations in the code set is formulated by a *commutative
diagram depicting an equation: for each operation
of the algebra there is a recursive function
such that
for all x1,…,xk ∈ Ω. The idea of deciding equality in A is formulated by the relation
A closely associated concept is that of a semicomputable algebra; this satisfies
properties (a) and (b) above, and a third condition, weaker than (c), that whether or not
two numbers in the set Ω code the same element of A is *recursively enumerable, rather
than recursively decidable.ø
The concepts of computable and semicomputable algebras are used to establish the
scope and limits of digital computation. Some fundamental completeness theorems link
these algebras with *equational specifications and their properties:
(1) an algebra is semicomputable if and only if it can be defined uniquely by a finite set of
equations, possibly involving extra or hidden functions and sorts, and using initialalgebra semantics;
(2) an algebra is computable if and only if it can be defined uniquely by a finite set of
equations (possibly using hidden functions) whose associated *term rewriting system
has the Church-Rosser and strong termination properties.
computable function A *function
for which there exists an algorithm for evaluating f(x) for any element x in the domain X of
f.
computable real number See REAL NUMBERS.
computable set See RECURSIVE SET.
computation, model of A method for computing sets and functions. See CHURCH–
TURING THESIS, ABSTRACT COMPUTABILITY THEORY.
computational creativity A subfield of *artificial intelligence that covers the
computational study of the creative mind and the construction of systems that exhibit
creative behaviour. Topics covered include all forms of creative reasoning (e.g. music, art,
literature), computational models of creative processes, and the philosophy of
computational creativity.
computational environment (CE) See MOBILE CODE LANGUAGES.
computational geometry 1. The mathematical representation, manipulation, analysis,
and synthesis of shape information in a computer. (This definition is taken from the
seminal paper in this field by Robin Forrest, published in 1971.) 2. The study of
algorithms for solving geometric problems on a computer. (This is a more restrictive
definition, reflecting the way in which the term is more commonly used nowadays.)
computational psychology A discipline lying on the border between *artificial
intelligence and psychology. It is concerned with building computer models of human
cognitive processes and is based on an analogy between the human mind and computer
programs. The brain and computer are viewed as general-purpose symbol-manipulation
systems, capable of supporting software processes, but no analogy is drawn at a hardware
level. See COGNITIVE MODELLING, COGNITIVE SCIENCE.
computer A device or system that is capable of carrying out a sequence of operations in
a distinctly and explicitly defined manner. The operations are frequently numerical
computations or data manipulations but also include input/output; the operations within
the sequence may depend on particular data values. The definition of the sequence is
called the program. A computer can have either a *stored program or *wired program. A
stored program may exist in an alterable (*read/write or *RAM) memory or in a
nonalterable (*ROM) memory. Today, the term ‘computer’ without qualification is a
synonym for ‘stored-program digital computer.’ See also ANALOGUE COMPUTER, DIGITAL
COMPUTER, VON NEUMANN MACHINE.
computer-aided design (CAD) The application of computer technology to the design
of a product, or the design itself. Computer-aided design is used especially in architecture
and electronic, electrical, mechanical, and aeronautical engineering. A computer-aided
design uses as inputs both the appropriate technical knowledge of individuals who enter
design criteria, edit results, and otherwise test and modify the design, and also
accumulated information from libraries of standards for components, element sizes,
regulations, etc., such as standard ICs for a digital design system or standard pipe lengths
and fittings for a hydraulic or piping system. Processing of the data from the inputs takes
place in at least two phases:
(a) certain interactive programs are invoked by the technical designer during the design
process, these results being generally displayed on a VDU;
(b) programs are applied that may take considerable periods of running time to analyse
tolerances, clearances, electrical characteristics, etc., the results of these runs being
displayed back to the technical designer.
Output from a computer-aided design system consists of printouts of specifications and
other information, and machine-readable files that are passed to *computer-aided
manufacturing (CAM) systems and *computer-aided testing (CAT) systems. Examples of
output to a CAM system are computer-produced artwork for printed circuit boards, or
computer-produced tapes for automatic component insertion and board drilling. The
combined process of computer-aided design and manufacture is known as CADCAM.
The whole procedure—design, manufacture, and testing—is often referred to as
CADMAT. There is an ISO standard (*STEP) for the exchange of product model data,
including CAD data.
computer-aided engineering (CAE) An umbrella term that covers all uses of
computers in engineering applications. Thus computer-aided design, computer-aided
planning, and computer-aided manufacturing, are all branches of computer-aided
engineering. The subject area is not usually taken to include software engineering.
computer-aided instruction (CAI) See COMPUTER-ASSISTED LEARNING.
computer-aided manufacturing (CAM) A set of techniques which integrate various
subtechniques that can be used in computer control or *process control for various forms
of manufacturing. Computer-aided manufacturing implies the integration of all aspects of
manufacturing systems within the factory, i.e. the use of computer techniques not only for
process control but also for aspects such as automatic ordering of materials, predicting
material usage, factory scheduling, inventory control, predicting machine changeover, and
projecting manpower requirements. Computer-aided manufacturing is particularly
important as it follows naturally from *computer-aided design. See also COMPUTER-AIDED
TESTING, COMPUTER-INTEGRATED MANUFACTURING, NUMERICAL CONTROL.
computer-aided process planning (CAPP) The use of computer facilities to
construct, manipulate, and analyse plans for an industrial process.
computer-aided production management (CAPM) The use of computer facilities
to monitor, regulate, or optimize an industrial production process.
computer-aided testing (CAT) The application of computers to control either
analogue or digital test techniques in order to evaluate the quality of components and
products. Computer-aided testing is used to check that the component parts,
subassemblies, and full systems are within specified tolerances and also perform up to
specification. Note that performance to specification may require that the unit or system
operates under stressful conditions that would not be encountered in normal use. The
parameters (test criteria) for computer-aided testing are often derived from *computeraided design and *computer-aided manufacturing systems.
computer animation The introduction of the time dimension into computer graphics
to manipulate objects and create the illusion of animated movement. Facial animation,
for example, is aimed at modelling precisely the muscular structure and surface of the
human face. Behavioural animation is based on the behaviour patterns of animals
(birds flock for protection, fish swim in schools).
computer architecture See ARCHITECTURE.
computer-assisted learning (CAL) Any use of computers to aid or support the
education or training of people. CAL can test attainment at any point, provide faster or
slower routes through the material for people of different aptitudes, and can maintain a
progress record for the instructor.
Computer-assisted learning is one of several terms used to describe this application of
computers. Other terms include computer-aided (or -assisted) instruction, CAI,
computer-based learning, CBL, and computer-managed instruction, CMI.
computer-assisted software engineering See CASE.
computer-based learning (CBL) See COMPUTER-ASSISTED LEARNING.
computer-based training (CBT) The use of computers to provide or supervise staff
training. The term emphasizes the need for practice in the acquisition of skills.
computer chess The development of computer game playing methods to produce highquality chess playing programs. Most programs are based on *search techniques with
sophisticated enhancements (see MINIMAX). Theoretical work on search has benefited
from computer‐chess experience—for example, through experiments on *heuristics.
Commercial and research systems of very high performance are now available. Particular
interest has been taken in work at IBM to produce a chess-playing computer operating at
the highest level. The computer known as Deep Thought, developed in the late 1980s,
won the World Computer Chess Championship in 1989. In 1990 it was matched against
the former world champion Garry Kasparov, who easily beat it 2—0 in a two-match
contest. Subsequently, Deep Thought was improved and installed on a RS/6000 SP
supercomputer and in 1993 it was renamed Deep Blue. Kasparov played Deep Blue in
1996 and won the match by 3—1 with 2 drawn games. An improved version of Deep Blue
capable of calculating 200 million moves in three minutes was produced and matched
against Kasparov again in 1997. This time the computer won by 2—1 with 3 drawn
games. Kasparov accused IBM of cheating by modifying the program during a match,
although this was denied. In 2006 the then world champion Vladimir Kramnik lost 4—2 to
a computer program Deep Fritz.
computer emergency response team (CERT) A team established by the
administrative authority for a network to act as a focal point for reporting security
violations and to disseminate advice and coordinate action to counter such *threats to
networked systems. A particular CERT usually serves a particular community, often the
group of sites connected to a *wide area network. In addition the separate CERTs
cooperate where there is evidence that a threat crosses community boundaries.
computer family A group of (digital) computers that are either successive generations
of a particular computer system or versions of a single generation that differ in cost, speed,
and/or optional features. They will tend to have similar but perhaps not identical
*architectures.
computer fraud Any technique aimed at manipulating information within a computer
system for the purpose of illicit, usually financial, gain.
computer games Recreational computer programs. Computers have been used to play
games from the very start, and as the computers have become more powerful and cheaper,
the games have become more sophisticated, particularly in their appearance and sound.
Much computer game playing is done on purpose-made computers called games
consoles. Typically, games are controlled using a *joystick or similar hand-held device.
They are available on a variety of data media and can also be downloaded from the
*Internet. The serious side of games is in the algorithms underlying them, many of which
have become important in other areas of computing. Equally, games have inherited
techniques from industrial and military simulators. Currently *virtual reality and *virtual
worlds have become important in games, while networks, especially the Internet, have
made massively multiuser games popular. See also COMPUTER CHESS.
computer graphics The creation of, manipulation of, analysis of, and interaction with
pictorial representations of objects and data using computers. See feature COMPUTER
GRAPHICS.
COMPUTER GRAPHICS
Computer graphics is the creation of, manipulation of, analysis of, and interaction with
pictorial representations of objects and data using computers. The information may be a
simple histogram, a complex map or engineering design with textual annotation, or a
photorealistic rendered scene. Output-only computer graphics was used as early as the
late 1950s. The first interactive graphics system that defined a number of the current
paradigms was Sketchpad, devised by Ivan Sutherland at MIT Lincoln laboratory and
published in 1963. On a computer screen, or on a printed page, all images are made up
of pixels or dots in an array. However, there are two quite different ways in which the
information is stored and manipulated, usually referred to as raster (or bitmap) graphics
and vector graphics.
Raster graphics
This is the system used for scanned images and for photographs produced by a digital
camera. It is suitable for complex pictures with a large number of different colours and
shades. The image is stored as chunks of data, each representing the properties (e.g.
colour, tint, transparency) of a small element of the picture. The overall picture is
formed from lines in an analogous way to the picture on a television screen (hence the
name ‘raster’). A large number of different file formats are used for raster graphics
images, many native to the application. Some of the ones in general use are shown in
the table.
Bitmap editors
Raster images can be viewed and changed using commercial raster (or bitmap) editors,
such as Adobe PhotoShop or Corel Paint Shop Pro. Programs of their type allow images
to be viewed and changed in a number of ways. They can be resized or distorted, parts
can be cut and replaced by sections of other pictures, and various special effects can be
applied (e.g. blurring, pixellating, bas relief). General properties such as brightness and
contrast can be adjusted and selective colour changes can be made. Most raster editors
also include simple drawing and painting features involving a selection of pens, brushes,
and sprays. In general, however, such programs are used for editing existing pictures
rather than creating new ones. Photoshop, for example, is routinely used to retouch the
photographs reproduced in newspapers and magazines.
Vector graphics
This system is used for diagrams, graphs, flow charts, engineering drawings, etc. It is
suitable for relatively simple line drawings. The image is stored and manipulated as
mathematical formulae producing lines, geometrical figures, and curves (e.g. Bezier
curves). Regions of the illustration can be filled with colours or tints. Vector graphics
are also the basis of the character outlines in scalable fonts. The main general formats
are shown in the table.
Graphics formats. The difference between vector and raster images when they are
enlarged
Drawing programs
Vector graphics software is more usually used for creating images. Examples of these
‘drawing programs’ are Adobe Illustrator and Adobe FreeHand, both of which are used
by commercial illustrators. Using such programs it is possible to draw lines, polygons,
circles, and ellipses, and also to produce more complex Bezier curves. Freehand
drawing is also possible, usually using some sort of data tablet input device. Other
software is used in more specialized applications, such as *computer-aided design,
drawing chemical structural formulae, and producing mathematical figures. The files for
vector graphics illustrations are generally much smaller than raster files. Vector
illustrations are also easier to change. A particular advantage is that they are scalable—
i.e. they can be enlarged indefinitely without loss of detail.
Three-dimensional graphics
A large amount of effort and money has gone into techniques for producing threedimensional images—largely driven by the increasing use of CGI (computer graphic
imaging) in the mainstream film industry. Drawing programs for three-dimensional
graphics use basic figures (cube, sphere, cone, etc.) that can be distorted and patched
together to form more complex shapes. These images have a vector component, which
is a wireframe outline of the shape composed of a large number of small polygons.
These are filled with a bitmap pattern to create the surface—a process known as
rendering. In simple 3-D graphics, a sphere, for example, is a polyhedron with a large
number of plane faces—the larger the number of faces, the nearer the approximation to
a smooth surface (but the greater the rendering time). In more sophisticated graphics
systems the surface is made up of curved Bezier patches. Three-dimensional graphics
programs also include facilities for displaying the scene from different viewpoints and
for lighting it from different angles, with automatic generation of highlights and
shadows.
Formats for graphics files
File
Uses
Extension
Windows bitmap
Used in simple screen display
.bmp
Graphic image file
A CompuServe format used for
simple web pictures
.gif
JPEG
The Joint Photographic Expert
.jpg
Group format used for photographs
in web pages and in desktop
publishing
Portable network graphics
The format recommended for web
use
.png
Tagged image file format
Used for high-quality pictures in
desktop publishing
.tif
Encapsulated PostScript
Used extensively in desktop
publishing
.eps
Scalable vector graphics
Increasingly used in web pages
.svg
Raster formats
Vector formats
computer hardware description language See CHDL.
computer-integrated manufacturing (CIM) The use of computers to control
equipment used in manufacturing systems. The term covers systems constructed from
machine tools, and *robotics, and includes parts distribution and handling, automated
storage of raw materials, work in progress, and finished goods. See also COMPUTER-AIDED
ENGINEERING, COMPUTER-AIDED MANUFACTURING, COMPUTER-AIDED PRODUCTION
MANAGEMENT.
computer logic The basic organization, design, and wiring used to realize a particular
computer *architecture. Someone involved with computer logic is therefore concerned
with the design of building blocks or components, both logical and physical, and with the
logic design involved in realizing a particular set of machine-code instructions; this may
include the provision of facilities such as *microprogramming whereby the set of basic
instructions can be altered.
computer-managed instruction (CMI) The use of computers (usually offline) to
produce lesson prescriptions based on student history and test performance. Components
comprising each lesson unit are selected in accordance with learners’ needs, as indicated
by test performance on previous units, academic history, etc.
Computer Misuse Act 1990 The act that criminalized hacking in the UK by creating
two new offenses and that created the offense of unauthorized modification of computer
material. The basic hacking offense in Section 1 of the Act is ‘unauthorized access to
computer material’ and a person is guilty of this offense ‘if he causes a computer to
perform any function with intent to secure access to any program or data held in any
computer’ knowing at the time that the access is unauthorized (see ACCESS def. 2). The
intent a person has to have need not be directed at any particular program or data. This
offense is targeted at computer hackers who simply gain access to see what information
the computer holds without the intention to commit any other serious act. However the
offense is so widely drafted that it could cover unauthorized driving of a motor car with a
microprocessor-controlled ignition, unauthorized making of telephone calls from a
computerized PBX, and unauthorized use of a microprocessor-controlled washing
machine. The maximum penalty under Section 1 is six months imprisonment. Section 2 of
the Act creates the second hacking offense: unauthorized access with intent to commit or
facilitate the commission of further offenses. It does not matter if the further offense is
committed at the time of the hack or on a later occasion. The maximum penalty under
Section 2 is five years imprisonment.
Section 3 of the Act provides that an offense will be committed by a person who, acting
with intent, causes an unauthorized modification of the contents of any computer. The
term modification is defined in Section 17 to include the addition of data or its alteration
or erasure. A modification will be regarded as unauthorized if the person causing it is not
authorized so to act or does not possess the consent of a person who is so entitled.
computer numerical control (CNC) See NUMERICAL CONTROL.
computer object model See COM.
computer power A figure-of-merit for a computer system, sometimes defined in terms
of performing a specific set of computations. It is described/measured by a number of
methods: *cycle time, *mips, *flops, *throughput, and the results of *benchmarks are
among the most common ones.
computer science The study of computers, their underlying principles and use. It
comprises topics such as: programming; information structures; software engineering;
programming languages; compilers and operating systems; hardware design and testing;
computer system architecture; computer networks and distributed systems; systems
analysis and design; theories of information, systems, and computation; applicable
mathematics and electronics; computing techniques (e.g. graphics, simulation, artificial
intelligence, and neural networks); applications; social, economic, organizational,
political, legal, and historical aspects of computing.
It is not a science in the strict sense of being a discipline employing scientific method to
explain phenomena in nature or society (though it has connections with physics,
psychology, and behavioural science), but rather in the looser sense of being a systematic
body of knowledge with a foundation of theory. Since however it is ultimately concerned
with practical problems concerning the design and construction of useful systems, within
constraints of cost and acceptability, it is as much a branch of engineering as it is a
science.
Computer Services Association See INTELLECT.
computer-supported cooperative working (CSCW) The use of computers to
allow people to cooperate in the execution of a task at a distance. It often involves audio
and video links between the users and the ability to share documents interactively.
computer word See WORD.
compute server A system specifically designed to undertake large amounts of
computation, usually but not necessarily in a *client/server environment.
con (console) Often used in simple programming to refer to the display or keyboard
attached to the computer.
concatenated code The effective compound code (comprising an inner code followed
by an outer code) employed in a *concatenated coding system, or a code designed for use
in such a system, either as the inner code or as the outer code.
concatenated coding systems *Communication systems in which messages are
encoded by means of an inner code before being passed through a channel and then
being decoded according to the inner code; this entire inner encoder-channel-decoder
system is itself regarded as a channel (it is hoped less noisy than the original channel), and
therefore has a further encoder and decoder placed before and after it; these implement an
outer code. Alternatively, such a system may be considered as a channel with a
compound encoder before it and a compound decoder after it, the compound encoder and
decoder implementing a *factorable code.
To a good approximation, the inner code should be designed to correct any *channel
errors arising in the original channel, while the outer code should be designed to cope with
decoder errors occurring in the inner decoder. Since these decoder errors tend to occur in
bursts, the outer code is usually a burst-error-correcting code: the *Reed–Solomon codes
are often used for this purpose. The inner code is often a *convolutional code.
concatenation The operation of joining two *strings to form a longer string. The
concatenation of the strings
is the following string of length m + n:
Common notations for referring to it include uv and u<>v, but others are also used.
The term concatenation is also generalized to an operation on sets of strings (i.e.
*formal languages). Let K and L be two sets of strings. Then they can be combined into
the following set by concatenating strings from K with strings from L in all possible ways:
This set is usually written KL. The phrase language concatenation is sometimes used
to distinguish this from simple concatenation of strings. Both string concatenation and
language concatenation give rise to *monoids, the identity elements being ∧ and {∧}
respectively (where ∧ is the *empty string).
concatenation closure Another name for Kleene star.
concept learning A major topic in *machine learning that addresses the problem of
classifying a series of data instances as equivalent on the basis of some given properties.
The idea is to locate clusters within sets of data, using methods of *induction, so that the
clusters define and distinguish salient features within the data. The clusters represent
‘concepts’ and their descriptions define a class of data that fits a particular conceptual
cluster.
conceptual graphs A representation formalism, designed by John Sowa, that combines
logic-based features with the expressibility and flexibility of *associative networks.
Conceptual graphs provide a unifying framework for modelling many of the other
*knowledge representation techniques.
conceptual schema Another name for logical schema.
concurrency The progressing of two or more activities (processes, programs) in
parallel. It is a term that describes the general topic of parallelism in computer systems,
specifically *multiprocessing systems. Specification of concurrency, and the consequent
problems of *interlock and *synchronization, requires special features in the programming
language, and is a feature of the class of *real-time languages.
The usual method of describing parallelism is Flynn’s classification, which does so
in terms of parallelism in the *instruction stream and in the *data stream of a system. Thus
there are four categories:
SISD, single instruction, single data;
SIMD, single instruction, multiple data;
MISD, multiple instruction, single data;
MIMD, multiple instruction, multiple data.
The first of these, SISD, is the conventional serial processor. The third of these, MISD,
does not really occur in current systems. The other two are of most interest in
multiprocessor systems. The SIMD is suited to operating upon data of the sort that exists
in vectors and matrices by taking advantage of the inherent parallelism in that data. Thus
the *array processor is one such system. Another is represented by the *supercomputer
with parallel and different arithmetic units that *overlap arithmetic operations. The
MIMD system represents a wide range of architectures from the large symmetrical
multiprocessor system to the small asymmetrical minicomputer/DMA channel
combination.
Shared-memory systems form a distinct group within the MIMD category. They are
general-purie multiprocessor systems that share common memory, and are thus also called
closely coupled or tightly coupled systems. *Distributed systems—*wide area,
*metropolitan area, and *local area networks—form another MIMD group, sometimes
referred to as loosely coupled systems.
concurrent assignment An *assignment statement of the form
in which the value of the terms t1, …, tn over some *signature ∑ are evaluated and
assigned in parallel as the new values of the variables x1, …, xn. For example, the
concurrent assignment
simply swaps the values of x and y.
concurrent DOS See CDOS.
concurrent programming A near-synonym for *parallel processing. The term is used
to denote both (i) the act of creating a program that contains sections to be executed in
parallel and (ii) its subsequent execution. One difference from parallel processing is that
concurrency is concerned with non-deterministic control flow, usually for applications
(typically network-based) where communication times are unpredictable, whereas
parallelism runs sub-tasks in parallel to improve performance with careful management of
deterministic control flow.
condensation See CONNECTED GRAPH.
conditional 1. Taken account of in some but not all circumstances. 2. A logic statement
of the form
that should be read as ‘if P is true then Q follows’, although its meaning in logic only
partly resembles its usage in English (see table).
conditional. Truth Table
conditional equation An expression of the form
which means that if the equations e1,…, en hold then the equation e holds. Conditional
equations have many properties in common with *equations; in particular, sets of
conditional equations possess *initial algebras and generalizations of *Birkhoff’s
completeness theorem.
conditional jump (conditional branch) A *jump that takes place only if a specified
condition holds, e.g. specified register contents zero, nonzero, negative, etc.
condition-code register (qualifier register) A set of *indicators that records the status
or condition of a previous result output from the *ALU. It forms part of the *program
status word.
condition number A number that gives a measure of how sensitive the solution of a
problem is to changes in the data. In practice such numbers are often difficult to compute;
even so they can play an important part in comparing algorithms. They have a particularly
important role in *numerical linear algebra. As an example, for the *linear algebraic
equations
if b is changed to b + Δb (simulating, for example, errors in the data) then the
corresponding change Δx in the solution satisfies
where cond(A) = ǁAǁ ǁA–1ǁ is the condition number of A with respect to solving linear
equations. The expression bounds the relative change in the solution in terms of the
relative change in the data b. The actual quantities are measured in terms of a vector norm
(see APPROXIMATION THEORY). Similarly the condition number is expressed in terms of a
corresponding matrix norm. It can be shown that cond(A)≥1. If cond(A) is large the
problem is said to be ill-conditioned and it follows that a small relative change in b can
lead to a large relative change in the solution x. This means that the accuracy of a
computed approximation must be interpreted accordingly, taking into account the size of
the possible data errors, machine precision, and errors induced by the particular algorithm.
Similar ideas apply to other problem areas and condition numbers feature in a measure
of eigenvalue sensitivity in the matrix *eigenvalue problem.
cone of influence The volume within which a spot light influences the rendering of
objects.
conferencing See TELECONFERENCING, VIDEOCONFERENCING.
confidence interval A range of values about a *parameter estimate such that the
*probability that the true value of the parameter lies within the range is some fixed value,
α, known as the confidence level. The upper and lower limits of the range are known as
confidence limits. Confidence limits are calculated from the theoretical *frequency
distribution of the estimating function. The concept may be generalized to several
parameters. A confidence region at level α contains the true values of the parameters
with probability α.
confidentiality Rules and procedures that prevent unauthorized persons from gaining
access to information. Together with *availability and *integrity, confidentiality is
generally considered one of the three basic principles of *security.
configuration 1. The particular hardware elements and their interconnection in a
computer system for a particular period of operation. See also RECONFIGURATION. 2. In
*configuration management, the functional and physical characteristics of hardware or
software as set out in documentation or achieved in a product.
configuration management (CM) Ensuring throughout its lifetime that a product put
to some usage is properly constituted for that usage—for example that the correct
procedures have been followed in creating the product, that the appropriate version of
each individual component has been selected, that any required tests have been performed,
that the product represents a complete and consistent whole, and that all known problems
in any way pertinent to the product have been properly considered. As an illustration, a
relatively simple configuration management activity might ensure that the individual
components of a software system are the appropriate ones for the particular hardware on
which the system is to run. A rather more complex activity might be to assess the impact
on all software systems of a newly discovered problem with some version of a compiler,
and to initiate any necessary corrective action.
The problems of configuration management can be complex and subtle, and for many
projects effective configuration management can be crucial to overall success. Approaches
to configuration management fall into two broad classes. One approach attempts to retain
control over the product as it evolves, so that configuration management is viewed as a
continuous activity that is an integral part of product development. The other approach
views configuration management as a separate activity; it is a distinct milestone when the
product is first placed under configuration management, and each new revision of the
product is subject to the configuration management process, but configuration controls are
not imposed during periods of development.
configured-in, -off, -out Terms used to detail the *configuration of a system, or
changes (*reconfigurations) therein.
confluent See ABSTRACT REDUCTION SYSTEM, CHURCH–ROSSER THEOREM.
conformance testing Testing carried out to show that a product meets the requirements
of a relevant standard. Typically conformance testing is carried out for compilers (thus
compiler validation), and for products that implement interface specifications such as
for *OSI or *EDI. The testing will usually be carried out by a third-party organization
approved by the appropriate national body, will use an approved conformance test
suite and conformance test procedure, and will result in the issue of a
conformance certificate for the product. Usually a certificate will be of limited
duration, typically one year, when retesting will be required. If a product is altered in any
way retesting will also be required.
conform to (of an *SGML or *XML document) See DTD.
congruence relation 1. An equivalence relation defined on the integers in the
following manner. Let m be some given but fixed positive integer and let a and b be
arbitrary integers. Then a is congruent to b modulo m if and only if (a–b) is divisible by m.
It is customary to write this as
One of the most important uses of the congruence relation in computing is in generating
random integers. A sequence
of integers between 0 and (m–1) inclusive can be generated by the relation
The values of a, c, and m must be suitably chosen. 2. An *equivalence relation R (defined
on a set S on which a *dyadic operation ° is defined) with the property that whenever
This is often referred to as the substitution property. Congruence relations can be
defined for such *algebraic structures as certain kinds of *algebras, *automata, *groups,
*monoids, and for the integers; the latter is the congruence modulo m of def. 1.
conjunction A logical expression of the form
where ∧ is the *AND operation. A particular conjunction of interest is the conjunctive
normal form (CNF) of a Boolean expression involving n variables, x1, x2,…, xn. Each
ai is of the form
where ∨ is the *OR operation and yi is equal to xi or the complement of xi. Reducing
expressions to conjunctive normal form provides a ready method of determining the
*equivalence of two Boolean expressions. See also PROPOSITIONAL CALCULUS. Compare
DISJUNCTION.
conjunctive normal form (CNF) See CONJUNCTION.
CONLAN (consensus language) A consensus hardware description language. See
also CHDL, VHDL.
connected graph A *graph in which there is a *path joining each pair of vertices, the
graph being undirected. It is always possible to travel in a connected graph between one
vertex and any other; no vertex is isolated. If a graph is not connected it will consist of
several components, each of which is connected; such a graph is said to be
disconnected.
If a graph G has e edges, v vertices, and p components, the rank of G, written ρ(G), is
defined to be
The nullity of G, written μ(G), is
Thus ρ(G) + μ(G) = e
With reference to a directed *graph, a weakly connected graph is one in which the
direction of each edge must be removed before the graph can be connected in the manner
described above. If however there is a directed path between each pair of vertices u and v
and another directed path from v back to u, the directed graph is strongly connected.
More formally, let G be a directed graph with vertices V and edges E. The set V can be
partitioned into *equivalence classes V1, V2,… under the relation that vertices u and v are
equivalent iff there is a path from u to v and another from v to u. Let E1, E2,… be the sets
of edges connecting vertices within V1, V2,… Then each of the graphs Gi with vertices Vi
and edges Ei is a strongly connected component of G. A strongly connected graph
has precisely one strongly connected component.
The process of replacing each of the strongly connected components of a directed graph
by a single vertex is known as condensation.
connectedness A measure of the extent to which a given graph is *connected. An
undirected graph is k-connected if for every pair of vertices u and v there are at least k
paths between u and v such that no vertex other than u and v themselves appear on more
than one path. A *connected graph is 1-connected, a *biconnected graph is 2-connected.
connectionism A branch of *artificial intelligence that advocates the use of massively
parallel systems based on many simple processing elements with large numbers of
connections between them. Inspiration is derived from brain models, with *neural
networks providing the classic example of connectionism.
The connectionist approach to *machine learning is based on the idea that all learning
may be achieved through the local or global adjustment of weights that express the
strength of connections between elements in the network.
connectionless-mode network service (CLNS) A network in which each *packet
of information between a source and destination travels independently of any other
packets. In practice, many networks are capable of operating in either a connectionless or
a connection-oriented mode, and the choice of which approach is adopted rests as much
with the designer of the protocols as with the actual hardware of the network. See also
DATAGRAM.
Connection Machine Trademark A parallel processor, now defunct, in which many
processor-memory pairs—small computers—operated simultaneously. Central to the
machine was a communication network that permitted the small computers to exchange
information in a pattern suited to the algorithm being executed. The Connection Machine
marketed in 1994 could yield a sustained performance of 20 Gflops from a 512 processor
configuration.
connection-oriented network service (CONS) A network in which a pair of remote
nodes that wish to communicate are required to establish some form of circuit, often a
*virtual circuit, before they can exchange data. In a *circuit switching network, the
connection will take the form of a physical circuit, while in a *packet switching network it
is a virtual connection. See also DATAGRAM.
connective A logical device used for the construction of more complex statements or
expressions from simpler statements or expressions. Examples in everyday use are ‘and’,
‘or’, and ‘not’. Connectives also occur in *Boolean algebra, *switching theory, *digital
design, *formal logic, and in *programming languages. In all these cases they are used,
often as operators, in the formation of more complex logical or Boolean expressions or
statements from simpler components. These simpler components inevitably have a value
that is either true or false. *Truth tables describe the effect or result of using a connective,
given the truth of the simpler components.
connectivity 1. (of a computer network) A rather loosely defined property referring
either to the extent to which sites wishing to connect to the network are actually equipped
with a network connection, or to the extent to which sites with an existing connection are
still able to contact other network sites in the event of a component failure. 2. (of a *graph
G) The minimum number of vertices (and associated edges) of G whose removal from G
results either in a graph that is no longer *connected or in a trivial graph with a single
vertex: at least k vertices must be removed from a graph with k-connectivity. The higher
the connectivity the more edges there are joining vertices.
The quantity described above is sometimes called the vertex connectivity to
distinguish it from the edge connectivity, which by analogy is the minimum number of
edges whose removal from G results in a graph that is disconnected or trivial.
connectivity matrix Another name for adjacency matrix.
CONS Acronym for connection-oriented network service.
consensus In combinational logic, a condition that is said to exist when two terms of a
*Boolean function have one shared variable, which in one term is true and in the other
complemented. A new term can be generated by the product of the remaining literals in
the two terms, with the consensus variable eliminated, without altering the value of the
function. For example, if
then, in addition,
The term bc is sometimes called an optional product. This operation is invaluable in
the elimination of circuit static hazards. Its systematic application to a Boolean function
provides the basis of a *minimization procedure that is less voluminous than the QuineMcCluskey method, since it does not require the full canonical expansion of the original
function.
consistency A term used in the context of methods for ordinary and partial differential
equations. A formula derived from a *discretization is consistent if the *order is at least
one with respect to the stepsize, h. Consistency is a necessary condition for convergence
of a discretization formula (see ERROR ANALYSIS).
console The privileged workstation from which the operation of a computer system can
be monitored and controlled. In current systems the console is usually a VDU or
keyboard-monitor combination. In early systems the control unit at the console was often
a teleprinter. As systems became larger and more sophisticated the consoles first became
more complex and then much simpler as the development of operating systems advanced.
Some recent medium-sized systems do not have a console. Microcomputers each act as
their own console.
constant 1. A quantity or data item whose value does not change. 2. A value that is
determined by its denotation, i.e. a *literal.
constant bit rate (CBR) A stream of data in which the data arrives at a fixed number of
bits per second. The term may also imply that there is a guaranteed upper bound on the
delay experienced by the data as it is carried. As an example, a speech *codec generates
an 8-bit byte at intervals of 125 microseconds; each byte contains the result of sampling an
audio signal, and digitizing it as an 8-bit quantity, and the result is a signal with a
bandwidth requirement of 64 Kbps. If during transmission any of the samples are lost or
delayed, then the reconstructed speech signal may well be unintelligible as the human ear
is very intolerant of gaps in speech. It is therefore essential to guarantee that the full 64
Kbps can always be carried, and that the transmission delay will be effectively constant.
See also BOUNDED DELAY, NETWORK DELAY, VARIABLE BIT RATE.
constant delay (in a network) See CONSTANT BIT RATE, NETWORK DELAY.
constraint A condition that data held in a relational database must satisfy in order to be
valid. Constraints are enforced by the database management system, and any attempted
changes to data that would violate a constraint are rejected. Types of constraint include:
*primary keys; *referential integrity; forbidding *null values in a field; specifying that a
field’s values must be different in every row of a table; and arbitrary logical expressions,
constructed from the values of one or more fields in the same row, that must evaluate to
true.
constraint-based solid modelling Modelling of solid objects that allows
specification of constraints that parts of the model have to satisfy.
constraint logic programming (CLP) A variation of logic programming (see LOGIC
PROGRAMMING LANGUAGES)
where *constraint satisfaction is the mechanism used to
perform computations rather than *unification. Several programming languages have been
developed for CLP.
constraint network (constraint propagation) See CONSTRAINT SATISFACTION.
constraint satisfaction The process of resolving conflicts by removing or reconciling
inconsistent values in a constraint network. A constraint network is a system of
constraint equations and inequalities that represent the structure of a given problem. A
crossword is an example of a constraint problem; the row/column sizes limit the choice of
possible words and the interactions of rows and columns further constrain the solution.
The first stage in constraint satisfaction is constraint propagation, where any
dependencies between constraints are exploited to introduce more constraint and thus
reduce the solution space. Then follows a search where variables are assigned values and
matched against current constraints; this involves further constraint propagation and
*backtracking from failures. A solution is produced when a single set of values fits the
final reduced set of constraints. An overconstrained problem will have no solution and an
under-constrained problem may produce many alternative solutions.
construct See LANGUAGE CONSTRUCT.
constructive function A *function defined (explicitly rather than implicitly) in such a
way that there is a rule that describes how the effect of the function can be realized; such
functions are utilized by mathematicians who adopt an intuitionist or constructionist view
of their subject. For example, it is inadequate to say that cube roots can be derived by
solving a cubic equation of the form x3 = a. It is necessary to give guidance on how cube
roots can be evaluated.
constructive solid geometry (CSG) An approach to modelling solid objects using a
set of primitive solids (such as cubes, cylinders, and spheres). Instances of these are
scaled, rotated, and translated, and then combined with the set operations union,
difference, and intersection to define a more complex object.
constructive specification A particular approach to writing *abstract specifications
for programs, modules, or data types. Systems are modelled using representations for the
data items involved, in terms of basic set-theory constructs such as *sets, *functions,
*relations, and *sequences. The operations involved are then defined at this level of
abstraction, typically by giving preconditions and postconditions for each operation. An
implementation of the specification would involve replacing the set-theory constructs by
lower-level ones, while preserving the meaning expressed by the specification. Although
using abstract set theory, a constructive specification does give explicit constructions for
the data and explicit definitions for the operations; it therefore contrasts with *axiomatic
specification, in which the representations are not prescribed. Widely used constructive
specification formalisms are *VDM and the specification language *Z.
consumable resource Any resource, such as paper or ink cartridges used in printers,
that is by its nature usable on only a limited number of occasions. Compare REUSABLE
RESOURCE.
contact bounce See DEBOUNCING.
contact forces The simulation of dynamic (sliding) and static (dry) friction in rigidbody animations.
content-addressable memory (CAM) Another name for associative memory. See
also ASSOCIATIVE ADDRESSING.
content-addressable parallel processor Another name for associative processor.
contention A situation in which several independent activities simultaneously seek
access to the same resource, as when several independent transmitters wish to send data
across a single communication channel. Where contention may arise, it is necessary to
provide some form of arbitration to determine which activity gains access to the resource.
context awareness The ability of a computer system to sense details of the external
world and choose its course of action depending on its findings. Context awareness is
important to *ubiquitous computing.
context-free grammar A *grammar in which the left-hand side of each production is a
single nonterminal, i.e. productions have the form
(read as ‘rewrite A as α’), where α is a string of terminals and/or nonterminals. These
productions apply irrespective of the context of A. For brevity one writes
to indicate the separate productions
As an example, the following generates a simple class of arithmetic expressions typified
by (a + b) × c:
The *BNF notation used in defining the syntax of programming languages is simply a
context-free grammar.
Context-free grammars are a class of *phrase-structure grammar (PSG). GPSG
represents the principal attempt at constructing context-free grammars capable of
characterizing the grammars of natural language.
Compare CONTEXT-SENSITIVE GRAMMAR.
context-free language (algebraic language) Any formal language generated by a
*context-free grammar or, equivalently from another viewpoint, any formal language
recognized by a *pushdown automaton. It can also be characterized as the frontier of a
regular *tree language, or as generated by term algebras (see INITIAL ALGEBRA).
context-sensitive grammar A *grammar in which each production has the form
where A is a nonterminal and α, β, and γ are arbitrary *words with γ nonempty. If γ was
allowed to be empty then any type 0 (equivalently, recursively enumerable) language of
the *Chomsky hierarchy could be generated. To derive the empty word, a production
must also be included, with S not occurring in the right-hand side of any production. The
term context-sensitive refers to the fact that A can be rewritten to γ only in the ‘context’
α…β.
In a length-increasing grammar each production has a right-hand side at least as
long as its left-hand side (apart possibly from S → Λ). Clearly any context-sensitive
grammar is length-increasing, but it can also be shown that any length-increasing grammar
is equivalent to a context-sensitive one. Context-sensitive grammars are a class of
*phrase-structure grammar.
Compare CONTEXT-FREE GRAMMAR.
context-sensitive language Any formal language that is generated by a *contextsensitive grammar or, equivalently from another point of view, that is recognized by a
*linear-bounded automaton.
context switch A general term covering the situation in which a *process initiates a new
type of activity. Any process functions in some form of environment, which defines the
currently valid *variables that the process can manipulate, and their actual values,
including the ‘undefined’ value in the case where a variable has been created but has as yet
had no value assigned to it. These remarks apply equally if the process being considered is
one that is being dealt with by a person rather than a machine. A context switch occurs
when the environment for the currently active process is replaced by a new environment.
In a multiprocessing system the term refers to changing the process that is currently active
on any given processor.
contingency table In statistical analysis, a *frequency distribution of sample data
classified by two or more factors, each with two or more classes. A simple example is a
medical clinical trial of two treatments in which the number of patients assigned to each
treatment is classified according to whether improvement was observed or not. If there is
no significant difference between the proportions of patients improving, there is said to be
no interaction between the two classifications of the table. The statistical analysis of
contingency tables depends on certain assumptions (random assignment to classes,
absence of other relevant factors) that make the interpretation controversial, and care must
be taken in applying the tests correctly. See also CHI-SQUARED DISTRIBUTION.
continuation 1. A concept in programming language semantics, allowing the meaning
of program constructs to be defined in terms of the effect they have on the computation
remaining to be done, rather than on the current state of the computation. This is
particularly useful in giving the semantics of constructs that effect the flow of control,
such as GOTOs and loop exits. 2. An approach to solving a mathematical problem that
involves solving a sequence of problems with different parameters; the parameters are
selected so that ultimately the original problem is solved. An underlying assumption is
that the solution depends continuously on the parameter. This approach is used for
example on difficult problems in *nonlinear equations and *differential equations. For
example, to solve the nonlinear equations
let x(0) be a first approximation to the solution. Let α be a parameter 0≤α≤1, then define
the equations
for α = 0, x(0) is a solution; for α = 1,
which are the original equations. Hence by solving the sequence of problems with α given
by
the original problem is solved. As the calculation proceeds each solution can be used as a
starting approximation in an *iterative method for solving the next problem.
continuous function A *function from one *partially ordered set to another having the
property, roughly speaking, that least *upper bounds are preserved. A function
is said to be continuous if, for every *directed subset X of S, f maps the least upper bound
of X to the least upper bound of the *image of X under f. Continuous functions are
significant in *denotational semantics since they correspond to the requirement that a
computational process produces arbitrarily close approximations to the final output, given
arbitrarily close approximations to the total input.
A continuous function f(x) has no breaks or instantaneous changes in value. In the
hierarchy of mathematical functions the smoothest are those, such as sin x, cos x, that can
be differentiated any number of times, always producing a continuous function.
continuous inkjet printer See INKJET PRINTER.
continuous signal, system See DISCRETE AND CONTINUOUS SYSTEMS.
continuous simulation See SIMULATION.
continuous stationery See STATIONERY.
continuous-tone image An image, such as a photograph, where the grey levels in the
image are continuous and not discrete.
contradiction See TAUTOLOGY.
contrapositive (of a conditional, P → Q) The statement
where ¬ denotes negation. The contrapositive of a conditional is therefore equivalent to
the original conditional. See also CONVERSE, INVERSE.
control bus A *bus that is dedicated to the passing of control signals.
control character A character that when typed at a keyboard or sent to a peripheral
device is treated as a signal to control operating functions. See also CHARACTER SET,
ASCII.
control circuitry Electric circuits within a computer or peripheral that regulate its
operation.
Control Data Corporation See CDC.
control design The design of a *control unit. Control units may be designed using
*random logic or *microprogramming. Microprogramming was well suited to the control
of the complex sequences of register transfers required by CISC instruction sets. RISC
processors with their emphasis on the rapid execution of simple instruction sets usually
employ random logic control to optimize performance.
control flow The sequence of execution of statements in a program.
control-flow graph A directed *graph representing the sequence of execution in a
program unit, in which nodes represent branching points or subprogram calls in a
program, and arcs represent linear sequences of code. From the control-flow graph an
analysis can show
the structure of the program,
starts and ends of program segments,
unreachable code and dynamic halts,
branches from within loops,
entry and exit points for loops,
paths through the program.
See also STATIC ANALYSIS.
control key See CONTROL CHARACTER, KEYBOARD.
controlled sharing Making used resources available to more than one using resource
through an *access control mechanism.
controller A subsystem that governs the functions of attached devices but generally does
not change the meaning of the data that may pass through it. The attached devices are
usually peripherals or communication channels. One of the functions of the controller may
involve processing the data stream in order to format it for transmission or recording.
control line A conductor in a multiwire interface that conveys a control signal.
control memory Another name for microprogram store.
control points Points used in the specification of curves to define the general required
shape.
control record A record that contains control totals derived by summing values from
other records in a file. The totals may or may not have some sensible meaning. Their
purpose is to check that none of the preceding records has been lost or altered in some
way. See also HASH TOTAL.
control sequence A string of characters used to control the operation of a peripheral
device. The composition of these strings is defined in ISO 6429. This standard does allow
latitude for manufacturers to define proprietary sequences for specific purposes, and many
such sequences are in use; 7-bit and 8-bit versions of the *control characters are defined.
An earlier standard widely used in the US is ANSI X3.64. See also ESCAPE SEQUENCE.
control stack A stack mechanism that contains an instruction sequence. It is part of the
control unit in a computer with stack architecture. See STACK PROCESSING.
control structure A syntactic form in a language to express flow of control. Common
control structures are
if…then…else, while…do,
repeat…until, and case.
control total See CONTROL RECORD.
control unit (CU) The portion of a *central processor that contains the necessary
*registers, *counters, and other elements to provide the functionality required to control
the movement of information between the memory, the *ALU, and other portions of the
machine.
In the simplest form of the classical von Neumann architecture, the control unit contains
a *program counter, an *address register, and a register that contains and decodes the
*operation code. The latter two registers are sometimes jointly called the instruction
register. This control unit then operates in a two-step fetch-execute cycle. In the fetch
step the instruction is obtained (fetched) from memory and the decoder determines the
nature of the instruction. If it is a *memory reference instruction the execute step carries
out the necessary operation(s) and memory reference(s). In some cases, e.g. a
*nonmemory reference instruction, there may be no execute step. When the instruction
calls for *indirect addressing, an additional step, usually called ‘defer’, is required to
obtain the indirect address from the memory. The last action during the execute step is to
increment the program counter or, in some cases—e.g. a *conditional branch instruction—
to set the program counter to a value determined by the instruction register, depending on
the status of the *accumulator or *qualifier register (*condition-code register).
In more complex machines and non von Neumann architectures, the control unit may
contain additional registers such as *index registers, arithmetic units to provide address
modifications, registers, *stacks, or *pipelines to contain forthcoming instructions, and
other functional units. Control units in supercomputers have become powerful and
complex; they may contain specialized hardware that allows for parallel processing of
instructions which are issued sequentially.
control word 1. A word whose contents determine actions elsewhere; it may be used to
control the use of a resource. 2. A word in a microprogram. See MICROINSTRUCTION,
MICROPROGRAMMING.
convergence (of an algorithm) See ERROR ANALYSIS.
conversational mode See INTERACTIVE.
converse 1. (of a conditional, P → Q) The statement
where ¬ denotes negation. See also CONTRAPOSITIVE, INVERSE. 2. (of a binary relation)
Another name for inverse.
convex hull The smallest convex set that contains a given set. A set is convex if for any
two points in the set, the points on the straight line segment joining the two points are also
contained in the set.
convolution Mathematically, the operation of combining two functions, w and f, to
produce a third function, g, such that
(or the corresponding continuous operation). This is envisaged as a transformation of an
input function f to an output function g, by viewing f through a fixed window w.
In coding theory, f is considered as a *signal and w as the response of a *linear channel;
g is then the effect upon that signal (regarded as a sequence of successive elements)
brought about by the time response of the linear channel. The channel time response
is the sequence of successive elements output by the channel in response to a signal that
has one element of unit amplitude and all other elements zero. The input signal sequence
and the channel time response are said to be convolved.
The inverse process is deconvolution: the convolved output sequence can be
deconvolved with the channel time response sequence to restore the original input
signal sequence.
It is important, both mathematically and practically, that the convolution of discretetime signals corresponds to the conventional multiplication of *polynomials.
See also FEEDBACK REGISTER, FEED-FORWARD REGISTER.
convolutional code A *linear error-correcting code, characterized by a k × n generator
matrix,
whose elements gij[x] are *polynomials whose highest degree, m, is called the memory
of the code. The quantity
is called the constraint length of the code.
The convolutional encoder operates as follows. The input stream, regarded as the
coefficients of a polynomial of arbitrary degree, is cyclically distributed (i.e.
demultiplexed) among the inputs of k *shift registers, all of length c: the contents of the ith
shift register is serially multiplied by each of the n polynomials gij[x] (using n serial
multipliers in parallel). Then n output streams are formed by summing the outputs of the
jth multiplier on each register. These streams are cyclically multiplexed to form the output
of the encoder. All this can be carried out to base q, for q prime; such codes are usually
implemented in binary form (q = 2). In practice, the parameter k is normally equal to 1.
The main decoding algorithms for convolutional codes are Viterbi’s algorithm and
various *sequential algorithms, of which the most important are Fano’s algorithm and
the stack algorithm. Viterbi’s is a maximum-likelihood algorithm.
Linear *block codes can be regarded as a special case of convolutional codes with m =
0 and c = 1. Convolutional codes are often specified by the parameters (n, k) or (n, k, c),
although the simple phrase (n, k) code usually specifies a block code rather than a
convolutional code.
Convolutional codes are of increasing importance as they become better understood
theoretically, as better decoding algorithms are found, and as it becomes increasingly
economical to provide programmable decoders, the decoding algorithms being best
programmed in software owing to their complexity.
cookie A small file placed on a user’s hard disk by a server, containing details about the
user’s use of the website. It is returned to the server whenever the browser accesses the
site. In general, cookies help the user and in some cases they are essential. For example, if
the user is buying a number of items on-line, then a cookie is necessary for the server to
keep track of items from different pages placed in a ‘shopping cart’. However, their use
has raised privacy concerns and modern browsers allow users to block cookies either in
total or from selected websites.
Cook–Torrance model An extension of the basic *reflectance model to make objects
look less like plastic. (Plastic has an uncoloured substrate, thus reflected light is not
significantly altered in colour.) A variable is added to alter the intensity of the reflected
light dependent on the solid angle of the incident beam. The specular component shifts the
wavelength of reflected light depending on the angle of incidence.
Coons patch A *patch that is fitted between four arbitrary boundary curves. The patch
is constructed purely from information given on its boundary and from auxiliary functions,
called blending functions, whose effect is to blend together four separate boundary
curves to give a single well-defined surface.
copy To produce a replica of some stored information in a different part of the store or on
a different storage device. For example, a piece of text or graphical information can be
copied by marking it in some way, reading it into a temporary storage area, and writing it
into a new location (compare CUT).
copyright The right to prevent copying. It is a negative right that can be exercised by a
copyright holder both by means of civil proceedings and also by seeking a criminal
prosecution. Copyright protects the form in which an idea is expressed but not the idea
itself. It is the main legal protection for computer-based inventions. Under the WTO
agreement all nations agreed to protect computer programs as literary works. Copyright
law is now also used to limit the use that can be made of all digitally recorded information
(programs, data, databases, etc.) to stop rental of works or use of works by multiple users
without the payment of higher royalties.
There is currently a very active movement to harmonize all the national copyright laws
so that a Global Information Infrastructure can be created. This process involves a union
of the continental European authors’ rights systems based upon The Rights of Man with
the Anglo-Saxon copyright system found in the USA, UK, Ireland, and the
Commonwealth. The net result of this union is increasing power to authors of copyright
works who are requiring payment for rental use of their works from publishers who
publish on a pay-per-view basis on the Internet.
No formalities are required to obtain copyright protection for any literary work
(including computer programs) although it remains good practice to place a copyright
notice in all original works.
copy synthesis A technique of analysing an acoustic speech signal and extracting
information (for example *formant frequencies and *bandwidths), which can then be used
to resynthesize a version close to the original speech. See also SPEECH SYNTHESIS.
CORAL A programming language loosely based on Algol 60 and developed in the UK
for military applications. Although described as a real-time language, CORAL has no
built-in facilities for parallel processing, synchronization, interrupt handling, etc. The most
widely used version of the language is CORAL 66. CORAL was superseded by *Ada in
the 1980s.
CORBA (common object request broker architecture) A *protocol for
communication between *objects in a distributed system.
http://www.omg.org/gettingstarted/corbafaq.htm
• The OMG CORBA FAQ
core See MULTI-CORE PROCESSOR.
core store An obsolete type of nonvolatile memory in which binary information is stored
in an array of toroidal magnetic cores. The cores had two stable magnetic states and were
switched from one to the other by imposing a magnetic flux. The principle of the core
store was discovered in 1949 by J. W. Forrester of MIT. Widely used as main storage for
processors from the mid-1950s to the late 1970s, core store was superseded by
*semiconductor memory.
coroutine A program component that allows structuring of a program in an unusual way.
A coroutine resembles a *subroutine, with one important difference. A subroutine has a
subordinate position relative to the main routine: it is called and then returns.
Coroutines, however, have a symmetric relation: each can call the other. Thus a coroutine
is resumed at a point immediately following its call of another coroutine; it never
returns, but terminates its operation by calling (resuming) another coroutine.
Coroutines are not commonly found in high-level languages. They are particularly
useful as a means of modelling concurrent activity in a sequential machine.
corrective maintenance Another name for remedial maintenance. See also SOFTWARE
MAINTENANCE.
correctness proof See PROGRAM CORRECTNESS PROOF.
correlation A measure of a tendency for two or more *random variables to be
associated. The formula for r, the sample correlation coefficient between two
variables x and y, is
which varies between −1 and +1. Negative values or r indicate that y tends to decrease as x
increases, while positive values indicate that x and y increase or decrease together. If the
value of r is zero then x and y are uncorrelated.
Rank correlation measures the correlation between the ranks (or order numbers) of the
variables, i.e. between the positions when the numbers are arranged in increasing order of
magnitude.
Correlation does not imply causation. Variables may be correlated accidentally, or
because of joint association with other unmeasured agencies such as a general upward
trend with time. If the relationship is not linear the correlation coefficient may be
misleading.
correlation coefficient See CORRELATION.
correspondence analysis A method of *multivariate analysis popular in France and
developed by J. Benzecri. The purpose of the technique is to rearrange the rows and
columns of a *data matrix so that units and variables with similar properties appear
together giving rectangular blocks of similar values. The results may also be displayed
graphically.
corrupt No longer in a proper state (or, as a verb, to cause to be no longer in a proper
state). The term is most commonly used in connection with data that is being stored or
transmitted: corrupt data when recovered or received has been altered from the version
that was originally stored or transmitted. Since corrupt data may either be of little use, or
may be positively harmful if used, most systems that store or transmit data include
mechanisms to detect the presence of corruption, and to allow the original data to be
recovered.
coset of a *group G that possesses a *subgroup H. A coset of G modulo H determined by
the element x of G is a subset:
where ° is the dyadic operation defined on G. A subset of the former kind is called a left
coset of G modulo H or a left coset of G in H; the latter is a right coset. In special cases
for any x in G. Then H is called a normal subgroup of G. Any subgroup of an abelian
*group is a normal subgroup.
The cosets of G in H form a partition of the group G, each coset showing the same
number of elements as H itself. These can be viewed as the *equivalence classes of a left
coset relation defined on the elements g1 and g2 of G as follows:
Similarly a right coset relation can be defined. When H is a normal subgroup the coset
relation becomes a *congruence relation.
Cosets have important applications in computer science, e.g. in the development of
efficient codes needed in the transmission of information and in the design of fast adders.
coset relation See COSET.
cost estimation model A mathematical model used to predict the overall cost of
creating software or hardware. Usually for hardware the model comprises a database of
past achieved effort/duration/costs for development and manufacture (sometimes
maintenance), and support for the estimator in matching characteristics of the historic data
with those of the proposed new systems (or similar parts of the systems). The estimate of
cost is then formed from the historic data, from constants and parameters derived from the
database, and is modified using engineering judgment and a knowledge of the risk factors
and local conditions.
For software the expected size of the software (lines of code) is usually used as the
main input to a cost estimation model, with other inputs characterizing the main risk
factors in the development. An underlying (software estimation model) database of past
projects is built up from experience in a particular company or using one software
paradigm. Typical software cost estimation models are *COCOMO (Barry Boehm) and
GECOMO (GEC Software, UK), PRICE S (RCA), PROMPT Estimator (LBMS, UK), and
SLIM (Putnam, Norden, Rayleigh model, software from QSM Inc., US). The models
make no apportionment of costs to different life-cycle phases, and generally give cost to
deliver. Some models (e.g. COCOMO) can be used to estimate maintenance costs.
See also FUNCTION POINT ANALYSIS.
cost function A scalar measure of a complex situation, used for optimization. See also
WEIGHTED GRAPH.
COTS (commercial off-the-shelf) Describing software and associated services that
are commercially available as opposed to *custom software. Popular examples are
Microsoft Office and antivirus software. COTS products are sometimes used in the
development of custom software in order to reduce cost and time, or for their quality.
However, their use increases software component integration, creates dependency on the
manufacturer (especially for updates), and may be subject to copyright issues.
countable set A *set that, in some sense, is no larger than the set of natural numbers.
The elements of the set can be put into order and counted. Such a set is either *finite or
denumerable; the elements of a denumerable set can be placed in a one-to-one
correspondence with the set of natural numbers. The set of rational numbers can be shown
to be countable but the set of real numbers is not countable.
counter A clocked digital electronic device whose output takes up one and one only of a
number, n, of distinct states upon the application of each clock pulse (see CLOCK). The
output thus reflects the total number of clock pulses received by the counter up to its
maximum capacity, n. All n states are displayed sequentially for n active transitions of the
clock, the sequence then repeating. Since n clock pulses are required to drive the output
between any two identical states, counters provide a ‘divide-by-n action’ and are thus also
known as dividers.
A counter whose output is capable of displaying n discrete states before producing an
overflow condition can also be called a mod-n counter (or modulo-n counter),
since it may be considered to be counting input pulses to a base of n. The value of n is
often an integer power of 2. Counters are generally formed by a cascaded series of clocked
*flip-flops (see CASCADABLE COUNTER), each of which provides a divide-by-two action.
For a counter consisting of m flip-flops, the maximum capacity of the counter will be 2m
since 2m discrete output states are possible, i.e. n is equal to 2m. These are known as
binary counters.
Count lengths of other than integer multiples of two are possible. For example, a
decade counter (or mod-10 counter) exhibits 10 separate and distinct states. To achieve
this digitally requires a counter having at least four individual flip-flop elements, giving 24
or 16 possible output states; six of these states are prevented from occurring by a suitable
arrangement of logic gates around the individual flip-flops. In multimode counters the
number, n, of distinct states can be selected by the user.
See also RIPPLE COUNTER, SYNCHRONOUS COUNTER, SHIFT COUNTER, JOHNSON
COUNTER.
counting problem 1. The task of finding the number of elements of some set with a
particular property. Such counting problems are usually encountered in *combinatorics. 2.
The task of counting the number of solutions to a problem. For example, to find the
number of *spanning trees of a given graph, there is a formula in terms of the determinant
of a certain matrix that is computable in *polynomial time. However there are other
problems, like counting the number of *Hamiltonian cycles in a given graph, that are
expected to be difficult, because determining whether or not a graph has a Hamiltonian
cycle is NP-complete (see P=NP QUESTION). Although it is possible to determine whether
or not a graph has a perfect matching (a set of edges that do not meet each other but
meet every vertex) in polynomial time, computing the number of such matchings can be
done in polynomial time only if P=NP.
The matching problem referred to is, in the bipartite case, the same as computing the
permanent of a 0–1 matrix, for which no good methods are known.
coupled A rather vague term, used to indicate that systems which might operate
separately are actually being used in some form of cooperative mode. The term is applied
to hardware units, as in cross coupled, where a pair of inverting gates are used to form a
*latch circuit: the output of each gate serves as an input to the other. It is also applied to
complete processors, as in loosely coupled and tightly coupled processors: there are
substantial discrepancies in usage between different users of these terms, especially with
respect to the precise overtone associated with the qualifying adverb. See also COUPLING,
CONCURRENCY.
coupling A measure of the strength of interconnections between modules of a program.
A high coupling would indicate strong dependencies between one module and another.
Loose coupling allows greater flexibility in the design and better traceability, isolation,
and correction of faults. The strength of coupling depends on the number of references of
one module by another, the amount of data passed (or shared) between modules, the
complexity of the interface between modules, and the amount of control exercised by one
module over another. Completely decoupled modules have no common data and no
control flow interaction. See also COHESION, COUPLED.
covariance A measure of the joint variation of two random variables, analogous to
variance (see MEASURES OF VARIATION). If the variables are x and y then the covariance of
x and y is
The analysis of covariance is an extension of the *analysis of variance in which the
variables to be tested are adjusted to take account of assumed linear relationships with
other variables. See also CORRELATION.
covering 1. (of a *set S) A finite set of *subsets of S whose *union is just S itself. The
subsets, A1, A2,…, Am, are said to cover S. If the elements Ai for i = 1, 2,…, m are mutually
*disjoint, then the covering
is called a partition of S. 2. A relationship between two elements of a partially ordered
set S. If x and y are elements of S then y covers x if and only if x<y, and whenever x≤z≤y
for some element z in S, then either x = z or z = y.
covert channel A communication path, usually indirect, by which information can be
transmitted in violation of a *security policy. For example, a covert channel may exploit
system flags to allow one program to send confidential information to another.
CPL (combined programming language) A language developed in the early
1960s at the Universities of Cambridge and London in the UK. Although it never came
into general use, CPL is noteworthy for the fact that it anticipated many of the concepts
that are now regarded as characterizing modern ‘advanced’ languages, notably the control
structures of *structured programming and the reference concept that formed a major
feature of Algol 68. CPL was the direct precursor of *BCPL and thus an ancestor of *C.
CPM Abbrev. for critical path method.
CP/M Trademark (control program/monitor or control program for microcomputers) One
of the earliest operating systems for 8-bit microprocessors from Digital Research, Inc. It is
no longer used. See also MS-DOS.
cps (characters per second) A rate of processing, transferring, or printing
information.
CPU (central processing unit) See CENTRAL PROCESSOR.
CPU cycle time Usually, the time required for the execution of one simple processor
operation such as an addition; this time is normally the reciprocal of the *clock rate. The
term has been used formerly for the time required for the fetching and execution of one
simple (e.g. add or subtract) machine instruction; this use however is inappropriate now
when most processors exploit *pipelining. The CPU cycle time is one of many figures-of-
merit for a computer system. See also COMPUTER POWER, CYCLE.
CPU time (processor time) The time for which a *process has been receiving service
from the processor. See also SYSTEM ACCOUNTING.
CR Abbrev. for carriage return.
cracking 1. Gaining, or attempting to gain, unauthorized access to computers with
malicious intent. Distinguished from *hacking, which may be benevolent or neutral. 2.
Obtaining plaintext passwords or encryption keys, usually from information protected by
*irreversible encryption.
Craig’s interpolation theorem A theorem that provides an answer to the question of
whether an interpolant I exists such that given a formula A ⇒ B then both A ⇒ I and I
⇒ B are valid.
crash A system failure that requires at least operator intervention and often some
maintenance before system running can resume. The word is also used as a verb. See also
RECOVERY.
crawler See SPIDER.
Cray Inc. A US manufacturer of supercomputers, primarily for the scientific and
engineering fields. Cray Research was founded by Seymour Cray in 1972 and launched its
first supercomputer, the Cray-1, in 1976. Cray Research and Silicon Graphics Inc. merged
in 1996. The Cray Research Division of Silicon Graphics Inc. merged with Tera in 2000
and the resulting company changed its name to Cray Inc. It remains one of the leading
suppliers of supercomputers.
CRC Abbrev. for cyclic redundancy check, cyclic redundancy code.
crisis time The time during which an *interrupt must be serviced, otherwise a fault, such
as the loss of requested data, will occur.
criticality analysis See FAILURE MODES, EFFECTS, AND CRITICALITY ANALYSIS.
critical path method (CPM) A project planning, management, and scheduling method
that divides a project into activities, each with a statement of time and resources required,
and their precedence dependencies. These activities are then connected in a graph that
expresses the dependencies and the times. The critical path is defined as the path
through the graph that requires the maximum time. Variations of this method allow for
statistically distributed time and resources, time/resource tradeoffs, etc. See also PERT.
critical region A section of code that may only be executed by one *process at any one
time. See also CRITICAL RESOURCE, CRITICAL SECTION, MUTUAL EXCLUSION.
critical resource A resource that can only be in use by at most one *process at any one
time. A common example is a section of code that deals with the allocation or release of a
shared resource, where it is imperative that no more than one process at a time is allowed
to alter the data that defines which processes have been allocated parts of the resource.
Where several asynchronous processes are required to coordinate their access to a
critical resource, they do so by controlled access to a *semaphore. A process wishing to
access the resource issues a P operation that inspects the value of the semaphore; the value
indicates whether or not any other process has access to the critical resource. If some other
process is using the resource then the process issuing the P operation will be suspended. A
process issues a V operation when it has finished using the critical resource. The V
operation can never cause suspension of the issuing process but by operating on the value
of the semaphore may allow some other cooperating process to commence operation.
critical section Part of a *process that must be executed indivisibly. Originally it was
thought that the indivisibility had to be absolute. Now it is considered that it is only
necessary for the critical section to be uninterrupted by other critical sections of a
particular set of processes, i.e. those among which there is *mutual exclusion.
CRM system Abbrev. for customer relationship management system.
cropping 1. The process of cutting off the edges of a picture, so as to select a part of the
picture. 2. The process of adding marks (crop marks) to a page to indicate where it is to be
trimmed.
cross assembler An *assembler that runs on one machine, producing an object program
to run on a different machine. Rarely encountered nowadays, the technique was used in
the early days of microprocessors to generate software for microcomputers that were
themselves too small to support an assembler.
crossbar switch See MESH INTERCONNECTION.
cross compiler A *compiler that runs on one machine, producing an object program to
run on a different machine. Rarely encountered nowadays, the technique was used in the
early days of microprocessors to generate software for microcomputers that were
themselves too small to support a compiler.
cross-coupling An interconnection between two *logic gates, permitting them to form a
*flip-flop.
cross-site scripting (XSS) A special case of *code injection in which an attacker
introduces malicious code into a website by altering the information sent by a trusted
source (often another website). The website receiving the information will execute the
malicious code, thus granting access to otherwise protected data. Although there are
similarities, XSS should not be confused with *SQL injection; the latter is used to attack
databases only, and there is no notion of ‘trust’, as it makes use of user data, which is
generally considered unsafe.
crosstalk A spurious signal that has been coupled from one communication channel to
an adjacent channel. This interferes with (causes errors on) the second channel. Crosstalk
is usually associated with physical communication channels. It is usually expressed in
decibels and is frequency dependent. Crosstalk is caused by capacitive or inductive
coupling or by common impedances.
cross-validation A statistical technique in which a model is tested by dividing data sets
randomly into two subsets. The model is fitted to the first set and the predictions from the
model are compared with the second set. The process may be repeated many times. The
method is related to statistical *bootstrap estimation.
crowbar circuit See OVER-VOLTAGE.
CRT Abbrev. for cathode-ray tube.
cryogenic memory A type of memory operating at a very low temperature by means of
*superconductivity and electron tunneling.
cryptanalysis Processing of an encrypted message to derive the original message by an
‘attacker’ lacking prior knowledge of the secret key. Compare DECRYPTION.
cryptogram A complete message containing *ciphertext.
cryptography The coding of messages so as to render them unintelligible to other than
authorized recipients. Many techniques are known for the conversion of the original
message, known as plaintext, into its encrypted form, known as ciphertext, cipher,
or code.
In a simple cipher system, for example, the sender and recipient hold identical copies of
a secret key, and also an algorithm with which they each generate identical
*pseudorandom bit sequences. During encryption the sender modifies the plaintext string
by combining it with the pseudorandom sequence to produce the ciphertext; the ciphertext
is then transmitted. The recipient performs the reverse process with an identical
pseudorandom sequence and the received ciphertext to recover the plaintext.
An alternative technique is to use a *block cipher, in which the ciphertext
corresponding to each block of, typically, 64 bits of plaintext is generated algorithmically
using a key. In a symmetric block cipher the key used for decryption is closely related to
that used for encryption, and both have to be kept secret. With asymmetric or *public
key encryption, the decryption key cannot be deduced from knowledge of the encryption
key, which can thus be publicized to all intending message senders. See DATA
ENCRYPTION STANDARD, RSA ENCRYPTION.
cryptology The study of *cryptography.
c/s Abbrev. for client/server.
CSCW Abbrev. for computer-supported cooperative working.
CSG Abbrev. for constructive solid geometry.
C-sharp See C#.
CSIRT (Computer Security Incident Response Team) See CERT.
CSMA/CD (Carrier Sense Multi-Access/Collision Detection) The formal
name for *Ethernet.
CSound A system for the programming of complex sounds and music. It has a number
of different sound sources that may be combined together with a number of special effects.
Typically a musician would create an orchestra file and a score file, the first defining the
instruments in terms of the available sound sources and the second defining the
performance of those instruments over time.
CSP (communicating sequential processes) A mathematically formal approach to
the description of software that addresses the specification of a set of concurrent processes
and the way in which they interact; it was developed by Tony Hoare. The means of
interaction is limited to a ‘synchronous’ protocol in which any pair of communicating
processes must be simultaneously involved for communication to be achieved.
CSS 1. (cascading style sheets) A method of specifying the appearance of HTML or
XML text in a browser. The style sheet consists of a set of declarations of the type:
H1{colour: red;
font-family: Times;
font-style: italic;
font-size: 10pt;}
This example gives various properties and values of the <H1> tag. The style sheet is either
embedded in the document in the <HEAD> section, surrounded by the tags <STYLE>..
</STYLE>, or (preferably) in a different file that is called from within the document. The
style sheet is ‘cascading’ in the sense that multiple declarations for each element deriving
from multiple style sheets can be used at the same time with precise rules defining which
declarations are given priority.
2. Abbrev. for centralized structure store.
http://www.w3.org/TR/CSS21/
• The CSS (version 2.1) specification
CSV (comma-separated values or character-separated values) A *file format
in which tabular data is encoded as plain text, the fields of the table being separated by
commas (or any predefined separator character). Rows in the table correspond to lines in
the file, and embedded tables are delimited by double quotes (“ ”). CSV was useful for
passing data between distinct applications treating tabular information, such as databases,
but has become essentially a legacy format since the advent of *XML.
CTron See TRON.
CU Abbrev. for control unit.
CUA See SAA.
cube See ONLINE ANALYTICAL PROCESSING.
cubic spline A *spline curve of degree 3.
cull To remove objects from a complex *computer graphics computation on the basis of a
quicker test. For example, if the front faces of a cube are hidden by another object, all the
geometry of the cube can be omitted from the calculation. See also BACK-FACE
DETECTION.
cumulative distribution function See PROBABILITY DISTRIBUTIONS.
current address register Another name for program counter.
current instruction register (CIR) A register, usually in the control unit, that
contains the information specifying the instruction that is being (or is about to be)
performed. See also INSTRUCTION FORMAT.
current limit The maximum current that a power supply can deliver, usually set to
prevent damage to the *PSU in the event of a short circuit or other overload.
curried function A *function of one variable that is related to a function of several
variables. Let f be a function of two variables, x and y. Then by considering x constant we
obtain a function in y; this function depends on the value of x. We write
where g is called a curried version of f. Note that g(x) denotes a function rather than a
plain value. Currying is often used in theoretical work to deal simply with functions of
several variables, e.g. in the lambda calculus.
cursor A symbol on a display screen that indicates the active position, e.g. the position at
which the next character to be entered will be displayed. A thin vertical bar is often used
for this purpose. Other symbols, such as an arrow, pointing finger, or cross, are used in
other contexts. The exact shape can be used to convey status information to the user. The
cursor can be moved to a new position on the screen by means of *arrow keys on the
keyboard or a *pointing device such as a mouse.
curvature In nonlinear *regression analysis, measures of curvature were proposed by D.
Bates and D. Watts as a means of assessing the reliability of certain linear approximations.
Curvature has two components: parameter-effects curvature, which can be reduced
by suitable transformations of the parameters, and intrinsic curvature, which
represents the essential aspect of nonlinearity. Estimation of these measures requires the
second derivatives of the expectation functions in the model.
curve compression Techniques for reducing the space needed to define complex
curves.
customer relationship management system (CRM system) Business software
designed to support the interaction between a business and its customers. It would
normally include a customer ordering facility, customer support and help services, and
information and decision systems for those involved in marketing and sales.
custom software Software developed for a single customer. Compare COTS.
cut 1. To mark a piece of text or graphical information in some way, read it into a
temporary storage location, and delete it from the original document. The information may
then be inserted into a new location. This has the effect of moving the information from
one location to another and is often called a move, or cut and paste by analogy with
scissors and glue techniques. See CLIPBOARD. Compare COPY. 2. A mechanism used in
*Prolog to limit *backtracking. Roughly speaking, the effect of a cut is to fix certain
decisions that have already been made, thus preventing the system from undoing those
decisions in order to perform a further search for solutions to its goals. This is a way of
avoiding costly search known in advance to be fruitless, or of excluding alternative
solutions that are not wanted. However, writing cuts in a program makes its behaviour
dependent on the system’s search sequence. Such dependency prevents the program from
being a pure statement of logical relationships and thus goes against the spirit of *logic
programming.
cut and paste See CUT.
cutout A portion of text or a graphic that has been marked in some way, for instance by
dragging the cursor across it, in preparation for a *cut or *copy operation.
cut-point See FLOYD METHOD.
cut set (of a *connected graph G) A set of edges whose removal produces a disconnected
graph; no set with fewer elements would produce this effect. See also CONNECTIVITY.
cut-sheet feed See STATIONERY.
cut vertex (articulation point) (of a *connected graph G) A vertex of G whose removal
together with the removal of all edges incident to it results in the remaining graph being
disconnected. The term can also be extended and applied to more general graphs. Then the
removal of a cut vertex and all arcs incident to it increases the number of connected
components of the graph. See also CONNECTIVITY.
CVS (Concurrent Versions System) A client-server *source code control system,
introduced in 1986. See also DCVS.
CWIS (campus-wide information service) A specific form of information service
dedicated to the needs of a campus, usually a university campus.
cybercafé (Internet café) A place with several computers that members of the public
can use to access the Internet, usually for a fee on a walk-in basis.
cybercash See E-MONEY.
cybercrime Crime committed on or using a computer or computer network.
cybernetics A discipline concerned with control and communication in animal and
machine. Cybernetics attempts to build a general theory of machines independent of the
material they are made from, e.g. electronic, organic, clockwork. Cybernetics draws an
analogy between brains and electronic circuits. See also NEURAL NETWORK.
cyberspace An informal word first thought to have been used by the novelist William
Gibson to refer to the total data on all the computers on all the networks in the world. The
word has passed into common use as a way of referring to any large collection of networkaccessible computer-based data.
cyber warfare Politically motivated attacks on nationally important information and
information systems carried out via the Internet. Although widely used, the expression is
subject to some controversy; international law is unclear whether a cyberattack, however
devastating, may be considered an act of war or grounds for war between countries.
cycle 1. (cycle time) An interval of time in which one set of events or phenomena is
completed. It is usually the time required for one cycle of the memory system—the time
between successive accesses—of a computer, and is sometimes considered to be a
measure of *computer power. 2. Any set of operations that is repeated regularly and in the
same sequence. The operations may be subject to variations on each repetition. 3.
(circuit) of a *graph. A path that starts and ends at the same vertex. A cycle is said to be
simple provided no edge appears more than once, and is elementary if no vertex (other
than the start) appears more than once. See also EULER CYCLE, HAMILTONIAN CYCLE. 4.
A *permutation of a set that maps some subset
of S in such a way that each ti is mapped into ti+1 (i = 1, 2,…, m−1) and tm is mapped into
t1; the remaining elements of S are left unaltered by the permutation. Two cycles
are disjoint provided the sets
are disjoint. Every permutation of a set can be expressed uniquely as the *composition of
disjoint cycles.
cycle index polynomial A formal polynomial associated with a *group of
*permutations on a set, indicating the decomposition of the permutations into *cycles.
Such polynomials occur for example in *switching theory.
cycle stealing (data break) See DIRECT MEMORY ACCESS.
cycle time See CYCLE.
cyclic access A mode of access to stored information whereby access can only be
achieved at certain times in a cycle of events. A magnetic disk is an example of a device
with cyclic access.
cyclic code A *linear code in which, given that v is a codeword, then so are all the cyclic
shifts of v. For example, if
is a codeword in a cyclic code, then
are also codewords.
cyclic redundancy check (cyclic redundancy code, CRC) The most widely used
*error-detecting code. Extra digits are appended to each *block in order to provide a
means of checking the data for errors that may have occurred, say, during transmission or
due to recording and readback processes: the digits are calculated from the contents of the
block on input, and recalculated by the receiver or during readback.
A CRC is a type of *polynomial code. In principle, each block, regarded as a
polynomial A, is multiplied in the encoder by a generating *polynomial G to form AG.
This is affected during transmission or recording by the addition of an error polynomial E,
to form
In the decoder this is divided by the same generating polynomial G to give a residue,
which is examined to see if it is zero. If it is nonzero, an error is recorded and appropriate
action is taken (see BACKWARD ERROR CORRECTION). In practice, the code is made
*systematic by encoding A as
where r is the degree of G and R is the residue on dividing Ax r by G. In either case, the
only errors that escape detection are those for which E has G as a factor: the system
designer chooses G to make this as unlikely as possible. Usually, in the binary case, G is
the product of (x + 1) and a primitive factor of suitable degree.
A binary code for which
is known as a simple parity check (or simple parity code). When applied across
each character of, say, a magnetic tape record, this is called a horizontal check; when
applied along each track of the record, it is called a vertical check. Simple checks
(horizontal and/or vertical) are much less secure against *burst errors than a nontrivial
CRC with G of degree (typically) 16. The term longitudinal redundancy check
(LRC) usually refers to a nontrivial CRC, but may apply to a simple vertical check.
CYC project An ambitious exercise to encode part of the knowledge in the
Encyclopaedia Britannica into a very large knowledge base (VLKB); ‘CYC’ is derived
from encyclopedia. Inference procedures are incorporated into the system in order to
answer questions and deduce results according to user requirements. In this way, both
explicit and implicit knowledge is being captured. The project is based on the premise that
a very large baseline of knowledge must be acquired before intelligent behaviour can
emerge.
cypher A variant of cipher. See CRYPTOGRAPHY.
Cyrus–Beck clipping algorithm An algorithm for *clipping a line to an arbitrary
convex region. The algorithm uses the normal vector to reliably determine whether a point
is inside, on, or outside a clipping region.
DAC 1. Abbrev. for digital-to-analogue (D/A) converter. 2. Abbrev. for discretionary
access control.
D/A converter (DAC), (digital-to-analogue converter) A device, usually in
integrated-circuit form, that can accept a digital signal in the form of an n-bit parallel data
word and convert it into an equivalent analogue representation. Digital output signals
from, say, a microprocessor may thus be converted into a form that is suitable for driving
analogue devices such as motors, meters, or other analogue actuators. The resolution of
a D/A converter is a measure of the change in analogue output for a change of one least
significant bit in the input. See also A/D CONVERTER.
daemon A background program on UNIX systems that performs housekeeping and
maintenance functions automatically.
DAI Abbrev. for distributed artificial intelligence.
daisychain (bused interface) A means of connecting a number of devices to a
*controller, or, used as a verb, to connect by this means. A cable is connected from the
controller to the nearest of the devices and then a separate cable connects the first unit to
the second and the process is repeated as required. This allows a single connector on the
controller to serve a variable number of devices. It also reduces cable cost and eases
installation when several devices have to be connected. The *IEEE 488 and SCSI
interfaces are suitable for this sort of connection.
Daisychain connection is also used as a means to prioritize I/O interrupts. In this
application there is active logic at the points of interconnection to ensure that the priority
accorded to a device is directly related to its place in the chain. The device nearest to the
controller has highest priority.
daisywheel printer An obsolete type of *serial *impact printer formerly widely used
on word-processor systems for producing letters and documents. The font was formed on
the end of spring fingers extending radially from a central hub. The print head and paper
position could generally be incremented bidirectionally by control commands, making
possible proportional spacing, justification, subscript and superscript characters, etc.
The daisywheel printer was introduced by Diablo Systems Inc. in 1972 and represented
a considerable improvement in speed and reduction in mechanical complexity compared
to other typewriters then used as low-speed printers. By 1990, however, daisywheel
printers had been superseded by faster, more flexible, and quieter *dot matrix printers and
*page printers.
dangling else The ambiguity that arises if a language allows constructs of the form
in which it is not clear which if is associated with the else. Algol 60 resolved the
ambiguity by forbidding the use of if immediately after then; Pascal, C, C++, and Java
associate the else with the innermost if. Ada avoids the problem by pairing each if with
an explicit end if.
dangling reference (dangling pointer) The memory access error that arises when a
*pointer contains the address of a variable that has been deallocated in memory (i.e.
whose memory address has been removed from the program or is not contained at the
address referenced by the pointer). For illustration, consider a *block-structured language
in which the block defines the scope of the variables therein declared. Consider then a
pointer variable, p, with a *global scope. If p is assigned within the block the reference to
(i.e. the memory address of) a local variable, x, it will still hold that reference at the end of
the block. Any attempt to use the pointer p—still containing a reference to x—after the
block will constitute a dangling reference.
DANTE (delivery of advanced network technology to Europe) An
organization that acts as a management agent for a number of cooperative projects in
academic and research networking, especially in the provision of leading-edge network
services on a semicommercial basis.
dark fibre An *optical fibre that is provided to a user with no additional devices
attached to it for lower-level protocol handling or electrical-to-optical conversion. These
services may be provided by the owner of an optical fibre as part of a managed service, for
which the user may be charged.
DARPA Defense Advanced Research Projects Agency. See ARPA.
DASD (pronounced dazdi) Acronym for direct-access storage device.
DAT Abbrev. for digital audio tape.
data 1. *Information, in any form, on which computer programs operate. The distinction
between program (instructions) and data is a fundamental one in computing (see VON
NEUMANN MACHINE). It is in this fundamental sense that the word is used in terms such as
data, *data break, *data bus, *data cartridge, *data communications, *data compression,
*data name, *data protection, *data subject, and *data type. 2. In a more limited sense,
data is distinguished from other contrasting forms of information on which computers
operate, such as text, graphics, speech, and image. The distinguishing characteristic is that
it is organized in a structured, repetitive, and often compressed way. Typically the
structure takes the form of sets of *fields, where the field names are omitted (this omission
being a main means of achieving compression). The ‘meaning’ of such data is not
apparent to anyone who does not know what each field signifies (for example, only a very
limited meaning can be attached to ‘1234’ unless you know that it occupies the ‘employee
number’ field). That characteristic gives rise to the popular fallacy that ‘data is
meaningless’.
Terms such as *database, *data dictionary, *data hierarchy, *data independence, *data
model, *data preparation, and *data processing normally carry this second sense—though
not invariably; the context should determine which sense is intended. 3. See STATISTICAL
METHODS, STATISTICS.
data abstraction The principle of defining a *data type in terms of the operations that
apply to objects of the type, with the constraint that the values of such objects can be
modified and observed only by use of these operations. This application of the general
principle of *abstraction leads to the concept of an *abstract data type.
Data abstraction is of very considerable importance in modern programming, especially
for the coarse structuring of programs. Such use yields several benefits. The abstract data
type provides a natural unit for specification and verification purposes (see MODULE
SPECIFICATION). It provides some basis for high-level design, and is consistent with the
principles of *information hiding. The specification of the data type in terms of available
operations provides all the information needed to make use of the data type while leaving
maximum freedom of implementation, which indeed can be changed if required without
affecting the users. There is also the possibility of developing a ‘library’ of useful data
abstractions—stacks, queues, etc.
The typical implementation of an abstract data type within a program is by means of a
multiprocedure module. This module has local data that can be used to represent a value
of the type, and each procedure implements one of the operations associated with the type.
The local data of the module can only be accessed by these procedures, so that the user of
the data type can only access the operations and has no direct access to the representation.
The implementer is therefore free to choose the representation, which remains ‘invisible’
to the users and can be changed if required. Each instance of the abstract data type
employs one instance of the local data of the module to represent its value.
Proper support for such multiprocedure modules demands that the concept be
recognized by the programming language, which must, for example, allow for the
clustering of modules and data and have scope rules reflecting the desired restrictions on
access. The first language to provide such support was SIMULA with its CLASS. Many
modern languages now offer a similar facility. See also PACKAGE.
data acquisition Data capture and/or data collection often with some filtering of the
input signal, which may, for example, recover signals in a noisy environment. Such data
will normally be derived from transducers which convert some parameter to electrical
form.
databank A system that offers facilities for the deposit and withdrawal of data to a
community of users on a particular topic (e.g. biological species, trade statistics,
commodity prices). While it need not be an open public facility, the usual implication is
that the user community is widespread. Access to a databank may be, for instance, via a
*videotex facility, or via any other form of *network, or even via the postal service. The
data itself may be organized as a *database or as one or more *files.
database 1. Normally and strictly, a body of information held within a computer system
using the facilities of a *database management system. All accessing and updating of the
information will be via the facilities provided by this software as will be the recording of
information on the *log file, *database recovery, and multiaccess control. 2. Occasionally
and colloquially, a collection of data on some subject however defined, accessed, and
stored within a computer system. (This nontechnical use of the term can cause confusion
to the nonspecialist as in: ‘We don’t use a database management system for our database,
just straightforward VSAM files’.)
database administration (DBA) See DATABASE ADMINISTRATOR.
database administrator (DBA) A person or member of a group that is responsible for
the specification, design, implementation, efficient operation, and maintenance of a
*database. The identification of a distinct role for database administration (DBA) follows
from the concept of *data independence, and from the realization that databases form an
important and valuable corporate resource.
The DBA person or group would work with users in establishing application
requirements and creating an appropriate *data model of the information to be held in the
database as part of the activity of system specification; would encode the data model as
the *logical schema of the database using the appropriate data description language
together with any required *user views; would specify the initial *storage schema after
consideration of the relative importance of the various activities to be carried out against
the database; would advise and work with programmers whose programs access the
database; and would be responsible for the initial setting up and loading of the database as
part of the activity of system implementation.
The activity is an ongoing one involving the monitoring of performance and any
consequential modification of the storage schema to improve it, responsibility for backup
and recovery, for creating further user views as required, and generally with *database
integrity, *security, and efficiency. The work is usually seen as encompassing both the
business modelling role at one extreme and, at the other, the day-to-day technical
problems of making the database system work effectively in practice.
database integrity The condition of a database in which all data values are correct, in
the sense (a) of reflecting the state of the real world—within given constraints of accuracy
and timeliness—and (b) of obeying rules of mutual consistency. The maintenance of
database integrity involves integrity checking, and recovery from any incorrect state that
may be detected; this is the responsibility of *database administration using the facilities
of a *database management system.
File integrity can be defined in similar terms. Typically, however, files are subject to
less extensive integrity checking than databases.
database language A generic term referring to a class of languages used for defining
and accessing *databases. A particular database language will be associated with a
particular *database management system. There are two distinct classes of database
language: those that do not provide complete programming facilities and are designed to
be used in association with some general-purpose programming language (the host
language), and those that do provide complete programming facilities (database
programming languages). Some products adopting the former approach seek to minimize
host-language programming by the provision of *fourth-generation language (4GL)
facilities.
A database language must provide for both *logical schema specification and
modification (data description) and for retrieval and update (data manipulation). In some
cases, particularly products derived from the CODASYL network database standard, these
aspects are treated distinctly as the data description language (DDL) and the data
manipulation language (DML). Modification to the *storage schema is also
generally separately provided. See also SQL.
database management system (DBMS, dbms) A software system that provides
comprehensive facilities for the organization and management of a body of information
required for some particular application or group of related applications. This implies
some overall logical view of the database in terms of some particular *data model, and
database management systems are conventionally categorized according to the data model
they implement. The system will provide a *database language in which schemas and
subschemas (user views) can be specified and retrieval and update programs written.
There will be facilities to specify and modify the *storage schema, for logging, rollback,
and recovery. A major objective of a DBMS is to provide *data independence within the
constraints of its data model. More modern DBMS provide a higher degree of data
independence than earlier products where significant schema modification requires the
database system to cease to be operational and for the data to be reorganized and reloaded.
This can be impractical for large operational systems, a main reason for them becoming
out of date and requiring redevelopment.
Well-known DBMS include the relational database systems ORACLE, INGRES,
Sybase and Microsoft SQL Server, INFORMIX, mySQL, and PostgreSQL, as well as
more recent NoSQL-based systems such as MongoDB. Earlier systems such as IMS,
IDMS, and ADABAS, are still widely used in practice. See also OBJECT-ORIENTED
DATABASE, XML DATABASE.
database programming language See DATABASE LANGUAGE.
database recovery The process of restoring *database integrity once a database has
been found to be incorrect. See also RECOVERY LOG.
database system 1. See DATABASE (def. 1). 2. Short for database management system.
data break (cycle stealing) See DIRECT MEMORY ACCESS.
data bus (data path) A group of signal lines used to transmit data in parallel from one
element of a computer to another. The number of lines in the group is the width of the
data bus, each line being capable of transferring one bit of information. The width of the
data bus is typically equal to the word length, i.e. 32, 48, or 64 bits. The data bus used to
interconnect LSI components need not have the same width as is used on the chips
themselves. For example, a processor with an internal data bus width of 32 bits could be
designed to transmit information over an 16-bit-wide external data bus. Such processors
are said to use a multiplexed data bus (see MULTIPLEXED BUS). The wider the data bus, the
higher the potential performance of the system, since more information is transmitted in
parallel with a wider data bus. Narrower data buses in general degrade performance but
are less costly to implement. A multiplexed data bus is often chosen to reduce the number
of pins needed on an integrated circuit for the data bus.
data capture A process for achieving the extraction of relevant data while the related
transaction or operation is occurring. An example is a supermarket checkout equipped
with point-of-sale terminals. The transaction is primarily concerned with the sale to the
customer but while the purchased items are being entered onto the bill it is usual for the
machine to record, and thus capture, data that will allow calculation of stock movement
and other information.
If the equipment for data capture is online to a computer system, it is part of a *data
collection process and may be referred to as either data capture or data collection
equipment. The term data capture is often used where a computer system monitors (and
maybe controls) laboratory instruments, process parameters, etc.; in this context it is also
known as data logging.
data cartridge A *magnetic tape cartridge, commonly the 3M-type cartridge.
data chaining Organizing a *data file so that records are linked (see LINK, def. 3). A
record may belong to more than one chain. Chaining permits access to records in a
number of different sequences.
data channel An information route and associated circuitry that is used for the passing
of data between systems or parts of systems. In an interface that has a number of parallel
channels the channels are usually separately dedicated to the passing of a single type of
information, e.g. data or control information.
data cleaning Another name for data validation.
data collection The process of collecting data from distributed points at which it has
been captured or input as a separate operation. Generally the equipment used for the
process is connected to a host computer via a communication system; sometimes portable
equipment is carried to each site for information to be input into its memory and then the
equipment is connected to the host system. See also DATA CAPTURE.
datacomms Short for data communications.
data communication equipment See DCE.
data communications The collection and redistribution of information (data) through
communication channels. Data communications may involve the transmission and
reception of data in analogue or digital form. Data sources originate data while data
destinations receive it.
data compaction Removal of redundant *information from a file or data stream. The
term data compression is commonly used to mean the same thing, although, strictly,
while compression permits the loss of information in the quest for brevity, compaction is
*lossless. The effects of compaction are thus exactly reversible.
Generally, in the context of *discrete and continuous systems, the output from discrete
systems, if it is to be abbreviated, is losslessly compacted. Data compaction is appropriate,
by way of example, for files containing text (including source programs) and machine
code. In fax transmission, the position of black *pixels is discretely encoded, and so again
data compaction is employed.
Data compaction may be carried out in a *probabilistic or *statistical manner, and a
particular algorithm may be suited to one or other of these. A data compaction algorithm
may be more or less effective (in achieving a high ratio of compaction) and more or less
efficient (in economy of time taken for *encoding and *decoding). To a large extent,
these demands conflict. For example, *Huffman encoding is optimally effective when
unconstrained, but may require a high *extension of the source, and need the output
stream to have a small *alphabet (ultimately binary, which requires bit manipulation
possibly on a large scale); Huffman can thus be very inefficient. On the other hand,
*Lempel–Ziv compaction is very efficient, and within given time constraints may be more
effective than a similarly constrained Huffman code.
data compression 1. Another name for data compaction, although, strictly, data
compaction is *lossless while data compression need not be (see def. 2). 2. Removal from
a file or data stream of *information that may be redundant either in the sense of
*information theory, or in the sense that the retention of precision, definition, or some
similar measure of quality is less important than the necessity to abbreviate the data. In the
former sense, the abbreviation is *lossless, while in the latter sense it is *lossy.
Compression permits either or both kinds, and so its effects are not always exactly
reversible.
Generally, in the context of *discrete and continuous systems, the output from
continuous systems, if it is to be abbreviated, can often be lossily compressed. This is
notably the case with sound, and with halftone and coloured images. See also IMAGE
COMPRESSION.
data contamination The alteration, maliciously or accidentally, of data in a computer
system. See also DATA INTEGRITY.
data controller In relation to *personal data, a person, public authority, government
department, or any other organization that determines the purposes for which, and the
manner in which, any such data are to be processed.
data dependency A situation in which an instruction is dependent on a result from a
sequentially previous instruction before it can complete its execution. In high-performance
processors employing *pipeline or *superscalar techniques, a data dependency will
introduce a disruption in the smooth operation of a processor pipeline or inhibit the
parallel issue of instructions in a superscalar processor.
data description, (data description language) See DATABASE LANGUAGE.
data dictionary Essentially a dictionary of the names used in the specifying
documentation and programs for a data-processing application or group of related
applications. Against each entry there would typically be the type of object being named
(that is, whether it is a data item or field, record, file, report, screen display, etc.), its
precise specification, some explanatory description of its use, and a reference to all places
in the documentation and programs where it is used.
Developed in the late 1960s the purpose of such a dictionary was originally simply to
assist in the maintenance of large-scale data-processing systems. The idea was further
developed in the 1970s with the advent of special-purpose software systems to maintain
such dictionaries, having features such as the automatic regeneration of Cobol data
divisions as necessary when changes were made. These systems have evolved to include
databases with features such as automatic DDL generation (see DATABASE LANGUAGE).
For large-scale and complex systems a data dictionary is a vital tool for the central
control of naming, and of the semantics and syntax of the system. It is a tool widely used
in *database administration and increasingly to assist in the broader task of *system
design, many design methodologies being founded on the use of a data dictionary. The
terms system dictionary and data directory may be used synonymously in the case
of the more ambitious software-based dictionary systems.
The term data dictionary is sometimes used misleadingly by software product vendors
to refer to the alphabetical listings of names automatically produced when database
schema and data manipulation coding is being processed and compiled, and it is important
not to confuse this use with the accepted technical meaning of the term.
data directory See DATA DICTIONARY.
data-driven design A design method in which the structure of the software system
reflects the structure of the data processed by the system. Examples of data-driven
methods are *JSD and *SSADM. Compare FUNCTIONAL DESIGN.
data-driven processing Another name for forward chaining.
Data Encryption Algorithm (DEA) Another name for Data Encryption Standard.
Data Encryption Standard (DES) A cipher developed by IBM and standardized by
the US National Bureau of Standards in 1977. It is a *Feistel cipher employing a 64-bit
data block and a 56-bit key. The shortness of the key has given rise to much controversy
concerning its security.
DES can be used simply as a *block cipher, in which case its ‘mode of operation’ is
called Electronic Codebook (ECB). The three other NBS-recommended modes of
operation are Cipher Block Chaining (CBC), Cipher Feedback (CFB), and Output
Feedback (OFB). These increase the security of the system by using DES as a building
block in a *stream cipher, and differ regarding recovery from possible errors of
transmission.
The US National Security Agency announced in 1986 that it would no longer certify the
algorithm, so it lapsed as an official standard. It should now properly be called the Data
Encryption Algorithm (DEA), although DES remains its most usual name, and it
continues to be used despite being regarded as insecure for many purposes since *brute
force attacks have become feasible.
data entry The process in which an operator uses a keyboard or other device to input
data directly into a system. The term is sometimes misapplied to the process of *data
capture, where the input of data to the system is not the prime objective of the related
activity.
Direct data entry (DDE) is an online process in which data is entered into a system and
written into its online files. The data may be entered by an operator at a keyboard (this is
the usual meaning) or by a data capture device.
data field See FIELD.
data file A *file containing data, such as a file created within an applications program;
for example, it may be a word-processing document, a spreadsheet, a database file, or a
chart. Data files are normally organized as sets of *records with one or more associated
*access methods. Compare PROGRAM FILE.
dataflow 1. A form of program analysis that examines the relationship between a source
of data and the repository or user of that data. Dataflow analysis may be used to show the
following: undeclared variables, uninitialized variables, unused variables, use of variables,
mismatch of variables across module interfaces, and frequency/density of variable usage.
2. An item on a *dataflow diagram that represents a flow of data between two functions or
between a function and a data store.
dataflow diagram (DFD) A directed *graph showing processing elements and data
stores with the *dataflow between them. See also STATIC ANALYSIS, STRUCTURED
SYSTEMS ANALYSIS.
dataflow machine A computer in which the primitive operations are triggered by the
availability of inputs or operands. In a classical *von Neumann machine, there is the
concept of sequential flow of control, and an operation (i.e. instruction) is performed as
and when flow of control reaches that operation. By contrast, in a dataflow machine there
is a flow of data values, from operations that produce those values to operations that
‘consume’ those values as operands. An operation is triggered as soon as all its operands
are available. Since the result of one operation can be an operand to many other
operations, and hence can potentially trigger many operations simultaneously, there is the
possibility of a high degree of parallelism.
Dataflow machines are one of the major examples of non von Neumann architectures,
and are of considerable research interest. They are usually programmed in a *singleassignment language or a *declarative language. Traditional *imperative languages, which
prescribe a particular flow of control, are poorly suited to dataflow machines.
data fusion In complex applications, the assimilation of information from many diverse
sources. A data-fusion problem exists when a wide range of data essentially relates to the
same problem despite being in many different forms and modalities, e.g. visual, textual,
sensory, graphics. A classic example is the task performed by air-traffic controllers, who
are able to assimilate, filter, and respond to many channels of data in order to assess a
given situation. Although many techniques exist for associating, correlating, extracting,
and combining data, this remains a very difficult area to automate. When only sensory
data is involved the topic may be known as sensor-data fusion.
dataglove A graphical input device consisting of a glove with sensors that detect hand
and finger movements. The hand position is usually determined by a sensor on the back of
the glove. The finger positioning is determined by fibre optics.
datagram A self-contained package of data that carries enough information to be routed
from source to destination independently of any previous and subsequent exchanges. A
datagram service transports datagrams on a ‘best-effort’ basis. There is a nonzero
probability that any datagram will be lost or damaged before reaching its destination. The
order in which datagrams are submitted by the source is not necessarily preserved upon
delivery. In some networks there is the possibility that a datagram may be duplicated and
delivered to the destination more than once. It is the responsibility of the application to
guard against errors arising from datagram loss or duplication.
data hierarchy A hierarchical structure of *records, in which (a) a record at level i
holds data that is common to a set of records at level i + 1 and (b) starting from the higherlevel record, it is possible to access the set of lower-level records. Any record may only
‘own’ one set of lower-level records, and may only be a member of one such set. A data
hierarchy may reflect ‘real-world’ hierarchical relationships, or may be a *user view
provided by a DBMS to facilitate a purpose or activity.
data independence The facility to modify a database schema (*logical or *storage
schema) with no consequent requirement to modify *user views or programs interacting
with the database nor any need to reload data. To provide data independence has been a
main motivation for the development of database management software. It is a relative
term and different products provide different levels of data independence. It is particularly
important for large shared databases that are required to evolve in line with user needs.
The provision of data independence frequently conflicts with the need for efficient (i.e.
fast) processing and usually necessitates some compromise in terms of the software
techniques used. Logical data independence refers to the facility to change the
logical schema and thus evolve the content of the database; physical data
independence refers to the facility to change the storage schema and thus modify and
improve performance.
data integrity Resistance to alteration of data stored in a computer by system errors, so
that only authorized and proper alteration occurs. Data integrity is a general concept with a
number of different facets. Most obviously, it is a measure of the reliability of data read
from magnetic media, in terms of the absence of undetected errors (see ERROR RATE).
However , it is also a property of structured data (e.g. a database) that ensures that
collections of data items are consistent with one another, particularly when copies of the
same data are kept at different locations.
data item The *representation of any value that can be used alone or as a component of
a *data structure.
data link A physical connection between two or more devices (called nodes or
stations) by a communication channel that appears ‘wirelike’, i.e. bits arrive in the order
sent. Coaxial cables, telephone lines, optical fibres, lasers, and even satellite channels can
be data links. Data links are assumed to be susceptible to noise (i.e. have error properties)
and have finite data rate and nonzero propagation delay.
data link control protocol A communication *protocol that converts noisy (errorprone) *data links into communication channels free of transmission errors. Data is broken
into *frames, each of which is protected by *checksum. Frames are retransmitted as many
times as needed to accomplish correct transmission. A data link control protocol must
prevent data loss caused by mismatched sending/receiving capacities. A *flow control
procedure, usually a simple sliding *window mechanism, provides this function. Data link
control protocols must provide *transparent data transfer. *Bit stuffing or byte stuffing
strategies are used to mask control patterns that occur in the text being transmitted.
Control frames are used to start/stop logical connections over links. *Addressing may be
provided to support several *virtual connections on the same physical link.
data link layer of network protocol function. See SEVEN-LAYER REFERENCE MODEL.
data logging A procedure that involves recording all data and interactions that pass
through a particular point in a system. The point chosen is usually part of a
communication loop or a data path to or from a device such as a keyboard and display on
which data is transitory. If a system failure or an unexpected result occurs it is possible to
reconstruct the situation that existed. Such logs are not generally archived and can be
overwritten once the associated job has been completed. See also DATA CAPTURE.
data management A term normally used to refer to systems that offer users an
interface that screens them from the majority of the details of the physical handling of the
files, leaving them free to concentrate on the logical properties of the data.
data management system A class of software systems that includes *database
management systems and *file management systems.
data manipulation, data manipulation language See DATABASE LANGUAGE.
data mark See ADDRESS MARK.
data matrix A rectangular array of data variables, which may be numerical,
classificatory, or alphanumeric. The data matrix forms the input structure upon which
statistical procedures for *regression analysis, *analysis of variance, *multivariate
analysis, *cluster analysis, or survey analysis will operate.
data medium A material having defined properties, including a physical variable that
can be used to represent data. The defined properties ensure that the medium is compatible
with devices that can record or read data on the medium. Examples of data media are
*magnetic disks, *optical disks, and *magnetic tape, and also paper used for printer
output.
data mining The nontrivial explication or extraction of information from data, in which
the information is implicit and previously unknown; an example is identification of the
pattern of use of a credit card to detect possible fraud. The data is normally accessed from
one or more databases, so the technique is also known as knowledge discovery in
databases (KDD). It involves a number of different methods from artificial intelligence
such as neural networks and machine induction, together with statistical methods such as
cluster analysis and data summarization.
data model An abstract model of some real-world situation or domain of interest about
which information is to be held in a *database and which the *logical schema for that
database encodes. The term data model (or data modelling method) is also used for a set of
logical abstractions employed in constructing such a model. See also CODASYL
NETWORK MODEL, HIERARCHICAL DATA MODEL, RELATIONAL MODEL.
data name In data-processing languages, a symbolic name chosen by the programmer to
identify a data object. See also VARIABLE.
data network A communication network that is devoted to carrying computer
information, as opposed to voice, video, etc. It consists of a number of nodes, or stations,
connected by various communication channels.
data path Another name for data bus, although often used in a wider context to mean
any logical or physical connection between a source and destination of digital or analogue
information.
data preparation An obsolete term for the process of converting data into a machinereadable form so that it can be entered into a system via an available input device. There is
no interaction with the system in the course of preparation. The process has been
superseded by direct *data entry systems and *data capture.
data processing (DP) A term used predominantly in the context of industrial, business,
governmental, and other organizations: within that context it refers (a) to a class of
computer applications, (b) to a function within the organization.
While it is hard to generalize, data-processing applications may be characterized as
those that store and process large quantities of *data on a routine basis, in order to be able
to produce (regularly or on request) information that is predictably needed by an
organization’s employees, by its customers or suppliers, by government, or by any other
organization. They are often referred to broadly as commercial applications. Typical
applications within this category include financial accounting, cost and management
accounting, market research and sales forecasting, order processing, investment analysis,
financial modelling, stock control, production planning and control, transport planning and
control, payroll, and personnel records. *Cobol, since its introduction in 1960, has been
the most commonly used language for data processing, though it has progressively been
usurped by more modern *high-level languages and by *fourth-generation languages.
Data-processing systems are normally long-lived (apart from the need to redesign/rewrite
them periodically, they may well last as long as the host organization), and they handle
data that is large in volume and complex in structure (which leads to a major concern for
the problems and costs of data input and storage).
The data-processing function within an organization is that department responsible for
the development and operation of application systems (largely of the types listed above)
on behalf of other parts of the organization. Its tasks normally include systems analysis
and design, program development and maintenance, database administration, computer
operation, data preparation, data control, and network management. The data-processing
department may not, however, be responsible for all data-processing applications within
an organization, especially in the face of the widespread use of individual desktop
computers, and conversely it may have responsibility for some applications that are not
usually thought of as data processing (e.g. industrial process control).
In recognition that a lot of clerical and unit-record tasks could be described as data
processing, the terms automatic data processing (ADP) or electronic data
processing (EDP) were used in the 1960s, and can still occasionally be encountered.
The term integrated data processing (IDP) also had some limited use as it became
clear that much of an organization’s data was common to separately developed systems,
and the effort was made to integrate or rationalize them; that effort has mainly been
diverted into the growth of *databases and *database management systems.
The term data processing is used in contexts other than the one described above: for
instance, scientific data processing means the fairly straightforward processing of large
quantities of experimental results, and personal data processing means an individual’s use
of a microcomputer to keep personal records.
data processor In relation to *personal data, any person (other than an employee of the
*data controller) who processes such data on behalf of the data controller.
Data Protection Acts Two acts (1984 and 1998) enacted in the UK concerning *data
protection legislation.
data protection legislation Legislation that has been or is being introduced all over
the world to protect personal data handled in computers. The aim of the legislation is to
control the immense potential for misuse of information that arises when personal data is
stored in computers. Once the data has been transcribed from paper files into a form that is
easily readable and accessible by computers, it is an inexpensive and easy task for the data
to be extracted from one record and correlated with personal data concerning the same
person from another file. This results in a combination of information that is considered to
be an infringement of *privacy.
To combat the fear of misuse of data, governments have introduced legislation that,
among other things, makes the following requirements of organizations that maintain
personal records on computers:
to declare and/or register the use for which the data is stored;
to provide the data subject with a right of access to data concerning himself or herself on
their computers;
to maintain a prescribed minimum level of electronic and physical *security in their
computer installation;
not to transmit personal data to any organization that does not have similar controls over
misuse of data.
This last requirement has led to fears that countries without data protection legislation
on their statute books are losing contracts for the processing of data, since countries with
such legislation can refuse to permit the export of data to countries where data is not
adequately protected. For this reason companies that consider that the data protection fears
are not borne out by real instances of misuse of data are nonetheless pressing for
legislation.
In Europe a convention concerning misuse of data was signed by all member countries
of the Council of Europe (1981). The OECD (Organization for Economic Cooperation and
Development) has also drafted a convention of similar effect (1980). In 1984 the UK
enacted the Data Protection Act to comply with the Council of Europe Convention.
In February 1995 the Council of Ministers of the European Union formally approved a
common position on the ‘Framework’ Data Protection Directive, in response to the
political agreement reached on 6 February 1995. The final version of the directive
included a 12-year transition period for noncomputerized data. Member States were given
a three-year transition period in which to implement the directive following its adoption.
This led to a second UK Data Protection Act (1998), which eventually came into force on
1 March 2000, with a transitional arrangement limiting its effect until 24 October 2001.
The 1998 act broadly retains the principles of the 1984 act, with a number of additional
features.
The situation is rather different in the USA, where there is a Privacy Act dealing with
data stored by government agencies. The approach to data protection involves a mixture of
legislation, regulation, and self-regulation. The EU directive on data protection prohibits
the transfer of personal data to non-European nations that do not meet the EU standard for
privacy protection. This could have affected the ability of US companies to trade with
European companies in certain areas. To deal with this the US Department of Commerce
introduced a so-called safe harbor framework, agreed with the European Commission.
This enables US companies to certify that they operate adequate privacy protection as
defined by the EU directive.
http://www.legislation.gov.uk/
• The UK government official website about the legislation and related updates
data rate Short for data transfer rate.
data recipient In relation to *personal data, any authorized person to whom the data are
disclosed other than the *data subject, the *data controller, and persons who are in charge
of processing the data. Those legally constituted authorities which are entitled to ask the
data controller to send them the personal data are not to be regarded as data recipients.
data reduction Another name for data compression (especially when strictly *lossy)
and, sometimes, data compaction.
data retrieval The process by which data is selected and extracted from a file, a group
of files, or a database.
data security system 1. Generally, any means (technical, operational, or managerial)
for keeping private the *information contained in data that are transmitted, stored, or
processed in a computer system. A data security system must make information available
to those authorized to receive it, without undue delay or inefficiency. Also, it must keep
information secret from those not so authorized, in such a way that the cost of
unauthorized disclosure would exceed the value of the information to the illegitimate
recipient.
A data security system may involve physical security (safes, locks, entry cards) for
access to disks and passwords, and also the techniques of *cryptography and
*authentication. The specification and design of a good data security system relies on the
formation of an appropriate *threat model. See also SECURITY. 2. A system for ensuring
the integrity and longevity of stored data, usually involving regular copying and storage in
a remote location. See also BACKUP.
data selector/multiplexer A logic circuit that may be considered as a single-pole
multiway switch whose output is determined by the position of the switch wiper (see
diagram). The wiper position is controlled by a select signal, normally digital, that
indicates which of the inputs is to be connected to the output. In this way a number of
channels of data may be placed sequentially on a time-shared output bus under the control
of the select signal, a process known as *time division multiplexing. Inputs to and outputs
from a multiplexer may be in digital or analogue form. See also
DECODER/DEMULTIPLEXER.
Data selector/multiplexer.
data set (dataset) 1. A coherent body of data with well-defined selection criteria and
internal structure. 2. Another name for modem. 3. Another name for file.
data sheet A manufacturer’s specification of the parameters of a device or integrated
circuit, its functions, and its pin connections.
data store See DATAFLOW DIAGRAM, STRUCTURED SYSTEMS ANALYSIS.
data stream A sequence of data elements, often packed in some manner into a sequence
of words having sizes different from the size of the data elements.
data structure (information structure) An aspect of *data type expressing the nature
of values that are composite, i.e. not *atoms. The nonatomic values have constituent parts
(which need not themselves be atoms), and the data structure expresses how constituents
may be combined to form a compound value or selected from a compound value. Thus
‘date’ regarded as a data structure is a set containing a member for every possible day,
combined with operations to construct a date from its constituents—year, month, and day
—and to select a desired constituent.
An implementation of a data structure involves both choosing a *storage structure and
providing a set of procedures/functions that implement the appropriate operations using
the chosen storage structure. Formally, a data structure is defined as a distinguished
domain in an *abstract data type that specifies the structure. Computer solution of a realworld problem involves designing some ideal data structures, and then mapping these onto
available data structures (e.g. *arrays, *records, *lists, *queues, and *trees) for the
implementation.
Note that terms for data structures are used to denote both the structure and data having
that structure.
See also DYNAMIC DATA STRUCTURE, STATIC DATA STRUCTURE.
data subject An individual about whom information is stored in a computer-based
system. See also DATA PROTECTION LEGISLATION.
data sublanguage A language or part of a language concerned only with database
query and update and/or database definition. See also DATABASE LANGUAGE.
data summarization See STATISTICAL METHODS.
data tablet A graphical input device that returns the position of a *puck or stylus as it is
moved over a flat surface. The term was originally a tradename used by Sylvania to
describe a product of this type.
data terminal equipment See DTE.
data transfer rate The rate at which data can be moved between devices. The average
rate is usually determined by the capability of the read or write device but the
instantaneous rate is determined by the capability of the interface or transmission path.
*Buffer memories are used to achieve the change in rate. Disk storage systems can have
transfer rates of the order of 1 gigabyte per second. Fast serial interfaces operate in the 800
Gbps range.
data transfer time The time taken for a data transfer between the drive and the host
system. This time is dependent on the size of the data transfer and the rate at which it can
be transmitted to/from the host.
data translation The process of converting data from the form used by one system into
the form required by another. See also AUTOMATIC DATA CONVERSION.
data transmission The process of sending data (analogue or digital measurements,
coded characters, or information in general) from a sender to one or more receivers, i.e.
from a source to one or more destinations.
data transparency 1. A property of a communication system (network) such that the
output data stream delivered is the exact bit sequence presented to the input of the system
without any restriction or exception. 2. A property of a communication system such that
the output data stream delivered provides an output bit sequence functionally equivalent to
the input bit sequence, from which the exact input bit sequence can be derived.
The second definition implies that the communication system provides protocol
translation between input and output devices whereas the first definition implies that there
is a compensating translation. The second definition cannot be implemented in all cases
since there are functions that are supported by some terminal devices but have no
equivalent in others.
data type An abstract set of possible values that an instance of the data type may
assume, given either implicitly, e.g. INTEGER, REAL, STRING, or explicitly as, for
example, in Pascal:
The data type indicates a class of internal representations for those values.
Types may be defined in terms of other more primitive types, such as arrays of integers.
Some languages consider *procedures or *functions as data types, which can also be used
in the construction of more complex types.
Unlike a *set, a type cannot contain itself (i.e. a type cannot be one its subtypes). This
avoids some well-known paradoxes of sets, notably *Russell’s paradox. See also
ABSTRACT DATA TYPE.
data validation (data vetting, data cleaning) The process of checking that data
conforms to specification. It is usually the first process undertaken on *raw data. The
following are among the kinds of checks that may be carried out: number and type of
characters in a *data item; range of values of a data item; correctness of *check
character(s); consistency between one data item and others in the same record; correctness
of check totals for individual records; correctness of *batch controls.
data vetting Another name for data validation.
data warehouse A database system that is designed to support data archiving and
subsequent analysis and reporting. It contains both current and historical data but does not
support the *transaction processing that is required for a database handling currently
ongoing business interactions.
data word A word that can only, or is expected only to, contain data.
DB2 A *database management system from IBM. See also SQL.
DBA Abbrev. for database administrator and/or database administration.
DBMS (dbms) Abbrev. for database management system and database management
software.
DC Abbrev. for device coordinates.
DCE 1. (data communication equipment) The side of an interface that represents
the provider of a data communication in a standard such as RS232C or X25. DCEs are
usually analogue or digital *modems or network interface units. Compare DTE. 2.
(distributed computing environment) A software system for UNIX, providing
distributed services to applications. It is sponsored by the *OSF.
d.c. signalling See BASEBAND NETWORKING.
DCT Abbrev. for discrete cosine transform.
DCVS (Distributed Concurrent Versions System) A distributed *source code
control system developed as open-source by elego Software Solutions in 2002. It is an
upgrade of *CVS from a client-server system to a distributed one.
DDC Abbrev. for direct digital control.
DDCMP (digital data communication message protocol) A *data link control
protocol developed by Digital Equipment Corporation. It is similar to *SDLC and *HDLC
but is character-oriented rather than bit-oriented. It allows a variety of data link
characteristics: full duplex or half duplex, asynchronous or synchronous, switched or
dedicated, point-to-point or multipoint, and serial or parallel. Data transparency is
achieved using a data-length field rather than bit or byte stuffing techniques. Active NAKs
are used for error control, in addition to timeouts.
DDE 1. (direct data entry) See DATA ENTRY. 2. (dynamic data exchange link)
A link between documents created in Windows-based programs. When new information
becomes available in a linked document, a DDE field inserts new information when the
linked field is updated.
DDL (data description language) See DATABASE LANGUAGE.
DDoS Abbrev. for distributed denial of service.
DDP (distributed data processing) See DISTRIBUTED PROCESSING.
DDS See DIGITAL AUDIO TAPE.
DEA Abbrev. for Data Encryption Algorithm.
deadlock 1. Another name for deadly embrace. 2. A specific form of *deadly embrace
that arises in a *Petri net, in which some states of the net become forever inaccessible.
deadly embrace (deadlock) A situation that may arise when two (or more) separately
active *processes compete for resources. Suppose that process P requires resources X and
Y and requests their use in that order, and that at the same time process Q requires
resources Y and X and asks for them in that order. If process P has acquired resource X
and simultaneously process Q has acquired resource Y, then neither process can proceed,
each process requiring a resource that has been allocated to the other process. On larger
systems containing more than two processes and more than two resources, it is still
possible for deadlock to develop although its detection may be more difficult.
debit/credit benchmark A *benchmark test for measuring the number of office tasks
completed on a computer installation per hour. The basic feature of the test is to use a
fixed number of terminals on a given computer configuration and to ramp up the number
of standardized transactions per second until the system can only complete 95% of
requested transactions in under one second.
debouncing A technique to avoid each reverberation of a closing switch or other
electrical contact being registered as a separate event. After the detection of the initial
closure, a short pause is made in order to allow the reverberations of the contact, known as
contact bounce, to die away. The contact is then sampled again to determine its final
state. Debouncing is often used in connection with the reading of keyboards.
de Bruijn diagram (de Bruijn graph) See GOOD–DE BRUIJN DIAGRAM.
debugging The identification and removal of localized implementation errors—or bugs
—from a program or system. By contrast, *testing seeks to establish whether bugs exist
but does not isolate or remove them. Program debugging is often supported by a debug
tool, a *software tool that allows the internal behaviour of the program to be investigated.
Such a tool would typically offer trace facilities (see TRACE PROGRAM), allow the planting
of breakpoints (i.e. points in the program at which execution is to be suspended so that
examination of partial results is possible), and permit examination and perhaps
modification of the values of program variables when a breakpoint is reached.
debug tool (debugger) See DEBUGGING.
DEC See DIGITAL EQUIPMENT CORPORATION.
decade counter See COUNTER.
decal Another name for texture mapping.
de Casteljau algorithm A recursive algorithm for computing *Bézier curves from the
*control points. Given control points r0…rn, set
for r = 1,…n and i = 0,…n−r and ri0(u) = ri . Then rin(u) is the point with parameter value
u on the Bézier curve of degree n.
decidable problem See DECISION PROBLEM.
decidable set See RECURSIVE SET.
decision gate An electronic *logic gate whose output indicates whether a logical
relationship is either true or false. The following are examples: an equality *comparator,
indicating when two binary numbers are equal; an *odd parity checker, indicating when a
binary input has an odd number of ones; a *majority element, indicating when the binary
inputs have more 1 entries than 0 entries.
decision problem A computational task that for each possible input requires ‘true’ or
‘false’ to be output, depending on whether the input possesses a certain property. An
algorithm that produces the correct decision in each case is called a decision
procedure for that problem. If a decision procedure exists then the problem is said to be
(algorithmically) solvable, while an (algorithmically) unsolvable problem is one for
which no decision procedure exists. An example is logical validity, the inputs being
logical expressions, with the output ‘true’ for valid expressions and ‘false’ for others. This
problem is solvable for *propositional logic (the construction of *truth tables being a
decision procedure) but not for *predicate logic (by Church’s theorem of 1936). Solvable
problems can be further classified according to the efficiency of decision procedures
existing for them (see P=NP QUESTION).
Some unsolvable problems possess a semidecision procedure, i.e. an algorithm that
correctly outputs ‘true’ but fails to terminate in cases where ‘false’ should be output. This
is the same as saying that the inputs requiring the output ‘true’ form a set that is
*recursively enumerable (but need not be *recursive). Alternatively one can say that the
problem corresponds to a predicate that is semidecidable (but need not be decidable).
decision procedure See DECISION PROBLEM.
decision support system (DSS) See MANAGEMENT INFORMATION SYSTEM.
decision surface A (hyper) surface in a multidimensional *state space that partitions the
space into different regions. Data lying on one side of a decision surface are defined as
belonging to a different class from those lying on the other. Decision surfaces may be
created or modified as a result of a learning process and they are frequently used in
*machine learning, *pattern recognition, and *classifier systems.
decision table A table that indicates actions to be taken under various conditions, the
decision being the selection between the alternative actions. Conventionally a decision
table has four parts that are named and laid out as shown in Fig. a. The condition stub
part lists the individual inputs upon which the decision depends, while the action stub
part lists the alternative actions that may be taken. The entry parts then show the
conditions under which each action is selected. This is done by arranging the condition
entry part into columns, where each column specifies some condition on each of the
input values, and then placing a cross in the same column of the action entry part to
indicate the particular action to be taken. All the conditions of the column must be
satisfied in order for the column to be selected. Normally the complete table covers all
possible combinations of input values in such a way that application of the table always
selects precisely one action (see also ELSE RULE). The example in Fig. b shows a table for
deciding how to travel to work. A ‘—’ symbol in the condition entry part indicates ‘don’t
care’.
Decision table.
Decision tables have been used both for program specification and implementation, the
latter being achieved by directly interpreting (or generating an executable program from)
the decision table format.
decision tree A *binary tree where every *nonterminal node represents a decision.
Depending upon the decision taken at such a node, control passes to the left or right
subtree of the node. A *leaf node then represents the outcome of taking the sequence of
decisions given by the nodes on the path from the root to the leaf. See also BIFURCATION.
declaration One of the two major kinds of element in a conventional program, the other
being a *statement. A declaration introduces an entity for part of the program—its scope
—giving it a name and establishing its static properties. Examples are declarations of
variables, declarations of procedures, declarations of input/output ports or files.
declarative languages (nonprocedural languages) A class of programming
languages. With a declarative language a program explicitly states what properties the
desired result is required to exhibit but does not state how the desired result is to be
obtained; any means of producing a result that displays the required properties is
acceptable in implementations (compare IMPERATIVE LANGUAGES).
Since declarative languages are concerned with static rather than dynamic concepts (i.e.
with what rather than how), they do not depend on any inherent notion of ordering and
there is no concept of flow of control and no *assignment statement. Ideally a program in
a declarative language would consist solely of an unordered set of equations sufficient to
characterize the desired result. However, for reasons of implementation and efficiency, the
existing languages fall somewhat short of this, either in semantics or in style of use (or
both). Declarative languages are not tied to the von Neumann model of computation and
typically there is scope for employing new architectures with a high degree of parallelism
in obtaining the desired result.
See also FUNCTIONAL LANGUAGES, LOGIC PROGRAMMING LANGUAGES.
DECnet Trademark A network system produced by Digital Equipment Corporation
(DEC) to run on their VAX proprietary systems. A number of other suppliers have
products that either implement parts of the DECnet system or are able to exchange data
with a DECnet system.
decoder 1. The means by which a decoding process is effected (see CODE). It may be
implemented in hardware or software, the process being algorithmic in nature. 2. See
DECODER/DEMULTIPLEXER.
decoder/demultiplexer A logic circuit, usually an integrated circuit, that is capable of
setting one of its 2n output lines active, i.e. at logic 1, in response to an n-bit binary code
present at its input. For an n-bit device, 2n distinct elements of a code can be input.
A decoder/demultiplexer may be considered as a switch that directs data from a timeshared data bus to one of several possible outputs under the control of a select signal,
which is normally digital; the select signal indicates which of the outputs is to be
connected to the input (see diagram). Individual data channels may be recovered from a
time-division multiplexed input bus provided that the scanning of the select signal is made
synchronous with that of the multiplexer. The input to and outputs from a
decoder/demultiplexer may be in digital or analogue form. See also DATA
SELECTOR/MULTIPLEXER.
Decoder/demultiplexer.
decoder/driver An electronic device that is capable of accepting encoded data at its
input and generating unencoded data at its output. The decoding process employed may
conform to an agreed standard or be user-defined. The outputs of these devices are
designed to drive specific external equipment such as *LCD or *LED displays.
decoder error See CHANNEL ERROR.
decoding The process of reconverting a coded message to the message from which it
was encoded. See also CODE.
decollator A machine that can process multicopy printed output into separate stacks of
copy and used carbon paper. Decollation is normally done as an offline activity and the
decollator may be combined with a burster that breaks the continuous forms at the
perforations to give separate sheets.
decompiler A program that attempts to do for compiler output what a *disassembler
does for assembler output, i.e. translate back from machine code to something resembling
the source language. The task is difficult and not often attempted.
decomposition 1. In switching theory, the realization of an n-variable switching
function as a composition of functions, each of which has less than n variables. Like other
*minimizations, decomposition is facilitated by *Karnaugh maps. 2. In programming, the
analysis of a problem into simpler subproblems. See MODULAR PROGRAMMING, PROGRAM
DECOMPOSITION.
decompression Returning a compressed image or compressed data to its uncompressed
form. Some compression methods lose information so that the uncompressed image or
data is not equivalent to the original.
deconvolution See CONVOLUTION.
decryption The processing of an encrypted message by an authorized recipient in order
to recover the original message. See also CRYPTOGRAPHY. Compare CRYPTANALYSIS.
dedicated Committed entirely to a single purpose or device. For example, a computer
system may be dedicated to the job of controlling an industrial machine tool. A dedicated
device or resource may be idle for significant periods of time.
dedicated mode A processing mode in which the system is operated for a single
purpose, and for only those users with sufficient *security clearance to access all the
information on the system.
deduction A formal method of logical *inference. Deduction is the process of applying
one or more inference rules to a given set of facts (known as axioms) and inferring new
facts. Unlike the other methods of inference, *abduction and *induction, deduction
produces logically sound results, i.e. involves no uncertainty.
deductive apparatus See FORMAL METHOD.
Deep Blue See COMPUTER CHESS.
deep case One of a set of semantic roles that can be used as grammatical primitives in
terms of which sentences are constructed. Examples of deep cases are Agent, Patient, and
Theme, although the contents of comprehensive lists vary from one presentation to
another. See also CASE GRAMMAR.
deep structure A notion that is central to transformational grammar’s (Chomsky 1965)
description of the *syntax of natural language. Deep structure is where the predicate—
argument relationships are expressed, and both relates the words of a sentence to its
meaning and expresses grammatical generalizations. Within the ‘standard theory’ of
transformational grammar the context-free base generates deep structures and a set of
transformations that map these to the surface structure. In *natural-language processing,
sentences can be analysed by either fully or partially running transformations in reverse.
Deep Thought See COMPUTER CHESS.
default A value that is used when no other value has been supplied. Defaults may be
stored in a configuration file, or they may be embedded in a program or permanently
encoded into ROM, or read from the settings of a DIP switch. Nearly every application
has defaults for something. For instance, word processors have default fonts, justification,
and page length, World Wide Web browsers have default home pages, compilers have
default optimization levels, and drawing programs have default palettes and pen thickness.
default rules A method for resolving conflicts and dealing with inconsistencies that
arise in *inheritance systems and *non-monotonic reasoning. Default rules can contain
components that define normality so that exceptions do not cause conflicts. For example,
knowing that birds fly and Fred is a bird is inconsistent with knowing that Fred is a
penguin. Attaching a ‘normal’ predicate to the rule that birds fly and knowing that
penguins are not normal birds resolves the problem.
defect skipping A method used on obsolete disk drives by which a media defect on a
magnetic disk *track was avoided such that no data were written in the vicinity of the
defect.
deferral Delaying the presentation of output to the graphics screen to improve efficiency.
deferred addressing Another name for indirect addressing.
deferred approach to the limit (Richardson extrapolation) See EXTRAPOLATION.
definition The fineness of spatial sampling of a digital image and hence a measure of
image sharpness and contrast. It is expressed in pixels.
deflation See POLYNOMIAL.
defrag Short for defragmentation.
defragmentation The act of consolidating the fragments of unused space in memory
into a smaller number of larger areas. The requirement to do this can arise either in the
allocation of random-access memory or of blocks on a disk. See also FRAGMENTATION.
degree 1. (of a vertex of a *graph) The number of edges incident with the vertex, i.e. that
emanate from that vertex. In a directed graph, the indegree is the number of edges
entering a vertex while the outdegree is the number leaving a vertex. 2. (of a node in a
*tree) The number of children of that node, i.e. the number of subtrees rooted at that node.
More correctly, this is the outdegree of the node. 3. (of a tree) The maximum degree of
all the nodes in the tree. 4. (of a polynomial) See POLYNOMIAL.
degree of precision The degree of polynomials that a given rule for *numerical
integration integrates exactly. The same concept can be applied in other areas, such as the
solution of ordinary differential equations. It is related to the concept of *order of
approximation, and provides a measure of the approximating power of a given method.
degrees of freedom In statistical analysis, the number of independent observations
associated with an estimate of variance (see MEASURES OF VARIATION) or of a component
of an *analysis of variance. The simplest example is in estimating the variance of a sample
of n observations, where the degrees of freedom is n − 1, the divisor of the sum of squared
deviations from the sample mean. More generally, the degrees of freedom, f, is the
difference between the number of *parameters in a given model, and a special case of that
model with fewer parameters. The number of degrees of freedom is required when
selecting a particular instance of the *chi-squared distribution, *Student’s t distribution, or
*F distribution.
Dekker’s algorithm An algorithm, based on a combination of successive linear
*interpolation and binary search, that finds a zero of a function that changes sign in a
given interval.
Delaunay triangulation A recursive algorithm for splitting an area into triangles that
ensures that the circle circumscribing the vertices of a triangle contains the vertices of no
other triangle within it. This avoids long thin triangles, for example. See also
TRIANGULATION.
delay differential equations *Ordinary differential equations where the derivatives
depend on values of the solution at the current value and several previous values of the
independent variable. The simplest form is
where τ(x)≥0. To determine a solution, y(x) must be specified on an interval a*≤x≤a where
a* depends on the values taken by τ(x).
Most of the commonly used step-by-step methods for ordinary differential equations
can be adapted to problems of this form, although they have not yet been developed to the
same extent. It is necessary to incorporate an *interpolation scheme to approximate
at values that will not usually coincide with a previously computed approximation.
delayed branch A *conditional branch instruction found in some *RISC architectures
that include *pipelining. The effect is to execute one or more instructions following the
conditional branch before the branch is taken. This avoids stalling the pipeline while the
branch condition is evaluated, thus keeping the pipeline full and minimizing the effect of
conditional branches on processor performance.
delay line An electronic device that produces a finite accurate time delay between a
signal imposed on its input and the appearance of the same signal at its output. These
devices may be used as short-term signal stores or to provide accurate delays in signalprocessing circuits. In an acoustic delay line electrical signals are converted into a
pattern of acoustic (sound) waves that travel through a medium between a transmitter and
receiver.
Delay lines were the most common storage devices in *first generation computers: this
acoustic memory was used, for example, in EDSAC, EDVAC, pilot ACE and ACE,
UNIVAC 1, and LEO 1. In EDSAC (1949), quartz crystals were used as transducers and
the ultrasonic pulses were passed along a tube of mercury about 5 feet (1.5 metres) in
length. The delay was approximately 1 millisecond but it enabled nearly 1000 pulses to be
stored. Later acoustic memory used magnetostrictive transducers and nickel-iron wire,
with the electrical signals converted into stress waves.
Although delay lines as storage devices have been superseded by more cost-effective
components they are still to be found in almost all computer *motherboards, where they
are used to equalize the delay between signals in parallel busses, as found with most
microprocessors operating at 100 MHz or more. RCB tracks are used to present equal path
lengths for each signal, enabling fast clocking to be used.
delay-power product A figure of merit that is frequently quoted as characteristic of a
particular *logic family. It is the product of the *propagation delay (usually in
nanoseconds) and the power dissipation (usually in milliwatts) of a gate typical of the
family; it has dimensions of energy, the usual unit being the picojoule, pJ. The smaller the
delay-power product is, the better the logic family is considered to be.
delete 1. To remove or obliterate a record or item of data, such as by overwriting data on
disk or tape with new data or null characters. 2. To remove permanently an object, such as
a character, word, paragraph, or graphic, from a document, or to remove an entire
document file from permanent storage. In either case there is usually a period of grace
during which the decision to delete can be rescinded, and after which the action is
irreversible. 3. One of the basic actions performed on *sets that, when applied in the form
removes the element el from S; if el was not present in S the action has no effect on the
membership of S. See also OPERATIONS ON SETS.
delimiter A symbol that serves to mark the beginning or end of some programming
construct, e.g. the semicolon that separates statements in Algol-like languages, the period
that marks the end of a sentence in Cobol, the END IF that marks the end of an IF
statement in Visual Basic.
Dell A US multinational computer technology company, founded in 1984. One of the
largest technological corporations in the world, it develops, sells, repairs, and supports
computers and related products and services.
delta PCM (delta modulation) See PULSE CODE MODULATION.
demand paging A method of dealing with a situation in which a *process requires
access to a *page of memory that has been written to backing store. Some systems attempt
to forecast the pattern of demand for pages; other systems rely on demand paging in which
no attempt is made to forecast the pattern of behaviour, but pages are transferred from
backing store into main memory on demand as required by the individual process.
demand reading, writing A process in which data is transferred directly between a
processor and a storage device. This is a normal mode of operation for main memory but
is sometimes applied to other devices.
Demilitarized Zone See DMZ.
demodulator In general, a device that recovers the modulation (data, speech, video,
etc.) separating the modulating signal from the carrier (or carriers). In modems, it is the
device that receives analogue signals as input and produces digital data as output.
Demodulators use the inverse of the methods used by *modulators, which encode data as
analogue signals. See also MODULATION, MODEM.
demon In some operating systems, the process that controls a peripheral device. (The
word is probably a contraction of device monitor.) By an extension of meaning the
word is sometimes used for any process within the operating system, even if the process is
not actually responsible for a peripheral device.
de Morgan’s laws The two laws of a *Boolean algebra that provide a method of
expressing the complement of a complex expression in terms of the complements of
individual components:
The pair is self-dual. The term de Morgan’s laws is often used to describe instances of
these laws as they apply in particular cases, e.g. to sets or to logical expressions. The laws
are named for Augustus de Morgan.
demultiplexer 1. In communications, a device that performs the reverse function to a
*multiplexer. 2. A *combinational circuit that converts from n inputs to 1 of m outputs,
where m ≤ 2n.
See also DECODER/DEMULTIPLEXER.
dendrogram See CLUSTER ANALYSIS.
denial An assertion taking the form that a particular statement is false.
denial of service The prevention of an authorized user from processing information, for
example because that information has been intentionally corrupted or else because the
processing unit is kept busy by spurious tasks. See also THREAT.
denotational semantics An approach to the *semantics of programming languages in
which the meaning of a program in a particular language is given by a valuation function
that associates with each well-formed syntactic construct of the language an abstract
value, e.g. a term with a number, a test with a truth value, or a command with a function
on states. These valuation functions are compositional or recursive in nature: the value of
a program is specified as a function of the values denoted by its syntactic subcomponents.
To define valuation functions it is usually necessary to solve functional equations using
*fixed point methods.
This approach was initiated and developed by Christopher Strachey and Dana Scott to
provide a semantic theory that was more abstract than *operational semantics. It is less
abstract than *axiomatic semantics.
density 1. A measure of the amount of information in a given dimension of a storage
medium. The density of information on a disk is almost always a fixed number of bits per
sector, sectors per track, and tracks per disk. For magnetic tape it is the amount of
information recorded per unit length of tape, usually in bits per inch or bits per millimetre.
In general the number of flux reversals per inch (or per mm) is different because of
redundancy in the coding. The density is stated for a single track. A tape transport can
often read tapes with different densities under program control. 2. See PACKING DENSITY.
denumerable set See COUNTABLE SET.
deposit To place a value in a register in a processor, or in a word in memory.
depth 1. (of a node in a tree) The length of the unique path from the root of the tree to
the node. Thus if a node A is the root node then its depth is zero, otherwise its depth is one
greater than that of its parent.
In some texts, depth of a node is synonymous with *level of a node. 2. (of a tree) The
maximum depth of any node in a tree. The depth of a given tree will have the same
numerical value as the *height of that tree.
depth-balanced See BALANCED.
depth buffer See Z-BUFFER.
depth cueing Modelling atmospheric attenuation by rendering distant objects at a lower
intensity than near ones, hence giving them the appearance of depth.
depth-first search A search of a directed *graph, and hence of a *tree, conducted as
follows. An initial starting vertex u is selected and visited. Then a (directed) edge (u, v)
incident upon u is selected and a visit is made to v. Let x be the most recent vertex visited.
Select some unexplored edge (x, y) incident upon x. If y has not been previously visited,
visit y and proceed from there. If y has been previously visited select another edge incident
upon x. Having completed the search through all paths beginning at y, return to x and
continue to explore the edges incident upon x.
Depth-first searches of graphs play an important part in the design of efficient
algorithms on graphs, in game theory, heuristic programming, and in artificial intelligence.
See also ITERATIVE DEEPENING.
Compare BREADTH-FIRST SEARCH.
deque Derived from double-ended queue. A linear *list where all insertions, removals,
and accesses are made at the ends. See also QUEUE, STACK.
derivation sequence In formal language theory, a sequence of *words of the form
(for notation see semi-Thue system). For a *context-free grammar, such a sequence is
leftmost (or rightmost) if,
wi+1 is obtained from wi by rewriting the leftmost (or rightmost) nonterminal in wi. Such
sequences exist for all derivable words.
derivation tree A way of indicating how a *context-free grammar derives a particular
word. The *leaf nodes of the tree are terminals, the other nodes are nonterminals. For
example, the tree shown in the diagram shows a derivation of aabbcbb from the
grammar that is shown. Many different *derivation sequences can correspond to the same
derivation tree.
Derivation tree.
derivative (of a *formal language)) The left-derivative of a language L, with respect
to a word w, is
where ww′ is the *concatenation of w and w′. Similarly a right-derivative is
DES Abbrev. for Data Encryption Standard.
descendant (of a node, A, in a tree) Any node, B, such that A is an *ancestor of B.
descriptor Stored information that describes how other information is stored, e.g. in an
array, record, or file. By referring to the descriptor, a program can interpret the other data.
See also FILE DESCRIPTOR, PROCESS DESCRIPTOR.
design database A database concerned with design data, such as that used by
*computer-aided design tools. Access to a design database will often be over a long period
of time as opposed to the short processing times of *transactions in conventional
databases.
design pattern In *program design, a template that provides a general solution to a
common problem that recurs in different forms and contexts. The term is mainly used in
*object-oriented programming. In practice, many different program designs present some
common characteristics; for example, the classes involved in the designs may play similar
roles, have similar attributes, or their relations may present some given general form. A
design pattern is generally given a name accompanied by a description of the classes
involved and of their relations or interactions. Many design patterns have been identified
and documented, and whether or not to use them is a decision for the program designer.
design review See REVIEW.
desktop 1. (desktop computer, worktop) An entire computer that sits on a desk or
table, a PC or Macintosh being examples. It usually consists of: a *display, usually colour
but sometimes monochrome; a system box containing the processor, memory, disk
drives, power supply, and communication interfaces; a *keyboard; a *pointing device,
often a mouse. Although the desktop computer is relatively cumbersome compared with a
*laptop computer of equivalent price, it currently has a significantly better
price/performance ratio. A recent trend is toward ‘all-in-one’ desktop machines in which
the system box is integrated into the display, as exemplified by the more recent *iMac
models. 2. Part of a *graphical user interface which invites the user to imagine that some
or all of the screen is an actual desktop on which actions analogous to those occurring on a
physical desktop can be carried out. These include the opening and closing of folders, the
entry and modification of text, the disposal of unwanted material into a wastebasket, and
the use of communication systems analogous to telephones and mailboxes. The analogy is
supposed to make life easier for office workers unused to computers.
desktop publishing (DTP) The use of a computer system or *workstation together
with a *page printer to perform many of the functions of a print shop. These include page
layout and design, the choice of *font, and the inclusion of diagrams and pictures. DTP
software normally produces its output in a *page description language that is then
interpreted by the page printer to the best of its ability. The DTP program can take its input
from, for instance, text files from *word processors or *text editors, pictures from
graphics programs, or digitized images from *scanners. Pagemaker, Framemaker, Ventura,
QuarkXpress, and InDesign are examples of DTP software.
The distinction between DTP and *word processing is becoming less marked as each
new version of word-processing software contains features formerly only available in DTP
packages.
destructive read A read operation that alters the contents of the accessed memory
location and must be immediately followed by a rewriting of the contents in order to
preserve them. This was the case for example with magnetic core store.
determinant A number associated with a *square matrix of numbers. The determinant
of an n×n matrix A is denoted by det(A) or ǁAǁ and given by
where the sum is taken over all n! *permutations
of the integers 1,2,…,n. par(σ), the parity of Σ, is either +1 or −1 depending on whether Σ
is an even permutation or an odd permutation.
deterministic Denoting an algorithm, machine, method, process, procedure, program,
etc., the resulting behaviour of which is uniquely determined by the inputs and initial state.
See also NONDETERMINISM, PSEUDORANDOM, STATISTICAL METHODS.
deterministic language Any *context-free language recognized by a deterministic
*pushdown automaton. An example of a simple nondeterministic language is the set of all
palindromes over an alphabet with two or more letters. A language is deterministic if and
only if it is LR(k) for some k (see LR PARSING).
deterministic Turing machine See TURING MACHINE. See also NONDETERMINISM.
DEUCE See ACE.
developer A person or company that produces software. The term is particularly used to
describe approved producers of commercial applications software extending the use of
existing software (e.g. ‘a Windows developer’).
development life cycle See SOFTWARE LIFE CYCLE, SYSTEM LIFE CYCLE.
device 1. In general, any printer, storage, display, input, or output mechanism that may
be attached to a computer system. 2. On some operating systems, the name ‘device’ is also
associated with a destination. The output from or input to a process may be connected to a
device, file, or another process. In most computers, printers, displays, keyboards, and
other input mechanisms are regarded as devices.
device coordinates (DC) A device-dependent coordinate system whose coordinates are
typically in integer units (e.g. raster lines and pixels).
device driver A program, or part of a program, used to control the detailed operation of
an input or output device connected to a computer system. In many cases the device
drivers are embedded as part of the *operating system, and different device drivers are
written to conform to an agreed set of standards governing the way in which the user’s
application program communicates with the device driver. This allows programs to be
written in such a way as to be able to use any device for which a suitable device driver has
been produced. The inclusion of the appropriate device drivers may take place when the
operating system for a particular configuration is being generated. Alternatively when the
system is first started it may determine what devices are connected, and incorporate the
corresponding device drivers. In some cases this approach is taken even further, and
attaching a new device will cause the system to locate and include the corresponding
device drivers. See also PLUG-AND-PLAY.
DFD Abbrev. for dataflow diagram.
D flip-flop A clocked *flip-flop having a single D input (see diagram). The flip-flop Q
output will take on the current state of the D input only when a given transition of the
clock signal occurs between its two logic states, i.e. from low to high voltage level
(positive-edge triggered) or from high to low level (negative-edge triggered).
D flip-flop.
DFT Abbrev. for discrete Fourier transform.
DHCP (Dynamic Host Configuration Protocol) A protocol that allows a device
on a *TCP/IP network to configure its operational parameters automatically. The device
uses DHCP to negotiate with a DHCP server, which allocates it an IP address from a pool
it manages and appropriate values for the *subnet mask and other parameters. DHCP
removes the need for manual configuration of these parameters on every device and
provides a convenient method for them to share a limited pool of IP addresses. It is useful
even on small networks and essential on large ones.
http://tools.ietf.org/html/rfc2131
• The DHCP specification
dhrystone benchmark A program designed to be used to compare the performance of
compilers for a particular high-level language (especially for Ada). The program does not
compute anything useful, but it is syntactically and semantically correct. The distribution
of statements is approximately 53% assignments, 32% control, and 15% procedure or
function calls. This mix is considered to be representative of typical use when a high-level
language is used for real programs. (The name derives as a contrast with *whetstone
benchmark.)
DHTML Abbrev. for dynamic HTML.
diagnostic routine A routine within a program that is entered as a result of some error
condition having been detected, and serves to analyse the cause of that error or to provide
information that is subsequently used for such analysis. A typical diagnostic routine might
attempt to isolate the cause of the error to a particular hardware or software subsystem, or
simply record the values of the major data objects at the time that the error occurred.
diagonalization A proof technique in *recursive function theory that is used to prove
the unsolvability of, for example, the *halting problem. The proof assumes (for the sake of
argument) that there is an effective procedure for testing whether programs terminate.
Under this assumption the method of diagonalization allows a contradiction to be derived.
From this it is deduced that there is no such effective procedure.
The technique was developed by G. Cantor to prove that the *cardinality of the real
numbers is greater than the cardinality of the integers. In this application the real numbers
are enumerated in the form of a grid. A real number is then constructed, using the diagonal
of the grid, that is not part of the original enumeration.
The technique was also used by J. Richard to generate a paradox about the namability
of real numbers. This paradox (together with the ‘liar paradox’ of antiquity) is reputed to
have prompted K. Gödel to apply a similar technique of diagonalization in constructing a
number-theory formula not provable in formal arithmetic. See GÖDEL’S INCOMPLETENESS
THEOREMS.
diagonal matrix A square matrix A in which aij = 0 if i≠ j. The *inverse of a diagonal
matrix, if it exists, is particularly easy to calculate and is itself diagonal.
diagrammatic technique A style of analysis or design that relies primarily on the use
of diagrams (as opposed to text or databases). The advantage is the direct appeal to users,
the disadvantage the limitation to two dimensions. See ERA DIAGRAM, JSD, NASSISHNEIDERMAN CHART, SADT, SSADM, YOURDON.
dialler A program on a computer that automatically dials a number to log on to a
particular website. Diallers are sometimes installed on a computer without the user’s
knowledge in order, for example, to lead the user to use a costly telephone link.
dialogue box In a *graphical user interface, a simple *window containing a title bar, a
message, and one or more response *buttons. This kind of window will normally allow no
other actions to take place until a button has been pressed. In the simplest case a single
button marked ‘ok’ is pressed to acknowledge the message; in other cases there may be a
choice of buttons such as ‘yes’ ‘no’ ‘cancel’ or ‘replace’ ‘create backup’. Dialogue boxes
may contain more complex objects such as *radio buttons, *pull-down menus, or *scroll
bars.
dialogue management The methods and procedures governing the way that
information is exchanged between the user and the computer system. It involves the
consistent formatting of prompts, check boxes, lists of options, sliders, messages, and
other constructs. There are modal dialogues, where the user can do nothing else until
the action required to satisfy the dialogue has been taken; this can be as simple as
acknowledging a message. Conversely, a modeless dialogue is one that may be
returned to after attending to other matters. See also DIALOGUE BOX.
dictionary Any data structure representing a set of elements that can support the
insertion and deletion of elements as well as a test for membership. See also DATA
DICTIONARY, SYMBOL TABLE.
diff 1. A utility that compares two files and records the differences between them. It is a
common tool used by *source code control systems to manage software changes. 2. The
act of comparing two files.
Difference Engine See BABBAGE, CHARLES.
difference equations Equations that have the same general form as *recurrence
relations; however, the term also refers to situations in which the solution is not
determined recursively from initial conditions. Difference equations play a large part in
numerical computation. The equations are sometimes expressed in terms of differences of
function values rather than function values themselves. The standard difference
representations are:
forward difference,
backward difference,
central difference,
Difference equations arise in the application of the *finite-difference method.
differential backup See FULL BACKUP.
differential dump Another name for change dump.
differential equations Equations for one or more unknown functions involving
derivatives of those functions. The equations describe changes in a system, usually
modelling some physical or other law. Except in simple cases the solution cannot be
determined analytically. See ORDINARY DIFFERENTIAL EQUATIONS, PARTIAL DIFFERENTIAL
EQUATIONS.
differential PCM (DPCM) See PULSE CODE MODULATION.
diffuse reflection Reflection due to light being absorbed by a thin layer under the
surface of an object then reradiated. The radiated light is distributed uniformly from the
point of incidence on the same side of the surface as the incident light. The reflected light
has a spectrum equal to the product of the spectrum of the incident light and the
absorption spectrum of the surface.
Diffuse reflection varies between the case when all the light is absorbed so that the
surface is invisible and the other extreme when the surface reflects back all light from the
source. Diffusely reflected light makes a surface appear dull with a matt finish that is
independent of the viewing direction. Compare SPECULAR REFLECTION.
diffusion address See also BROADCAST DOMAIN.
digital Operating by, responding to, or otherwise concerned with the use of digits (i.e.
discrete units) to represent arithmetic numbers, approximations to numbers from a
continuum, or logical expressions/variables. See also DISCRETE AND CONTINUOUS
SYSTEMS.
digital audio tape (DAT) A *helical scan magnetic-tape system originally designed for
audio recording, but adapted for computer use (e.g. in backup systems) using the DSS
(digital data storage) format. The cartridge is very compact but the recording method
allows a capacity of up to 80 gigabytes, depending on the precise format used.
digital camera A form of camera in which film is replaced by a semiconductor CCD
array, which records the picture and stores it within the camera in a (usually) replaceable
memory module. Often a viewing screen is built in allowing immediate reviewing of the
pictures stored. Pictures can be transferred to a computer for later viewing, editing, and
printing.
digital cassette A particular form of *magnetic tape cartridge.
digital certificate See CERTIFICATE.
digital circuit An electronic circuit that responds to *digital signals and produces digital
signals as its output.
digital computer A computer that operates on discrete quantities (compare ANALOGUE
COMPUTER).
All computation is done within a finite number system and with limited
precision, associated with the number of digits in the discrete numbers. The numerical
information is most often represented by the use of two-state electrical phenomena (on/off,
high voltage/low voltage, current/no current, etc.) to indicate whether the value of a binary
variable is a ‘zero’ or a ‘one’. Usually there is automatic control or sequencing (through a
*program) of operations so that they can be carried through to completion without
intervention. See also DISCRETE AND CONTINUOUS SYSTEMS.
digital copier A document copier that scans a page (see SCANNER), converts it to a
digital image, and then prints it by means of a *page printer.
digital data storage See DIGITAL AUDIO TAPE.
digital data transmission Digital data uses discrete discontinuous signals to represent
its meanings. In a DC (direct current) transmission system, different voltage (or current)
values are used to represent the values (usually 0 and 1). A digital transmission has a very
low error rate and can be sent at very high speeds. Weak signals can be regenerated with
low probability of cumulative error. Since all signals are made up of 0s and 1s, signals
from many sources can be readily multiplexed using digital techniques. See
MULTIPLEXING.
For transmission over longer distances (over about 50 to 1000 metres) it is common to
insert transformers and/or *optoisolators to improve the signal integrity by breaking
ground loops and eliminating *common mode interference. Alternative methods use
modems, fibre-optic cables, or wireless links. See also MODULATION.
digital design (logic design) The design of circuits and systems whose inputs and
outputs are represented as discrete variables. These variables are commonly binary, i.e.
two-state, in nature. Design at the circuit level is usually done with *truth tables and *state
tables; design at the system level is done with *block diagrams or *digital design
languages.
digital design language A high-level language, often called a *register transfer
language, used to facilitate the description and manipulation of digital systems and their
interconnection. See also CHDL, DIGITAL DESIGN.
Digital Equipment Corporation (DEC) A US computer manufacturer, founded by
Ken Olsen and Harlan Anderson in 1956 to exploit the research work that had led to the
development of the *Whirlwind computer at the Massachusetts Institute of Technology. It
is one of the most famous and spectacular examples of the commercial exploitation of
university research. Digital’s PDP8 and PDP11 computers were the archetypal
minicomputers of the late 1960s to the early 1980s; they were followed by the VAX range
of midrange machines and, in 1992, by the Alpha line. Digital’s VMS operating system for
the VAX was much admired but Digital realised that the future lay with open systems and
committed itself to this approach through its OSF/1 operating system (see OSF). At the
end of the 1980s Digital was the second largest computer company in the world but it
failed to accommodate itself to the changes that were taking place in the world of
computing and its sales fell dramatically. In 1998 it was bought by *Compaq.
digital filtering The employment of *digital signal processing techniques to effect the
*filtering of a signal.
digital halftone See HALFTONE.
digital image An image consisting of data (specifically a set of elements) defined on an
n-dimensional regular grid that has the potential for display. These elements are referred to
as *pixels. The pixels in different images may represent a variety of types of information,
such as temperature, pressure, velocity, terrain height, or tissue density. The regular grid is
frequently over a two-dimensional space but can be three-dimensional, and even fourdimensional if sampling over time is also included. See also IMAGE PROCESSING.
digital logic A methodology for dealing with expressions and *state tables containing
discrete (usually two-state) variables: in this sense the term is synonymous with *Boolean
algebra (see also MULTIVALUED LOGIC). The term is also applied to the hardware—
components and circuits—in which such expressions and tables are implemented. See also
COMBINATIONAL CIRCUIT, DIGITAL DESIGN, LOGIC CIRCUIT, Q-ARY LOGIC, SEQUENTIAL
CIRCUIT.
digital signal A waveform or signal whose voltage at any particular time will be at any
one of a group of discrete levels, generally two; a two-level signal is sometimes called a
binary digital signal or binary signal. In binary logic circuits, in which only two
discrete voltage levels are used, one level will correspond to logic 1 (true), usually the
high level, and the other will correspond to logic 0 (false).
digital signal processing (DSP) The branch of *signal processing that uses digital
systems to operate on signals. The advantages of digital over analogue signal processing
are that memory is more easily employed (so that time may be re-run in different speeds
and directions) and that a wider range of arithmetic operations and algorithmic complexity
is possible; the main advantage, however, is that the possible precision is arbitrarily high.
Where filtering of continuous signals is implemented digitally, the accuracy of the filter
bandwidth, cut-off frequencies, and skirt slopes is not dependent on the value of passive
components, which may change with time and temperature. A further advantage is that the
function implemented may be altered by programming the digital function, allowing the
implementation of variable bandwidth filters and the like. The main disadvantage is that in
some instances digital techniques are slower than analogue techniques. Many specialized
digital devices have been developed that retain the advantages but nevertheless operate at
high speed, at the cost of flexibility.
digital signature An *authentication code appended to a file that indicates the author of
the file. Most digital signatures use *public key encryption. A *checksum derived from the
document is encrypted using the author’s private key and attached to the file. If decrypted
using the corresponding public key supplied by the author, this will match the recomputed
checksum; if decrypted using any other key, it will not. Digital signatures are very
important for verifying the source not only of electronic documents but also of software
components. See also CERTIFICATE.
digital sorting Another name for radix sorting.
digital system Any system handling digital (discrete) *signals. See DISCRETE AND
CONTINUOUS SYSTEMS.
digital-to-analogue converter See D/A CONVERTER.
digital versatile disk See DVD.
digital video Video output based on digital rather than analogue signals. See also
CODEC.
digital video disk See DVD.
digital video interactive See DVI.
digital video interface See DVI.
digitization The process of quantizing a *signal and representing it in digital form. See
also A/D CONVERTER, DIGITIZER, DISCRETE AND CONTINUOUS SYSTEMS, QUANTIZATION.
digitizer 1. A device that produces a digital representation of an object. Digitizers use
various technologies—optics, acoustics, magnetostriction, electromagnetics, resistance,
capacitance, etc.—to calculate the position of the stylus or *puck that is used to input the
data values. A digitizer can be two- or three-dimensional. A common application is to
capture information related to schematic line drawings. 2. Another name for quantizer, but
generally implying that the output is encoded into *binary numbers.
digraph Short for directed graph. See GRAPH.
Dijkstra, Edsger (Wybe) (1930–2002) Dutch computer scientist. Dijkstra held a
series of academic posts until his retirement in 2000 and also worked for the Burroughs
Corporation in the 1970s. He is best known for his theoretical work on *structured
programming (both senses) and *program correctness proofs. His other achievements
include *Dijkstra’s algorithm, the *semaphore, work on the first Algol 60 compiler, and
many essays on programming.
Dijkstra’s algorithm A method, developed by E. W. *Dijkstra in 1959, to find the
*shortest path from a specified *vertex in a *weighted graph to all other vertices in the
graph.
DIL (dual in-line) See DIL SWITCH, DIP.
DIL switch A device similar in form to a *DIP, but instead of an integrated circuit the
package contains a row of small switches making or breaking the circuit between opposite
pairs of legs. DIL switches are commonly used for setting the default state of printers,
terminals, etc.
dimension (dimensionality) (of an *array) The number of subscripts or indexes needed
to locate any element in the array.
diminished radix complement Another name for radix-minus-one complement.
diminishing increment sort Another name for Shell’s method.
DIMM (dual in line memory module) A printed circuit board carrying RAM chips
which at present (2008) can provide up to 1 Gbyte of memory on a module approx. 135
mm × 25 mm. DIMMs are typically plugged into edge connectors on a motherboard. Bus
speeds up to 667 MHz are common.
DIN connector DIN is short for Deutsches Institut für Normung eV, the standardssetting organization for Germany. A DIN connector is a connector that conforms to one of
the many standards defined by DIN. These connectors are used widely in personal
computers and audio equipment. The ubiquitous round DIN connector and its miniature
cousin (the mini DIN connector) are two of a wide range of connectors with from
three to more than one hundred pins.
dingbat A graphical character used for decoration in displayed text. Dingbat fonts
contain collections of such characters.
diode An electronic device, generally of semiconductor material, that has two terminals
and is capable of allowing current flow in one direction only. The terminals are called the
anode and cathode. The diode presents a very low (high) impedance when a *forward
bias (*reverse bias) is applied.
diode-transistor logic See DTL.
DIP 1. (dual in-line package) An *integrated circuit encapsulated in a rectangular plastic
or ceramic package with a row of metal legs down each of the long sides (see diagram).
The legs are terminating pins. The number of terminations and hence the package size is a
function of the number of external connections to the chip. The legs can either be soldered
into holes in a *printed circuit board or inserted into a *chip socket. 2. Abbrev. for
document image processing.
DIP.
direct-access storage device (DASD) One of a class of storage devices in which
physical *records are addressable and can therefore be accessed in any order: a sequential
search is not required. For all practical purposes direct-access storage is synonymous with
disk storage.
direct addressing The ‘normal’ mode of addressing in which the address specified in
the instruction is the *absolute address to be used. See also ADDRESSING SCHEMES.
direct-coupled machines A system in which two (or more) machines are connected
by a high-speed link in order to perform the total workload. Typically a small machine, the
master, deals with file editing, job submission, and all scheduling. Larger jobs that
would take too long to process on this small machine are passed to a larger machine, the
slave, for processing, the results being returned to the user via the small machine.
direct data entry (DDE) See DATA ENTRY.
direct digital control (DDC) Control of a process by a digital computer, the
information being supplied to the process as (appropriately timed) sequences of digits. See
also NUMERICAL CONTROL.
directed graph (digraph) See GRAPH.
directed set A subset X of a *partially ordered set S, such that every finite subset of X
has an *upper bound in X itself. As a special case of this, a chain is a countable subset of
the form
where ⊆ denotes the partial ordering on S.
directed tree See TREE.
direction keys See ARROW KEYS.
directive Another name for pseudoinstruction.
direct memory access (DMA) A method whereby I/O processes can obtain access to
the CPU’s memory while a program is running. This is accomplished by permitting the
I/O controller or channel that has been previously instructed to move a block of data to or
from the memory to temporarily take control of the memory for (usually) one *memory
cycle by specifying the memory address, thus allowing a single word (or group of words if
the memory is so organized) to be read or written. The method is therefore also referred to
as cycle stealing. The timing requirement is normally that of the slower external device
and is prompted by the ability of that device to receive or provide desired data, hence the
alternative synonym data break.
directory A means of locating data items, usually files. A directory can be regarded as
establishing a set of links between named data items and their locations in a *direct-access
storage device. In many systems the directories are highly structured; their organization
reflects the relationships between various categories of file. For example, the directory
may allow one user to have other subordinate users, and permit controlled access by these
subordinate users to their own and others’ files.
A directory may contain the names of files and of other directories. For instance, if
directory x contained directory y, which contained file z, then it would be necessary to
include x, y, and z in any reference to the file. See also ACCESS PATH.
directory services A facility to control all the objects that interact with a network
(users, files, directories, peripheral devices, services, etc.) and govern how they can use
each other. In particular, the rights of users to access resources or to manage other users
can be specified. The various objects are placed into a logical organizational structure,
which need not match the physical structure of the network. For example, a research team
spread across two campuses, and so two local area networks, can be treated as a single
group; if they were later to merge onto one site, and one LAN, their appearance to on the
network would not change. Active Directory was introduced with Windows 2000 Server
edition and has been developed in subsequent Windows releases.
directory tree A directory hierarchy. The root directory forms the top level in the
hierarchy and is not contained by any other directory. A directory within another directory
is known as a *subdirectory.
direct product (product group) of two *groups G and H with group *operations ρ and
τ respectively. The group consisting of the elements in the *Cartesian product of G and H
and on which there is a *dyadic operation ∘ defined as follows:
The identity of this group is then just (eG,eH), where eG and eH are the identities of groups
G and H respectively. The inverse of (g,h) is then (g−1,h−1).
These concepts can be generalized to deal with the direct product of any finite number
of groups on which there are specified group operations.
DirectX An applications programming interface in Windows that allows access to the
audio and graphics hardware.
Dirichlet region See VORONOI DIAGRAM.
disable 1. To make a device inactive. 2. To suppress the action of an interrupt.
disarm To put a device into a state that is still serviceable but requires a preparatory
action before it can be used.
disassembler A program that attempts to translate machine code back into assembly
language as an aid to debugging. A simple disassembler operates on one instruction at a
time, translating the operation code to the appropriate mnemonic, displaying register
references and addressing modes in the symbolic form used in the assembly language, and
converting addresses into hexadecimal or symbols. More ambitious disassemblers try to
show the structure of the program by replacing branch destinations with alphanumeric
symbols, and placing the corresponding symbol as a label in the appropriate position in the
program.
disc UK spelling of disk, sometimes preferred in UK computer literature.
disconnected graph See CONNECTED GRAPH.
discourse understanding The subproblem of *natural-language processing of
determining the meaning of a text or dialogue. Discourse understanding is a specialization
of *natural-language understanding in that it particularly addresses the problem of the
meaning of utterances in the context of the whole text or dialogue, and with particular
reference to how the discourse unfolds. In contrast, mainstream natural-language
understanding typically takes no account of pragmatic setting and analyses utterances in
isolation from the text or dialogue in which they occur.
discrete and continuous systems Systems by which *signals are recorded,
communicated, or displayed may represent the data in discrete form (e.g. as integers) or in
continuous form (as ‘real’ numbers). An important classification results from the choice of
discrete or continuous representation of the amplitude, and of discrete or continuous
representation of the time at which the amplitude occurred. *Analogue computers employ
physical quantities that are approximations to continuous representations. Discrete
representations of both time and amplitude are required by *digital computers.
The question of whether the signal (or its source) is intrinsically discrete or intrinsically
continuous is unresolvable: any experiment to determine this would require infinite
*bandwidth (or infinite time) and infinite *signal-to-noise ratio, and so would be
impossible in practice. All that is in question is whether a discrete or continuous
representation is more convenient, or useful, or appealing.
Signals that appear intuitively to be continuous-time or continuous-amplitude, but for
which a discrete-time or discrete-amplitude representation is preferred, are said to have
been time-quantized or amplitude-quantized. Time quantization is either adequate
or inadequate according to *Nyquist’s criterion. Time-quantized signals are said to be
sampled, and the systems that handle them are called sampled-data systems.
Amplitude quantization worsens the signal-to-noise ratio, an effect describable as the
introduction of *quantization noise.
Time and amplitude must both be quantized for processing by digital computers (or by
other digital devices), which operate at finite speeds on finite amounts of data held to
finite precisions. The same physical constraints operate, although in a different way, to
limit the extent to which analogue computers (or other analogue devices) can approximate
to the continuous representation of signals.
See also QUANTIZATION.
discrete channel A communication *channel whose input and output each have an
alphabet of distinct letters, or, in the case of a physical channel, whose input and output
are *signals that are discrete in time and amplitude (see DISCRETE AND CONTINUOUS
SYSTEMS). The size of the alphabet, or the number of amplitude levels, is usually finite.
The discrete memoryless channel (DMC) has the property that its treatment of a symbol
input at a certain time does not depend on the symbols input, or its treatment of them, at
any earlier time.
The discrete memoryless channel (DMC) has the property that its action depends on its
inputs at a number of earlier times.
See also CHANNEL CODING THEOREM, SHANNON’S MODEL.
discrete component An electronic component, resistor, capacitor, transistor, etc.,
mounted individually on a circuit board and not forming part of an *integrated circuit.
discrete cosine transform (DCT) A mathematical operation that analyses an arbitrary
waveform into a summation of cosine functions:
where the waveform f(x) is approximated by N samples at x = 0,1,…N−1.
Discrete cosine transforms find application in image-compression techniques, for
example in *JPEG.
discrete event simulation See SIMULATION.
discrete Fourier transform (DFT) See FOURIER TRANSFORM.
discrete mathematics A branch of mathematics dealing with finite sets and
calculations (rather than infinite processes such as taking limits and convergence or
differentiation of *continuous functions). Its boundaries are not precise but its study
includes parts of logic, computer science, statistics, and operations research. Some
important problems that may be regarded as part of discrete mathematics are finite sets
(see SET), *algorithms, graph theory, *formal language theory and some topics in abstract
algebra.
discrete process control See PROCESS CONTROL.
discrete signal See DISCRETE AND CONTINUOUS SYSTEMS.
discrete source A source of information whose output has an alphabet of distinct letters
or, in the case of a physical source, whose output is a *signal that is discrete in time and
amplitude (see DISCRETE AND CONTINUOUS SYSTEMS). The size of the alphabet, or the
number of amplitude levels, is usually finite, although for mathematical analysis it may
conveniently be regarded as potentially infinite.
The discrete memoryless source (DMS) has the property that its output at a certain time
does not depend on its output at any earlier time.
The discrete memoryless source (DMS) has the property that its output at a certain time
may depend on its outputs at a number of earlier times: if this number is finite, the source
is said to be of finite order, otherwise it is of infinite order. DSMs are usually
modelled by means of *Markov chains; they are then called Markov sources.
An ergodic source has the property that its output at any time has the same statistical
properties as its output at any other time. Memoryless sources are, trivially, always
ergodic; a source with memory is ergodic only if it is modelled by an ergodic Markov
chain.
See also INFORMATION THEORY, SHANNON’S MODEL, SOURCE CODING THEOREM.
discrete structure A *set of discrete elements on which certain operations are defined.
Discrete implies noncontinuous and therefore discrete sets include *finite and *countable
sets but not uncountable sets such as the real numbers. The term discrete structure covers
many of the concepts of modern algebra, including integer arithmetic, *monoids,
*semigroups, *groups, *graphs, *lattices, *semirings, *rings, *fields, and *subsets of
these.
discrete system See DISCRETE AND CONTINUOUS SYSTEMS.
discretionary access control (DAC) A form of *access control in which subjects
may themselves create and alter *access rights to objects, limited by any overriding
constraints imposed by system administrators. Compare MANDATORY ACCESS CONTROL.
discretization The process of replacing a problem defined on a continuum, say an
interval [0,1], by an approximating problem on a finite set of points, say nh,
Examples arise in many branches of numerical analysis, principally ordinary and partial
differential equations where the *finite-difference method and the finite-element method
are common forms of discretization. For the ordinary differential equation
a simple discretization is given by Euler’s method:
where
and yn denotes the approximation to the true solution y(x) at the point xn. See also
DISCRETIZATION ERROR.
discretization error The error in a numerical method that has been constructed by the
discretization of a ‘continuous’ problem. The term is widely used in the context of solving
*differential equations. A distinction must be made between global and local errors.
For example, in Euler’s method (see DISCRETIZATION) the global error, or global
discretization error, is the error in the discrete solution to the problem, specifically
The local discretization error is the amount by which the continuous solution fails to
satisfy the discrete formula:
Speaking generally, estimates of local errors are used in choosing the grid spacing h hence
providing a means of indirectly controlling the global error.
discriminant analysis See MULTIVARIATE ANALYSIS.
disjoint A term applied to two sets that have no element in common, i.e. such that the
*intersection of the sets results in the *empty set. A number of sets are said to be
mutually disjoint if each pair is disjoint.
disjunction A logical expression of the form
where ∨ is the *OR operation. A particular disjunction of interest is the disjunctive
normal form of a Boolean expression involving n variables, x1, x2,…, xn. Each ai is
then of the form
where ∧ is the *AND operation and each yi is equal to xi or the complement of xi.
Reducing expressions to disjunctive normal form provides a ready method of determining
the *equivalence of two Boolean expressions. See also PROPOSITIONAL CALCULUS.
Compare CONJUNCTION.
disjunctive normal form See DISJUNCTION.
disk An item of storage medium in the form of a circular plate. These devices are at
present (1995) principally *magnetic disks, in which the information is stored via
*magnetic encoding. See also MAGNETO-OPTIC STORAGE, OPTICAL DISK.
disk array A disk subsystem comprising a collection of disk drives together with array
management software that controls the drives so that they are seen by the host
operating software as one or more *virtual disk drives. The array management software
may reside in the host system or in the disk subsystem, in which case it is better described
as firmware. A disk that is under the control of array management software is known as a
*member disk. See also RAID.
disk cache An instance of *cache memory used to store recently read sections of disk
file on the grounds that they may well be required again shortly, and to store items
required to be written to disk until a convenient time occurs. The former technique is safe,
but the latter is more sensitive to power or systems failures and other unexpected events,
and can be disabled either completely or for specific files. The technique is used because
the RAM of cache memory is much faster to access than disk storage.
disk cartridge An *exchangeable disk store, now obsolete, that took the form of an
assembly containing a single rigid *magnetic disk permanently housed within a protective
plastic cover. It was introduced by IBM in 1964. Disk cartridges had storage capacities up
to 50 megabytes, depending on track density, bit density, and disk size.
disk drive (disk unit) A device with *read/write heads and associated electronics that
can store and retrieve data from one or more rapidly rotating *magnetic disks. The disks
may be *hard disks or *floppy disks. The term can also be applied to devices operating
with *optical disks.
In a magnetic disk drive the data is recorded on one or both sides of a disk in a set of
concentric tracks, which are usually subdivided into *sectors. The read/write heads of the
disk drive are mounted on arms that can be moved, by means of an *actuator, to position
the heads accurately over the required track. As the disk rotates, the sectors on that track
are made accessible. Storage locations can be accessed directly and in any order; typical
*seek times are in the range 5–12 milliseconds while the *latency may be 6 milliseconds.
The data is encoded according to a particular *disk format. See also ACCESS TIME, DISK
ARRAY, FIXED DISK DRIVE, FLOPPY-DISK DRIVE, RAID.
diskette, diskette drive Other names for floppy disk, floppy-disk drive.
disk format The *format of information recorded on magnetic (or optical) disk,
allowing a system to recognize, control, and verify the data. There are two levels at which
formats are defined.
(a) The way in which the data stream is divided into separately addressable portions,
called *sectors, with *address marks and data marks to differentiate between the
different types of information within the sector, and with a *cyclic redundancy check
or *error-correcting code also provided.
(b) The way in which the binary information is encoded as a pattern of magnetic flux
reversals.
Since recordings on disks are made as a serial bit stream on a single track at a time, special
provision has to be made to allow the read electronics to acquire and maintain bit and byte
synchronization. Bit synchronization is achieved when the read electronics can provide a
data clock (known as the read clock) of the correct phase so that the data can be
encoded. All modern *fixed disk drives make use of a phase-locked loop (PLL) to
generate the read clock from the data stream; currently the most common encoding
scheme is RLL (see diagram). Very early floppy disk drives did not need a PLL because
the encoding scheme used was FM (see below), which is self-clocking. Byte
synchronization is achieved with the aid of address marks or data marks, as appropriate.
The common methods of encoding are as follows.
Run-length limited encoding (RLL) is a form of *NRZ (nonreturn to zero) recording in
which groups of bits are mapped into larger groups before recording. A frequently used
method known as 2–7 (at least 2 zeros between ones and no more than 7 zeros between
ones) uses the ‘n to 2n’ mapping table shown in the diagram. The restriction of 2 zeros
between ones allows increased packing density and reduced intersymbol interference of
the magnetic pattern, and that of no more than 7 zeros between ones eases the design of
the phase-locked loop. Other similar codes are GCR (group code recording), which breaks
the data stream into 4-bit groups and maps these into 5-bit groups, EIR (error-indicating
recording), a form of 4 to 6 mapping that uses only the groups with odd parity, i.e. 3 or 5
ones, and 3PM (three-phase modulation), which has a minimum sequence of 2 zeros and a
maximum of 11 zeros.
Frequency modulation (FM; F2F) is a form of self-clocking recording. The beginning
of each bit cell is marked by a clock pulse recorded as a change in the direction of the
magnetic flux. If the cell is to represent a binary 1 a second pulse or transition is written at
the centre of the cell, otherwise there is no further change until the start of the next cell. If
the frequency of the clock is F then a stream of 1s will result in a frequency of 2F (hence
F2F recording). In this form of recording the minimum separation between transitions is
half of one cell and the maximum is one cell.
In modified frequency modulation (MFM) a binary 1 is always represented by a
transition at the centre of a bit cell but there is not always a transition at the boundary of
the cell. A transition is written at the start of a bit cell only if it is to represent a binary 0
and does not follow a binary 1. Thus the minimum separation between transitions is one
cell and the maximum is two cells. For the same spacing of flux transitions the MFM
method allows twice as many bits to be encoded in a unit distance; it is thus sometimes
referred to as a double-density recording.
Disk format. RLL mapping table of the 2–7 method
Modified modified frequency modulation (M2FM) is a modified form of MFM that
deletes flux transitions between two 0s if they are followed by a 1.
Optical disk formats are broadly similar to those of magnetic disk, except that the tracks
usually take the form of a continuous spiral and the path of this is often determined by a
groove pressed into the disk surface during manufacture (see also CD-ROM FORMAT
STANDARDS).
See also FORMATTER.
disk pack One form of *exchangeable disk store, now obsolete, that consisted of an
assembly of identical 14″ diameter rigid *magnetic disks mounted coaxially and equally
spaced. Storage capacities ranged from 30 to 300 megabytes. Disk packs were introduced
by IBM in 1963.
disk stack See FIXED DISK DRIVE.
disk striping See RAID, STRIPE DISK.
disk-to-plate See DTP.
disk unit Another name for disk drive.
dispatcher Another name for low-level scheduler. See SCHEDULER.
dispersion See MEASURES OF VARIATION.
displacement mapping A method of approximating a bumpy surface by offsetting the
base surface by the appropriate bump height and then rendering the surface. It gives a
more realistic rendering than *bump mapping but is more expensive to perform.
display 1. A device that can be attached to a computer in order to present transient
images—textual or pictorial—on its screen (see TEXT MODE, GRAPHICS MODE). For many
years the most widely used display device was the *cathode-ray tube with colour specified
by RGB signals. Other display technologies use *flat-panel displays, which in recent years
have largely replaced cathode-ray tubes as prices have fallen. These include *LCDs
(liquid-crystal displays), *plasma panels, and *electroluminescent displays. 2. A method
of presenting graphical or pictorial images. See also RASTER-SCAN DISPLAY, VECTOR
DISPLAY. 3. To make information visible in a temporary form.
Display Port A *standard interface issued by *VESA in 2006 for connecting a video
source to a display device; as such, it supplants the older *VGA and *DVI standards.
Unlike its predecessors, it transmits data in the form of *packets. A variant with a smaller
connector called Mini DisplayPort (MDP) was released by Apple in 2008. See also
THUNDERBOLT.
display processor A specialized *I/O processor used to mediate between a file of
information that is to be displayed and a display device. It reformats the information as
required and provides the information in accordance with the timing requirements of the
display system. In most modern personal computers this function is carried out by a
special *graphics processing unit.
Distiller Short for Adobe Acrobat Distiller. See ACROBAT.
distributed array processor See ARRAY PROCESSOR.
distributed artificial intelligence (DAI) An approach to *artificial intelligence in
which processing takes place not in a single algorithm but is distributed across a number
of agents, possibly many. Each agent is autonomous, with its own actions and belief space,
and the behaviour of the whole system, which may or may not solve a particular problem,
is characterized by its emergent properties.
distributed computing environment See DCE.
Distributed Concurrent Versions System See DCVS.
distributed database A *database in which the data is contained within a number of
separate subsystems, usually in different physical locations. If the constituent subsystems
are essentially similar, the system is said to be homogeneous, otherwise it is said to be
heterogeneous. Distributed database systems may vary very considerably. At one
extreme is the type where the complete system was conceived, designed, and implemented
as a single entity; such systems exist within large commercial organizations and are
usually homogeneous. At the other extreme is the case where a number of existing
systems, originally planned as isolated systems, continue in their normal operation but in
addition are loosely linked to provide a larger distributed system; in this instance the
system is often heterogeneous.
Distributed database systems are currently an active topic for database research and
development, largely because of the availability of national and international
communication facilities.
distributed denial of service (DDoS) A form of *denial of service, performed by
simultaneously sending large numbers of packets to the same host or network from many
computers in different locations on the Internet, with the aim of flooding a network
connection or other service. The computers used will usually have been compromised by
an intruder, virus, or Trojan horse. The packets are often forged to make it hard to identify
the source of the attack.
distributed file system A system in which a number of users, using different
processors, have the possibility of shared access to one another’s *files. Compare
DISTRIBUTED DATABASE.
distributed problem solving An approach whereby a problem is decomposed into
many smaller subproblems that are then distributed to different processing systems.
distributed processing The organization of processing to be carried out on a
*distributed system. Each *process is free to process local data and make local decisions.
The processes exchange information with each other over a data communication network
to process data or to read decisions that affect multiple processes. See also
CLIENT/SERVER, OPEN DISTRIBUTED PROCESSING.
distributed queue dual bus See DQDB.
distributed system Any system in which a number of independent interconnected
computers can cooperate in order to achieve a common goal. See CLIENT/SERVER,
DISTRIBUTED PROCESSING.
distribution See FREQUENCY DISTRIBUTION, PROBABILITY DISTRIBUTIONS.
distribution counting sort A sorting algorithm that stores, for each sortkey, the
number of records with the given sortkey (thus anticipating that keys might not be
unique). With this information it is possible to place the records correctly into a sorted file.
The algorithm is useful when the keys fall into a small range and many of them are equal.
distributive lattice A *lattice L, with meet and join operations ∧ and ∨ respectively, in
which the two *distributive laws hold for all elements in L. Since these laws are self-duals,
the principle of *duality continues to hold for distributive lattices.
distributive laws The two self-dual laws
that are satisfied by all elements x, y, and z in a *Boolean algebra possessing the two
operations ∧ and ∨. In the first law the operation ∧ is said to be distributive over the
operation ∨, and vice versa for the second law.
dithered colour Softened boundaries between different colours, produced by adding
noise to a picture. See also DITHERING.
dithering Reducing the effect of sharp edges in a picture when intensities jump from one
discrete value to another. A small random intensity called dither noise is added to the
picture intensities at each point. Ordered dithering uses intensities in a matrix that is
laid down on the picture in a periodic manner.
dither noise See DITHERING.
diverse programming Another name for n-version programming.
divide and conquer sorting A sorting algorithm that is similar to *radix sorting but
works from the most significant digit of the sortkey down to the least significant.
divided difference See INTERPOLATION.
divider See COUNTER.
DLL (dynamic link library) In the Microsoft Windows and OS/2 operating systems,
a library of utility programs stored as separate files with DLL extensions. When needed by
a program, they are loaded into memory and executed. DLLs can be shared and their
utility programs can be updated without affecting the calling program. Although extra
time is spent in disk input/output, *disk caching and faster disk subsystems make this a
valuable technique. See also OVERLAY.
DMA Abbrev. for direct memory access.
DME Trademark (direct machine environment) A system offered by ICL as a means of
using the microcode capabilities of their 2900 range of machines to allow users to run ICL
1900 series software, including the GEORGE operating system.
DML (data manipulation language) See DATABASE LANGUAGE.
DMZ (Demilitarized Zone) A portion of a network that separates an *intranet from
the *Internet. It is a suitable location for non-sensitive hosts that need to be accessible to
the external world, e.g. webservers. A DMZ may be suitable for dealing with external
attacks, and may be used to apply complex policies governing internal users, but is of little
use against internal attacks.
DNS Abbrev. for domain name system.
DNS server A server that implements a *domain name system, translates humanoriented domain names into their equivalent machine-oriented network names. DNS
servers are used particularly on the Internet, where for performance reasons they are
arranged in a hierarchy that reflects the strictly hierarchical domain names.
docking station At its simplest, a *VDU display and keyboard together with a box
containing a power supply into which slides a *laptop or other small portable computer.
This obviates the necessity of having both a *desktop and a laptop. The laptop slides into
the docking station and effectively becomes a desktop. More complex docking stations
can contain extra disk storage, sockets for *add-in cards, network connections, and other
enhancements.
document A piece of text considered to be a single item and usually stored as a *file.
The document might be a letter, a report, a chapter, etc. It will usually have a unique name,
and may have other attributes attached to it, such as a brief description of what it contains
and who composed it.
documentation All material that serves primarily to describe a system and make it
more readily understandable, rather than to contribute in some way to the actual operation
of the system. Documentation is frequently classified according to purpose; thus for a
given system there may be requirements documents, design documents, and so on. In
contrast to documentation oriented toward development and maintenance of the system,
user documentation describes those aspects of the system that are of interest to end-users.
document image processing (DIP) The management of documents throughout their
life cycle from creation to death. It includes the capture of documents as *digital images,
typically by means of *document scanners, and the storage, indexing, retrieval,
processing, transmission, and printing of these documents. *Optical disks are often used
for archival storage. With the advances in portable computers, portable DIP is now
feasible. DIP systems can also be used on networks, allowing several users to access the
document files.
Document Object Model (DOM) A standard interface for representing *XML and
*HTML documents. The data is parsed into a tree of objects, which a programmer can
navigate and manipulate. It is especially relevant to web browsers, and in particular to the
implementation of *dynamic HTML. The *World Wide Web Consortium released the first
version of the DOM (level 1) in 1998, although a previous intermediate version (level 0)
had already been incorporated in HTML 4; levels 2 and 3 have subsequently been
released. Adoption of the DOM by web browsers—which had previously implemented
idiosyncratic and incompatible models—was initially slow and is still not uniform.
http://www.w3.org/DOM/
• The WSC’s DOM page
document processing 1. The machine processing (reading, sorting, etc.) of documents
that are generally readable both by people and machines, e.g. bank checks, vouchers from
credit card transactions, and accounts from public utilities. In addition to the printed
information for human interpretation, there may be encoding that is machine-readable and
may be in an *OCR or *MICR font. 2. Dedicated document processing services are
available where bulk mailing of bank, utility, or other statements are handled by
specialists. Data is transmitted to the site where forms are printed as required, placed in
envelopes together with advertising or informative material, and posted in bulk.
document reader A machine for reading documents that are encoded in a way that is
readable by person and machine. See also DOCUMENT PROCESSING.
document scanner A device that can input the optical image of a document page. It
may be combined with internal or host resident processing of the input to manipulate the
image or recognize text and output strings of character codes. Scanners can be hand-held
where very small quantities are concerned and cost is more significant than accuracy;
however, surprisingly good results can be achieved. *Flatbed scanners and *drum
scanners are available where higher throughput or resolution is required.
document sorter A device that can read information encoded on documents and place
them into separate stacks related to that code. Bank checks are processed in this way. See
also DOCUMENT PROCESSING.
document type definition See DTD.
do loop A counting loop in a program, in which a section of code is obeyed repeatedly
with a counter taking successive values. Thus in Fortran,
DO 10 I = 1,100
〈statements〉
10
CONTINUE
causes the 〈statements〉 to be obeyed 100 times. The current value of the counter
variable is often used within the loop, especially to index an array. There are many
syntactic variants: in Pascal and Algol-like languages the same basic construct appears as
the for loop, e.g.
for i := 1 to 100 do
begin
〈statements〉
end
This kind of loop is a constituent of almost all programming languages (except APL,
which has array operations defined as operators in the language).
See also DO-WHILE LOOP.
DOL system See L-SYSTEM.
DOM See DOCUMENT OBJECT MODEL.
domain 1. In general, a sphere of control, influence, or concern. 2. See CATEGORY,
FUNCTION, RELATION. See also RANGE. 3. (of a network) Part of a larger network. A
domain is usually defined in terms of some property, such as that part of the network that
is under the jurisdiction of a single management body (a management domain), or
where all the network addresses are assigned by a single controlling authority (a naming
domain). On the Internet, it often refers to the so-called top-level domain, which is
the last part of the address. This may indicate the type of site; for example, .com for a
commercial organization, .gov for a US government agency, .ac for an academic
institution. It may also show the country; for example, .uk for United Kingdom, .fr for
France, etc. See also DOMAIN NAME SERVER. 4. In the *relational model, a set of possible
values from which the actual values in any column of a table (relation) must be drawn. 5.
In *denotational semantics, a structured set of mathematical entities in which meanings for
programming constructs can be found. The idea first arose in the work of Dana Scott, who
with Christopher Strachey pioneered this mathematical approach to programming
language semantics. The approach focuses on *fixed-point theorems. Scott required
domains to be *complete lattices, but this has been simplified through a great deal of
mathematical research. There are now many kinds of domains, but a commonly used one
is the Scott–Ershov domain, which is a consistently complete algebraic cpo (complete
*partial ordering). For such mathematical structures a fine theory of constructing new
domains from old and solving fixed-point equations has been developed. The domain
theory has many applications in finding semantics for programming and specification
languages, and approximating data types. Mathematically the theory is closely linked to
topology and algebra. 6. See PROTECTION DOMAIN.
domain knowledge That knowledge which is specific to an application, as
distinguished from general strategic or control knowledge that is independent of the
details of any particular application. For example, data about the flight routes covered by a
particular airline is domain knowledge, unlike search algorithms that might be used to
locate the cheapest entry.
domain modelling The modelling of a part, or domain, of the external world with
which a class of systems (possibly an individual system) will interact. The domain, which
is often called the application domain or problem domain, contains the entities
that are referred to by the information processed in a class of systems. A domain may
include, for instance, natural phenomena, human artefacts, organizational functions, and
information structures. Examples of domains are air traffic control, currency dealing,
telecommunication switching, and supermarkets.
The purpose of a domain model is to enhance understanding of the structure and
behaviour of the domain, and of the requirements for systems that are to be embedded in
it; a model could be said to provide the basic semantics for a class of systems. Domain
modelling may have two benefits: (a) many individual systems may be tailored or
instantiated from a single model; (b) the model may be more stable and longer lasting than
individual systems. The more that either of those benefits can be obtained, the greater is
the potential return on investment in the model. Achieving them, however, may mean that
a domain model must be shared among a number of developers, and contributed to by a
number of users; that may be difficult in the face of commercial competitive pressures.
domain name server (DNS) Any server that is used to implement the *domain name
system. See also FQDN.
domain name system (DNS) A system that provides mappings between the humanoriented names of users or services in a network, and the machine-oriented network
addresses of the named entity. It is used primarily on *TCP/IP networks, primarily the
Internet, to map such human-oriented names as “www.oup.co.uk” to the equivalent IP
address; however, other networks have similar facilities. Names are usually hierarchical,
and in general terms the boundaries of a *domain will coincide with some form of natural
boundary within the network environment, such as a country, a community of users within
a country, or the users on a site. The above example consists of the four domains ‘uk’ (the
top-level domain), ‘co’, ‘oup’, and ‘www’. While the arrangement of IP addresses is also
usually hierarchical, there is no assumption in the mapping between the two that the
hierarchies are in any way equivalent. See also DOMAIN NAME SERVER, FQDN.
http://tools.ietf.org/html/rfc1034
• Introduction to the Internet domain name system
http://tools.ietf.org/html/rfc1035
• Domain names—implementation and specification
domain theory See DOMAIN.
dominator A vertex xi on a graph G is a dominator of vertex xj, relative to vertex xk, if
every path from xj to xk traverses xi. This is used in flow analysis for code optimization.
dongle 1. A security or copy protection device for programs that must be connected to an
I/O port of the computer while the program is run. Programs that use a dongle query the
port at start-up and at programmed intervals thereafter, and terminate if it does not respond
with the expected validation code. Security dongles attempt to combat software theft by
ensuring that, while users can still make copies of the program (e.g. for backup), they must
buy one dongle for each simultaneous use of the program. 2. Any small hardware device
that plugs into a computer port. Examples include *USB drives and some *Bluetooth
transceivers.
do-nothing instruction Another name for no-op instruction.
don’t care Informal A condition in a logic network in which the output is independent of
the state of a set of given inputs.
dope vector A vector of data used to assist in accessing the elements in an *array. The
dope vector contains
(a) the address of a fixed element in the array—this may be the first element present or the
element that has all subscripts equated to zero;
(b) the number of subscripts associated with the array, i.e. its dimensionality;
(c) the stride associated with each subscript position, i.e. the number of stored elements
that must be skipped over when a subscript’s value is changed by 1
The position in memory of an element is found by taking the inner product of the strides
with the differences between the actual subscript values and those that correspond to the
fixed element referred to in (a), and adding to this the address of the fixed element.
DOS 1. Short for MS-DOS. 2. The official name of PC-DOS. 3. (disk operating
system) The original DOS (trademark) written by IBM for the series-700 computers was
one of the first major operating systems to be offered by a mainframe manufacturer. It was
introduced shortly after IBM’s still more primitive system, *OS. DOS gave users the
ability to construct files on disks that held images of punched cards and that could serve as
the input to programs; similarly output ultimately destined for printers was *spooled into
temporary disk files. The user was responsible for much of the management of these files,
and had to contend with details of their physical location on disk and with their creation
and disposal.
DOS box Informal name for a window running a *command-line interface on a
Windows system. In early versions of Windows such windows ran an emulation of *MSDOS (hence the name). This is still possible today, but other CLIs are also available.
dot com A commercial company that operates through the Internet. See also ECOMMERCE.
dot diffusion A type of digital *halftone.
dot matrix printer A printer that creates each character from an array of dots that are
usually formed by transferring ink by mechanical impact. It may be a *serial printer,
printing a character at a time, or a *line printer. Once the most widely used type of printer,
dot matrix printers are now mainly used where multipart stationery is required.
double buffering 1. A form of *buffering in which two buffers are used. On output the
program can be filling one buffer while the device empties the other; the buffers then
exchange roles. A similar technique is used for input. 2. In computer graphics, switching
between two (or more) *frame buffers to allow picture composition to be performed
simultaneously with display.
double click See CLICK.
double complement (of a *set S) The *complement of the set S′, where S′ itself is just
the complement of S; the double complement of S is thus S itself. In logic double
complement implies double negation of an element x, say, i.e. x itself.
double-density recording Another name for modified frequency modulation. See
DISK FORMAT.
double-length arithmetic See DOUBLE PRECISION.
double negation See DOUBLE COMPLEMENT.
double precision The use of double the usual number of bits to represent a number.
Arithmetic performed on double-precision numbers is called double-precision (or
double-length) arithmetic. For floating-point numbers, most computers use the same
number of bits for the exponent in single-length and double-length forms. Consequently, if
the length of a single-precision number is l bits, p of which are used for the significand,
then the significand of a double-precision number occupies (p + l) of the 2l bits.
Occasionally, multiple precision, i.e. more than double precision, may be available.
Some computers implement double precision in hardware; higher precision, for example
quadruple precision, is almost always achieved by software.
doubly linked list (two-way linked list, symmetric list) A *linked list where each
item contains links to both its predecessor and its successor. This makes it possible to
traverse the list in either direction. The flexibility given by double linking must be offset
against the overhead of the storage and the setting and resetting of the extra links involved
when items are inserted or removed.
do-while loop A form of programming loop in which the condition for termination
(continuation) is computed each time around the loop. There are several variants on this
basic idea. For example, Pascal has
while 〈condition〉 do
begin
〈statements〉
end
and also
repeat
〈statements〉
until 〈condition〉
The first is a while loop and the second is a repeat-until loop. Apart from the
obvious difference that the first specifies a continuation condition while the second
specifies a termination condition, there is a more significant difference. The while loop is
a zero-trip loop, i.e. the body will not be executed at all if the condition is false the first
time around. In contrast, the body of a repeat-until loop must be obeyed at least once.
Similar constructs are found in most languages, though there are many syntactic
variations. See also DO LOOP.
down Informal Denoting a system that is unavailable. It is either switched off or is
switched on and being repaired.
downline The direction from a central or controlling *node to a remote node in a
hierarchical network, or (sometimes) the direction away from the current node without
respect to hierarchical ordering. The word is often used as a verb: to downline or to
downline load, i.e. to send data from a central node to a remote end-user’s node in a
network. The remote node may not have the facilities to store the data permanently, in
which case the downline load would be necessary each time the remote node is restarted.
When the remote node does have permanent storage facilities, downline loading may be
used to supply newer versions of data to the remote node. Compare UPLINE.
download To load *downline, i.e. to send data from a central node in a network to a
remote end-user’s node.
down operation Another name for P operation. See SEMAPHORE.
downsizing Informal Moving away from mainframe-based computer organization
toward a distributed environment such as a network of workstations.
downtime The percentage of time that a computer system is not available for use.
DP Abbrev. for data processing.
DPCM (differential PCM) See PULSE CODE MODULATION.
dpi Abbrev. for dots per inch.
DQDB (distributed queue dual bus) A form of network originally designed for use
with optical fibres in metropolitan area networks. The system is based on two
unidirectional buses, usually referred to as the A-bus and B-bus, that pass in opposite
directions through a number of nodes. Traffic on these buses is processed in *cells, each
holding 53 bytes, with a 5 byte header and a 48 byte payload. This cell size is chosen to
allow seamless interworking with *ATM-based networks.
The head end of the A-bus and the tail end of the B-bus are collocated in a single node,
and the tail end of the A-bus and the head end of the B-bus are again collocated in a node.
Each head end transmits a stream of cells, which it either uses for its own transmissions
and marks as being full, or marks as free; at the tail end the incoming cells are discarded.
Any node can use one of the buses to pass packets to a node downstream of the sending
node, and the receiving node can similarly use the other bus for the return traffic; thus
each bus carries traffic in only one direction, but any two nodes have a full duplex
connection. If there is a failure of either a node or a bus, the nodes immediately adjacent to
the failure will reconfigure so as to take on the roles of the head and tail ends for the
appropriate buses. At start-up, or after a failure and reconfiguration, nodes can identify
which bus to use for which addresses by examining the source addresses of incoming
packets on each bus.
As each cell passes through each node, the node has the opportunity to convert a single
bit within the cell to a request for access to the bus. Each node also maintains counters of
requests for access to the bus, and of free cells, and the nodes are thus able to cooperate to
implement what is in effect a first come first served queue for access to the two buses.
drag See CLICK.
drag and drop A method of manipulating objects (files, blocks of text, etc.) on a
graphical user interface by clicking and holding down the mouse button, moving the
object to a new position on the screen, and releasing the mouse button. It is possible, for
example, to move files between directories in this way or to copy files to CD.
DRAM (dynamic RAM) See DYNAMIC MEMORY, RAM.
draughts-playing programs See CHECKERS-PLAYING PROGRAMS.
DRAW (direct read after write) In optical or magnetic data storage, a writing
technique in which each bit of data is read immediately after it is written. This enables an
erroneous sector to be recognized before the next sector starts to be written and errors can
be managed accordingly, generally by flagging the defective sector or block and repeating
the same data in the next sector. Nearly all magnetic tape drives, and many optical disk
drives, use this technique. See also DRDW.
The term is sometimes erroneously used in an optical-storage context simply to imply
that written information is immediately ready for reading, without an intermediate
processing operation such as would be required for photographic recording.
DRCS Abbrev. for dynamically redefinable character set.
DRDW (direct read during write) In optical data storage, a writing technique in
which each signal element is check-read as it is written, by sensing the light reflected from
the medium. It serves the same purpose as *DRAW. In magnetic tape storage, the term is
sometimes used to mean the same as DRAW.
drive Short for disk drive or tape drive, magnetic or optical.
driver 1. A routine within an operating system that handles the individual peripheral
units on the computer system. Of necessity a driver routine is required to deal with the
intimate details of the construction of each unit and of its real-time behaviour.
Consequently at least some of the driver will often need to be written in a machineoriented programming language. 2. An electronic circuit, often available in the form of a
logic gate, that is capable of providing large currents or voltages to other circuits
connected to the driver’s output. These devices are often used to place signals onto bus
lines, hence the term bus driver.
drop-down menu Another name for pull-down menu.
drop-in In magnetic recording technology (disk and tape), the presence among the
signals read from the device of one or more bits that had not been deliberately written
there. This is the result of a fault condition, often imperfect erasure of data previously on
the medium, and will generally be a problem only in interrecord gaps (elsewhere it will be
dealt with by the same means provided for *drop-out): magnetic tape and disk systems
normally have means of identifying and coping with this problem.
drop-on-demand inkjet printer See INKJET PRINTER.
drop-out In magnetic recording technology (disk and tape), the loss of one or a sequence
of bits due to a fault condition, most frequently a flaw in the recording medium. Magnetic
tape and disk systems employ some form of redundancy to detect and frequently correct
the resulting data errors.
drum plotter See PLOTTER.
drum printer (barrel printer) A type of *solid-font *line printer, first marketed in
1955 but now obsolete. The font was etched or engraved on the outer surface of a cylinder
—known as the drum (or barrel)—that extended across the full width of the line to be
printed.
drum scanner A form of *document scanner where the original document to be
scanned is wrapped around a drum and then scanned by moving the detector head
longitudinally as the drum is rotated. Drum scanners are used where the highest resolution
is required, as in scanning high-quality photographs for print reproduction.
dry run Execution of a program in a manner analogous to a *production run, but for
purposes of checking that the program behaves correctly rather than for producing useful
results. The results of execution are compared with expected results; any discrepancies
indicate an error of some sort that must be investigated before the program is put into
production usage.
DSL (Digital Subscriber Line) A family of digital systems designed to allow high
speed data communication over the existing copper wires. The first technology based on
DSL was *ISDN, although ISDN is not often recognized as such nowadays. Since then a
large number of other protocols have been developed, collectively referred to as xDSL,
including HDSL, SDSL, ADSL, and VDSL.
DSM Abbrev. for digital storage medium.
DSP Abbrev. for digital signal processing.
DSPACE See COMPLEXITY CLASSES.
DSS (decision support system) See MANAGEMENT INFORMATION SYSTEM.
DTD (document type definition) A file associated with an *SGML or *XML
document, giving a formalized description of the tags used and the structure of the
document, as well as special entities that may be present. DTDs are optional for XML
documents but compulsory for SGML documents. To validate a document is to check its
structure against its DTD; a document that passes this test without errors is said to be
‘valid’ or to conform to its DTD. See also SCHEMA.
DTE (data terminal equipment) The side of an interface that represents the user of
the data communication services in a standard such as RS232C or X25. DTEs are usually
computers or computer terminals. Compare DCE.
DTIME See COMPLEXITY CLASSES.
DTL (diode-transistor logic) An early form of *logic family, normally produced in
integrated-circuit form, whose principal switching components consist of diodes and
transistors.
DTP 1. Abbrev. for desktop publishing. 2. (disk-to-plate) A method of printing
inwhich printing plates are produced directly from a page description (e.g. a PDF file) by
laser, without the need for intermediate film generated by an imagesetter.
D-type flip-flop See D FLIP-FLOP.
dual See DUALITY.
dual attach See FIBRE DISTRIBUTED DATA INTERFACE.
dual core See MULTI-CORE PROCESSOR.
dual in-line package See DIP.
duality The property exhibited by the laws and rules of *set algebra, the *propositional
calculus, and *Boolean algebra that each law or rule has a dual law or rule, constructed
by the simultaneous replacement of each occurrence of 0 by 1, 1 by 0, ∨ by ∧, and ∧ by
∨. Such a pair of laws or rules is then said to be self-dual. Thus *de Morgan’s laws, for
example, are self-dual.
If a law or rule contains the *partial ordering ≤ inherent in any lattice, then in obtaining
duals this should be replaced by ≥ and vice versa; thus inequalities should be reversed.
dual port memory A memory that is capable of receiving two concurrent access
requests. Depending upon the internal memory organization, responses may or may not be
simultaneous. Close-coupled *multiprocessor systems use these memories (see MULTIPORT
MEMORY).
dual processor A *multiprocessor system with two central processors. Use of this term
sometimes implies a two-processor system in which one processor is redundant so that the
total system has a very high level of reliability.
dummy instruction (dummy) An item of data in the form of an *instruction that is
inserted in the *instruction stream but is not intended to be executed. See also NO-OP
INSTRUCTION.
dump 1. In a system handling large numbers of users’ files stored on magnetic disks, one
of the periodic records of the state of the disks that are made on some form of offline
storage device. This protects against failures either in hardware or software that can lead
to the *corruption of stored information. In the event of a system error that causes
information to be lost, the most recently copied version of the information can be
reinstated from the dump.
On a large multiuser system, the total volume of stored information means that it may
not be practicable to dump all the information on every occasion. In these cases an
incremental dump can be taken, containing only those files that are marked as having
been altered since the last dump; this reduces the total amount of information to be copied
during the dump, allowing dumps to be made more frequently. 2. A snapshot of the
contents of system memory taken when a system crash has occurred. In principle it is
possible to determine the immediate cause of a system crash by studying the dump and
determining the reason for any inconsistencies in its contents. In practice this may be
difficult even with the assistance of dump analysis software. 3. To produce a dump (defs.
1 or 2).
dump check A copy of the contents of all the workspace associated with a job or
*process. If the job or process subsequently fails, it can be restarted at the point at which
the dump check was taken. Note that the status of peripheral devices allocated to the job or
process must be considered as constituting part of its workspace.
dump point See CHECKPOINT.
duplex (full duplex) Involving or denoting a connection between two endpoints, either
physical or logical, over which data may travel in both directions simultaneously. See also
HALF DUPLEX, SIMPLEX, RETURN CHANNEL.
duty cycle For pulsed or square-wave signals, the ratio of pulse duration to pulse
spacing, often expressed as a percentage. A square wave signal normally has a 50% duty
cycle, i.e. pulse duration is equal to the time between pulses.
DVD A disk format similar to a compact disk (see CD-ROM) but containing much more
data. It was introduced in 1996. DVD disks are the same 120 mm diameter as CDs with
potential capacities of up to 4.7 gigabytes for a single-sided single-layer disk.
‘DVD’ was originally used as an abbreviation for digital video disk and
subsequently for digital versatile disk. However, the DVD specification does not state
that ‘DVD’ is an abbreviation and treats it as the full name of the format.
The technology involved in DVD storage is similar to that in compact disks, but more
precise. The extra capacity is achieved in a number of ways. The tracks on a DVD are
closer and the pits are smaller, allowing more pits per unit area. The key to this was the
use of a shorter wavelength laser (typically 635 or 650 nm in the red region for DVDs as
opposed to 780 nm in the infrared for CDs). Moreover, a DVD can have two layers on the
same side of the disk. The top layer is translucent and the bottom layer opaque. Data can
be read from either layer by refocusing the laser. In addition DVDs may be double-sided.
DVD formats also have a more efficient error-correction system. The potential capacity of
a double-sided double-layer DVD is up to 17 gigabytes.
The early publicity and interest in the DVD format was as a video equivalent of the
audio CD—i.e. a medium for distributing films that was cheaper than the VHS tape
cassettes used by the film industry. There were delays in the introduction of DVD caused
partly by disputes about format between large developers, and later by worries in the film
industry about piracy.
Since then DVDs have been increasingly used in computing as a higher-capacity
version of compact disks. As with compact disks, there are various types. DVD-ROM
(DVD read-only memory) is similar to *CD-ROM. DVD-R (DVD-recordable) is similar
to CD-R. There are also different rewritable formats: DVD-RAM, DVD+RW, and DVDRW. Unfortunately there are several mutually incompatible standards, each with its own
claimed advantages. Potential problems are mitigated in practice by multiformat DVD
drives that can read two or more of these formats.
See also BLU-RAY, HD DVD.
http://www.dvdforum.org/forum.shtml
• The DVD Forum home page
DVI (digital video interface) A specification for providing a high speed digital
connection for visual displays. It aims to provide a common interface for all display
devices used by the PC industry. DVI provides high speed digital signals supporting up to
350 Mpixels/sec as well as conventional analogue signals (*SVGA etc.) in a single
connector. *Plug-and-play through hot plug detection is supported. DVI is increasingly
being used with LCD displays that are purely digital in operation and there is no need for
intermediate analogue signals. This simplifies the circuitry and removes many of the
synchronizing and aliasing problems encountered with analogue-to-digital conversion.
dyadic Having two operands.
dyadic operation (binary operation) defined on a set S. A function from the domain S
× S into S itself. Many of the everyday arithmetic and algebraic operations are dyadic, e.g.
the addition of two integers, the union of two sets, and the conjunction of two Boolean
expressions. Although basically functions, dyadic operations are usually represented using
an infix notation, as in
A symbol, such as ∘, can be used to represent a generalized dyadic operation.
When the set is finite, *Cayley tables and sometimes *truth tables are used to define the
meaning of the operation.
Dyck language A concept used in *formal language theory. Let Σ be the alphabet
The Dyck language over Σ is the set of all strings that can be reduced to the empty string
Λ by ‘cancellations’ of the form
For example,
gives the Dyck language of all balanced parenthesis strings. An important theorem
characterizes the *context-free languages as those representable as the homomorphic
image (see HOMOMORPHISM) of the intersection of a Dyck language and a *regular
language.
dye-polymer media A class of optical recording media in which the sensitive layer
consists of dye particles dispersed in a binder. Both *rewritable and *write-once recording
are possible. Dye-polymer media are potentially cheaper than those using other materials
(such as *magneto-optic storage media), but have taken longer to develop.
dynamic Capable of changing or of being changed. With reference to operating systems,
the implication is that the system is capable of changing while it continues to run. As an
example, the total amount of memory available may be defined by the contents of a word
within the operating system. If this word can be altered without stopping the system and
reloading a fresh copy of the operating system, then it is possible to alter dynamically the
total amount of memory on the system.
With reference to programming, the adjective is applied to operations that take place
while a program is running, as compared with those that take place during the compilation
phase. For example, dynamic arrays are allocated space while the program is running.
Compare STATIC.
dynamic allocation An allocation that is made dynamically, i.e. while the system is
running, rather than statically at the time of first initiating the system.
dynamic data structure A data structure whose organizational characteristics may
change during its lifetime. The adaptability afforded by such structures, e.g. linked lists, is
often at the expense of decreased efficiency in accessing elements of the structure. Two
main features distinguish dynamic structures from *static data structures. Firstly, it is no
longer possible to infer all structural information from a *header; each data element will
have to contain information relating it logically to other elements of the structure.
Secondly, using a single block of contiguous storage is often not appropriate, and hence it
is necessary to provide some storage management scheme at run-time.
Dynamic Host Configuration Protocol See DHCP.
dynamic HTML An extension of HTML allowing a Web page to change in response to
the user, without downloads from the server. Dynamic HTML involves scripts written in
Javascript or VBScript and embedded in the HTML document. An example of its use is in
displaying menus when the cursor is positioned at a particular place on the page.
dynamic link library See DLL.
dynamic logic See MODAL LOGIC.
dynamic memory A form of *volatile semiconductor memory in which stored
information is degraded with time. The most common example is dynamic *RAM (usually
abbreviated to DRAM) where the logic state to be entered in each cell is stored as a
voltage on the small capacitance associated with the gate of the MOS output transistor for
the cell. The voltage decays away with time because of leakage currents in the cell, and so
it must be *refreshed (i.e. recharged) periodically by external circuitry.
dynamic programming The mathematical theory and planning of multistage decision
processes; the term was introduced by Richard Bellman in 1957. It may be regarded as a
branch of *mathematical programming concerned with *optimization of problems
formulated as a sequence of decisions. Applications are very varied, including engineering
problems and company planning.
dynamic testing See TESTING. Compare STATIC ANALYSIS.
dynamic web page 1. A *web page whose content or presentation can vary each time
it is sent to a client. Such web pages are created by *server-side *scripting using such
technologies as *Active Server Pages or *JavaServer Pages. 2. A Web page whose
presentation can change after it has been sent to the client, either automatically or in
response to input from the user. Such Web pages are created by *client-side *scripting
using such languages as *VBScript or *JavaScript.Compare STATIC WEB PAGE.
EAN (European Article Numbering code) See BAR CODE.
EAPROM (electrically alterable programmable read-only memory) A form
of *PROM in which the contents of selected memory locations can be changed by
applying suitable electric signals, as in the case of *EAROM.
EAROM (electrically alterable read-only memory) A form of semiconductor
memory in which it is possible to change the contents of selected memory locations by
applying suitable electric signals. Normally these changes are infrequent.
Easter egg A feature hidden in a program that is displayed only under special
circumstances (e.g. when the user presses a particular combination of keys). The feature
may be a message, list of credits, short animation, etc.
EBCDIC (extended binary coded decimal interchange code) An 8-bit
*character encoding scheme used primarily on IBM machines. See also CHARACTER SET.
EBNF Abbrev. for extended BNF.
e-book See ELECTRONIC PUBLISHING.
e-business See E-COMMERCE.
ECB (Electronic Codebook) See DATA ENCRYPTION STANDARD.
ECBS Abbrev. for engineering of computer-based systems.
echo 1. The reflection of transmitted data back to its source (or, as a verb, to reflect
transmitted data back to its source). For example, characters typed on the keyboard of a
data terminal (connected to a computer) will not appear on the display of the terminal
unless they are echoed. The echoing process may be done locally by the terminal itself, by
a modem, by an intervening communication processor, or by the computer to which the
terminal is attached. 2. A phenomenon in voice circuits (e.g. telephone circuits) that upsets
the operation of *modems. Most modems therefore incorporate echo suppression.
echo check A way of establishing the accuracy achieved during the transfer of data over
a data link, computer network, etc. When the data is received it is stored and also
transmitted back to its point of origin in the transmission loop where it can be compared
with the original data.
echoing 1. The immediate notification to the operator of the current value of an input
device. See also ACKNOWLEDGMENT, FEEDBACK, PROMPT. 2. The process of reflecting
data back to source. See also ECHO.
echo suppression See ECHO.
ECL (emitter-coupled logic) A high-speed *logic family available in the form of
integrated circuits based on *bipolar transistors. The fast switching speeds are achieved by
means of a design that avoids driving the transistors into saturation.
The basic circuit element is based on a difference amplifier, as shown in the diagram
(ignoring dashed lines). In this symmetrical circuit the combined emitter current flowing
through the resistor Re is substantially constant. If the voltage Vi is equal to Vref then each
transistor, Q1 and Q2, conducts by the same amount and the output is at Vref. If Vi is
increased above Vref by more than about 0.1 volts, Q1 will be turned on while Q2 turns off.
As a result Vo increases to V+. Similarly if Vi is decreased below Vref by more than about
0.1 volts, Vo will decrease to some value largely determined by VEE, Re, and Rc.
ECL. Two-input ECL OR gate
By placing transistors in parallel with Q1, as shown by the dashed lines, an ECL *OR
gate is produced. Additional buffering is required on the gate output to provide the correct
voltage swings for subsequent gate inputs.
ECL provided the highest speed of any silicon-based logic family but its high power
dissipation and the need for high levels of integration mean that it has been superseded by
CMOS technology.
ECMA International The European Computer Manufacturers Association (ECMA)
was founded in 1961 and based in Geneva. ‘European’ is to be taken as operating in
Europe rather than European owned. The aims of ECMA are ‘to promote, in the general
interest and in collaboration with national and international organizations, all ways and
means destined to facilitate and standardize the utilization of data processing systems’. In
1994 it changed its name to ECMA International to reflect the fact that its activities were
international rather than just European. Activities in which it is currently involved range
from such software standards as C#, Eiffel, and ECMAScript (see JAVASCRIPT) to the
standardization of optical disk formats.
http://www.ecma-international.org/
• The ECMA International home page
ECMAScript See JAVASCRIPT.
e-commerce (e-business) In general, commerce using electronic media. Usually it is
taken to mean commerce using the Internet, for sale of goods and services. Internet trading
has expanded enormously over the last 20 years, with the creation of companies that only
trade online (often known as dotcom companies). Other commercial organizations
have a combination of traditional trading with a significant amount of Internet activity
(sometimes referred to as bricks-and-clicks or clicks-and-mortar). See also EMONEY.
edge 1. A connection between two vertices of a *graph. 2. See EDGE DETECTOR.
edge board An obsolete term for a *circuit board that is a modular part of a larger
circuit. The term edge card is often used synonymously but is sometimes considered
smaller than an edge board.
edge card See EDGE BOARD.
edge connector Part of a *printed circuit board where a number of the metallic
conducting tracks meet the edge of the board, at right angles, to form the male half of a
plug and socket. The tracks are broadened, thickened, and sometimes gold-plated to
provide good electrical contact. A single edge connector may have a hundred or more
individual connections, half on each side of the board. The female half of the connector is
a multiway socket whose sprung metal contacts can mate with the corresponding pads on
the PCB. Connections to various points on the circuit board may then be made indirectly
via the socket. See also BACKPLANE.
edge detector In *grey-level *image processing, images of typical scenes contain large
areas of gradual intensity change, called *segments, bounded by narrow regions of very
rapid intensity change, called edges. An edge detector is a procedure or rule that locates a
series of points, arranged roughly in a line, where rapid intensity changes have occurred. A
set of edges can then be used by other operators, such as *line finders, to build up the
outline of object features. Many different forms of edge detectors have been developed in
image processing, including the *Laplacian operator.
edge-triggered flip-flop See FLIP-FLOP.
EDI Abbrev. for electronic data interchange.
EDIFACT An international standard, ISO 9735: Electronic Data Interchange For
Administration, Commerce, and Transport, giving the application-level syntax rules for
messages between companies concerning orders and services.
edit To create, modify, or add to data (text, image, video, audio, etc.). See also WORD
PROCESSING.
editor A software application that facilitates the editing of a type of data (text, image,
video, audio, etc.). See also LINK EDITOR, TEXT EDITOR.
Edmonds’ algorithm A method of finding the maximum branching of a *weighted
directed *graph, due to J. Edmonds (1965).
EDP (electronic data processing) See DATA PROCESSING.
EDS 1. Electronic Data Systems. A large computer services company specializing in
*facilities management and systems integration. It was founded by Ross Perot,
independent candidate in the US presidential election in 1992, and was once owned by
General Motors. 2. Abbrev. for exchangeable disk store.
EDSAC (Electronic Delay Storage Automatic Calculator) A machine
designed in 1946 by M. V. Wilkes of Cambridge University, UK, inspired by the storedprogram concept being taught in the US by von Neumann and others. The design was
notable for using acoustic *delay lines for memory. EDSAC began operations in May
1949, becoming the first complete operational stored-program computer. See also
MANCHESTER MARK I.
EDVAC (Electronic Discrete Variable Automatic Computer) An early storedprogram electronic digital computer, originally commissioned from the University of
Pennsylvania’s Moore School by the US Army in 1944 while the *ENIAC was still under
construction, but not operational until 1952. In 1945 John von Neumann prepared a
proposal for the EDVAC that described the logical design of a computer with a ‘stored
program’, where the instructions to the machine would be stored in substantially the same
fashion as the data. Although there is some disagreement as to whether von Neumann or
the team of Mauchly and Eckert originated the stored-program concept, this was its first
written documentation. Regardless of its origin, the stored-program model that formed the
basis of the EDVAC design motivated all subsequent machine designs.
EEPROM (electrically erasable programmable read-only memory) A form
of *EPROM in which the entire contents can be erased by subjecting the device to suitable
electric signals, as in the case of *EEROM.
EEROM (electrically erasable read-only memory) A form of semiconductor
memory in which the entire contents can be erased by subjecting the device to suitable
electric signals. After erasing, the device can be reprogrammed. This procedure may be
repeated hundreds of times without damaging the device.
effective address An *absolute address that is either a direct address or has been
computed by one of the *addressing schemes such as augmenting, relative addressing, or
indexing.
effective computability Let
A *partial function
is effectively computable if there is an effective procedure or algorithm that correctly
calculates f. An effective procedure is one that meets the following specifications. Firstly,
the procedure must consist of a finite set of ‘simple’ instructions and there must be no
ambiguity concerning the order in which the instructions are to be carried out. Secondly, if
the procedure is given a k-tuple x in the domain of f, then after a finite number of steps, the
calculation must terminate and output f(x); if the procedure is given a k-tuple not in the
domain of f it must not output a value. See also CHURCH–TURING THESIS.
effective enumeration See ENUMERATION.
effective procedure See EFFECTIVE COMPUTABILITY.
EFT Abbrev. for electronic funds transfer.
EFTPOS (electronic funds transfer at point of sale) See POINT-OF-SALE
SYSTEM.
EFTS Abbrev. for electronic funds transfer system.
egoless programming An approach to software development based on consensus
within a small team. The aim is to produce software that is the product of the team rather
than of one or a few individuals. The motivation is to avoid personal identification with
output, promote group identification, and thus to make it easier for the team to conduct an
objective evaluation of the programs produced.
EIA (Electronics Industries Alliance) A US standards and trade industry
association covering the IT industry, the electronics industry, including consumer
electronics, and the telecommunications industry, and Internet security. It ceased
operations in February 2011 but its constituent associations continue to develop standards
individually, each in its respective sector.
EIDE (Enhanced Integrated Drive Electronics) A common alternative name for
ATA-2 or ATA-3.
Eiffel An *object-oriented programming language.
eigenfunctions See EIGENVALUE PROBLEMS.
eigenvalue problems Problems that arise frequently in engineering and science and
fall into two main classes. The standard (matrix) eigenvalue problem is to determine real
or complex numbers,
and corresponding nonzero vectors,
that satisfy the equation
where A is a given real or complex n×n matrix.
By analogy the continuous eigenvalue problem is to determine similar eigenvalues and
corresponding nonzero functions (eigenfunctions) that satisfy the equation
where H is a given operator on functions f. A simple example arising from a vibratingstring problem is
where values of the parameter λ (eigenvalues) are required that yield nontrivial
eigenfunctions y(x) (i.e. y(x) ≢ 0). *Finite-difference methods applied to such problems
generally lead to matrix eigenvalue problems.
eigenvectors See EIGENVALUE PROBLEMS.
EIR (error-indicating recording) See DISK FORMAT.
EISA (extended Industry Standard Architecture) A *bus structure for
microcomputers with Intel 32-bit microprocessors, based on and compatible with that used
by IBM in their AT series ISA (see INDUSTRY STANDARD ARCHITECTURE ). EISA was
developed by manufacturers other than IBM as an alternative to IBM’s *MCA (micro
channel architecture), which is not compatible with earlier systems. It has been superseded
by *PCI and *PCI Express.
elapsed time The actual time between two events, measured by a ‘clock on the wall’.
Compare CPU TIME.
e-learning (electronic learning) Any form of education or training that uses
computer technology as an essential part of the teaching process. The term covers a broad
range of goals and methodologies, but two features frequently found are that computerized
data and programs substitute partly or completely for the human teacher; and that students
engage with all or part of the course remotely, for example over the Internet from their
homes.
electrographic printer A term that embraces *electrostatic, *electrosensitive, and
*electrophotographic printers. The term is seldom now used.
electroluminescent display A type of *flat-panel display that uses the property of
electroluminescence, whereby a phosphor will emit photons of radiation when placed
in an electric field. The phosphor is incorporated in a thin coating on the screen; an
additional coatings can produce full colour. Electroluminescent screens are used in some
large-screen displays, such as airport announcement boards. Nowadays electroluminescent
screens are mainly used for small displays in control panels and domestic equipment.
electromagnetic beam deflection See BEAM DEFLECTION.
electromagnetic compatibility See EMC.
electronic (as opposed to electric). Originally, concerned with the movement of
electrons in free space, i.e. in vacuum tubes (UK: valves). Then, by extension, concerned
with the movement of charges in semiconductors. Now, by extension, concerned with the
representation, storage, and transmission of information by electrical means. That is now
what distinguishes electronic engineering from electrical engineering, the latter dealing
with energy rather than with information. A further distinguishing feature is that electronic
engineering mainly deals with low power levels and frequencies of anywhere between
zero and microwaves, while electrical engineering tends to focus on low frequency (50–60
Hz) high power (kilowatts to megawatts). Clearly there will be a grey area where the
disciplines overlap.
electronic blackboard See WHITEBOARD.
electronic data interchange (EDI) A family of standards that describe the format,
content, and structure of data to be exchanged between computer systems. Such data are
not intended for human interpretation but for treatment by a computer. The term is
generally used to describe standards at the application level of the OSI *seven-layer
reference model.
electronic data processing (EDP) See DATA PROCESSING.
electronic filing A computer-based system for the storage, cataloguing, and retrieval of
documents. It is central to the success of a comprehensive *office automation system in
that it provides the basic object management required to create, manipulate, and delete
‘office objects’, which may be letters, complex reports, charts, graphs, or any other
information that may be stored in a computer system.
A comprehensive electronic filing system should give a high degree of security for the
objects entrusted to it, both against computer failure and against unauthorized access,
together with flexible methods of organizing these objects. It should also provide shared
access to community items while preserving privacy for confidential items. Objects in an
electronic filing system are stored on magnetic disk or tape (or more recently, in the
*cloud). See also CLOUD COMPUTING.
electronic funds transfer system (EFTS) Generally, the use of computers in
effecting payments between individuals and/or organizations. In some cases the term is
used to refer to advanced future systems in which debits and credits are made
simultaneously with the transactions that give rise to them. In other cases its use covers all
computer-based funds transfer systems, including *ATMs (automated teller machines),
*EFTPOS and debit cards, EFT-EDI (*electronic data interchange) systems, and the US
automated clearing house (ACH) network. There are several major worldwide EFT
networks, including the SWIFT (Society for Worldwide Interbank Financial Transmission)
network.
electronic graffiti See WEBSITE DEFACEMENT.
electronic learning See E-LEARNING.
electronic mail See EMAIL.
electronic organizer A pocket-sized computer with a smaller than standard keyboard
and an *LCD screen, designed to fulfil the function of a paper-based personal organizer. It
normally has a less sophisticated operating system than a *laptop or *desktop computer,
but has efficient scheduling, alarms, note-taking and address-book functions and will
allow the transfer of information between itself and larger machines. They have been
almost entirely superseded by the emergence of the *smartphone.
electronic point-of-sale system See EPOS, POINT-OF-SALE SYSTEM.
electronic publishing Publication of information through electronic media as opposed
to paper, so that it can be accessed by computer. An early use was the publication of
journals on CD-ROM and on the Internet, as well as in paper form. In book publishing,
electronic distribution is particularly suitable for reference books, such as dictionaries and
encyclopedias. On CD-ROM or, more recently, DVD, these can contain added features,
such as hyperlinks, video clips, audio clips, search facilities, etc. Publishing on the
Internet is also an important part of electronic publishing. There are two main commercial
areas. In one a reference book or collection of reference books is available through a
website, often on a subscription basis. The user can search for individual terms. This
dictionary, for example, is available on the service Oxford Reference Online. The other
form of electronic publishing is as e-books. These are electronic texts that are available for
download onto the buyer’s computer or a dedicated e-reader such as Amazon Kindle.
Formats for selling e-books vary. The e-book may simply be a facsimile of the paper
edition (in *PDF). Alternatively, the text may be reformatted for electronic use, often with
hyperlinks and additional search facilities.
The law of *copyright gives authors and/or publishers control over the use of their
work, and applies both to paper and electronic media. Computers make the copying of
information very easy, and if a computer is connected to a network then publications can
be copied to multiple sites. Practical approaches to providing protection against copyright
infringement are under constant investigation.
electronic signature A section of or attachment to a file, email, etc., that fulfils the
function of a written signature and is legally accepted as such. Types of electronic
signature include a *digital signature and a raster image of a person’s written signature.
electrophotographic printer Any printer in which the required image is written by a
beam of light onto a photoconductive drum or band that has a uniform electric charge over
its surface. The action of the light beam produces a charge pattern on the photoconductor,
which is then developed by applying particles of pigment that are attracted to the image
but are repelled by the background. The image is then transferred to paper by pressing the
paper against the drum or band and applying an electric field. The toner is fixed to the
paper by heat and/or pressure or by passing through a solvent vapour bath.
This type of printer can yield very good print quality, forming its image as a fine matrix
of dots. It can thus readily produce graphics and a wide variety of typestyles. The most
common example is the *laser printer.
electrosensitive printer An obsolete type of printer that produced the required image
by passing an electric current into the surface of specially prepared paper.
electrostatic beam deflection See BEAM DEFLECTION.
electrostatic printer A type of printer (no longer in widespread use) in which the
required image is first written as a pattern of electrostatic charge, and is then made visible
by bringing the pattern into contact with particles of pigment that carry a charge of
opposite polarity. The pigment is only attracted to the charge pattern and is subsequently
fused or bonded to the paper.
In some literature the term is used to refer to all printers in which an electrostatic image
is formed as one of the steps in the process, including *electrophotographic printers.
electrostatic storage device An obsolete storage device in which the data was stored
as a charge pattern within a *cathode-ray tube and could be read by a scanning beam of
electrons. The data was not usually visible. One of the early designs was the Williamstube store, developed by F. C. Williams of the University of Manchester, UK; it was one
of the earliest forms of random-access memory. Electrostatic storage was used on a
number of first-generation computers (Ferranti Mark I, Whirlwind, IBM 701, IAS). It
gave a significant reduction in storage cost compared to the mercury *delay line memory,
but the information had to be frequently regenerated (rewritten) and was lost when power
was removed. It was displaced in processor designs in the mid-1950s by *core stores.
electrothermal printer An obsolete type of *thermal printer in which a thermoplastic
ink is transferred from a ribbon to the base medium (usually paper or transparent film) by
localized heating.
element 1. (of a set) Another name for member. 2. See LOGIC ELEMENT.
Ellison, Larry (Lawrence Joseph Ellison) 1944– US software developer and
businessman. After learning the rudiments of programming in a brief spell at Chicago
University, Ellison worked as a programmer in the 1970s. Seeing the commercial potential
of *Codd’s work on *relational databases, Ellison founded Software Development
Laboratories in 1977, which in 1979 released *ORACLE, the first commercially available
*relational database management system. In 1983 the company itself was renamed
*Oracle. Ellison served as CEO from the company’s foundation until 2014, having led it
to the position of the world’s second-largest software company.
ELSE rule The last (usually rightmost) rule of an incomplete *decision table, i.e. a table
that does not include all possible combinations of conditions. The ELSE rule defines the
step set for all actions not satisfying the explicit rules of the decision table. A table with an
ELSE rule is complete since all possible combinations are taken into consideration.
EMACS An extensible portable text editor that is distributed freely as part of *GNU. A
derivative, Micro EMACS, runs on IBM PCs and compatible machines. EMACS is
particularly popular with programmers since its programmable interface allows it to be
customized to suit individual preferences.
http://www.gnu.org/software/emacs/emacs.html
• The GNU EMACS home page
email (e-mail, electronic mail) Messages sent between users of computer systems, the
computer systems being used to hold and transport messages. Sender and receiver(s) need
not be online at the same time, or even on the same continent, to communicate. Messages
can be sent with file attachments, providing a way of exchanging files with other users.
Email is an important component of an office automation system.
The originator of a message creates a specially formatted message file by running a
mail-sending program. The message may often be entered and modified using the generalpurpose editor of the user’s choice. When the message is complete, it is posted to a
message transport system, which takes responsibility for delivering the message. This may
involve passing the message through a store-and-forward relay system when the sender
and receiver are not connected to the same computer. At some later time the message is
delivered into the recipient’s incoming ‘mailbox’. The recipient runs a program that
retrieves incoming messages, allowing items to be filed, listed, forwarded, replied to, etc.
Frequently a single user-interface program is used to send and receive messages both
locally and worldwide.
Originally email was performed by using standard text hard copy or CRT terminals.
Now systems support the composition and delivery of multimedia mail, which can
combine text, graphics, voice, fax, and other forms of information in a single message.
Other functions often performed by an email system include verification of a user's
identity, expansion of named mailing lists into lists of recipients, and the location of a user
on the basis of partial information (directory services).
EMAS (Edinburgh multiaccess system) An operating system that was originally
developed at the University of Edinburgh and intended to support large numbers of
interactive terminals. It was one of the earliest systems to be implemented almost entirely
in a high-level language. A special implementation language, IMP, was devised for this
purpose. EMAS is no longer used.
embedded computer Any computer used as a component in a device whose prime
function is not that of a computer. One example is a weapons-guidance system. Another is
a computer-controlled blood analyser that uses a computer to control various tests that are
run on blood in order to produce an integrated printout of all test results. Many vehicles
and domestic products now contain embedded computers.
embedded servo See ACTUATOR.
embedding 1. A method of including information from one application in another. For
instance, a graph from a spreadsheet, the source, could be embedded in a word-processor
document, the destination. Embedding is different from *copying in that the application
that created the embedded information can be started up from within the destination
application if any modification is required. Embedding is also different from linking,
where no information is copied into the destination, only the whereabouts of the source
and what application created it. See also OBJECT LINKING AND EMBEDDING. 2. In
software, a low-level assembly language could be embedded into a higher-level language
to, for example, speed up operation or provide a special function. 3. The inclusion of fonts
in a document, as in a PostScript or PDF file.
EMC (electromagnetic compatibility) The property of equipment to work
satisfactorily in an environment with other equipment. All pieces of electric equipment
emanate electromagnetic (EM) radiation and are in turn susceptible to it. EMC
measurements aim to characterize this property and conformance with legally enforced
standards is mandatory.
EMI (electromagnetic interference) Disturbance to a signal involving any form of
electromagnetic (EM) radiation. See also EMC.
emittance texture A pattern of light arising from light emitting from a surface such as
a stained glass window.
emitter-coupled logic See ECL.
e-money (cybercash) Money that is exchanged through the Internet. In the early use of
the Internet for commercial purposes there were concerns about fraud and security, and it
was believed that users would be unwilling to buy items or services online. A number of
schemes were introduced to set up a secure form of ‘Internet currency’. In the event these
mostly came to nothing and most such transactions are by credit card.
emoticon (contraction of emotion + icon) A combination of punctuation marks, and
sometimes other characters, first used in *email and intended to convey the mood of the
writer; emoticons are also called smileys, regardless of mood. Standard keyboard
characters are used to make faces sideways on the line (see table).
Emoticon. Examples of some emoticons
empty list (null list) See LIST.
empty medium A *data medium that does not contain variable data but may have a
frame of reference or preformatting. Compare VIRGIN MEDIUM.
empty set (null set, void set) A set with no elements. It is usually denoted by φ.
empty string (null string) A string whose *length is zero. It is commonly denoted by ɛ
or Λ. The possibility of strings being empty is a notorious source of bugs in programs.
EMS memory See EXPANDED MEMORY.
emulation The exact execution on a given computer of a program written for a different
computer, accepting the identical data and producing the identical results. Emulation is
thus the imitation of all or part of one computer system by another system. It may be
achieved by software, microprogram, or hardware. A particular emulation could be used as
a replacement for all or part of the system being emulated, and furthermore could be an
improved version. For example, a new computer may emulate an obsolete one so that
programs written for the old one will run without modification. See also COMPATIBILITY,
SIMULATION, VIRTUAL MACHINE.
emulator Any system, especially a program or microprogram, that permits the process
of *emulation to be carried out.
enable To selectively activate a device or function. When a number of devices are
connected in parallel, selective operation can be achieved by an enabling action—such as
a signal on a discrete line or a pattern of signals on the common line or lines—that will set
only the desired device into a state in which it can receive further signals. Compare
INHIBIT.
enable pulse A pulse that must be present to allow other signals to be effective in
certain electronic logic circuits. Although the term is now used to describe an electronic
logic function it was originally used in an analogous way in connection with *core stores,
where the coincidence of two pulses was required to change the state of a core: one of the
pulses was the write pulse and could be common to a number of cores; an enable pulse
was simultaneously applied to a particular core and thus enabled the write pulse to change
the state of that core.
encapsulated PostScript (EPS) A format for importing and exporting *PostScript
files, usually used for illustrations. An EPS file is a single-page PostScript file, similar to
any PostScript file but with certain extra conditions. In particular, an EPS file has to
contain a bounding box comment describing the size of the illustration. The file can
contain graphics or text or a combination of the two and may contain embedded fonts.
Files of this type can be inserted into a page on a desktop publishing application, and the
graphic will be embedded in an output PostScript file of the page. In general, a basic EPS
file appears as a grey rectangle in the screen view of the page. For positioning purposes, it
is convenient to have an EPS file with an embedded bitmap preview, giving a lowresolution representation of the illustration. There are various ways of doing this. On
Mackintosh machines, EPSF files are commonly used. These have a PICT preview in the
resource fork of the file. On PCs it is usual to have an embedded low-resolution TIF file as
a preview. EPSI is an Adobe specification for a device-independent ASCII bitmap
preview.
encapsulation 1. See INFORMATION HIDING, OBJECT. 2. See INTERNETWORKING.
encoder 1. The means by which an encoding process is effected (see CODE). It may be
implemented in hardware or software, the process being algorithmic in nature. 2. A logic
circuit, usually an integrated circuit, that generates a unique n-bit binary word, indicating
which of its 2n input lines is active, i.e. at logic 1. A keyboard encoder, for example,
may be required to generate a unique binary code indicating which key on the keyboard
has been pressed.
If two or more of the device inputs can be active simultaneously then a priority
encoder is required, which usually encodes only the highest-order data input.
encoding 1. The transformation of a message into an encoded form. See also CODE. 2.
The representation of symbols in some alphabet by symbols or strings of symbols in some
other alphabet. A common example is *binary encoding.
encryption The processing of a message by a sender in order to render it unintelligible
to other than authorized recipients. See also CRYPTOGRAPHY.
end-around-carry A type of carry that is required when a *radix-minus-one
complement representation of integers is used and two integers so represented are
summed. If a carry is generated at the most significant end of the two numbers, then this
carry must be added to the digit at the least significant end of the result to give the radixminus-one complement representation of the sum.
end-around shift Another name for circular shift. See SHIFT.
endomorphism A *homomorphism from an *algebra to itself.
endorder traversal Another name for postorder traversal.
end-to-end control Control acting between two applications that are communicating
across one or more networks. Data traversing a network must be protected against a
number of possible forms of error. An individual unit of data may be corrupted, lost
completely, or delivered more than once; successive units of data may be delivered in the
wrong order. The sender may attempt to transmit data more quickly than the receiver can
receive it, or some part of the route can actually carry it. Within the network, the
transmitter and receiver at the two ends of an individual link will cooperate to control
some of these errors, and this is known as point-to-point control. However, it may
also be necessary to require the applications at each end of the overall connection to
cooperate in protecting against other forms of error, and this is end-to-end control.
end-to-end encryption The transfer of an encrypted message across a system without
intermediate stages of decryption and reencryption. Compare LINK ENCRYPTION.
energizer A hardware or software mechanism that is used as an aid in testing the
behaviour of a subsystem. The intention is that the energizer should drive the subsystem in
a way that simulates its actual application, and should at the same time analyse the
responses from the subsystem in order to detect any erroneous behaviour.
engine 1. A component of a software system that handles a specific aspect of processing.
Engines thus form part, or possibly the whole, of an application’s *back end. For example,
a database engine provides database services other parts of the system; a search engine
provides searching services; and so on. Engines can be shared among several applications
—for example, through the *client/server model—and are often bought from a third-party
specialist supplier. 2. Another name for back end.
engineering of computer-based systems (ECBS) A narrower form of *systems
engineering that addresses only those systems which are computer-based. This is a very
important subset of systems engineering, but is still very much wider than *software
engineering. It encourages a holistic view of a system, its environment, and its
components. Often the components of computer-based systems are also (lower-level)
computer-based systems. ECBS pays great attention to addressing non-functional
properties of a proposed design, and the need for give-and-take between different design
options prior to committing to an implementation. Give-and-take is seen as a crucial
aspect of such developments because it is here that competing requirements and conflicts
(especially commercial versus technical risk) can be addressed.
enhanced small-device interface See ESDI.
ENIAC (Electronic Numerical Integrator and Calculator) The first generalpurpose electronic calculator, designed and built by John W. Mauchly and J. Presper
Eckert Jr. at the University of Pennsylvania’s Moore School during the period 1943–46.
Originally designed for the production of ballistic tables for the Second World War, the
machine was not completed until after the war ended. It was widely used for scientific
computation until the early 1950s. See also UNIVAC.
enterprise modelling A form of *domain modelling where the domain is all or part of
a single enterprise, plus relevant parts of the environment(s) in which the enterprise does
business.
enterprise resource planning (ERP) Business management software designed to
cover the whole range of business activities, from the tracking of manufacturing inputs
and outputs to logistics, finance, and *customer relationship management. A key feature of
ERP is that information from all of these different activities is brought together to improve
decision-making.
enterprise server 1. A *server intended to provide service to an entire organization
rather than to a selected subset of the organization. It is most likely to be the system
maintaining a corporate database, where there are high levels of interaction between the
separate entries in the database, and between the separate uses made of the database by the
individual members of the organization. The enterprise server may be a server in a
*client/server environment. 2. Informal name for mainframe.
entity In programming, any item, such as a data item or statement, that can be named or
denoted in a program.
entity-relationship-attribute diagram, model See ERA DIAGRAM, ERA MODEL.
entropy A measure of the amount of information that is output by a source, or
throughput by a channel, or received by an observer (per symbol or per second).
Following Shannon (1948) and later writers, the entropy of a *discrete memoryless source
with alphabet A = {ai} of size n, and output X at time t is
where
The logarithmic base b is chosen to give a convenient scale factor. Usually,
or
Entropy is then measured in bits, in natural units or nats, or in Hartleys,
respectively. When the source has memory, account has to be taken of the dependence
between successive symbols output by the source.
The term arises by analogy with entropy in thermodynamics, where the defining
expression has the same form but with a physical scale factor k (Boltzmann constant) and
with the sign changed. The word negentropy is therefore sometimes used for the
measure of information, as is uncertainty or simply ‘information’.
entry point (entry) The instruction to which control is transferred when a subroutine is
called.
entry time The time at which a *process is started or restarted by the process scheduler.
enumeration A list of items in order. Thus the items are organized in such a way that
they can be counted, and for each nonnegative integer i within an appropriate range there
is a unique item associated with it. An enumeration may be finite or infinite; when an
infinite set is involved, the infinite set must be *countable. An enumeration is said to be
effective if there is an *algorithm for producing the enumeration.
Enumeration is used to define *data types in languages of the Pascal and Jovial
families. It also plays a significant role in *combinatorics where one might typically talk
of an enumeration of *permutations or *combinations, of *binary trees, of *graphs, of
*groups, etc.
enumeration type A *data type comprising values that are explicitly defined by the
programmer.
environment (software environment) The set of facilities, such as operating system,
windows management, database, etc., that is available to a program when it is being
executed by a processor.
environment mapping The process of reflecting the surrounding environment in a
shiny object. A simplified *ray tracing algorithm is used to model the environment: only
the reflected ray is traced and the process is terminated at a depth of two (i.e. after two
intersections).
EOB Abbrev. for end of block.
EOD (end of data) A code that is written into a serially accessed memory, such as a
magnetic tape file, immediately after the last data record. It thus indicates the starting
point for new records. When these are added, the original EOD code is erased and a new
one written at the end of the added data.
EOF Abbrev. for end of file.
EOJ Abbrev. for end of job.
EOR Abbrev. for end of record.
EOT 1. (end of transmission) A character sequence on a data link indicating that the
current transmitter has nothing further to send. Active stations on the data link return to
their idle state and wait for a new series of messages. 2. Abbrev. for end of tape.
EOT marker (end of tape marker) A feature of a *magnetic tape by which the tape
transport senses on the tape the end of the volume into which data can be or has been
recorded. It is complementary to the *BOT marker, and is similarly defined by the
standard pertaining to the type of tape.
epimorphism A *homomorphism that, when viewed as a *function, is a *surjection.
epistemology The study of knowledge: a branch of philosophy important in *artificial
intelligence for theoretical investigations of belief and knowledge representation.
EPLD (erasable programmable logic device) A *PLD in which the programming
is erasable (see PROGRAMMABLE DEVICE).
epoch The time interval between successive elements of a discrete-time signal, or
between the discrete-time samples of a continuous-time signal (see DISCRETE AND
CONTINUOUS SYSTEMS). Usually, for a given signal, the epochs are of a fixed size.
EPOS (electronic point of sale) Usually used in compounds such as EPOS terminal,
EPOS system. See POINT-OF-SALE SYSTEM.
EPPT (European printer performance test) A standardized test for establishing
the throughput of office printers. The familiar ratings of characters per second, lines per
minute, etc., cannot be relied upon to give a true indication of the throughput achievable in
a real application. A set of benchmark tests agreed by a group of European printer
manufacturers define standard letter, spreadsheet, and graphic printouts and the way in
which the task is timed. These tests were standardized as ECMA 132 and have since been
superseded by ISO 10561.
EPROM (erasable programmable read-only memory) A type of *PROM that
is capable of being programmed a number of times by the user. The contents of EPROMs
are generally erased (i.e. reset to their nonprogrammed state, usually logic 1) by exposure
to hard ultraviolet radiation. The EPROM may then be reprogrammed, i.e. selected
elements set to logic 0, using a *PROM programmer. See also EEPROM.
EPS See ENCAPSULATED POSTSCRIPT.
EPSF See ENCAPSULATED POSTSCRIPT.
EPSI See ENCAPSULATED POSTSCRIPT.
equation An expression that asserts the equality of two *terms. To be precise, an
equation has the following form. Let Σ be a *signature and let t1(X1,…, Xn) and t2(X1,…,
Xn) be two terms over Σ involving the variables X1,…, Xn. Then
is an equation.
Equations are a natural means of expressing possible relationships between the
functions in a signature. In fact, the equations can be used to specify or define the
functions uniquely using initial algebra semantics (see EQUATIONAL SPECIFICATION).
Most systems in science and engineering are described mathematically using equations.
Two stages are involved: a mathematical model of the system is made using sets and
functions; some functions are known and others are to be found. Equations are postulated
to define the unknown functions in terms of one another and the known functions.
Research has shown that the same process is possible for computing systems. Indeed,
theoretically it is known that any computing system, or any physical system that can be
faithfully modelled using digital computation, can be characterized by small sets of
equations. See also COMPUTABLE ALGEBRA.
equational logic See BIRKHOFF’S COMPLETENESS THEOREM.
equational specification A set of *equations that specifies a computing system or
abstract data type. More precisely, the system or data type is modelled by an *algebra, and
this algebra is defined by the equations using *initial algebra semantics.
Let A be an algebra of signature Σ. Then A is said to have an equational specification (Σ,
E), under initial-algebra semantics, if E is a set of equations over Σ such that the initial
algebra T(Σ, E) is isomorphic with A. For example, the algebra
of natural numbers is specified by means of (Σ,E) shown in Fig. a.
An equational specification with hidden functions and sorts is an equational
specification in which extra or hidden functions and sorts of data are allowed in order to
construct equations. Inventing and adding functions, and even data types, to specify a
computation or to a model a system is an obvious and natural technique. Consider the
algebra
of numbers with signature ΣSQ shown in Fig. b. The algebra B is a *reduct of the algebra A
of numbers given above, i.e.
and B can be specified by specifying A using the equational specification (Σ, E) given
above. If A is isomorphic with the initial algebra T(Σ, E), then the reduct
is isomorphic with the algebra B. Thus (Σ, E) is an equational specification of B with two
hidden functions, namely addition and multiplication.
The square algebra B cannot be given a finite equational specification without using
hidden functions; thus the technique is essential. It is known that any computable algebra
can be given an equational specification using as little as six hidden functions and four
equations, and initial-algebra semantics.
Equational specification.
The general definition is as follows. An algebra A of signature Σ is said to have an
equational specification (Σ0, E0) with hidden functions and sorts, under initial-algebra
semantics, if Σ ⊆ Σ0, and E0 is a set of equations over Σ0 such that the reduct
of the initial algebra T(Σ0, E0) with respect to Σ is isomorphic with A.
See also COMPUTABLE ALGEBRA.
equational term rewriting system See TERM REWRITING SYSTEM.
equipotent See CARDINALITY.
equivalence 1. The logical connective combining two statements or formulas P and Q
in such a way that the outcome is true if both P and Q are true or if both are false, as
shown in the table. P and Q are said to be equivalent. The connective can be read as ‘if
and only if’ or ‘iff’, and is usually denoted by one of the following symbols:
See also EXCLUSIVE-NOR GATE, PROPOSITIONAL CALCULUS. 2. A relationship between
objects that are operationally or structurally indistinguishable, e.g. in *combinational
circuits, *graphs, or *grammars. Equivalence is less strong than identity or equality but
much more useful in practice. See also MACHINE EQUIVALENCE.
Equivalence. Truth table
equivalence class A *subset of a set S (on which an *equivalence relation is defined)
that consists of all the elements of S that are equivalent to each other, and to no other
elements of S. An equivalence relation provides a partitioning (see COVERING) of a set into
a number of mutually *disjoint equivalence classes.
The relationship ‘has the same surname as’ defined on the set of people produces an
equivalence class consisting of all those with Jones as surname, another consisting of
those with Smith as surname, and so on.
equivalence gate See EXCLUSIVE-NOR GATE.
equivalence relation A *relation that is *transitive, *symmetric, and *reflexive. The
concept is a convenient generalization or abstraction of equality. It covers most notions of
equals, equivalence, and similarity as defined between triangles, algorithms, Boolean
expressions, algebraic structures, statements, etc. See also EQUIVALENCE CLASS, PARTIAL
ORDERING.
equivalent binary digits For a given source alphabet, S, the number of equivalent
binary digits is the minimum number of bits that need to be taken in a *block code to give
at least as many codewords as there are symbols in S.
equivalent trees *Similar trees with the same data at corresponding nodes.
ERA diagram (entity-relationship-attribute diagram) A diagrammatic notation
for describing and documenting an *ERA model. Entities are shown as boxes in the ERA
diagram and have an entity name; usually names are required to be unique. Attributes are
generally shown as annotations of the entity boxes. Relationships are shown as lines
between entity boxes. Markings on the line indicate the name(s) of the relationship,
cardinality of the relationship (one to one, one to many, or many to many), and whether
the relationship is optional or mandatory. Many *software tools for editing diagrams can
handle ERA diagrams.
ERA model (entity-relationship-attribute model) A model of a set of data items
and relationships between them in terms of the *entities, relationships, and *attributes
involved.
Entities have attributes and have relationships with other entities. They have an entity
name; usually names are required to be unique. Entities are often implemented as a record
comprising a number of fields.
Attributes are usually represented in a *data dictionary and describe the characteristic
features of the entity. Each attribute is named; usually names of attributes are required to
be unique. Attributes are often implemented as fields with values.
Each relationship has two names (a forward and a reverse name); usually relationship
names are required to be unique. There can be more than one relationship between a pair
of entities.
See also ERA DIAGRAM.
erasable programmable logic device See EPLD.
erasable PROM See EPROM. See also PROGRAMMABLE DEVICE.
erase head See MAGNETIC TAPE.
eraser An item of electronic equipment that can carry out the erasure process for an
*EPROM. It often consists of an enclosed source of ultraviolet radiation, close to which
the EPROM may be placed, and a timer.
erasure channel A communication *channel in which the effect of *noise is to cause
the *decoder sometimes to be presented with an ‘error’ symbol to decode. The decoder
may then act in the knowledge that in such symbol positions the symbol actually
transmitted is unknown: it is thus in a better position than when presented with an
incorrect symbol but not the knowledge that it is incorrect (other than can be deduced by
using an *error-detecting or *error-correcting code).
ergodic source See DISCRETE SOURCE.
ergonomics The study of the interaction of people and the equipment with which they
work. In computing, ergonomics is applied mainly to the field of *workstation technology.
Erlang A programming language developed by the Ericsson company and now open
source.
ERP Abbrev. for enterprise resource planning.
error 1. The difference between a computed, observed, or measured value or condition
and the true, specified, or theoretically correct value or condition. 2. An incorrect result
resulting from some *failure in the hardware of a system. 3. An incorrect step, process, or
data definition in for example a program. See also SEMANTIC ERROR, SYNTAX ERROR.
error analysis A term that when applied to *numerical analysis refers to the
mathematical analysis that describes the various aspects of error behaviour in numerical
methods (or algorithms). Convergence of an algorithm is a fundamental requirement.
Most algorithms result in the construction of a sequence of approximations. If this
sequence tends more and more closely to the true solution of the problem, the algorithm is
convergent. How fast the algorithm converges is important for its efficiency; some insight
is provided by the *order of the method. Since most algorithms are terminated before
convergence is reached, the size of the error after a finite number of steps must be
estimated. How big the error is at most can be determined from an error bound. This
must be reasonably ‘sharp’, i.e. it must not grossly overestimate the error. How big the
error is approximately is referred to as an error estimate and is usually determined
from an asymptotic formula. Such estimates are widely used in step-by-step methods for
*ordinary differential equations; here the stepsize, h, must be small enough for the
estimate to be accurate.
In *numerical linear algebra backward error analysis has proved very successful
in analysing errors. In this approach it is shown that the numerical solution satisfies
exactly a perturbed form of the original problem. Bounds for the perturbations are
determined and these can be inserted into standard results, thus producing a bound for the
error in the numerical solution. The approach can be applied to other areas.
error bound See ERROR ANALYSIS.
error burst Another name for burst error.
error control (error management, error handling) The employment, in a computer
system or in a communication system, of *error-detecting and/or *error-correcting codes
with the intention of removing the effects of error and/or recording the prevalence of error
in the system. The effects of errors may be removed by correcting them in all but a
negligible proportion of cases. Error control aims to cope with errors owing to *noise or to
equipment malfunction—in which case it overlaps with fault tolerance (see FAULTTOLERANT SYSTEM)—but not usually with the effects of errors in the design of hardware
or software. An important aspect is the prevention of mistakes by users. Checking of data
by software as it is entered is an essential feature of the design of reliable application
programs.
Error control is expensive: the balance between the cost and the benefit (measured by
the degree of protection) has to be weighed within the technological and financial context
of the system being designed. See also ERROR RECOVERY.
error-correcting code A *code that is designed for *channel coding, i.e. for encoding
information so that a decoder can correct, with a high probability of success, any errors
caused in the signal by an intervening noisy channel.
Error-correcting codes may be *block codes or *convolutional codes, and in either case
are employed in a *forward error-correction system. The most common error-correcting
block codes are the *Hamming codes, *Bose–Chaudhuri–Hocquenghem (BCH) codes,
*Reed–Solomon (RS) codes, *simplex codes, and the *Golay (23, 12) code.
Since errors may be corrected by detecting them and requesting retransmission, the
process of error correction is sometimes taken to include backward error-correction
systems and, hence, *error-detecting codes.
See also CODING BOUNDS, CODING THEORY, SHANNON’S MODEL.
error correction See ERROR-CORRECTING CODE, ERROR RECOVERY.
error-detecting code A *code that is designed for *channel coding, i.e. for encoding
information so that a decoder can detect, with a high probability of success, whether an
intervening channel has caused an error in the signal.
Error-detecting codes are usually *block codes, and are generally employed in a
*backward error-correction system. The most common error-detecting codes are the
*cyclic redundancy checks, of which the simple parity check is a technologically
important case.
See also CODING BOUNDS, CODING THEORY, ERROR-CORRECTING CODE, HAMMING
DISTANCE, SHANNON’S MODEL.
error detection The detection of errors in data handled by a peripheral device or
communication link; it is often associated with *error recovery and *error correction. Data
to be stored or transmitted can be coded in a way that allows most errors to be detected.
The simplest *error-detecting code is the addition of a parity bit to each byte of data, but
more powerful codes are often used which operate on larger units such as a sector or
block. Some devices also check for marginal conditions, such as low signal amplitude,
which are associated with data errors. In storage peripherals, errors may be detected at the
time data is written (as in *DRDW and *DRAW), as a separate operation after writing
(*verification), or during a read operation at some later time. Error detection does not
normally involve a bit-by-bit comparison with the original data even if this is still held in a
buffer or in host memory. See also ERROR CONTROL.
error diagnostics Information that is presented following the detection of some error
condition and is mainly intended to assist in identifying the cause of the error.
As an example, consider the compilation and subsequent execution of some program.
Syntactic errors in the program, i.e. failure of the program to conform to the defined
*syntax of the programming language, would normally be detected at compilation time,
and the compiler would then generally produce error diagnostics to indicate both the
location and the kind of error (unrecognized statement, undeclared identifier, etc.). At
execution time certain kinds of semantic errors may be detected, i.e. improper
behaviour of a program that conforms to the defined syntax of the language (such as
attempted division by zero). In this case the error diagnostics may be produced by some
run-time system. See also ERROR ROUTINE.
error estimate See ERROR ANALYSIS.
error handling Another term for error control.
error-indicating recording (EIR) See DISK FORMAT.
error management Another name for error control.
error message See ERROR ROUTINE.
error propagation A term that refers to the way in which, at a given stage of a
calculation, part of the error arises out of the error at a previous stage. This is independent
of the further *roundoff errors inevitably introduced between the two stages. Unfavourable
error propagation can seriously affect the results of a calculation.
The investigation of error propagation in simple arithmetical operations is used as the
basis for the detailed analysis of more extensive calculations. The way in which
uncertainties in the data propagate into the final results of a calculation can be assessed in
practice by repeating the calculation with slightly perturbed data.
error rate 1. (of a communication channel) The frequency with which errors or noise
are introduced into the channel. Error rate may be measured in terms of erroneous bits
received per bits transmitted. For example, one or two errors per 100 000 bits might be a
typical rate for a narrowband point-to-point line. The distribution of errors is usually
nonuniform: errors tend to come in bursts (see BURST ERROR). Thus the error rate of a
channel may be specified in terms of percentage of error-free seconds. Frequently an error
rate is expressed as a negative power of ten: an error rate of one bit per 100 000 would be
expressed as an error rate of 10−5.
Another method of presenting error rate is to consider the errors as the result of adding
the data signal to an underlying error signal. The extent of error can then be expressed as
the *entropy of the error signal, or, in the case of physical signals, as the ratio of the
strengths of the two signals—the *signal-to-noise ratio—expressed in decibels. 2. (of a
data storage subsystem) A measurement of the proportion of errors occurring in data
transfers to or from the storage medium. It is usually expressed in terms of the average
number of bytes or bits of data transferred per error, e.g. 1 error per 109 bytes, although it
can also be useful to express the rate as the average time between errors for typical usage
of the subsystem, e.g. 1 undetected error in 6 weeks at 10% duty cycle.
The error rates most frequently specified relate to the following.
A transient (or recoverable) read error occurs during reading and can be
recovered by the error recovery procedure prescribed for the storage subsystem (see
ERROR RECOVERY). Where the recording format provides sufficient redundancy to allow
some error to be recovered on-the-fly, i.e. without re-reading the data, it is necessary to
define also the raw error rate, which is the rate that would be perceived if on-the-fly
error recovery was not applied.
A permanent (or irrecoverable) read error cannot be recovered by the
prescribed error recovery procedure.
A transient (or recoverable) write error occurs during writing and can be
recovered by the error recovery procedure prescribed. It is desirable, though not easy, to
distinguish two components of this error rate: errors attributable firstly to flaws in the
media and secondly to failings of the device (one reason for the difficulty is that these tend
to interact).
A permanent (or irrecoverable) write error cannot be recovered by the
prescribed procedure. Again it is necessary to distinguish between media flaws and device
errors: rather than give a figure for the latter it is usual to regard each occurrence as a fault
to be accounted for in the failure rate of the device (see HARDWARE RELIABILITY).
An undetected error is an error that is not detected by the storage subsystem,
presumably because of some inadequacy in the error check facilities defined by the format
or in their implementation, or because of errors occurring outside the ambit of these
facilities (see DATA INTEGRITY).
error recovery 1. The ability of a compiler to resume parsing of a program after
encountering a syntax error. 2. Any process whereby it is possible to recover the data from
a data unit (such as a sector or block) that has been shown by an *error detection
procedure to contain one or more errors. There are two approaches: retry and error
correction. Retry involves rereading the data unit from the storage medium or
retransmitting it over the communication link; this may be repeated more than once. Error
correction depends on the data coding being sufficiently redundant to allow errors to be
recovered by logical manipulation of the data without rereading it (see ERRORCORRECTING CODE). In each case, recovery may need intervention by the host software or
may be carried out automatically by the device. Where recovery is automatic, the host is
able to monitor the number of errors that are recovered.
When the error is detected during writing or verification, the faulty data unit may be
corrected or replaced (see WRITE ERROR RECOVERY); in a device with powerful error
correction, such as an optical disk drive, this is not always necessary.
error routine Any routine within a program that is entered as a result of some error
condition having been detected. The actions taken by such a routine will be dependent
upon the reliability requirements that the program is expected to meet and upon the
strategy for error analysis and recovery. A typical error routine might simply produce an
error message (i.e. a message that reports the occurrence of an error) or it might
attempt to diagnose the cause of the error or attempt to recover so that normal operation
can continue.
error seeding See SEEDING.
escape character 1. A character that changes the meaning of a character or characters
immediately following. It is like a temporary *shift character. The *ASCII characters ESC
and DLE are used in this way. Graphic characters (see CHARACTER SET) are also used as
escape characters in particular contexts. 2. A character that causes the character or
characters immediately following to be read by an application but not interpreted by the
application. This occurs, for example, with text-formatting applications, where certain
characters that usually indicate formatting directives may, in some cases, constitute part of
the formatted output.
escape sequence An *escape character with the associated following characters, used
for controlling a peripheral device. See also CONTROL SEQUENCE.
escrow A process whereby a copy of a password or encryption key is held by a third
party to allow the key to be recovered if the original is lost.
ESD (electrostatic discharge) A mechanism that affects the reliability and often
brings about the failure of active electronic components, such as insulated-gate FETs
(MOSFETs). It is caused by the sudden discharge of energy, usually from the operator’s
body, and special precautions must be taken to ensure that there is no potential difference
between the operator and the devices concerned. See also ANTI-STATIC PRECAUTIONS.
ESDI (enhanced small-device interface) A scheme for connecting hard disks to
microcomputers with a serial transfer rate of 10–25 bps. ESDI has been largely superseded
by *ATA, *Serial ATA, and *SCSI device attachment standards.
ESF coating A transparent conducting layer deposited on the surface of a *cathode-ray
tube (CRT) that allows the surface charge to leak away, thus reducing the ESF
(electrostatic field) to negligible values. The high accelerating voltage (14–25 kilovolts) of
CRTs can produce an electrostatic charge on the surface. This is analogous to the charge
produced by friction with highly insulating materials. It is claimed by some experts that
this can be harmful to users. There is currently no consensus as to the levels or exposure
limits that should be enforced.
ESPRIT (European Strategic Programme for Research in Information
Technology) There have been three ESPRIT programs: ESPRIT I, 1984–87; ESPRIT II,
1987–91; ESPRIT III, 1991–94. They were funded by the European Community, and
formed major components of the Community’s successive R&D Framework
Programmes (I, II, and III respectively).
Under Framework IV (1995–98), the ESPRIT label was dropped and the program
went under the name RTD Programme in Information Technologies (RTD is
short for Research and Technological Development). Subsequent programs were
Framework V (1998–2002) and Framework VI (2002–06), and Framework VII
(2007–13). In 2013 the name was changed to Horizon, the current program being
Horizon 2020 (2014–20).
See also ESSI.
http://ec.europa.eu/programmes/horizon2020/
• The Horizon 2020 programme home page
ESSI (European Systems and Software Initiative) A program of technology
transfer and software process improvement within *ESPRIT III. As distinct from the main
body of ESPRIT, which supported R&D projects, ESSI had the goal of improving
software development practice in industry and business. The Framework IV Programme,
1995–99 (see ESPRIT), included a continuation of ESSI under the name Software Best
Practice.
ETB A *control character used to mark the end of a transmission block. See also
ETX/ACK.
Ether See ETHERNET.
Ethernet A very widely used *local area network system. Ethernet uses *broadcast
*packets that are transmitted over a purely passive medium, usually referred to as the
Ether. In practice the Ether usually takes the form of a *coaxial cable (see THICK WIRE),
but the system can also use *twisted pairs and *optical fibre. The system operates at a
nominal speed of 10 megabits per second (Mbps), and implements the two lower layers of
the ISO/OSI *seven-layer reference model. *Fast Ethernet (operating at 100 Mbps),
Gigabit Ethernet (operating at 1 Gbps), and 10 Gigabit Ethernet are also
available. A joint standard for 40/100 Gigabit Ethernet was finally ratified in 2010,
and 400 Gigabit Ethernet is under study. For cost reasons, a standard for 25 Gigabit
Ethernet is also under study, to replace 40 Gigabit Ethernet. Ethernet was originally
developed in 1976 at Xerox PARC, operating at 4 Mbps. Later it was offered as a standard
jointly sponsored by Digital Equipment, Intel, and Xerox. The formal definition of the
Ethernet standard is available as ISO 802.3.
Each system on the network, usually a computer, connects to the Ether by means of a
station, each station having a unique 48-bit address called a MAC address (in
reference to the *MAC layer). All packets contain the address of the sending station and
the address of the receiving station. When a packet is transmitted it is broadcast to all the
stations. Each station will receive all packets, but will only pass packets addressed to that
station to the system connected to it. A packet can be marked as a ‘broadcast’ to be
accepted by all the systems connected to the Ether.
Ethernet stations use a protocol known as CSMA/CD—Carrier Sense MultiAccess/Collision Detection—to insert a packet onto the Ether. (CSMA/CD is also the
formal name for Ethernet.) When a station wishes to transmit a packet, it monitors the
Ether for the presence of signals from other stations. If no signal is present then the station
starts to transmit, and continuously compares the signal on the Ether with the data it is
transmitting. Any difference indicates that another station has also started to transmit a
packet, and that there is a collision between the two packets. This can occur because the
distance separating the two transmitting stations is such that, although both stations had
started to transmit during the period when the other was monitoring the Ether, the
outgoing signal had not yet reached the other station. Both stations immediately cease
transmission, wait for different times, and then retry the transmission. This system has the
advantage that the mechanism for gaining access to the Ether is fully distributed and selfstarting. Its main drawbacks are the unpredictability of the time needed to gain access, and
the fact that the effective bandwidth actually diminishes under heavy loads as the
probability of a collision increases. The limits to the length of the Ether cable are
determined by the need to reduce the probability of a collision to an acceptable level,
achieved by reducing the maximum time needed for a signal to traverse the Ether. See also
EXPOSED TERMINAL PROBLEM, HIDDEN TERMINAL PROBLEM.
The physical size of the Ethernet can be increased by the use of repeaters, which simply
amplify the signals, and by *bridges and *routers, which store and retransmit a complete
packet.
http://standards.ieee.org/about/get/802/802.3.html
• The latest (10 Gigabit) Ethernet standard
Ethernet card An *add-in card that allows a computer system to exchange data with an
*Ethernet network. Most cards can handle some alternative connection methods, for
instance multipin *AUI, coaxial *thin wire, and unshielded *twisted pair, as well as
providing buffering between the Ethernet and the memory of the computer.
e-ticket A ticket that has no physical form but exists only in a computer database. Etickets are most commonly used for airline bookings.
ETX/ACK A method of terminating a series of transmissions relating to a single
complete transaction using *control characters. The sending device transmits an ‘ETX’
(end-of-text) control character when a transaction is completed, and the receiving device
acknowledges the satisfactory receipt of the ETX with an ‘ACK’ (see
ACKNOWLEDGMENT). Termination of transmissions in this way should not be confused
with the *flow control necessary to regulate traffic during the transmission process.
Euclidean norm (two-norm) See APPROXIMATION THEORY.
Euclid’s algorithm An algorithm for finding the greatest common divisor of two
integers, m and n. If m > n divide m by n and let r be the remainder. If r = 0 then n is the
answer; otherwise apply the same algorithm to the integers n and r.
Eudora An electronic-mail system originally developed for Apple Macintosh systems
but subsequently implemented on a number of other hardware platforms. It is now an
*open-source project.
EUI-48 See MAC ADDRESS.
EUI-64 See MAC ADDRESS.
Euler cycle (Euler path) A *path in a directed *graph that includes each edge in the
graph precisely once; thus it represents a complete traversal of the arcs of the graph. The
concept is named for Leonhard Euler who introduced it around 1736 to solve the
*Königsberg bridges problem. He showed that for a graph to possess an Euler cycle it
should be *connected and each vertex should have the same number of edges entering it as
leaving it.
Euler operators Operations on objects that satisfy *Euler’s formula in order to
transform the object into a new object that also satisfies Euler’s formula. Adding an edge
that divides an existing face is an example of an Euler operator; one edge and one face is
added in this way, which preserves Euler’s formula unchanged.
Euler’s formula A formula that states necessary but not sufficient conditions for an
object to be a simple polyhedron. An object with V vertices, E edges, and F faces
satisfies the formula
where χ is called the Euler characteristic of the surface in which the object is
embedded. For a plane *connected graph, the formula takes the form
For a simple polyhedron in Euclidean 3-space, the formula has the form
A simple polyhedron is any polyhedron that can be continuously deformed into a sphere,
assuming that its faces are treated like sheets of rubber. All faces are bounded by a single
ring of edges: there are no holes in the faces; each edge joins exactly two faces and is
terminated by a vertex at each end. At least three edges meet at each vertex.
Euler’s method See DISCRETIZATION.
EUREKA A European program of development in a wide range of technologies
including *information technology (IT). The projects are collaborative with at least two
different companies from different countries participating in a project. Some funding is
provided by the national funding agencies. It is not limited to European Union countries.
http://www.eurekanetwork.org/
• The EUREKA home page
European Article Numbering code (EAN code) See BAR CODE.
evaluation function A procedure that uses *domain knowledge to determine a
perceived value of a situation during a *search process. It must be custom designed and
implemented for each application. Evaluation functions have conflicting requirements as
they must produce a relevant and accurate ‘figure of merit’ (which may be expensive to
compute) but are used a great many times during a search (and so must be very fast and
efficient). Frequently this conflict is handled by using *heuristics in the evaluation
process.
even parity A property that holds when a group of binary values contains an even
number of 1s. See PARITY.
event-driven A way of describing behaviour in which distinct events are identified, and
each event is linked to a defined sequence of actions taken whenever the event occurs.
event input Asynchronous input that adds input events to an input queue. The
application can remove events from the queue as and when it desires.
event tree analysis A systematic approach to reasoning about the consequences of
some initial event, and whose purpose is to identify *hazards in a *system. It uses
diagrams in the form of trees.
evolutionary programming A branch of *artificial intelligence that, by analogy with
the phenomena of evolution in nature, attempts to develop software through processes of
natural selection and reproduction.
exa- A prefix indicating a multiple of 1018. In computing it has a value of 260 (1,152,921,
504,606,846,976). See also BINARY PREFIXES.
exbi- See BINARY PREFIXES.
Excel Trademark A widely used *spreadsheet program from Microsoft.
exception An event occurring during execution of a program that makes continuation
impossible or undesirable. Examples include division by zero, arithmetic overflow, array
reference with index out of bounds, fault condition on a peripheral, and external interrupt.
Some programming languages respond to an exception by aborting execution, but others
(e.g. Ada, C++) allow the programmer to provide a piece of code—called an exception
handler—that is automatically invoked when the exception occurs. This can take
appropriate remedial action, then either resume execution of the program (at the point
where the exception occurred or elsewhere) or terminate the program in a controlled
manner.
exception handling Mechanisms in a programming language for dealing with
*exceptions. Some languages make no such provision; among those that do are Ada, C++,
and Java.
excess-3 code An 8421 *code for which the weighted sum of the four bits in each
codeword is three greater than the decimal digit represented by that codeword. For
example, 9 is represented by 1100, the weighted sum of which is
excess factor Another name for bias. See FLOATING-POINT NOTATION.
excess-n notation (excess notation) See FLOATING-POINT NOTATION.
exchangeable disk store (EDS) An obsolete storage medium consisting of a magnetic
*disk pack or *disk cartridge that could be removed from its host system for library
storage, and be replaced by another EDS of the same type. The store could be fitted to
another host system having the same type of drive and means of recording and reading
data. Compare FIXED DISK DRIVE.
exchange selection Another name for bubble sort.
exclusive-NOR gate (EXNOR gate) An electronic *logic gate whose output is logic 0
(false) only when any one of its inputs is logic 1 (true) and all the others are logic 0,
otherwise the output is logic 1. It implements the logical operation of *equivalence and
has the same *truth table. It is thus also known as an equivalence gate. Like the
*exclusive-OR gate it can be used as a simple digital *comparator. The diagram shows the
circuit symbol and truth table of a two-input gate.
Exclusive-NOR gate. Two-input EXNOR gate, circuit symbol and truth table
exclusive-OR gate (EXOR gate) An electronic *logic gate whose output is logic 1
(true) only when any one of its inputs is logic 1 and all the others are logic 0 (false),
otherwise the output is logic 0. It therefore implements the logical *exclusive-OR
operation and has the same *truth table; it is thus sometimes known as a
nonequivalence gate. Like the *exclusive-NOR gate it can be used as a simple digital
*comparator. The diagram shows the circuit symbol and truth table for a two-input gate.
Exclusive-OR gate. Two-input EXOR gate, circuit symbol and truth table
exclusive-OR operation The logical *connective combining two statements, truth
values, or formulas P and Q in such a way that the outcome is true if either P or Q (but not
both P and Q) is true, as shown in the diagram. Since the outcome is true precisely when
the operands are different, it is sometimes referred to as the nonequivalence
operation. It can be represented in a variety of ways, the more common methods being
XOR, xor, and ∨. See also OR OPERATION.
Exclusive-OR Operation. Truth table
executables Files that when loaded into memory can be executed directly.
execute To carry out an instruction or program. This includes interpreting machine
instructions, performing subroutines, and applying functions to sets of parameters.
execute phase The time during a program run in which the target program is actually
being executed.
execute step The step in instruction execution that performs the operation(s) of the
instruction and the associated memory references. See also CONTROL UNIT.
execution states The various states in which a computer system may be operating;
these states have differing degrees of ability or privilege attached to them. There may be
two or more states. In the simplest case there is a supervisor state (or executive
state) and a user state. With more than two execution states at different levels, differing
degrees of privilege may be granted. These states can represent some of the used resources
in an access matrix. See also ACCESS CONTROL.
execution time See RUN TIME.
executive program An early name for a *supervisor. In current terminology an
executive is not strictly speaking a program since the latter is usually taken to refer to one
or more processes that are collaborating in order to achieve results on behalf of a single
user. By contrast an executive is responsible for the supervision of many disjoint
processes, which do not cooperate in any way.
executive state (supervisor state) See EXECUTION STATES.
exerciser A device or program used to test a subsystem by thoroughly and repetitively
performing each of its designed functions and monitoring the results. An example is a
floppy-disk exerciser.
exhaustive search A mechanical search algorithm that systematically examines all the
nodes in a search tree, an example being a *breadth-first search. Although usually very
simple to program and requiring no *domain knowledge, in most cases the *combinatorial
explosion will prohibit the use of exhaustive search.
existential quantifier See QUANTIFIER.
exit point (exit) The point at which control leaves a subroutine.
EXNOR gate Short for exclusive-NOR gate.
EXOR gate Short for exclusive-OR gate.
expanded memory (EMS memory) A way of accessing IBM-PC-type memory above
1 Mbyte by mapping it one 16-Kbyte page at a time into dedicated areas of RAM (called
page frames) in the upper memory region lying between 640 Kbyte and 1 Mbyte.
Although obsolete, it is still emulated in Windows for backward compatibility.
expansion (of an algebra) An *algebra formed by adding some new operations, and
possibly new carriers, to another algebra.
expansion card Another name for add-in card.
expansion slot The connectors and physical supports in a computer into which an *addin card is inserted. The number and type of expansion slots is an important characteristic
in distinguishing different types of computer. In general, the more expansion slots, the
more upgradable the computer. Most expansion slots connect to one of the many kinds of
*bus or sometimes into a proprietary *backplane or *motherboard. In laptops and other
portable computers, they are called *PCMCIA slots.
expectation See MEASURES OF LOCATION.
experimental design A system of allocating treatments to experimental units so that
the effects of the treatments may be estimated by *statistical methods. The basic principles
of experimental design are replication, i.e. the application of the same treatment to
several units, randomization, which ensures that each unit has the same probability of
receiving any given treatment, and blocking, i.e. grouping of similar units, each one to
receive a different treatment. Factorial designs are used to allow different types of
treatment, or factors, to be tested simultaneously. *Analysis of variance is used to assess
the significance of the treatment effects. See also FRACTIONAL REPLICATION, MISSING
OBSERVATIONS.
expert systems Computer programs built for commercial application using the
programming techniques of *artificial intelligence, especially those techniques developed
for problem solving. Expert systems have been built for a variety of purposes including
medical diagnosis, electronic fault finding, mineral prospecting, and computer-system
configuration. See also INFERENCE ENGINE, KNOWLEDGE BASE.
explicit address Another name for absolute address.
exploratory data analysis (EDA) A term invented by J. W. Tukey to denote
techniques for looking at numerical data with a view to discerning pattern. Exploratory
data analysis is open-ended and makes few prior assumptions about the nature of any
pattern that may be found. Graphical techniques are freely used. It can be contrasted with
model-fitting techniques, which make highly specific prior assumptions. *Statistical
methods contain aspects of both these processes.
exponent See FLOATING-POINT NOTATION.
exponentially bounded algorithm See COMPLEXITY MEASURE.
exponential waveform A nonrepetitive waveform that rises or falls exponentially
from some initial value at some initial time, according to the law
For a > 0 the waveform rises without bound with increasing time t; for a < 0 the waveform
decays to zero. One way in which logic signals can become distorted as they travel
through a system is for their switching edges to become exponentials, usually due to
capacitive loading when the output waveform follows the law
where V is the final voltage, R the source resistance, and C the capacitive load.
exponentiation The *operation of raising to a power. Repeated multiplication of a
quantity x by itself n times is written as xn. When x is nonzero the value of x0 is normally
assumed to be 1.
Alternatively xn can be defined inductively (see INDUCTION) in the following way:
The concept of exponentiation can be extended to include exponents that are negative,
fractional, or variable or are complex numbers. Exponentiation is an operation that is
supplied in some form in most common programming languages (the significant exception
being Pascal). It is also a fundamental part of the *floating-point notation for real
numbers.
export list In modular languages such as *Modula 2, a list of the names declared inside
a module that are accessible to other modules.
exposed terminal problem A problem that manifests in wireless networks where
some of the nodes are unaware of each other. Specifically, it can occur when two nodes
waiting to transmit, each to a different target node, are aware of each other but not of the
other’s target. One node transmits and, in accordance with the network protocol, the other
waits for it to finish. In fact, the second node need not wait because it is transmitting to a
different node; but it cannot know this. The addition of *handshaking to the protocols is a
partial cure, but no complete solution has yet been found. Compare HIDDEN TERMINAL
PROBLEM.
ExpressCard See PCMCIA.
expression A component of a programming language that defines the computation of a
value, e.g.
expression of requirements A statement of the requirements that some envisaged
computer system (or program) is expected to meet. In order to define these requirements
adequately, it is normally necessary for the expression of requirements to address not just
the envisaged system but also the environment in which that system is to operate.
A good expression of requirements should be one of the earliest products of any systemdevelopment project, and for a project of significant size it is of crucial importance, not
least because errors introduced at the requirements stage tend to be the most expensive to
correct. Since it is the first reasonably complete description of any given system, its
production presents several significant problems. In particular it may be necessary to
obtain information from many individuals, none of whom have a full understanding of all
aspects of the envisaged system.
The expression of requirements is a primary vehicle for communication between the
procurers of a system and its developers. It is useful to distinguish between user
requirements and system or software requirements. User requirements are stated
briefly in natural language using the jargon of the problem domain and primarily defining
the nature of the problem to be solved by the computer-based system. This description
should be free from any solution bias. System or software requirements represent the first
step toward a solution to the problem and should be based on an abstract model but
omitting any detailed design or implementation bias.
extended addressing Any of several methods that permit access to memory with
*address space larger than the address space normally accessible in an instruction. See
also ADDRESSING SCHEMES, EXTENDED MEMORY.
extended ASCII A one-byte character set consisting of the *ASCII character set
(positions 0–127) with additional characters assigned to positions 128–255. These
characters may include special symbols, graphics characters, and accented characters. The
assignment of extended ASCII characters is not standard. It depends on the particular
computer system and may also depend on the font being used. Such character sets have
largely been superseded by *Unicode.
extended BNF (EBNF) A notation for defining the *syntax of a programming language
based on *BNF (Backus normal form). EBNF overcomes the main disadvantages of BNF,
which are that repetition has to be expressed by a recursive definition and that options and
alternatives require auxiliary definitions, by incorporating a notation to specify repetition
and alternation. For example, compare the BNF definitions shown in Fig. 1 with the
equivalent EBNF definitions in Fig. 2. EBNF uses {…} to denote repetition, | to denote
alternatives, (…) to group constituents, and […] to denote options. Another significant
difference is in the way literals are distinguished from syntactic categories. In BNF, literals
are plain and syntactic categories are enclosed in angle brackets; in EBNF, syntactic
categories are plain and literals are enclosed in quotation marks. This allows EBNF to
define its own syntax.
Extended BNF.
extended memory (XMS memory) A way of accessing IBM-PC-type memory above
1 Mbyte. Although obsolete, it is still emulated in Windows for backward compatibility.
extended precision *Double precision or more than double precision.
extensibility The capability of a programming language to accept definitions of new
constructs.
extensible addressing See ADDRESSING.
extensible language A programming language having the property of *extensibility.
extensible stylesheet language See XSL.
extension 1. The part of a file name that indicates the type of file. For example, in the
file ‘document.txt’, the ‘txt’ is the extension, indicating that the file is a text file. A large
number of such standard extensions exist. A list of common examples is given in the
Appendices. 2. An add-on program that provides additional features to an existing
program (for example, a QuarkXpress extension for indexing). 3. (of a source in coding
theory). The process of encoding several symbols at a time, or the results thereof. If the
symbols of a *q-ary information source are taken r at a time, and the words of length r are
treated (e.g. encoded) as if they were themselves symbols of an alphabet of size qr, then
this compound source is called the rth extension of the original source. See also SOURCE
CODING THEOREM.
extension field See POLYNOMIAL.
Exterior Gateway Protocol See BORDER GATEWAY PROTOCOL.
external device A device that is subsidiary or peripheral to a computer system, usually
a terminal or other remote device. In some I/O instructions the designation of an external
device is made by specifying a (usually binary) number that distinguishes that device from
all others. This number is often called the external device address although, strictly
speaking, it is not an address in the true sense. See also ADDRESS SPACE.
external fragmentation A form of *fragmentation that arises when memory is
allocated in units of arbitrary size. When a large amount of memory is released, part of it
may be used to meet a subsequent request, leaving an unused part that is too small to meet
any further requests.
external interrupt An interrupt that is initiated by a device that is not part of the
processor. Peripherals and communication connections are sources of external interrupts.
external node Another name for leaf node.
external path length (of a tree) The sum of the lengths of all paths from the root to an
external (i.e. a leaf) node.
external schema (of a database) Another name for user view.
external sorting See SORTING.
external storage Any type of storage device that is connected to and controlled by a
computer but is not integrated within it. Generally the devices are peripheral units such as
disk drives or tape transports. An external storage device may be shared by more than one
computer.
extranet An extension of a company’s *intranet allowing public access to part of the
network for commercial or public-relations purposes.
extrapolation The estimation of the value of a function (given other values of the
function) at a point beyond the interval in which the data lies. One possible approach is to
use the value of an *interpolation polynomial at this point. An important case arises when
the data consists of approximations to the solution of a problem, for different values of a
parameter controlling the magnitude of the acceptable error in the method used. A more
powerful method can be constructed by extrapolating to the limiting case of the parameter,
where the error is zero, using theoretical results giving the dependence of the error on the
parameter. This is called Richardson extrapolation (or the deferred approach to
the limit).
extrapolation method A *numerical method for the solution of a problem based on
repeated *extrapolation, to produce increasingly more accurate results, from a sequence of
basic approximations utilizing different values of a parameter, such as the stepsize (see
FINITE-DIFFERENCE METHOD).
Important examples are the *Romberg method for *numerical integration and *Gragg’s
extrapolation method for the solution of *ordinary differential equations based on the
*midpoint rule. An essential requirement for such methods are theoretical results
establishing the existence of an expansion for the error in (usually even) powers of the
parameter, for sufficiently smooth problems.
extrinsic semiconductor See SEMICONDUCTOR.
Facebook A US company offering online social networking services (see *social media)
founded in 2004 by Mark *Zuckerberg. A user account is necessary to access the services,
which include facilities for posting, sharing, and storing pictures, videos, and text; for
online chat; for creating calendars and events; and an *RSS service. With about 1.35
billion (2014) active users each month, it is one of the most frequently accessed websites
in the world. However, it is often criticized for collecting users’ personal information for
commercial purposes.
facet Any of the planar elements into which curved surfaces are broken for *rendering.
facial animation See COMPUTER ANIMATION.
facilities management The arrangement under which a specialist company takes over
complete responsibility for running the information-processing systems of a user
company.
facsimile Systems that provide electronic transmission of ordinary documents, including
drawings, photographs, and maps. The original document is scanned at the sending
station, converted into an analogue or digital representation, and sent over a
communication channel to the receiving station, which constructs a duplicate image on
paper; this image is referred to as a facsimile. Early facsimile systems were exclusively
analogue, but modern systems use digital techniques for data encoding and transmission.
Commercial facsimile services are known as fax.
factorable code An *error-correcting code that can be considered as the result of
several coding stages, the output of each being encoded by the next. The constituent codes
are the factors of the original compound code. See CONCATENATED CODING SYSTEMS.
factor analysis See MULTIVARIATE ANALYSIS.
factorial designs See EXPERIMENTAL DESIGN.
FADEC (full authority digital engine control) A system in avionics for direct
computer control of the engine to optimize fuel use and to monitor safety.
Fagan inspection See CODE INSPECTION.
fail-safe Denoting or relating to a computer system that does not make an error in spite
of the occurrence of a single fault. See also FAULT-TOLERANT SYSTEM.
fail-soft Denoting or relating to a computer system that can continue to provide a
reduced level of service in spite of the occurrence of a single fault. The system is then said
to be in a state of graceful degradation. See also FAULT-TOLERANT SYSTEM.
failure An event or condition in which an entire computer system or some part of it is
unable to perform one or more prescribed functions. The failure may be due to a random
process causing the hardware to cease to function, in which case hardware *maintenance
is required. Failure may also be due to a systematic cause such as an unrevealed or
uncorrected fault in hardware or software. The fault may be due to an error, i.e. a
mistake, occurring during (for example) design, specification, or operation. Each fault
built into the hardware or software may be later revealed through a variety of processes
such as *review, *static analysis, *testing, or failure during operation of the computer. The
result of revealing the fault at any time is a failure event for the hardware or software.
Whether the failure is significant depends on the consequences and the timing.
There is thus a relationship between failure, fault, and error. Note however that the
terms are sometimes used synonymously. See also FAULT-TOLERANT SYSTEM.
failure modes, effects, and criticality analysis (FMECA) A systematic and
disciplined approach to the task of measuring the relative criticality of the different
components in a *safety-critical or *safety-related system. The purpose is to identify
components whose design may merit special attention.
failure rate The number of *failures of a specified category in a given period, in a given
number of computer runs, or in some other given unit of measure. The failure rate of a
system or component varies during its lifetime, at first decreasing as problems are detected
and repaired and finally increasing due to deterioration. Between these two periods the
failure rate usually remains relatively steady.
failure recovery A procedure that allows for the restart of a failed system in a way that
either eliminates or minimizes the amount of incorrect system results. This usually
requires the program that was running to have used a *checkpoint procedure.
fairness See FAIR SURFACE DESIGN.
fair surface design The requirement that the shape between specific sections of a
design must be consistent with the overall smoothness or fairness of the shape. For
example, a timber ship requires the planking not to have hollows and bumps between the
ribs. See also LOFTING.
fallback The *restarting of a process at a *checkpoint after correction of a fault. See also
FAILURE RECOVERY.
false position method (Latin: regula falsi) An *iterative method for finding a root of
the *nonlinear equation f (x) = 0. It employs the same formula as the *secant method, but
retains at each stage the two most recent estimates that bracket the root in order to
guarantee convergence. Modifications to this general strategy are required to avoid one
end-point remaining fixed and slow convergence. The resulting methods are both fast and
reliable.
fan-in 1. The number of input lines (normally fixed) to a logic gate or logic device. 2.
The number of software modules that call this module.
Fano coding (Shannon–Fano coding) See SOURCE CODING.
Fano decoding The decoding of a *convolutional code by Fano’s algorithm.
fan-out 1. The maximum number of devices that can be safely driven by the output from
a logic gate or logic device (which have only a limited ability to drive other devices from
their output terminals). If the fan-out is exceeded the voltage levels corresponding to a
logic 1 and a logic 0 become more similar and errors are more likely. 2. The number of
software modules that are called by this module.
FAQ (frequently asked question) Lists of FAQs are frequently included in
information sites and newsgroups.
farm An arrangement in which several computers cooperate concurrently in the solution
of a problem. One of the computers will act as a *scheduler while the remainder act as
workers. Each worker has the same copy of the *code and is able to accept a task from the
scheduler, carry out the process, and then return the result. Early farms were built with a
network of specialized computing devices (e.g.*transputers) but it is now increasingly
common to use large collections (numbered in the thousands) of stock microprocessor
hardware.
FAST (Federation Against Software Theft) A body set up by the UK software
industry to promote the effective and legal use of software, and to take action against those
who breach copyright law by making unlicensed copies of proprietary software.
Fast Ethernet A standard of *Ethernet that operates at 100 Mbps. It uses essentially the
same formal structures and broadcast technology as the internationally standardized 10
Mbps Ethernet but operates at a ten times higher bit rate. Since 2000 it has been gradually
superseded by Gigabit Ethernet, operating at a rate of 1 Gps.
fast Fourier transform (FFT) An algorithm that computes the discrete *Fourier
transform accurately and efficiently on digital computers. FFT techniques have wide
applicability in linear systems, optics, probability theory, quantum physics, antennas, and
signal analysis.
FAT (file allocation table) See FILE SYSTEM.
father file See FILE RECOVERY.
fault See FAILURE.
fault detection Determination, normally by detection of a failure in a *check, that a
fault (error) has occurred in a logic circuit, arithmetic circuit, or an information transfer.
fault diagnosis The task of determining where in a (repairable) computer system a fault
has occurred and what the logical nature of that fault is.
fault-tolerant system A computer system that is capable of providing either full
functionality (*fail-safe) or reduced functionality (*fail-soft) after a failure has occurred.
Fault tolerance is usually provided through a combination of redundant system elements
and error detection and correction procedures.
fault tree analysis A systematic and disciplined approach to the analysis of events or
situations, and whose purpose is to identify *hazards that may compromise *safety. It uses
diagrams in the form of trees.
fax 1. A *facsimile transmission service. 2. A document sent by fax. 3. To send or
communicate by fax.
fax card An *add-in card that allows a computer to be connected to a phone line and to
transmit or receive fax messages. The card and its associated software allow anything that
can be displayed on the screen to be converted into a fax image and transmitted, just like a
fax machine. Incoming faxes are treated initially as graphic images, and if they contain
text that is to be edited or incorporated into a word processor document for instance, then
they must be subjected to an optical character recognition (OCR) process.
FCC (Federal Communications Commission) The US regulatory commission for
public communications. Its jurisdiction includes land line, cable, radio, and satellite
communications.
http://www.fcc.gov/
• The FCC home page
FDDI Abbrev. for fibre distributed data interface.
F distribution An important *probability distribution used to test the significance of
estimated mean squares in an *analysis of variance and in *regression analysis.
Theoretically the F distribution is the distribution of the ratio of two independent random
variables S1\f1 and S2\f2, where S1 has the *chi-squared distribution on f1 *degrees of
freedom and S2 has the chi-squared distribution on f2 degrees of freedom. Tables of critical
values of the F distribution for ranges of f1 and f2 are widely available, but direct
computation requires lengthy algorithms to compute the incomplete beta function.
FDM Abbrev. for frequency division multiplexing.
feasibility study A study carried out prior to a development project in order to establish
whether the proposed system is feasible and can serve a useful purpose. Feasibility studies
can be purely paper exercises or can involve the construction of experimental or prototype
systems. Often a feasibility study will not address the entire scope of the proposed system,
but will concentrate on specific areas where the feasibility is regarded as questionable or
the potential risk is greatest.
feature detection The processing of raw data to assess the presence of a given property.
Examples are seen in *image processing, the early stages of *pattern recognition, and
some *neural networks. Features often detected in images include edges, lines, contours,
regions, and object fragments.
feature modelling The modelling of complex objects using functionally significant
entities such as holes and slots rather than using low-level geometric entities.
feed 1. A device for moving media to a position at which the data can be read or printed.
2. To cause data or media to be entered into a system or peripheral.
feedback Response to operator input that indicates that the input has been understood
and the desired action accomplished. See also ACKNOWLEDGMENT, ECHOING, PROMPT.
feedback queue A form of scheduling mechanism often used in multiaccess systems.
Individual *processes are allocated a *quantum of time on the processor. A process once
started is allowed to run until it has exhausted its quantum, until it initiates a transfer on a
peripheral device, or until an interrupt generated by some other process occurs. If the
quantum is exhausted, the process is assigned a longer quantum and rejoins the queue. If
the process initiates a transfer, its quantum remains unaltered and it rejoins the queue. If
an externally generated interrupt occurs, the interrupt is serviced. Servicing the interrupt
may free some other process already in the queue, in which case that process may be
preferentially restarted.
feedback register (feedback shift register) A *shift register, generally consisting of
several cells, in which the first cell has its input supplied by a combinational logic
function of the parallel outputs of several cells and of a possible external input. An
important case is the linear feedback register in which *linear logic is employed for
the feedback function.
The linear feedback register has the effect of deconvolving the external serial input with
the sequence of combinational coefficients (see CONVOLUTION). If the external input is
regarded as a *polynomial in which powers of the indeterminate denote succession in
time, and if the combinational coefficients are regarded likewise as a second polynomial,
then the linear feedback register has the effect of dividing the former polynomial by the
latter. When used in coding or in digital signal processing, feedback shift registers may be
binary or *q-ary and may be implemented in hardware or software.
When there is no external serial input, the linear feedback register can be used on its
own to generate *m-sequences or, with parallel loading of the shift register with a source
word, as an *encoder for *simplex codes; either of these applications requires that the
feedback logic coefficients represent a *polynomial that is primitive. See also GOOD–DE
BRUIJN DIAGRAM.
feed-forward register (feed-forward shift register) A *shift register, generally
consisting of a number of cells, several parallel outputs of which are combined in a
combinational logic function. An important case is the linear feed-forward register
in which *linear logic is employed for the feed-forward function.
The linear feed-forward register has the effect of convolving the serial input to the
register with the sequence of combinational coefficients (see CONVOLUTION). If the input
is regarded as a *polynomial in which powers of the indeterminate denote succession in
time, and if the combinational coefficients are regarded likewise as a second polynomial,
then the linear feed-forward register has the effect of multiplying these polynomials.
When used in coding or in digital signal processing, feed-forward registers may be
binary or q-ary, and may be implemented in hardware or software.
Feistel cipher A type of *binary cipher designed in the 1970s by Horst Feistel (of IBM).
It is a repetitive *mixed cipher. The existence of its *inverse (for the purpose of
*decryption) is assured by the careful use of the *exclusive-OR operation within its
algorithm. Two important implementations are the *Data Encryption Standard (DES) and
its precursor Lucifer.
Ferranti Mark I The world’s first commercially available computer, built by the
electrical engineering firm Ferranti Ltd., based in Manchester, UK, and delivered in 1951
as a production version of the University of Manchester’s *Manchester Mark I. Ferranti’s
link with the university was established in 1948. The Mark I was followed into production
by the Mark I Star (1953), Pegasus I and II (1956, 1959), and *Atlas (1963).
ferrite A sintered ferromagnetic material plus ceramic that combines the high magnetic
permeability of the former with the high electric resistance of the latter. It was used in
*core store memory.
ferroelectric display A type of *flat-panel technology that is bistable, allowing images
to be retained even after power has been removed. Images can be retained for at least six
years.
FET Abbrev. for field-effect transistor.
fetch-execute cycle (instruction cycle) The two steps of obtaining and executing an
instruction. See also CONTROL UNIT.
fetch protect Restriction of the memory reading privilege in a particular memory
segment. See also MEMORY PROTECTION.
FF Abbrev. for form feed.
FFT Abbrev. for fast Fourier transform.
Fibre Channel A network technology designed primarily to support the connection of
peripheral units to mainframes, or enterprise servers, within a single computer room or
small building. The system was brought about largely by IBM but other suppliers have
adopted the product. Fibre Channel originally used low-cost optical *multimode fibres,
but versions for *monomode fibre and *coaxial cable are also specified. It uses a packet
structure with the minimum of overheads, allowing a high proportion of the available data
rate to be devoted to users’ data. It was originally specified for operation at 1 Gbps, and
the highest speed currently available (2015) is 32 Gbps. Fibre Channel has inevitably been
brought into service to provide private backbone services within a LAN, but its
deliberately restricted packet format means it may not be suitable for WAN applications.
fibre distributed data interface (FDDI) A high-speed network system designed to
operate over distances of tens of kilometres. The system uses a pair of *optical fibres to
carry a single signal path. Two such pairs may be used to interconnect nodes so as to form
a ring (so-called dual attach), or a single pair of fibres may be used to connect a spur
extension to a node on the ring that acts as a wiring concentrator (so-called single
attach). The ring is normally treated as a primary ring carrying live traffic, and a
secondary ring used for fault identification. If a node or an optical path fails, the system
will reconfigure by ‘wrapping’ the ring in order to isolate the faulty node or path, and to
use the secondary ring as the return path for packets.
The FDDI system operates at a nominal 100 Mbps of data, using the pair of fibres to
encode four bits of original data onto five bits of self-clocking signals, and with an actual
bit rate of 140 Mbps. Access to the ring uses a modified version of a *token ring protocol,
in which more than one token can be present on the ring at any one time. In principle
FDDI allows up to 500 nodes to connect to a single ring and this can give a long latency
between a node wishing to transmit and the arrival of a token allowing it to do so. To
control this, a node wishing to acquire the token will defer to requests for the token from
nodes with a higher priority. The system actually uses two separate sets of priorities—one
for synchronous traffic, for which each node is guaranteed an agreed data rate, and one for
asynchronous traffic, where a node can use any spare capacity not taken up by other
nodes.
Although its original design was directed at metropolitan area network (MAN) services,
FDDI is used in LAN services, especially as a *backbone network between *routers or to
connect a specific *server with very heavy traffic requirement to the backbone.
fibre optics A means of transmitting analogue or digital information using light signals
over an optical fibre. An optical fibre is a thin transparent filament made either of glass
or, for short distances, special plastics; the diameter of the fibre ranges downward from
125 micrometres, with a number of preferred sizes now being adopted as standard. The
information is carried as a light signal, typically in the infrared with a wavelength of about
1200 to 1550 nanometres, and generated by an electrical-to-optical *transducer, usually a
switchable semiconductor laser. Light of wavelength 1200 nm has a frequency of 250 000
gigahertz (GHz), and is in principle capable of transmitting at bit rates of the order of 100
000 Gbps. Modern fibre-optic networks use *wavelength-division multiplexing to achieve
speeds of about 14 000 Gbps.
A variety of methods are used to reduce the loss of the optical signal and hence increase
signalling distance. The material of which the fibre is made is very pure, and by varying
the refractive index of the material across the fibre it is possible to cause light rays at less
than a certain angle to the axis of the fibre to be totally internally reflected back into the
fibre. This reflection may take place at a discrete boundary between glasses of different
refractive index (stepped index fibre), or may take place in a region of gradually varying
refractive index (graded index fibre). If the fibre is made very thin, with a diameter of the
order of the wavelength of the light, the light rays can only propagate along the fibre
(*monomode fibre). On a very long path, it is necessary to install amplifiers to regenerate
the signal—by converting it from an optical to an electrical form, amplifying the electrical
signal, and then reconverting it to an optical signal. Some amplifier designs exploit the
nonlinear optical properties of certain glasses to allow direct amplification of the optical
signal using a locally powered second laser as the power source.
Fibonacci search A searching algorithm that uses Fibonacci numbers in a way that is
analogous to the use of powers of 2 in the *binary search. See FIBONACCI SERIES.
Fibonacci series A sequence of numbers in which each number is the sum of the two
preceding numbers, e.g.
The Fibonacci numbers Fn are formally defined to be
Any positive number m can be represented uniquely as a sum of Fibonacci numbers,
where the greatest Fn in the expansion does not exceed m and where no two of the Fn are
adjacent numbers in the Fibonacci series.
fiche Short for microfiche. See COM.
field 1. (data field) An item of data consisting of a number of characters, bytes, words,
or codes that are treated together, e.g. to form a number, a name, or an address. A number
of fields make a *record and the fields may be fixed in length or variable. The term came
into use with punched card systems and a field size was defined in terms of a number of
columns. 2. Normally a way of designating a portion of a *word that has a specific
significance or function within that word, e.g. an address field in an instruction word or a
character field within a data word. 3. In mathematics, a commutative *ring containing
more than one element and in which every nonzero element has an *inverse with respect
to the multiplication operation. Apart from their obvious relationship to arithmetic
involving numbers of various kinds, fields play a very important role in discussion about
the analysis of *algorithms. Results in this area mention the number of operations of a
particular kind, and these operations are usually related to addition and multiplication of
elements of some field.
field bus A generic term covering a range of standardized interfaces, mainly using serial
communications, widely employed to interconnect systems used in industrial automation.
field-effect transistor (FET) A semiconductor device having three terminals: source,
gate, and drain. Current flow in a narrow conduction channel between drain and
source is controlled by the voltage applied between gate and source, which can deplete the
conduction channel of charge carriers. If the source and drain regions are composed of ntype semiconductor the conduction channel is n-type; these devices are known as nchannel devices. Devices with p-type source, drain, and channel are called p-channel
devices. In contrast to *bipolar transistors, FETs are unipolar devices; the current flow
is electrons (in n-channel devices) or holes (in p-channel devices).
In the junction FET the channel is a composite part of the structure. In the
*MOSFET the gate is insulated from the source and drain regions and the channel forms
when the gate voltage is applied. Unlike the bipolar transistor both types of FET require
virtually no input current to the gate except a pulse to charge or discharge the gate
capacitance. Junction FETs have relatively slow *switching speeds compared with
MOSFETs and bipolar transistors, and are therefore not used in logic circuits. FETs appear
in vast numbers in microprocessor chips and similar devices.
field-programmable devices See PLA, PROGRAMMABLE DEVICES.
FIFO (fifo) (first in first out) FIFO list is another name for *queue.
fifth generation Describing the new types of computer that began to be conceived and
developed in the 1980s. The features proposed varied but most pointed towards
‘intelligent’ machines with massively parallel processing, widespread use of intelligent
knowledge-based systems, and natural-language interfaces. Although progress towards
these goals was not as fast as originally imagined, some significant advances have been
made. The recent emergence of *multi-core processors and the increasing general use of
*graphics processing units for heavy numerical computation are two recent realizations of
fifth-generation development goals. The term derives from the Fifth Generation
Computer Systems Project, an ambitious *artificial intelligence project initiated by
the Japanese government in 1982. This triggered worldwide research into parallel
processing, *logic programming, and the design of advanced computing platforms
generally.
file A collection of information, referred to by *file name; for example, a user-created
document, program data, or the program itself. With a program, the information is held on
*backing store (i.e. usually on magnetic disk) in order (a) to enable it to persist beyond the
time of execution of a single job and/or (b) to overcome space limitations in main
memory. Files with a very brief existence (i.e. in case (b) above, or where they simply
carry information between one job and the next in sequence) are called work files. See
also DATA FILE, MASTER FILE.
file activity Any storage or retrieval activity performed on a *file. In some systems a
record is kept of file activity and the information is used to optimize the use of available
*backing store. For example, a file for which the activity has fallen below a certain level
may be moved offline.
file allocation table See FILE SYSTEM.
file descriptor Information that describes a file, giving details such as its *file name,
generation number, date of last access, expiry date, and the structure of the records it
contains. It is normally stored as a header record at the front of the file, held on magnetic
tape or on disk.
file directory See DIRECTORY.
file editing See FILE UPDATING.
file extension See FILE NAME.
file format The way in which the information in a *file is encoded. There are many
proprietary formats—nearly every application has its own, often changing with new
versions—as well as standard file formats such as *XML, *TIFF, and *encapsulated
PostScript (EPS). In some systems, such as Apple Macintosh, the information about file
format and originating application is part of the file, but in other systems it is up to the
user to know what the format is, although there are more-or-less strict file-naming
conventions. The multiplicity of file formats is a continuing problem for both software
developers and users.
file integrity See DATABASE INTEGRITY.
file locking A method of ensuring that if one *process is altering the contents of a *file,
other processes cannot access the file until the updating activity has been successfully
completed. The actual operation of the file-locking mechanism will normally form a part
of the operating-system services that allow access to files, and the lock is applied to the
file in its entirety. See also RECORD LOCKING, SEMAPHORE.
file maintenance Software processes concerned with maintaining file integrity and file
efficiency, usually of *data files. It is concerned with the internal organization of files
(unlike *file management, which is not). It is not concerned with changing values within a
file (unlike *file updating, which is), although the term is sometimes misused to include
such activity.
file management Software processes concerned with the overall management of *files,
for example their allocation to space in *backing store, control over access, writing
*backup copies, and maintaining *directories. Basic file management is normally
performed by *operating systems, though this may be supplemented by *file management
systems. See also FILE MAINTENANCE.
file management system A software system that provides facilities for *file
management (often specifically of *data files) at a level above that offered by *operating
systems (but in the case of data files below that offered by *database management
systems).
file manager A program that controls the placement of, and access to, files on *backing
store.
file mark See TAPE MARK.
file name An identifying character string used to refer to a *file. The name can be
generated by software or created by the user. It usually gives some hint as to the contents
of the file. Different operating systems have different rules and conventions for file-name
construction. Often the rules allow (or require) the final section of the name (the file
extension) to be separated by a period (full stop) and used to indicate the type of file.
Sometimes upper and lower case letters are not distinguished. The maximum length of the
name is often strictly enforced. Usually all letters and digits are allowable together with
some special characters.
file organization The structure of a file (especially a data file), defined in terms of its
components and how they are mapped onto backing store. Any given file organization
supports one or more file *access methods. Organization is thus closely related to but
conceptually distinct from access methods. The distinction is similar to that between *data
structures and the procedures and functions that operate on them (indeed a file
organization is a large-scale data structure), or to that between a logical schema of a
database and the facilities in a data manipulation language (see DATABASE LANGUAGE).
There is no very useful or commonly accepted taxonomy of methods of file organization:
most attempts confuse organization with access methods (which are easier to classify).
file protection The protection of files from the mistaken or unauthorized storage or
retrieval of information (or, in the case of program files, from mistaken or unauthorized
execution). Protection may be (a) physical, concerned with the security of the media on
which files are held, and implemented by operating procedures, or (b) logical, concerned
with the security of the contents of files, and implemented by software.
file recovery The process of restoring file integrity once a file has been found to be
incorrect. There are two main classes of method. In a *transaction processing system, in
which a *master file is updated incrementally, the method is based on *backup copies and
*recovery logs. In a *batch processing system, in which a master file is updated by being
completely rewritten, the last version of the master file serves as the backup, and the
transaction file serves as the recovery log. (The last version of the master file is then
referred to as the father or parent, the version before that as the grandfather or
grandparent, and so on.)
file server A *server specifically designed to support the storing of data, usually but not
necessarily in a networked environment. The file server will be equipped with long-term
storage, typically magnetic disks, with a means of making *backup copies of files,
typically high-capacity magnetic tape drives, and with high-bandwidth connections to the
network. The system software will often be designed so that end-users need not be aware
of the fact that their files are not held locally on their own workstation, but are held on the
file server. In some systems the use of a file will cause it to be automatically copied onto
the user’s workstation, while in others the file will remain on the file server as the user
works on the file. Some systems allow the user to specify where the file will be held while
it is active.
file system 1. The part of a computer’s *backing store where *files are held. 2. The
software system used to organize this. Files are abstract objects that must be mapped to
physical sectors on magnetic disk or tape, optical disk, etc., and there are several
organizational schemes to achieve this. MS-DOS and early versions of Windows used FAT
(file allocation table), so called because it maintained all file-sector mappings in a single
table. Modern versions of Windows still support FAT but for hard disks prefer the more
sophisticated NTFS (NT file system). The Macintosh uses HFS Plus, the Unix file
system (UFS) is widespread on UNIX, while there are several file systems available for
Linux.
file transfer The act or process of transferring a file from one computer system to
another, usually but not necessarily across a network. The problems associated with a file
transfer between two identical computer systems are minimal, but they increase when the
systems use different hardware and run under different operating systems. See also FILE
TRANSFER PROTOCOL.
file transfer protocol (FTP) A widely used *protocol that allows a file to be
transferred across an IP network, especially the Internet.
file updating Changing values in one or more records of a file, especially a data file,
without changing the organization or semantics of the file. File updating may be done in
one of two ways. The first, common in *data processing, is when the updating process is
carried out separately from the entry of amendments and ‘invisibly’ from any human
operator. The second is when records are displayed on an interactive device, and an
operator can then amend a record while able to see it: this method is sometimes also called
file editing.
fill area primitive A computer-graphics output primitive that specifies a closed curve
to be filled with a solid colour, a hatching, or a pattern.
fill character Another name for ignore character.
filling See AREA FILLING.
film scanner A *scanner in which the film transparency is placed in a holder to be
scanned. Such a device is optimized for the small format of a film and scanning by
transmitted light.
filter 1. A program that processes a sequential stream of text, carrying out some simple
transformation, e.g. condensing multiple spaces to single spaces, counting words, etc.
Powerful effects can be created by connecting a series of filters in a pipeline, where each
filter takes as its input the output produced by its predecessor. 2. A simple electric circuit
or some more complicated device used in the process of *filtering. See BAND-PASS FILTER,
HIGH-PASS FILTER, LOW-PASS FILTER. 3. A set of conditions applied to data so that only
certain conforming items are displayed or processed.
filtering 1. The processing of a *signal (by a simple electric circuit or by some more
complicated device) in such a way that the behaviour of the signal is affected in either the
time domain or in a transform domain.
In time-domain filtering each element of the original signal is replaced by a sequence of
elements, proportional in amplitude to the original signal but spaced in time; the sum
(assuming linear filtering) of these sequences forms the new signal. In transform-domain
filtering the elements of the original signal are not those of its amplitude but rather of its
components under, for example, *Fourier analysis or *Walsh analysis; they are then
spaced not in time but in *frequency or *sequency respectively. Many other transforms are
also used.
Filtering, both in the time domain and in various transform domains, is of great
importance in *multiplexing. A simple but very common example of filtering in the
frequency (Fourier) domain is the use of passive resonant circuits, *RC circuits, or *active
filters to effect *low-pass, *band-pass, *high-pass, and *band-stop functions; these are
much used, e.g. in *data transmission lines and *modems. 2. A technique for *antialiasing. Aliasing occurs in an image when the sampling rate is not high enough to capture
the changes in the image. Filtering applied to a scene spreads the influence of a pixel
across the scene. Thus every object makes some contribution to each of the final-image
pixel intensities. The value of the pixel in the anti-aliased image is computed as the
weighted sum of its immediate neighbours with the weight inversely related to distance.
The effect is to reduce effects such as ‘stair case’ changes in edges at an angle to the axis
of the pixels at the expense of some loss of resolution. 3. See MASKING.
filtering bridge See BRIDGE.
find 1. One of the basic actions performed on *sets that, when applied in the form
produces the set of which el is currently a member; if el is in no set or in more than one set
the effect of the operation is undefined. See also OPERATIONS ON SETS. 2. In word
processing, another name for search.
find and change Another term for search and replace.
finite automaton See FINITE-STATE AUTOMATON.
finite-difference method A widely applicable *discretization method for the solution
of *ordinary and *partial differential equations. In this approach all derivatives are
replaced by approximations that involve solution values only, so in general the differential
equation is reduced to a system of *nonlinear equations or *linear algebraic equations. For
example, in the problem
where b, c, d, α, and β are given constants, the interval [0,1] is first divided into equal
subintervals of length h; h is called the stepsize (or mesh or grid size). This gives the
mesh points (or grid points) xn,
At interior mesh points the derivatives are now replaced by finite-difference
approximations, e.g.
When combined with the boundary conditions these approximations result in a system of
equations for approximations to y(xn), n = 1, 2,…, N. Nonlinear differential equations
yield a system of nonlinear equations.
finite-element analysis See FINITE-ELEMENT METHOD.
finite-element method A widely applicable approach to solving *ordinary and
particularly *partial differential equations and similar problems. The approach embraces
several variants, principally Galerkin’s method and the Rayleigh—Ritz method.
The basic idea, however, is the same and involves approximating the solution of the
problem by a linear combination:
The functions ϕ1, ϕ2,…, ϕn are always chosen to be simple and are called trial
functions. The success of the method is due in part to choosing these functions to be
low-degree *splines. This in turn generally leads to a system of equations for the
coefficients c1, c2,…, cn that involves the treatment of *sparse matrices, i.e. matrices in
which a large proportion of the elements are zero; very efficient software can then be used.
In Galerkin’s method the criterion for choosing the coefficients is that the amount by
which u(x) fails to satisfy the equation is in a certain sense small. The Rayleigh—Ritz
method is a *variational method. The finite-element method can in general be regarded as
a process in which a solution in an infinite-dimensional space is replaced by an
approximation that lies in a finite-dimensional subspace. The whole process is referred to
as finite-element analysis.
finite field (Galois field) A (mathematical) *field with a finite number of elements. The
number of elements must be of the form pk where p is some prime number and k is a
positive integer. Results concerning finite fields are of particular relevance in the areas of
error detection and error correction.
finite-length arithmetic (fixed-length arithmetic) The approximation to real
arithmetic in a computer. The term arises since the precision to which *real numbers can
be represented as floating-point numbers in a computer is limited by the length of the
significand. See FLOATING-POINT NOTATION.
finite-model theory A branch of the study of computational *complexity in which
*complexity classes are characterized by definitions that use logical languages applied to
finite structures. Connections between resource bounds and formal definitions constitute a
research area with great potential.
finite sequence (finite list) See SEQUENCE.
finite set A *set with a finite number of elements.
finite-state automaton (FSA, finite-state machine) A simple kind of *automaton.
The input string is read once from left to right, looking at each symbol in turn. At any time
the FSA is in one of finitely many internal states; the state changes after each input
symbol is read. The new state depends on the symbol just read and on the current state. An
FSA is therefore determined by a function f
where I is the set of possible input symbols, Q is the set of states, and I × Q is the
*Cartesian product of I and Q. Q must be finite.
The function f is called a state-transition function. It is commonly represented
either by a table or by a directed *graph, known respectively as a state-transition
table and a state-transition diagram. The figure shows two equivalent
representations in which
In this example,
f extends to strings in the obvious manner: in the example,
Let Q be divided into accepting states and rejecting states, and let q0 be some
member of Q (referred to as the start state). The language recognized by the FSA is
the set of all w such that
is an accepting state, i.e. the set of all strings that take the start state to an accepting state.
For example, in the FSA shown in the figure let q0 be 1 and let 4 be the only accepting
state; the language recognized is then the set of all strings over {a,b,c} that somewhere
contain abc as a substring. A language recognized by an FSA is known as a *regular
language.
Finite-state automaton. Equivalent transition table and diagram of an FSA
A generalization is to allow more than one state to which the FSA can move, for a given
input symbol and current state. This gives a nondeterministic FSA. The input string is
then accepted if there is some sequence of choices of moves leading to an accepting state.
Such a machine can always be converted to a deterministic one recognizing the same
language.
See also MINIMAL MACHINE, SEQUENTIAL MACHINE.
FIPS (Federal Information Processing Standards) Standards that the US
government uses in its procurement efforts and that are adopted (rarely created) and
maintained by the US National Institute of Standards and Technology, NIST (formerly the
National Bureau of Standards).
Fire codes A family of *polynomial *block codes designed to correct *burst errors.
Firefox A *web browser from the Mozilla Foundation. Derived from the same codebase
as *Netscape Navigator, Firefox went through a number of development releases before
version 1.0 was released in 2004. The current (2014) version is 33.0.
firewall A system designed to control the passage of information from one network into
a second network. Typically a firewall will be used as a means of reducing the risk of
unwanted access to sensitive systems, where one carefully regulated network contains the
sensitive systems and is connected to a larger less-regulated network. A firewall can only
be effective if access to the firewall itself is carefully regulated.
FireWire A high-speed, general purpose serial bus supporting a chain of up to 63
devices. Operating at a speed of up to 800 Mbps it is the main system used for transfer of
video between computers and digital camcorders, and some external disk drives also use
this interface. FireWire is also known as IEEE1394 and, on computers produced by
Sony and Panasonic, as iLink and DV, respectively.
firing rule See PETRI NET.
firmware System software that is held in read-only memory (*ROM).
FIRST (Forum of Incident Response and Security Teams) An international
group bringing together those working on the provision of protection against computer
misuse. See also COMPUTER EMERGENCY RESPONSE TEAM.
http://www.first.org/
• The FIRST home page
first-class type in the design of a programming language. A *type whose *objects can
take part in the full range of operations available within the language (such as declaration
of constants and variables of the type in question, assignment of values, employment as
fields of records and as elements of arrays, occurrence as parameters and return values of
functions). The objects of a first-class type are first-class objects. For example,
functions are first-class in Algol 68 but not in Algol 60, Pascal or Ada.
first fit A method of selecting a contiguous area of memory that is to be allocated for a
segment. The *free-space list is scanned in order of starting address, and the allocation
made from the first free area whose size exceeds that of the request. Despite its apparent
simplicity this algorithm has a number of desirable properties in terms of performance.
first generation of computers. The series of calculating and computing machines
whose designs were started between 1940 (approximately) and 1955. These machines are
characterized by electronic tube (valve) circuitry, and delay line, rotating, or electrostatic
(Williams tube) memory. The majority of them embodied the stored program concept. For
the most part, first-generation machines used as input/output punched paper tape, punched
card, magnetic wire, magnetic tape, and printers. Despite these seeming handicaps,
impressive computations in weather forecasting, atomic energy calculations, and similar
scientific applications were routinely performed on them.
Important first-generation development machines include the *Manchester Mark I,
*EDSAC, *EDVAC, *SEAC, *Whirlwind, *IAS, and *ENIAC while the earliest
commercially available computers include the *Ferranti Mark I, *UNIVAC I, and *LEO I.
first in first out See FIFO.
first normal form See NORMAL FORMS.
first-order logic Another name for predicate calculus.
first-order term See TERM.
fixed-base system Another name for fixed-radix system. See NUMBER SYSTEM.
fixed disk drive A *disk drive in which the storage medium is permanently attached
within the device. The drive may contain more than one disk—the so-called disk stack.
The individual disks in the stack are called platters. Both sides are coated and the
platters are mounted on a common spindle. Early fixed disk drives used disks with a
diameter of 36 inches. The size, in inches, has progressively decreased in the sequence 14,
10.5, 9, 8, 5.25, 3.5, 2.5, 1.8, 1.3. Not all manufacturers used all of these sizes but
currently 3.5 inch disk drives are used throughout the industry, with capacities of many
gigabytes. Portable PCs currently use 2.5 inch disk drives.
fixed head (of a disk drive) A read/write head that cannot be moved relative to the
centre of the disk. A large number of these heads are usually incorporated into an
assembly so that there is a ‘head per track’, and such drives may be referred to by this
expression. The advantage of a fixed head is that the average *access time is reduced to
the time for half a revolution since there is no track seek time required. Some drives had
both fixed and moveable heads but these are now obsolete.
fixed-length arithmetic Another name for finite-length arithmetic.
fixed-length code A *code in which a fixed number of source symbols are encoded
into a fixed number of output symbols. It is usually a *block code. (The term fixed-length
is used in contrast to *variable-length, whereas block code can be contrasted with
*convolutional code.)
fixed point See FIXED-POINT THEOREM.
fixed-point notation A representation of real numbers in which the position of the
*radix point is fixed. The position of the point determines the absolute precision of the
representation. If the point is fixed at the right-hand end of the number then all of the
fixed-point numbers are integers.
Due to a number of difficulties, fixed-point arithmetic is rarely directly supported by
programming languages. However, fixed-point arithmetic is implemented and used where
needed; for example, for storing and tracking monetary values, or for decoding audio
format on devices that do not support floating-point arithmetic.
fixed-point theorem A theorem concerning the existence and nature of fixed points
used to give solutions to equations. A fixed point of a *function f
is an element x such that f(x) = x. A least fixed point is one that, among all the fixed
points of f, is lowest in some *partial ordering that has been imposed on the elements of X.
Specifically, if ≤ is a partial ordering of X then x is a least fixed point if for fixed point y
we have x ≤ y.
The most often-cited form of fixed-point theorem to do with computing is due
originally to S. C. Kleene, and originated in *recursive function theory. It states that,
subject to certain assumptions, notably that f is continuous, f has a least fixed point, xf,
which moreover can be characterized as the limit of a sequence x0,x1,x2,… of
approximations. This abstract fact is of great relevance to the semantics of programming
languages, in particular in specifying the precise meaning of constructs like *iteration,
*recursion, and recursive types using *equations.
fixed-radix system (fixed-base system) See NUMBER SYSTEM.
fixed space (fixed pitch) See FONT.
fixed word length computer A computer in which data is constrained to lie within
words that are all of the same length. By extension the term is sometimes used to imply
that all instructions also fit within one word. Compare VARIABLE WORD LENGTH
COMPUTER.
flag A *variable whose value indicates the attainment of some designated state or
condition by an item of equipment or a program. The flag is subsequently used as a basis
for conditional branching and similar decision processes. See also SENTINEL.
flame Informal 1. An angry or abusive email message from one user to another. 2. A
flood of email messages from a large group of users to one specific user, who is judged to
have offended against some standard of decent behaviour. The individual messages may
each be angry or abusive, but in some cases the actual messages may have no real purpose
other than to overload the recipient’s system, typically by sending as a mail message the
entire contents of some very large data set such as the text of all the help files on a system.
flash memory A form of storage evolved from EEPROM technology wherein the data
may be altered electrically. The device does not need refreshing to maintain the data,
which is stored even when power is removed. Flash memory finds application in
computers for storing BIOS information, in digital cameras, and in portable storage
devices that emulate hard disks (e.g. *USB drives).
flat addressing See ADDRESSING.
flatbed plotter See PLOTTER.
flatbed scanner A *scanner in which the sheet to be scanned is placed flat onto the bed
of the device. Such scanners may handle a single sheet at a time or may be provided with a
document feeder.
flat file model Another name for relational model.
flat pack A type of *integrated circuit package that can be mounted on the top surface of
a printed circuit board and involves no penetrating pins. Flat packs have now largely been
replaced by SMDs.
flat-panel display (flat screen) A type of *display device where the depth is much less
than a conventional *cathode-ray tube for the same image size. Various flat-panel
technologies, including *LCDs and *plasma panels, are competing to produce reliable
high-resolution colour displays, both large and small. As costs have fallen flat-panel
displays have come to dominate the desktop market.
flat screen See FLAT-PANEL DISPLAY.
flexible array An *array whose lower and/or upper bounds are not fixed and may vary
according to the values assigned to it. See also STRING.
flexible disk cartridge In international standards, the formal name for a *floppy disk.
flexible manufacturing system See FMS.
flexible PCB A printed circuit produced on a flexible substrate, allowing it to be folded
or bent to fit the available space or allow relative movement. Edge connectors are
commonly provided, for interfacing to other components.
flicker A perceived rapid periodic change of a displayed image. This is mainly a problem
with cathode-ray tube displays. Flicker is perceived by users when the refresh frequency is
below the *CFF. It is claimed to induce headaches and eyestrain with prolonged usage.
See also INTERLACING.
flip-flop (bistable) An electronic circuit element that is capable of exhibiting either of
two stable states and of switching between these states in a reproducible manner. When
used in *logic circuits the two states are made to correspond to logic 1 and logic 0. Flipflops are therefore one-bit memory elements and are frequently used in digital circuits.
The simplest form is the RS flip-flop; an implementation using *NAND gates is
shown in the diagram together with the flip-flop’s truth table. A logic 1 on one of the two
inputs either sets the Q output to logic 1 or resets Q to logic 0. Output Q̄; is the logical
complement of Q. When R̄ and S̄ are both logic 1 (which is equivalent to R and S both
logic 0), Q does not change state. The situation of both R̄ and S̄ at logic 0 is ambiguous
and is avoided in more complex flip-flop implementations (see JK FLIP-FLOP). The
outputs of this (and other) flip-flops are not just functions of the inputs but depend on both
inputs and outputs. The device is thus a simple *sequential circuit.
Extra logic gating may be included in the RS device, and in more complex flip-flops, to
allow a clock signal to be input to the flip-flop, so producing a clocked flip-flop (see
CLOCK). The Q output will not then change state until an active edge of the clock pulse
occurs (edge-triggered device) or a complete clock cycle has occurred (pulse-triggered
device). Provision may also be made to set up a given output regardless of the state of the
inputs.
Flip-flop. RS flip-flop, logic diagram, and truth table
Various forms of flip-flop are available to perform specific functions; these include *JK,
*D, *T, and *master-slave flip-flops. Flip-flops are important as memory devices in digital
counters. The RS flip-flop is often considered to be the universal flip-flop since it
forms the basic building block for more sophisticated implementations. JK, master-slave,
and D flip-flops are all available in the standard TTL and CMOS series of integratedcircuit components.
float An operator or function that converts a number in *fixed-point notation into an
equivalent *floating-point form.
floating-point notation A representation of real numbers that enables both very small
and very large numbers to be conveniently expressed. A floating-point number has the
general form
where m is called the mantissa, R is the *radix (or base) of the number system, and e is
the exponent.
In the context of computing, a more common name for the mantissa is the
significand.
IEEE Standard 754 defines the most commonly used representations for real numbers
on computers. It defines 32-bit (single precision) and 64-bit (double precision) as follows.
The first bit is a sign bit, denoting the sign of the significand. This is followed by a
fixed number of bits representing the exponent, which is in turn followed by another fixed
number of bits representing the magnitude of the significand.
The exponent is often represented using excess-n notation. This means that a
number, called the characteristic (or biased exponent), is stored instead of the
exponent itself. To derive the characteristic for a floating-point number from its exponent,
the bias (or excess factor) n is added to the exponent. For example, for an 8-bit
characteristic, exponents in the range −128 to +127 are represented in excess-128 notation
by characteristics in the range 0 to 255.
IEEE 754 specifies an 8-bit single-precision exponent, with a bias of 127, and an 11-bit
double-precision exponent, with a bias of 1023. A nonzero floating-point number is
normalized if the leading digit in its significand is nonzero. Since the only possible
nonzero digit in base 2 is 1, the leading nonzero digit in the significand need not be
explicitly represented. This means that the 23-bit significand in the IEEE 754 singleprecision floating-point representation effectively provides 24 bits of resolution, and the
52-bit double-precision significand provides 53 bits of resolution.
Although normalized floating-point numbers are most frequently used, unnormalized
representations are also needed to represent numbers close to zero.
floating-point operation The addition, subtraction, multiplication, or division of two
floating-point operands to produce a floating-point result. There is an international
standard (IEEE standard 754: 1985) that is designed to ensure the reproducibility of
floating-point operations. See also FLOATING-POINT NOTATION, FLOPS.
flood-fill The act or process of filling an area with a specific colour by starting from a
specified interior point (sometimes called the seed) and recursively changing the colours
of neighbouring points that lie within the boundary.
floor if x is a real number, then floor(x), also written as ʒloorleft;xʒloorright;, is the
largest integer less than or equal to x.
flop 1. A unit of computational cost associated with matrix and vector operations. The
term is widely used in algorithms for *numerical linear algebra. A flop is approximately
the amount of work required to compute, for example in Fortran, an expression of the
form
i.e. a floating point multiplication and a floating point addition, along with the effort
involved in subscripting. Thus for example, Gaussian elimination for a system of *order n
requires a number of flops of order n3 (see LINEAR ALGEBRAIC EQUATIONS). As computer
design and architecture change, this unit of cost may well undergo modification. 2. Short
for floating-point operation. See also FLOPS.
floppy disk (diskette) A flexible *magnetic disk consisting of a circular polyester
substrate (with a central hole) coated with magnetic oxide and permanently enclosed
within a stiff jacket, the inside of which is lined with a cleaning material. The jacket has a
radial slot on each side through which the read heads (or head and support pad in the case
of a single-sided floppy disk) can contact the disk. As with other magnetic disks, data is
recorded in concentric tracks in the magnetic coating; the tracks are divided into *sectors.
Developing technology has enabled recording density and track density to be raised, thus
increasing total storage capacity. A small index hole in the jacket and disk is provided so
that a photosensor may be used to generate an index pulse once per revolution. An
aperture, the write protect notch, on one edge of the jacket can be blocked to prevent
the drive from writing to the disk.
The most common size of floppy disk is 3½ inches. It has a jacket of hard plastic with a
metal shutter protecting the read-write slot. Floppy disks typically hold 1.44 megabytes. A
former type of 5¼ inch diameter, which was held in a flexible paper envelope, is now
obsolete.
floppy-disk drive (diskette drive) A device that accepts flexible magnetic disks, i.e.
*floppy disks, and reads or writes magnetic patterns that correspond to the data to be
retrieved or stored. The data is encoded in one of the appropriate *disk formats. The
floppy disk is put into the mechanism through a slot that is normally covered by a hinged
flap or door. The mechanism automatically locates and clamps the disk and rotates it at a
speed of 300 rpm. The *read/write heads contact the disk through apertures in its cover.
The floppy-disk drive was first introduced by IBM as a diagnostic software load device
but it has been used extensively as a data storage and transfer device on small computing
systems. With the increased use of rewritable CDs and other types of removable storage
and of the Internet for data transfer, the use of these drives has declined. See also DISK
DRIVE.
flops (FLOPS) (floating-point operations per second) A commonly used measure
of *computer power for very powerful computers (*supercomputers, *vector processing
computers) and *array processors. The rating of a computer, which in very powerful
machines is measured in tens of petaflops (i.e. tens of thousands of billions of flops), must
be qualified by a statement of the precision to which the operations are carried out.
floptical disk A hybrid optical and magnetic disk. The data was written and read by a
magnetic head in the usual way, but head tracking was controlled by an optical servo track
and head. This gave more precise tracking than the conventional magnetic servo track, so
data tracks could be packed more closely, giving a larger disk capacity than that of a
conventional floppy disk. Floptical disks never achieved widespread use and were
superseded by recordable CDs.
flowchart A low-level graphical representation of the structure of a program, with
emphasis on control flow and the primitive actions performed by the program rather than
on the data structures employed by the program. It consists of a set of boxes of various
shapes, interconnected by a set of directed arcs. The arcs indicate flow of control while
the various box shapes indicate different kinds of action or decision. Within the boxes any
notation can be employed to describe the action or decision; typical notations are
*pseudolanguage and natural language.
Flowcharts have been used extensively for many years but are now rather unpopular.
For one reason they tend to obscure the structure of programs that follow the tenets of
structured coding (see STRUCTURED PROGRAMMING) and, more important, they ignore the
topic of data structuring.
flow control Procedures used to limit the rate at which data is transmitted to the rate at
which it can be received. There are two major classes of flow control: end-to-end and
hop-by-hop. End-to-end flow control limits the amount of data according to the
capacity of the final destination to absorb it, without regard to the path through the
network taken by the data (which may vary from message to message). Hop-by-hop flow
control limits the amount of data sent according to the capacity of each individual node
and/or link on the path through the network. In this latter case, the path is usually constant
for the lifetime of the connection between sender and receiver. See also
ACKNOWLEDGMENT, WINDOW (def. 3).
Floyd method A method for proving the partial correctness of a program (see PROGRAM
CORRECTNESS PROOF). Certain points in the program are designated as cut-points, and
to each cut-point is attached an inductive assertion. The inductive assertions are
chosen so that, whenever a cut-point is reached, the program is in a ‘correct state’, i.e. one
that satisfies the inductive assertion attached to that point. To establish this, it is necessary
to consider each ‘minimal path’, i.e. each path leading from a cut-point directly to a cutpoint, and to show that, provided the program is already in a correct state, it will still be in
one after following that path.
fluid logic A means of implementing logic functions, not by the normal use of electronic
circuitry but by the flow of incompressible fluids (liquids) or gases through tubing
containing intersections and constrictions. The logic gates so formed are useful in
situations in which high electromagnetic interference prevents the use of electronic
components. If the working medium is a gas, the term pneumatic logic is often used.
Flynn’s classification See CONCURRENCY.
FM (f.m.) (frequency modulation) See MODULATION.
FMECA Abbrev. for failure modes, effects, and criticality analysis.
FMS (flexible manufacturing system) The term *computer-integrated
manufacturing (CIM) is now more common.
FMV Abbrev. for full-motion video.
folding 1. An important method in *program transformation, introduced by Burstall and
Darlington. Many simple mathematical techniques for processing the *equations and
formulas of algebra and logic have important consequences when applied to programs.
Folding is an example. It concerns programs that are expressed as collections of equations
forming *recursive function definitions (programs written in a *functional language are
often essentially in that form). The idea is to derive new equations, and in doing so one of
the characteristic steps is to replace an instance of a right-hand side of an existing equation
by the corresponding instance of the left-hand side (folding) or vice versa (unfolding). The
resulting new equations form a new program equivalent to the original one. Programs
derived in this way can often display significantly different efficiency conditions from the
original programs. 2. A simple method of *hashing a key, in which the key is subdivided
into several parts that are added together to give an address. The folding ratio is the
ratio of the sizes of the domain of this hashing function to the size of its range.
font In computing, a set of letters, numbers, punctuation marks, and symbols of a given
size and design that may be displayed or printed. Different designs are shown in the table.
Most fonts are subject to copyright restrictions. The font size, i.e. the height of the printed
letters and other characters, is specified in units called points, where 1 point equals
0.0138 inches in the US and UK.
Displayed or printed text can be enhanced using various features, including bold, italic,
underline, outline, shadow, and colour.
A font may be of fixed size when the shape is described by an array of *pixels. Such
fonts are commonly found in text terminals and printers where they occupy very little
space in memory and require no processing or manipulation of the data. Fixed fonts
provide the fastest printing and display but cannot satisfactorily be increased or reduced in
size, i.e. scaled, unless they are represented by a scalable font. With a scalable font the
character and symbol shapes are stored as a set of vectors and instructions. Because the
data is described mathematically, it is possible to display and print such fonts to any
desired size. The most common scalable-font systems are *TrueType and *PostScript
fonts.
Font. Commonly used fonts
A font usually has proportional spacing, where each character and symbol is
allotted a horizontal space commensurate with its width (as in the print you are now
reading). In monospace (or fixed pitch) fonts, such as Courier, each character or
symbol is allocated the same width, as on a typewriter. See also KERNING.
font cartridge A small device that can be plugged into a printer and contains fontsymbol definitions, usually in ROM. Font cartridges have largely been replaced by
scalable *fonts that are downloaded from the host computer.
footprint The area of front panel, desk, or floor space occupied by a device.
foreground processing Processing that supports interaction in a system that supports
both interactive and batch operations. See also BACKGROUND PROCESSING.
foreign key If, in designing a database using the *relational model, the key attribute of
one relation is included as a nonkey attribute in some other relation then it is said to be a
foreign key in that relation and similarly if the key is compound. See also REFERENTIAL
INTEGRITY.
forest A directed *graph that is a collection of *trees. If the root is removed from a tree
together with the arcs emanating from that root, the resulting collection of subtrees forms
a forest.
for loop See DO LOOP.
form 1. A page of printer media. It may be a single sheet or a multipart set, i.e. a number
of sheets coated so that a single impact will produce similar marks on all sheets. The
sheets may be joined to form a continuous web, with sprocket holes at the edges to allow
automatic feeding through printers. The paper may be preprinted with headings, fixed
information, and lines or boxes. Preprinted single sheets are commonly used with *laser
printers and *inkjet printers. 2. The data structure within a computer system representing
the final result to be printed or displayed.
formal language 1. A language with explicit and precise rules for its syntax and
semantics. Examples include programming languages and also logics such as *predicate
calculus. Thus formal languages contrast with natural languages such as English whose
rules, evolving as they do with use, fall short of being either a complete or a precise
definition of the syntax, much less the semantics, of the language. 2. A finite or infinite set
of *strings, considered in isolation from any possible meaning the strings or the symbols
in them may have. If A is any set, an A-language (or language over A) is any set of
A-words (see WORD). A is referred to as the alphabet of such a language.
formal language theory The study of *formal languages in the sense of sets of
strings. A major branch of formal language theory concerns finite descriptions of infinite
languages. Such a representation takes the form of an abstract device for generating or
recognizing any string of the language (see GRAMMAR, L-SYSTEM, AUTOMATON). This
branch of the subject has applications to the *syntax of programming languages (as
distinct from their *semantics, which require quite different mathematical tools). Thus the
set of all legal Java programs can be thought of as a formal language over the alphabet of
Java tokens (see LEXICAL ANALYSER). Grammars provide the basis for describing syntax,
while automata underlie the design of parsers for it. On the other hand it was the desire to
formalize natural languages that led to the initiation of the subject in 1956 by Noam
Chomsky.
Automata also provide an abstract model for computation itself, thus linking formal
language theory with the study of *effective computability and *complexity. Other issues
in formal language theory include decidability of properties of languages, *closure
properties of language classes, and characterizations of language classes (see DYCK
LANGUAGE). An example of a long-standing open question is the decidability of
equivalence for deterministic *push-down automata.
The subject has been extended beyond the study of strings to include the study of sets of
trees, graphs, and infinite strings, resulting in many more applications.
formal logic The study of the analysis of propositions and of proofs, paying attention
only to abstract symbols and form and paying no attention whatsoever to the meaning of
the abstractions. See also SYMBOLIC LOGIC.
formal method A mathematically and logically based framework for specifying,
developing, and verifying systems. Formal methods typically allow a system to be viewed
or represented as a mathematical formula. Hence, they enable an analyst to prove that a
specification is feasible (can be implemented), to prove that an implementation is correct,
and to prove the properties of a system without actually executing it.
A formal method generally comprises two main elements: a *formal language or
*specification language, and a verification system involving a deductive
apparatus. The language defines the authorized sentences or well-formed formulas
(wff), and must be given independently of any possible interpretation of the sentences.
The semantics of the language is determined by the meaning of each wff, which is not
unique. Hence a language may have different semantics (for example, the same language
may be used for describing a vending machine and a lottery system). The deductive
apparatus has two components: *axioms, i.e. formulas that cannot be derived from other
wffs; and *inference rules, stating how to produce new wffs from axioms or other wffs. In
practice, the elements of a formal method are often not presented formally (i.e. by using a
syntactical formulation such as *BNF for the formal language, or an approach based on
*denotational semantics); definitions may also be used instead of axioms, and often an
axiom in one method or system may be a theorem in another, and vice versa. A popular
application of formal methods is for specifying systems properties, as in *formal
specifications. See also FORMAL VERIFICATION.
formal parameter See PARAMETER.
formal specification 1. A *specification written and approved in accordance with
established standards. 2. A *specification written in a formal notation, such as *VDM or
*Z.
formal system An *interpretation of a *formal language.
formal verification A type of *program verification based on *formal methods. The
available formal verification techniques are *theorem proving and *model checking.
formant A natural resonant frequency of the vocal tract whose frequency values are
independent of the source location. See also COPY SYNTHESIS.
format 1. The defined structure of the pattern of information that is to be processed,
recorded on magnetic or optical media, displayed on a screen, or printed on a page. 2. To
put data into a predetermined structure or divide a storage medium, such as a disk, into
sectors, so that it is ready to receive data. 3. The style of character representation as
displayed or printed e.g. colour, bold, italic, alignment, etc. (see FONT).
See also CD-ROM FORMAT STANDARDS, DISK FORMAT, FILE FORMAT, INSTRUCTION
FORMAT, PRINTER FORMAT, TAPE FORMAT.
format string bug (uncontrolled format string) A type of *vulnerability in which a
program uses input data in particular types of print command. If the input is not checked it
may be possible for an intruder to construct a string that will alter unexpected locations in
memory when it is printed. This may, for example, allow the *program counter to be
manipulated or the program’s ownership or permissions to be changed to give the intruder
unauthorized access to the computer.
formatter 1. (of a storage subsystem) The logic assembly that determines the *format of
data recorded on magnetic or optical media, and forms part of a device controller. See also
DISK FORMAT, TAPE FORMAT. 2. (text formatter) A program that accepts text with
embedded formatting instructions and produces a new version of the document with the
specified margins, justification, pagination, etc. 3. A program that checks the surface of a
magnetic disk or tape by writing and then reading a set pattern to every point on the
medium. Any unusable or damaged portions will be marked as such to avoid their use for
data storage; alternative portions may be assigned in their place. New media must be
formatted before use; the re-formatting of used media has the effect of totally erasing all
the data stored thereon, although specialized recovery techniques can sometimes save
information after accidental re-formatting.
form factor 1. The shape of a piece of equipment expressed either in height, width, and
depth, or in terms of a standard item such as a 3½-inch disk drive or a 19-inch rack. 2. The
fraction of radiation diffusely emitted from one surface that is received by another. Form
factors are used in *radiosity calculations and are strictly geometric quantities whose
values depend only on the shape and relative location of the surfaces in the scene. Form
factors are independent of view and hence do not have to be recomputed for a change of
view.
form feed (FF) A format command for printers and displays signalling the requirement
that the data that follows should be printed or displayed on the next sheet or form. In
printers with continuous stationery this causes the paper to be thrown to the start of the
next page. In printers with cut-sheet feeders it causes the current sheet to be ejected and
printing to continue on the next sheet.
form letter A letter that is to be sent to a number of different destinations with only
minor differences in each copy, such as the date, address, salutation, and perhaps items in
the body of the letter. The letter is stored as a *word processor document. Each of the
points where variable information occurs is marked by a place holder, and before
printing the place holders are replaced by the specific information. If a number of letters
are to be produced at once, then the variable information can be stored as a list of names,
addresses, and other information. If only one letter at a time is produced, then the place
holders can be replaced directly from the keyboard. See also MAILMERGE.
form overlay An obsolete term for the predetermined patterns of printed lines, logos,
and fixed information that may be produced by a computer printer in addition to the
variable information.
form stop A sensor on a printer that generates a signal to indicate that there is
insufficient paper to allow printing to continue. It is often called the ‘paper out’ detector.
Forth A programming language formerly much in vogue among users of
microcomputers. Forth operands are held on a *stack, and programs take the form of
strings in *reverse Polish notation. A vital feature of Forth is that a symbol (a WORD) can
be associated with any program string, and such a user-defined word can then be used in
expressions on equal terms with the system words (operators). Forth is now little used, but
the same principles are found in *PostScript.
Fortran (FORTRAN) (formula translation) A programming language widely
used for scientific computation. The first version, Fortran I, was issued by IBM in 1956, to
be succeeded by Fortran II in 1958. This in turn was succeeded by Fortran IV, also known
as Fortran 66 when it was standardized by ANSI. This became the workhorse of the
scientific world until it was replaced by Fortran 77. This version retained the flavour of
the original Fortran but introduced some more modern concepts as a gesture towards
*structured programming. Fortran 90 appeared after long and acrimonious discussion, and
incorporates a large number of new capabilities. It incorporates most of the concepts and
facilities of modern languages, though not always expressed in the most elegant manner.
The latest version, Fortran 2003, includes support for *object-oriented programming.
Fortran programs use a notation strongly reminiscent of algebra (hence formula
translation), and it is thus fairly easy for the scientist to specify a computation. Fortran II
introduced the important idea of independent compilation of subroutines, making it
possible to establish libraries of scientific subroutines. The efficient code produced by the
early Fortran compilers did much to ensure the acceptance of high-level languages as a
normal mode of use of computers.
http://gcc.gnu.org/wiki/GFortranStandards
• Links to standards for the various versions of Fortran
forum Any form of online discussion group on the Internet.
forward bias The d.c. voltage required to maintain current flow in a *bipolar transistor
or *diode or to enhance current flow in a *field-effect transistor. For example, a silicon
diode will conduct current only if its anode is at a positive voltage compared to its
cathode; it is then said to be forward biased. This voltage will be approximately 0.6
volts. Compare REVERSE BIAS.
forward chaining (data-driven processing) A control procedure used in problem
solving and *rule-based systems. When a data item matches the antecedent part of a rule,
then the conditions for that rule have been satisfied and the consequent part of the rule is
executed. The process then repeats, usually through some form of conflict-resolution
mechanism to prevent the same rules firing continuously. Compare BACKWARD CHAINING.
forward error correction (forward error protection) Error correction that is
accomplished by appending redundant data to actual data so that certain kinds of errors
can be both detected and corrected. This differs from many error correction methods used
in communications in that there is no request to resend the data (e.g. from a memory);
there is thus no reverse message, hence the word forward. The nature of the redundancy is
a function of the expected type of error. See also BACKWARD ERROR CORRECTION, ERRORCORRECTING CODE.
forward error recovery A mechanism that prepares a system for possible future
errors by recording information to be used in the event of a detected error.
forward pruning A technique for reducing the number of *nodes to be examined at
each level in a search process. An *evaluation function can be used to prune unpromising
nodes or a mechanical method might be used, such as beam search—expand only n
nodes at each level.
Fourier analysis The analysis of an arbitrary waveform into its constituent sinusoids
(of different frequencies and amplitudes). See also FOURIER TRANSFORM, ORTHONORMAL
BASIS.
Fourier descriptors A method used in object recognition and *image processing to
represent the boundary shape of a *segment in an image. The first few terms in a *Fourier
series provide the basis of a *descriptor. This type of object descriptor is useful for
recognition tasks because it can be designed to be independent of scaling, translation, or
rotation.
Fourier series The infinite trigonometric series
By suitable choice of the coefficients ai and bi, the series can be made equal to any
function of x defined on the interval (− π, π). If f is such a function, the Fourier
coefficients are given by the formulas
Fourier transform A mathematical operation that analyses an arbitrary waveform into
its constituent sinusoids (of different frequencies and amplitudes). This relationship is
stated as
where s(t) is the waveform to be decomposed into a sum of sinusoids, S(f) is the Fourier
transform of s(t), and i = √−1. An analogous formula gives s(t) in terms of S(f), but with a
normalizing factor, 1/2π. Sometimes, for symmetry, the normalizing factor is split between
the two relations.
The Fourier transform pair, s(t) and S(f), has to be modified before it is amenable to
computation on a digital computer. This modified pair, called the discrete Fourier
transform (DFT) must approximate as closely as possible the continuous Fourier
transform. The continuous time function is approximated by N samples at time intervals T:
The continuous Fourier transform is also approximated by N samples at frequency
intervals 1/ NT:
Since the N values of time and frequency are related by the continuous Fourier transform,
then a discrete relationship can be derived:
four Russians algorithm Another name for Kronrod’s algorithm.
fourth generation (of computers) A designation covering machines that were designed
after 1970 (approximately).
Conceptually the most important criterion that can be used to separate them from the
*third generation is that they were designed to work efficiently with the current generation
of high-level languages—*fourth-generation languages—and were intended to be easier to
program by their end-user. From a hardware point of view they are characterized by being
constructed largely from *integrated circuits and have multi-megabyte fast RAM
fabricated in MOS technology. These volatile memories are intimately connected to highspeed disk units so that on power failure or switch-off, data in MOS memory is retained
by automatic transfer to the disks. On switch-on, commonly the system is started up from
a bootstrap ROM, which loads the operating system and resident software back into the
MOS memory as required.
fourth-generation language (4GL) A term used in the data processing community
for a high-level language that is designed to allow users who are not trained programmers
to develop applications, in particular for querying databases and generating reports. 4GLs
are usually nonprocedural languages in which the user describes what is wanted in terms
of application, not the computer. The processor takes the user’s description and either
interprets it directly or generates a program (e.g. in a database query language or Cobol)
that will perform the desired operation. For this reason the latter are sometimes called
application generators.
FP A notation for functional programming proposed by J. W. Backus in 1978. Backus
propounded a general functional style of programming, and developed an *algebra of
functional programs. FP has not been developed as a practical programming language, but
has enriched the conception of functional programming.
FPA Abbrev. for function point analysis.
FPGA (field-programmable gate array) A *PGA that may be programmed by the
user, i.e. on the customer’s premises. See also PROGRAMMED LOGIC.
FPLA (field-programmable logic array) See PLA.
FQDN (fully qualified domain name) The full name of an organization as
registered with a *domain name server.
fractal A set whose Hausdorff-Besicovitch dimension strictly exceeds its topological
dimension. Intuitively, a fractal is a set which at all magnifications reveals a set that is
exactly the same (self-similar). Such sets can be generated by the repeated application of
some collection of maps. The term is generally associated with Benoit Mandelbrot and
appeared in the literature in the late 1970s. Many naturally occurring objects, such as
trees, coastlines, and clouds, are considered to have fractal properties, hence their interest
to computer graphics.
fractal image compression A *lossy image compression technique based on splitting
an image into parts that can each be represented by *fractals. The representation of an
image by a fractal consists of finding an image transformation that, when applied
iteratively to any initial image at the decoder, produces a sequence of images that
converges to a fractal approximation of the original. Essentially the encoding of the image
is then an encoding of the transformation for each part of the image parts, and a
description of the decomposition into parts. Fractal compression is computationally
intensive. It has the ability to render images that appear lossless at one extreme and on the
other hand the compressed images can be very small in size while still producing
recognizable images.
fraction (fractional number) Another name for rational number. Numbers represented
in *floating-point notation are necessarily fractional.
fractional-level zooming Zooming in on an image at a rate that requires interpolation
between the known values of the image at specific points.
fractional part 1. The part of a number to the right of the radix point. 2. Another name
for mantissa or significand. See FLOATING-POINT NOTATION.
fractional replication An important technique in *experimental design for reducing
the number of treatment combinations tested, allowing more factors to be included in the
experiment without increasing the number of observations. For example, seven factors at
two levels each may be tested on a balanced set of 32 combinations without loss of
important information, compared with the full set of 128 combinations.
fragmentation The creation of many small areas of memory, which may arise as a side
effect when memory is allocated to and then released by processes. When a process
requests a memory allocation, it is assigned the use of a contiguous area, often part of a
larger area none of which is currently assigned to any process. The fragments of
unallocated memory thus generated can in time become so small that they are not capable
of meeting the requests of any process, and they then lie idle. *Defragmentation is a
process that, by consolidating memory which is in use, creates larger contiguous areas of
unused memory, of a size that allows them to be allocated to meet requests by processes.
See also EXTERNAL FRAGMENTATION, INTERNAL FRAGMENTATION.
frame 1. The total amount of information presented on a display at any one time. 2. A
part of a web page that acts as an independent unit within the page. In HTML, it is
possible to define a number of frames within the base page, and to read different
documents into these frames. Early versions of browsers did not support the use of frames,
but modern browsers do. 3. A single message or packet on a data link using a *data link
control protocol such as HDLC, ADCCP, etc. The frame is the unit of error detection,
retransmission, etc. A special pattern of bits—a flag—marks the beginning and ending of
the frame. In the HDLC protocol, a flag is the 8-bit sequence
01111110
that when followed by any sequence of bits other than another flag denotes the
beginning of a frame of data; the flag is maintained as a unique synchronizing sequence of
bits since the rules of the protocol require that a 0 is automatically inserted by the sending
equipment whenever it detects the presence of five 1s in the input data stream. 4. In
general, a complete or self-identifying message in a data communication system. 5. A
section of a recording on magnetic tape that comprises a single bit in each track. 6. See
FRAMES.
frame buffer An area of memory used to store information related to the pixels of a
display. A frame buffer for a colour display has a set of planes each defining one bit of
the colour information of each point. Typically a colour display will have a frame buffer
with up to 24 planes, 8 each for defining red, green, and blue values (see RGB COLOUR
MODEL).
frame grabber An input device, such as a video camera with associated hardware, that
allows a *frame of a display to be captured. See also IMAGE CAPTURE.
frameless rendering Randomizing the order in which pixels in a scene are updated to
give an impression of continuous movement and *motion blur without the computational
cost.
frame relay A form of network transmission in which *packets from different lowerspeed sources are encapsulated together to form a very large *frame, up to several hundred
bytes in length, which is then transported as a unit on a single higher-speed bearer. The
frame will usually have a fixed length, and more or less fixed internal structure. The fixed
size and relatively simple internal structure of the frames means that the switching activity
can be implemented with a considerable degree of hardware assistance, while the larger
frame size reduces the ratio of overheads to useful payload. In particular it is possible to
allow packets to enter or leave the frame relay system using an assembly of standardized
products.
frames A *knowledge representation formalism. A frame is a list of named slots. Each
slot can hold a fact, a pointer to a slot in another frame, a rule for deriving the value of the
slot, or a procedure for calculating the value. Frames can be used to represent all the
knowledge about a particular object or event. They are often arranged in hierarchies in
which frames representing particular entities inherit their slot values from ancestor frames
representing generic entities. See also OBJECT-ORIENTED PROGRAMMING.
framework A template for the development of software applications or components.
Frameworks provide an outline for the software’s structure in the form of *objects that not
only themselves provide basic functionality but also integrate with each other. Developers
build on this to implement their projects’ specific functionality by deriving their own
objects via *inheritance. Frameworks thus consist of at least a comprehensive set of such
objects; other facilities, such as programming languages and a runtime environment, may
also be provided.
Framework Programme See ESPRIT.
Framework Programmes, I–VII See ESPRIT.
FranzLisp A dialect of *Lisp, now superseded by *Common Lisp.
Fredholm integral equation See INTEGRAL EQUATION.
freedom of information 1. A lack of censorship—a state where there is no restriction
on the recording of information or on the use of that information. 2. Deregulation of the
communications media—the removal of restrictions on the use of broadcasting
frequencies and communication cables. 3. Fair use of *copyright material—the right to
impart news and information in Western society. 4. The rights an American citizen has
under the Freedom of Information Act to study almost any records concerning a
government department. 5. Technological transfer to third-world countries—the rights of
underprivileged people to high-technology information free of charge. In this last case the
difficulties in associating the concept of property to information, and the way in which the
imparting of information leads to the creation of yet more information, are supporting
arguments in favour of free or low-cost technological transfer.
free list Another name for available list.
free monoid A particular kind of *monoid, usually involving *strings. Note first that
*concatenation is an *associative operation and also that, if Λ is the *empty string, then
for all strings w, i.e. Λ is an identity element. Hence, for any alphabet A (see FORMAL
LANGUAGE), the set of all A-words forms a monoid under concatenation. Furthermore this
monoid has the algebraic property of ‘freeness’, which here means that, given any other
monoid M and a function f from A to M, there is precisely one way of extending f to a
monoid *homomorphism from A* to M. There are other free monoids, but they are all
*isomorphic to monoids of strings under concatenation. Hence the latter are representative
of the free monoids and the phrase is often taken to refer to them specifically. See also
INITIAL ALGEBRA.
free occurrence See FREE VARIABLE.
free semigroup A *free monoid, but without the *identity element. See also
SEMIGROUP.
Free Software Foundation (FSF) A US organization that aims to make high-quality
software freely available for everyone.
http://www.fsf.org/
• The Free Software Foundation home page
free-space list A list of unoccupied areas of memory in main or backing store. It is a
special case of an *available list.
free text retrieval Another name for full text retrieval.
free variable In an expression, a variable whose value must be known in order for the
whole expression to be evaluated. The idea depends on distinguishing different ways in
which variables can occur in expressions; it arises in connection with all variable-binding
operators, such as the logical *quantifiers and function symbols. It can also be seen as a
formalization of the idea of *global and *local variables in programs.
For example, in the following *lambda expression,
the variable x occurs three times. The first occurrence, since it immediately follows a λ,
introduces a new ‘binding’ of x, and is therefore called a binding occurrence. The
second occurrence of x falls inside the ‘scope’ of this binding and is therefore called a
bound occurrence. The third x is not within the scope of any such binding and is
therefore called a free occurrence. Equally, the variable f has a binding occurrence and
a bound occurrence, while g and y just have one free occurrence each. Since only x, y, and
g have free occurrences, they are referred to as the free variables of the expression. The
value of the whole expression then depends on what values are given to these free
occurrences.
Note that freeness depends on the expression under consideration; thus, although f does
not occur free in the whole expression above, it does so in the subexpression
freeware Unlicensed software that may be used and distributed without payment.
freeze-frame A single *frame of video information that may be ‘grabbed’ for
observation or capture.
frequency The number of complete cycles of a periodically variable quantity, such as a
pulse or wave, that occurs in unit time. It is measured in hertz.
frequency distribution A table of the number of occurrences of each of a set of
classified observations. The occurrences might arise from the throw of dice, the
measurement of a man’s height in a particular range of values, or the number of reported
cases of a disease in different groups of people classified by their age, sex, or other
category.
It is usual practice to choose a fairly small number of categories so that the *relative
frequencies within categories are not too small. If no definite upper or lower limits are
known, all values above (or below) a certain value are grouped into a single category
known as the upper (or lower) tail.
Frequency distributions may be summarized by computing *statistics such as the mean
(or other *measures of location) and the standard deviation (or other *measures of
variation), and sometimes measures of asymmetry or skewness and of compactness (i.e.
the proportion of the sample in the centre and in the tails).
The term frequency distribution is applied to observed data in a sample. In contrast,
*probability distributions are theoretical formulas for the *probability of observing each
event. Fitting probability distributions to observed frequency distributions is a
fundamental *statistical method of data analysis.
frequency divider An electronic device that is capable of dividing the frequency of a
given digital input pulse train by a fixed integer value, n. It often consists of an n-stage
*counter, the output frequency at the nth stage of counting being an nth submultiple of the
input frequency.
frequency division multiplexing (FDM) A form of *multiplexing in which the
*bandwidth of the transmission medium is divided into logical channels over which
multiple messages can be simultaneously transmitted. FDM is commonly used worldwide
to combine multiple voice-grade telephone signals: 4000 hertz (Hz) is allocated for each
channel, 3000 Hz per signal plus a 500 Hz guard band (unused frequency band) on
either side of the signal. Many such channels are transmitted simultaneously, making
effective use of the bandwidth available.
See also BROADBAND NETWORKING, TIME DIVISION MULTIPLEXING.
frequency domain A situation in which a signal is viewed as the sum of its constituent
frequency components. A signal may be viewed in the frequency domain using a spectrum
analyser or in the time domain using an oscilloscope. A signal viewed in one domain may
be converted to the other by means of the *Fourier transform. See also TIME DOMAIN.
frequency function See PROBABILITY DISTRIBUTIONS.
frequency modulation (FM, f.m.) See MODULATION. See also DISK FORMAT.
frequency shift keying (FSK) A method for representing digital data with analogue
signals by using a change in the frequency of the carrier to represent information. It is thus
a type of *modulation. FSK with two frequencies, corresponding to the digital values 0
and 1 (see diagram) is the primary method used by low-speed *modems. See also DIGITAL
DATA TRANSMISSION.
Frequency shift keying. 2 states
Fresnel factor A factor that describes how light is reflected from each smooth
microfacet within a rough surface, as a function of incidence angle and wavelength. This
is used in the *Cook–Torrance model.
friction drive See PLATTEN.
front end (user interface) See BACK END.
front-end processor An *I/O processor that is used to format and/or process input
data. The term is sometimes used to refer to a *communication processor. Compare BACKEND PROCESSOR.
FSA Abbrev. for finite-state automaton.
FSF Abbrev. for Free Software Foundation.
FSK Abbrev. for frequency shift keying.
FTAM (File Transfer, Access, and Management) An ISO *protocol that deals
with the handling of files in a networked environment. As well as allowing the transfer of
files between different operating system environments, the protocol also caters for the
situation in which two systems linked via a network wish to allow a *process on one
system to access and manipulate parts of a file on the other system. This greater
functionality entails a much more complex negotiation phase at the start of the access or
manipulation than is needed for the simple transfer of a complete file from one system to
the other.
FTFL code Short for fixed-to-fixed-length code. Another name for fixed-length code,
block code.
FTP Abbrev. for file transfer protocol.
FTVL code Short for fixed-to-variable-length code. Another name for variable-length
code.
Fujitsu A Japanese manufacturing conglomerate, founded in 1935. It first became known
in the computer industry as a manufacturer of IBM-compatible mainframes but is now
active in all areas of the industry, from chip manufacturing though communications to
outsourcing.
full adder See ADDER.
full backup A *backup of a set of specified files, often the entire contents of a disk,
regardless of when they were last modified. A differential backup is a backup of a set
of specified files, often a disk’s entire contents, that includes only those files modified
since the last full backup. A restore operation would involve the full backup plus the
differential backup. An incremental backup is a backup of a set of specified files,
often a disk’s entire contents, that includes only those files modified since the last
incremental backup. In the latter case a restore operation would involve the last full
backup plus all the subsequent incremental backups.
full custom A technique used for the design of *integrated circuits that involves the
manipulation of circuit designs at the semiconductor device level. If the device is based on
silicon technology for instance, the designer will be concerned with the definition and
characterization of silicon structures that will form the elementary components of the IC.
The geometric shapes of these components are laid out with a polygon editor on a CAD
(*computer-aided design) system. The shapes thus produced may be combined with others
from a standard cell library to form the overall geometric design of the IC. Electric
characteristics appropriate for the semiconductor materials that will be used to fabricate
the IC are then associated with this geometric definition so that electric simulation of the
behaviour of the IC can be carried out. The geometric definition forms the basis of the
masks that will be used for fabrication of the device by a process of photolithography. See
also SEMICUSTOM.
full duplex Another name for duplex.
full-motion video (FMV) The real-time display of full-screen motion video. The large
data rates involved and the need to decompress images in real time means that it is
difficult to achieve.
full subtractor See SUBTRACTOR.
full text retrieval (free text retrieval) A form of *information retrieval in which the
full text of a document is stored, and retrieval is achieved by searching for occurrences of
a given string in the text. This technique can be compared with the alternative of retrieving
information by matching one of a set of predetermined keywords.
full tree A tree of *degree m and *depth k in which every node at depth less than k has m
children and thus, in particular, all leaf nodes are at depth k.
function 1. from one set X to another set Y. A *relation R defined on the *Cartesian
product x × y in which for each element x in X there is precisely one element y in Y with
the property that (x,y) is a member of R. It is then customary to talk about a function f, say,
and to write
The unique association between elements x and y is denoted by
X is called the domain of f, Y the codomain of f. Further, y is the value of f at the point
x or the image of x under f. We say that f is a mapping or transformation between
sets X and Y or that f maps X into Y, and that f maps x into y. When the domain X is the
Cartesian product of n sets then f is a function of n variables. Otherwise it is a function of
one variable.
Examples of functions are readily obtained from the mathematical equivalents of
standard functions and operations typically supplied in programming languages. The usual
trigonometric functions sin, cos, and tan are functions of one variable. The rule for
converting from characters into their integer codes or equivalents is a function.
Functions are often represented pictorially as *graphs.
See also BIJECTION, HOMOMORPHISM, INJECTION, OPERATION, SURJECTION. 2. A
*program unit that given values for input parameters computes a value. Examples include
the standard functions such as sin(x), cos(x), exp(x); in addition most languages permit
user-defined functions. A function is a ‘black box’ that can be used without any
knowledge or understanding of the detail of its internal working. In some languages a
function may have *side effects.
functional cohesion See COHESION.
functional dependency See NORMAL FORMS.
functional design A design method in which the system is seen from the functional
viewpoint. The design concentrates on isolating high-level functions that can then be
decomposed into and synthesized from lower-level functions. Development proceeds as a
series of *stepwise refinements of functionality. Compare DATA-DRIVEN DESIGN.
functional languages (applicative languages) A class of programming languages
whose programs compute *functions. In practice, the class of functional languages are a
subclass of the *declarative languages, and are based on *lambda calculus or *recursion
equations. Typically a program in a functional language consists of an unordered set of
equations that characterize functions and their values. Functions are specified by use of
recursion, other functions, and values. Values are characterized as functions applied to
other values. Ultimately the set of equations that is the program must characterize all
functions and values in terms of the primitive functions and values provided by the
language. The values characterized by the equations include the values computed by
executing the program. These languages have become much more popular in recent times,
as exemplified by the *ML family of languages, which have the *strictness property, and
languages such as *Haskell and Clean, which use *lazy evaluation. See also LISP,
SCHEME.
functional partitioning A technique of system or program decomposition in which
the primary criterion is that each identified module should contain only elements that all
contribute to the achievement of a single goal. Thus each module should perform a single
function in the broad sense of an identified job of work (the definition of which is both
subjective and dependent upon the level of consideration). The technique is often
associated with a general approach, termed structured design, that was developed by
IBM in the early 1970s.
functional specification See MODULE SPECIFICATION.
functional testing See PERFORMANCE TESTING.
functional unit Any major component of a computing system, e.g. CPU, main memory,
backing store unit, peripheral device.
function key A key on a *keyboard that initiates an operation or inputs a code that
initiates an operation defined by the application software.
function point analysis A method derived originally by Albrecht at IBM to estimate
the relative complexity and work content of developing a software system. The
requirements of a software system are analysed for five categories: inputs, outputs, files,
interfaces, and enquiries. Each of these is then classified into parts that are simple,
average, or complex. The results are represented as counts in a matrix with a total of 15
cells; each raw count is weighted by multiplying it by standard factors, and the unadjusted
function point count, U, is then obtained by summing each cell-weighted value.
The processing complexity for the software is estimated for each of 14 general
characteristics that cover the type of product, and how it is to be used and installed. For
each characteristic a value is selected to represent its scale of influence. The 14 values are
summed to give the processing complexity adjustment, PC, which will range from 0 to 70.
The PC is used to calculate the adjusted function point score from its unadjusted score U.
A measure of the work involved in developing the software is then obtained from a
formula that allows for further score adjustments where necessary.
functor A *function that maps one *category into another. In computing terms a special
functor represents mappings between mathematical concepts, such as *sets and
*functions, and their implementation in a programming language; this is often called the
representation functor. The idea generalizes to include mappings between different
*abstract machines.
fuser A component of a laser printer consisting of heated rollers over which the paper
passes after the image is deposited. The heat fuses the *toner powder onto the paper to
create a durable image.
fusible link (fuse link) A physical link providing electric continuity across an individual
cell in the memory array of a *PROM. With this link intact the cell, when interrogated,
will display a known *logic state. During programming this link can be destroyed, forcing
the cell to take on the complementary logic state; this process is irreversible. Fusible links
are used in a similar manner in field-programmable logic arrays (see PLA). A fusible link
is sometimes incorporated in a *PROM or *PLA to ensure that the data cannot be changed
after being programmed. A similar technique is employed in some printer consumable
items (e.g. toner cartridges) to ensure that they are not re-used.
fuzzy control The application of *fuzzy logic to continuous *process control problems.
As an alternative to classical mathematical control techniques, a rule-based controller can
be built using rules like ‘ if the temperature is fairly high, then slightly reduce the flow’.
The adjectives are converted into fuzzy variables, which are used in a fuzzy-logic
algorithm to produce the control outputs. Such rules are captured from expert human
controllers by *knowledge acquisition techniques. Some fuzzy controllers have reported
performance at least as good as human operators.
fuzzy logic (fuzzy theory) A branch of logic designed specifically for representing
knowledge and human reasoning in such a way that it is amenable to processing by
computer. Thus fuzzy logic is applicable to *expert systems, *knowledge engineering, and
*artificial intelligence.
The more traditional propositional and predicate logics do not allow for degrees of
imprecision, indicated by words or phrases such as fairly, very, quite possibly. Instead of
truth values such as true and false it is possible to introduce a multivalued logic consisting
of, for example, the values true, not true, very true, not very true, more or less true, not
very false, very false, not false, and false. Alternatively an interval such as [0,1] can be
introduced and the degree of truth can be represented by some real number in this range.
Predicates are then functions that map not into {true, false} but into these more general
domains.
Fuzzy logic is concerned with the study of *sets and *predicates of this kind. There
emerge such concepts as fuzzy sets, fuzzy relationships, and fuzzy quantifiers.
FYI (for your information) A document published on and about the Internet, similar
to a *RFC, but giving information rather than setting standards.
G Symbol for giga-, as in GHz (gigahertz) and Gbyte (gigabyte). See GIGA-.
Galerkin’s method See FINITE-ELEMENT METHOD.
gallium arsenide devices (GaAs devices) Semiconductor integrated-circuit devices
that are implemented using gallium arsenide as the intrinsic *semiconductor material in
preference to, say, silicon. Gallium arsenide has certain advantages over other
semiconductor materials, in particular in high-speed applications and in the fabrication of
optical and optically coupled devices such as light-emitting diodes and optoisolators.
Galois field Another name for finite field (named after the French mathematician
Évariste Galois).
games console See COMPUTER GAMES.
games port An I/O connection used originally in early personal computers to support
devices such as a joystick, frequently used for playing games. It provides two analogue
inputs for the X/Y joystick signals and four inputs for pushbuttons.
game theory A mathematical theory of decision-making by participants with conflicting
interests in a competitive situation, originated by Emile Borel in 1921 and rigorously
established by John von Neumann in 1928. The theory attempts to gain insights into
economic situations by isolating these aspects, which occur in their simplest form in
games of strategy.
In a two-player game, as defined by the theory, each participant has a choice of plays
for which there are several possible outcomes, gains or losses, depending on the
opponent’s choice. An optimum strategy states the relative frequency with which a
player’s choices should be used, so as to maximize his average gain (or minimize his
average loss). The problem of determining the optimum strategy can be formulated as a
problem in *linear programming. Generalizations to n-person games are included in the
theory.
game tree A *tree investigated during a *tree search process performed during computer
game playing. See also COMPUTER CHESS.
Gane–Sarson An early method of *structured systems analysis.
Gantt chart A form of diagram that depicts the duration of (usually) development
activities as horizontal bars extending from their planned starting date to their estimated
completion date. The diagram can thus be used to gain a visual impression of a
development plan.
gap theorem A theorem in complexity theory that, like the *speedup theorem, can be
expressed in terms of abstract complexity measures (see BLUM’S AXIOMS) but will be
more understandable in the context of time:given any total *recursive function
there exists a total recursive function S(n) such that
(see COMPLEXITY CLASSES). In other words there is a ‘gap’ between time bounds S(n) and
g(S(n) within which the minimal space complexity of no language lies.
This has the following counter-intuitive consequence: given two universal models of
computation, say a Turing machine that makes one move per century and the other a
random-access machine capable of performing a million arithmetic operations per second,
then there is a total recursive function S(n) such that any language recognizable in time
S(n) on one machine is also recognizable within time S(n) on the other.
garbage Information in a memory that is no longer valid or wanted. It is usually the
result of *memory compaction operations. The removal of this superfluous information
from the memory is known as garbage collection and is usually associated with
memory compaction.
garbage collection See GARBAGE.
garbage in garbage out (GIGO) An enunciation of the important computing
principle that all input, however absurd, will be processed according to a program’s
algorithms and appropriate output generated. If the input is garbage, then the output will
inevitably also be garbage. This truth is often not recognized, especially by non-computer
specialists, who tend to blame ‘the computer’ for incorrect results when the fault actually
lies with mistakes in the input.
gate See LOGIC GATE.
gate array A form of *programmable device in which the component *logic gates can
be interconnected in an arbitrary manner during manufacture to give a *combinational or
*sequential circuit of considerable *height.
Gates, Bill (William Henry G.) (1955– ) US businessman and programmer. Gates began
programming at school and in 1975, while an undergraduate at Harvard, wrote a BASIC
interpreter with his friend Paul Allen for an early microcomputer, the MITS Altair. This
Gates-Allen partnership was the genesis of *Microsoft, and Gates left Harvard to develop
the business. While he personally supervised Microsoft’s products in the early years, he
became better known for the business acumen that has built Microsoft into the world’s
largest software company, in the process making himself the world’s richest person.
Notable successes include securing the contract (1980) to supply an operating system for
the original IBM personal computer while retaining the right to market it separately (as
*MS-DOS); and the exploitation of the success of Windows 3.x after 1990 to achieve
dominance of the PC marketplace. Gates was CEO of Microsoft until 2000, then chief
software architect until 2006; he stepped down as chairman in 2014. He has used part of
his personal fortune for philanthropic purposes, founding the Bill & Melinda Gates
Foundation with his wife in 2000.
gateway A device that interconnects two *networks, and whose presence is usually
visible to network users (as distinct from a *bridge, whose presence is generally not
visible). A gateway may be required to deal with one or more of the following differences
between networks it connects:
(a) change of addressing *domain—where the networks have addressing domains
managed by separate groups, a gateway may be used to handle address transformations
for messages traversing the gateway;
(b) control of charging—where the networks have different approaches to charging (e.g. a
local area network that imposes no charges connecting to a wide area network that
charges on a per-packet basis), a gateway may be used to handle user authorization
and usage accounting;
(c) change of protocol—where the networks use different protocols, a gateway may be
used to carry out necessary protocol conversion (if practicable) or to intercept attempts
by a user on one network to use functions not available on the other and to supply
suitable responses.
The terms bridge, gateway, and *relay are among those whose meanings vary between
different communities of users at a given time, and within a given community of users at
different times.
gather write The function of writing to memory a block of data comprising items of
data that have been retrieved directly from scattered memory locations and/or registers.
Gaussian distribution Another name for normal distribution.
Gaussian elimination See LINEAR ALGEBRAIC EQUATIONS.
Gaussian noise *Noise whose distribution of amplitude over time is *Gaussian.
Gaussian quadrature See NUMERICAL INTEGRATION.
GB (Gb) Symbols for gigabyte. See BYTE, GIGA-.
Gbps (gigabits per second, i.e. usually 109 bits per second) See BPS, GIGA-.
GBS method The Gragg–Burlisch–Stoer *extrapolation method based on theoretical
results obtained by Gragg, implemented by Burlisch and Stoer. See GRAGG’S
EXTRAPOLATION METHOD.
Gbyte (gigabyte) See BYTE, GIGA-.
GCD Abbrev. for greatest common divisor.
GCR (group code recording) See DISK FORMAT, TAPE FORMAT.
GDI Abbrev. for graphical device interface.
geek A person who knowledgeable about and talented at developing or working with
computer systems, but to an excessive and often unworldly degree. A geek is distinguished
from a *nerd by having talent.
gender bender An electrical component that joins two connectors of the same type (i.e.
two male or two female connectors).
generalized additive models Statistical models introduced by T. Hastie and R.
Tibshirani and used for smoothing data with sums of components of linear or nonlinear
curves. The models are more general than *generalized linear models.
generalized Church–Turing thesis See ABSTRACT COMPUTABILITY THEORY.
generalized linear model (GLM) In regression analysis, one of a wide class of model
in which the fitted value is a *transformation of a linear predictor and the *frequency
distribution is not necessarily the *normal distribution. Apart from the standard linear
regression model (see REGRESSION ANALYSIS), the most important cases are (a) for integer
counts, the logarithmic transformation and the *Poisson distribution, and (b) for
proportions, the logistic transformation and the *binomial distribution.
GLMs may be used in regression analysis where inspection of *residuals indicates that
the distribution is other than the normal distribution, and may also be used to analyse
*contingency tables.
The analysis uses the method of maximum *likelihood, solved by iterative use of
weighted *least squares estimation.
generalized sequential machine See SEQUENTIAL MACHINE. See also GSM MAPPING.
general-purpose computer (GP computer, GP) A computer that can be conveniently
programmed to perform any of a wide range of functions.
general-purpose interface bus (GPIB) See IEEE.
general recursive function See RECURSIVE FUNCTION.
generating polynomial See POLYNOMIAL.
generations of computers. An informal system of classifying computer systems as
advances have been made in electronic technology and, latterly, in software. Since the
design of digital computers has been a continuous process over more than seven decades
—by a wide variety of people in different countries, faced with different problems—it is
difficult and not very profitable to try and establish where ‘generations’ start and finish.
See FIRST GENERATION, SECOND GENERATION, THIRD GENERATION, FOURTH GENERATION,
FIFTH GENERATION.
generative grammar A set of formal rules that projects a finite set of sentences upon
the potentially infinite set of sentences that constitute the language as a whole; the term
was originally introduced by Noam Chomsky (1957). Among models of generative
grammar that have been investigated are finite-state, *phrase-structure, and
*transformational grammars.
generator 1. A program that accepts the definition of an operation that is to be
accomplished, and automatically constructs a program for the purpose. The earliest
example of this kind of program was the sort generator, which took a specification of
the file format and the sorted order required, and produced a sorting program. This was
followed by report generators, which constructed programs to print reports from files
containing information in a specified format. The best-known program of this kind is
*RPG II. See also APPLICATION GENERATOR. 2. An element g of a *group G with the
property that the various powers
ultimately include all the elements of G. Such a group is said to be a cyclic group; it is
also an abelian *group. Generators can also be defined for *monoids in a similar way.
The set of generators S of a group G is a subset of G having the property that every
element of G can be expressed as a combination of elements of S. See also GROUP GRAPH.
generator matrix See CONVOLUTIONAL CODE, LINEAR CODES.
generic A term originally used in *Ada to denote a *subprogram or *package that can be
parameterized with *parameters that can be types and subprograms as well as values and
variables. A generic package or subprogram provides a template from which a particular
*instantiation can be produced by providing the appropriate parameters. Many languages
now implement generics.
generic compaction See PROBABILISTIC COMPACTION.
generics See POLYMORPHISM.
genetic algorithm A technique in *artificial intelligence that uses the ideas of genetic
mutation, recombination, and survival of the fittest. A large population of potential
solutions is maintained from which pairs are cross-matched to produce new members. The
best examples in the population are used to breed the next generation.
genetic programming A learning process inspired by evolution and related to *genetic
algorithms. Whereas genetic algorithms evolve representations of problem features to find
solutions, genetic programming evolves over populations of program fragments to
assemble a final program that gives a solution. The output programs may be produced in a
subset of a given language or might be in the form of a *decision tree.
geodesic See REACHABILITY.
geodesic curves Curves that are the shortest distance between two points.
geographic information system, (geographical information system, GIS, geomatics
(in Canada), géomatique (Francophone)) An *information system for providing users with
information about objects and features in their geographical contexts. A GIS allows users
to display and analyse geographical relationships, and to investigate the effects of changes
to the locations or characteristics of objects and features that are represented. The objects
may be physical or administrative. Typical GIS applications are in Land Registry/Land
Information Systems (LIS), in mapmaking, in land and resource management (e.g. by
local authorities and utilities such as gas supply and distribution), and in market research,
demographic studies, and environmental work.
A GIS typically consists of a special *database management system (normally
*relational or *object-oriented) that recognizes locational relationships, with closely
integrated graphical input and output facilities, together with user facilities for
manipulation and analysis of the objects and features in the database. The locational
characteristics of objects and features may be recorded in vector form, i.e. in the form of
coordinates in the real world (latitude and longitude, or some other grid system);
alternatively the geographical region covered may be represented in raster form, i.e. as a
regular (quasi-rectangular) pattern of cells in which objects are stored. Some systems
provide integration of both forms of representation.
The objects in a GIS may represent points such as an individual mountain peak, lines
such as a road or river, polygons such as a forest or the boundary of an administrative
area, or continua such as elevation or climate. (Continua are commonly represented in a
raster rather than a vector GIS.) The spatial data for a GIS may come from a variety of
surveying techniques, including remote sensing imagery and global positioning systems,
or from a postal address by geocoding (using existing data about the area covered by
each zip code or postcode).
The database language includes facilities for locational queries (such as ‘how many
hospitals are there in Hampshire?’) and locational responses (such as ‘where are the
vineyards in California’), as well as statistical analyses.
geometric modeller A software system providing facilities for describing the geometry
of objects, typically solids and surfaces.
gesture A type of input to a computer where the meaning depends on the time-related
positions input from the device. For example, using a *dataglove, the user might beckon
with a finger to indicate a zoom in on the display.
Gflops (GFLOPS, gigaflops) A billion floating-point operations per second. See FLOPS.
gibi- See BINARY PREFIXES.
GIF (graphics image format) An *image file format developed by CompuServe Inc.
It is designed for efficient online transmission of colour raster images. GIF is widely used
on the *World Wide Web for incorporating images into web pages.
giga- (symbol: G) A prefix indicating a multiple of one billion, 109, as in gigahertz and
gigavolt. When the binary number system is used in a structure or process (as in
semiconductor RAM or ROM) the prefix then indicates a multiple of 230, i.e.
as in gigabyte and gigabit. The context usually clarifies which meaning is intended,
although, being quite close numerically, the meanings are often considered more or less
equivalent. See also BINARY PREFIXES.
Gigabit Ethernet See ETHERNET, FAST ETHERNET.
GIGO See GARBAGE IN GARBAGE OUT.
Gilbert–Varshamov bound The theorem that the maximum possible number, N, of
codewords in a *binary *linear *block code is bounded by
where the *code length is n digits, and the codewords are at a minimum *Hamming
distance d. See also CODING BOUNDS, HAMMING BOUND.
GINO–F (graphical input output) A package of Fortran subroutines for computer
graphics. The GINO—F subroutines define a ‘language’ for the production of graphics,
including three-dimensional objects viewed in various projections. GINO—F was a de
facto graphics standard for many years, especially in the UK, but is now little used having
been superseded by *GKS and *PHIGS.
GIS Abbrev. for geographic information system.
Git A distributed *source code control system, developed by Linus Torvalds in 2005 and
now maintained as open-source by the Git community. It is currently (2014) the most
popular distributed SCC system in use globally.
GKS (graphical kernel system) A set of graphical functions used by applications
programmers with the names and functions defined in ISO 7942 (first edition, published in
1985). It is now little used.
glass-box testing (white-box testing) A style of *testing that considers the inputs, the
outputs, and the relationships specified between them, together with knowledge of the
internal structure or processing, in order to derive test inputs that will demonstrate that the
required outputs occur. Usually the term is applied to software. Compare BLACK-BOX
TESTING.
glass teletype A simple *VDU, now obsolete, that emulated the properties of a
*teletypewriter. These devices evolved into today’s terminals, offering many additional
emulations and features.
glitch An intermittent transient fault that occurs when two communicating
*asynchronous processes fail to complete their hardware interface *protocol. It is usually
caused by a *flip-flop in a metastable state.
global A term used to define the *scope of an entity: global entities are accessible from
all parts of a program. By contrast, *local entities are accessible only in the program
module within which they are defined.
global discretization error See DISCRETIZATION ERROR.
global illumination An illumination model in which all objects are considered as
potential sources of illumination for all other objects in the scene.
global optimization See OPTIMIZATION.
glossy reflection The calculated reflection from a surface that takes account of how
glossy it is. See also SPECULAR REFLECTION.
glyph A recognizable abstract graphic symbol that is independent of any specific design.
Thus a letter A is a glyph although its precise form will depend on the *font chosen.
GNU 1. A portable UNIX-compatible software system that is freely distributed under the
auspices of the *Free Software Foundation. Although copyright, it is licensed for use,
modification, and subsequent distribution under the same terms. GNU is a self-referential
acronym for GNU’s Not UNIX. 2. The project of developing this software.
goal-directed processing Another name for backward chaining.
Gödel numbering (of a formal system) A one-to-one mapping (i.e. an *injection) of
the symbols, formulas, and finite sequences of formulas of the formal system onto some
subset of the natural numbers. The mapping must be such that there is an algorithm that,
for any symbol, formula, or finite sequence of formulas, identifies the corresponding
natural number; this is the Gödel number of that object. There must also be an
algorithm that, given any natural number, indicates whether it is the Gödel number of the
object; if it is, the algorithm must identify the object.
Conferring Gödel numberings has the effect of permitting statements about elements in
the nonnumeric system to be transformed into statements about natural numbers.
Conversely, since much is known about natural numbers, it becomes possible to prove
assertions about aspects of nonnumeric systems. The mapping was first used by the
German mathematician Kurt Gödel.
Gödel’s incompleteness theorems Two fundamental theorems in mathematical
logic, proved by Kurt Gödel in 1931. The first concerns the formalization of basic
arithmetic. Gödel showed that, in any logical system powerful enough to express
arithmetical operations, there must exist sentences that are neither provable nor refutable
in the logical system. In consequence there exist statements about arithmetic that, while
true, cannot be proved in the logical system. The second theorem states that no logical
system can be powerful enough to provide a proof of its own consistency. These
discoveries marked a turning-point in our understanding of formal reasoning. For
example, they forced the abandonment of ‘Hilbert’s program’, i.e. of the search for a
provably consistent and complete formal basis for the whole of mathematics itself.
Equally significant are the proof methods that Gödel used. One device was to encode
logical formulas as numbers (see GÖDEL NUMBERING), so that manipulations of formulas
could be ‘programmed’ as numerical computations. (This early exercise in numerical data
representation and programming also marked the beginning of *recursive function theory.)
The other device was to use this numerical encoding to produce a formula that in effect
asserts its own unprovability. The idea is seen in statements such as ‘this sentence is false’,
the Cretan liar paradox, and Russell’s paradox. Gödel’s construction however is formal:
the reference to ‘this sentence’ is handled by the numerical encoding, without any need for
vague English words. A relationship exists with the paradoxical *combinator, while a
similar approach can be used to show the undecidability of the *halting problem as well as
many results in *complexity theory, where Gödel numbering is applied to *Turing
machines rather than logical formulas.
Gödel is also responsible for a *completeness theorem.
Golay codes A family of *perfect *linear *error-correcting *block codes, of which the
most important is the binary (23,12) Golay code. There is also a ternary (11,6) Golay
code. Golay codes can be arranged to be *cyclic.
golden section search A *binary search algorithm, but instead of taking the middle
element of the next section a proportion is taken that, on average, speeds up the
convergence.
gold master In a software development project, the final version, which is released to
the public.
Good–de Bruijn diagram (Good–de Bruijn graph) A directed *graph illustrating
the possible succession of states of a *shift register. Each possible state of the shift register
(indicated by its contents) is represented by a node in the graph; from each node a set of
arcs lead to all its possible immediate successors. (Succession involves one clocking of the
shift register, with some serial input.) If there are n cells in a *q-ary shift register, there
will be qn nodes, each with q arcs leading from it, and thus qn+1 arcs altogether.
When the serial input is some function of the current state, the behaviour of the shift
register is described by a Good–de Bruijn graph with some arcs deleted: such subgraphs
are used in the study of *feedback registers.
goodness-of-fit test A statistical *significance test of the hypothesis that a sample
*frequency distribution is adequately explained by fitting a particular model. When data
are counts of numbers of occurrences, the test uses the *chi-squared distribution. Testing
goodness of fit of continuous observations is less easy, requiring understanding of
*analysis of variance, and is only possible when some observations are replicated.
Google Trademark The dominant Internet search engine, operated by Google, Inc.
Created by Larry *Page and Sergey *Brin in 1996–98, its success was based in its
algorithms’ ability to return search results that were reliably relevant to users’ needs—a
considerable advance over other search engines at that time. In 2007 over 50% of all web
searches were performed on Google, and the verb ‘to Google’, meaning ‘to perform a web
search’, has entered the English language. The commercial success of the search engine
allowed Google, Inc., to diversify into other software areas and has made it a major force
in the global computer industry.
gopher A software utility that is used on a workstation connected to a network, and acts
on behalf of the user in carrying out routine tasks of collecting information from services
attached to the network. Gopher was an alternative service to the *World Wide Web but is
now obsolete, although still used by some enthusiasts.
Gopher A *protocol and supporting utilities formerly popular on the *Internet. Gopher
presented the user with a hierarchy of nodes, each of which was either a menu (a directory
of material accessible at this point), a search node (a set of documents that could be
searched using keywords), or a leaf node (a document containing text or other forms of
material that the workstation could display). Its use declined because of the *World Wide
Web’s greater flexibility.
Goppa codes A family of *linear *error-correcting *block codes. The most important
classes of Goppa codes are the *Reed–Solomon codes and the binary *Golay (23,12)
code. Goppa codes are not in general *cyclic.
GOTO statement A program statement that causes a *jump; it is thus a jump
instruction in a high-level language. It causes the normal flow of control to be broken by
designating an explicit successor statement, usually identified by a label, e.g.
GOTO 99
〈statements〉
99…
Modern programming practice deprecates the use of GOTO since its use makes programs
more difficult to follow, the flow of control being less visibly explicit. GOTO is, however,
sometimes unavoidable, particularly in error situations where it is necessary to abort
execution of a number of nested loops or procedures, when the language does not provide
for exceptions.
Gouraud shading An approach to shading a planar *facet of a surface that uses linear
interpolation of intensities calculated at the vertices of the facet.
GP Short for general purpose, general-purpose computer.
GPIB (general-purpose interface bus) See IEEE.
GPU See GRAPHICS PROCESSING UNIT.
graceful degradation See FAIL-SOFT.
graded index fibre See FIBRE OPTICS.
Gragg’s extrapolation method (GBS method) An *extrapolation method for the
solution of *ordinary differential equations based on the *midpoint rule. For stiff problems
a similar scheme can be based on the implicit midpoint rule:
where h is the stepsize.
grammar One of the principal ways of specifying an infinite *formal language by finite
means. A grammar consists of a set of rules (called productions or rewrite rules) that
may be used to derive one string from another by substring replacement. The strings of the
specified language are obtained by repeated application of these rules, starting from some
initial string. A grammar however has the additional feature that the alphabet is divided
into a set T of terminal symbols and a set N of nonterminal symbols (or
variables). While productions may be composed arbitrarily of terminals and nonterminals,
the specified language contains strings of terminals only.
A grammar G can therefore be defined as comprising two sets of symbols T and N, a
*semi-Thue system over the union T∪N, and a distinguished member S of N. The
language generated by G is the set of all strings over T that can be derived from S by a
sequence of substring replacements (see SEMI-THUE SYSTEM); S is known as the start
symbol or sentence symbol. As an example, let T be {b,c}, N be {S,A} and let the
productions be
(1) S → SA
(2) S → A
(3) A → bc
Then, for instance, starting from S we can derive bcbcbc via the following sequence
(among others):
SA by production 1
SAA by production 1
AAA by production 2
bcAA by production 3
bcbcA by production 3
bcbcbc by production 3
The language generated is
These are the only strings of bs and cs in {b,c}* derivable from the start symbol S by the
three production rules. A string such as SAbcA, which is derivable from S but still contains
nonterminals, is referred to as a sentential form.
This is the most general form of grammar. Typically however some restriction is placed
on the form that productions may take (see CONTEXT-FREE GRAMMAR, CONTEXTSENSITIVE GRAMMAR, REGULAR GRAMMAR). The syntax of programming languages is
usually specified by context-free grammars; the example given above is context-free,
although the language can be specified by a regular grammar.
A slightly different way of generating a language is by means of an *L-system (or
Lindenmeyer system). A different approach altogether is to define a machine that tests any
string for membership of the language, i.e. an *automaton.
grandfather file (grandparent file) See FILE RECOVERY.
granularity A measure of the size of the *segments into which memory is divided for
purposes of either *memory protection or *virtual memory management.
graph 1. A nonempty but finite set of vertices (or nodes) together with a set of edges
that join pairs of distinct vertices. If an edge e joins vertices v1 and v2, then v1 and v2 are
said to be incident with e and the vertices are said to be adjacent; e is the unordered
pair (v1,v2).
A graph is usually depicted in a pictorial form in which the vertices appear as dots or
other shapes, perhaps labelled for identification purposes, and the edges are shown as lines
joining the appropriate points. If direction is added to each edge of a graph, a directed
graph or digraph is obtained. The edges then form a finite set of *ordered pairs of
distinct vertices, and are often called arcs. In the pictorial representation, arrows can be
placed on each edge. With no direction specified, the graph is said to be undirected.
Although helpful visually these representations are not suitable for manipulation by
computer. More useful representations use an *incidence matrix or an *adjacency matrix.
Graphs are used in a wide variety of ways in computing: the vertices will usually
represent objects of some kind and the edges will represent connections of a physical or
logical nature between the vertices. So graphs can be used to model in a mathematical
fashion such diverse items as a computer and all its attached peripherals, a network of
computers, *parse trees, logical dependencies between *subroutines or nonterminals in a
*grammar, *VLSI diagrams, related items in *databases for molecules and reaction
networks (for chemoinformatics and bioinformatics). *Trees and *lists are special kinds of
graphs.
Variations exist in the definition of a graph. There is some dispute about whether one
edge can join a vertex to itself, whether empty sets are involved, whether an infinite
number of vertices and edges are permitted, and so on.
See also CONNECTED GRAPH, NETWORK, WEIGHTED GRAPH. 2. (of a function f) The set
of all *ordered pairs (x,y) with the property that y = f(x). Often such a graph is represented
by a curve.
graphical device interface (GDI) The interface between a graphics system and a
device. The *CGI is an ISO standard interface. The *X Windows protocol and *PostScript are de facto GDI standards. Use of standard device interfaces allows the same
program to generate output for a range of devices without the need to change the program.
graphical kernel system See GKS.
graphical user interface (GUI) An interface between a user and a computer system
that makes use of input devices other than the keyboard and presentation techniques other
than alphanumeric characters. Typical GUIs involve the use of *windows, *icons, *menus,
and *pointing devices. The windows can contain control objects such as *dialogue boxes,
*slider bars, *radio buttons, *check boxes, and *pick lists, as well as textual or graphical
information. The objects forming the interface display have attributes such as the ability to
be resized, moved around the display, shrunk down to an icon, or given different colours.
Perhaps the best-known GUIs are those used on Microsoft *Windows PCs and Apple
Macintosh computers, although there are several others in common use.
graphic characters See CHARACTER SET.
graphics See COMPUTER GRAPHICS.
graphics adapter (graphics adaptor) A printed circuit board that can be added to a
personal computer to enable it to drive a particular type of graphics display. It therefore
determines the maximum graphics capability of the system. Modern graphics adapters
usually contain a *graphics processing unit.
graphics image format See GIF.
graphics mode A way of displaying images on a computer screen or other graphics
device such that the basic unit is the *pixel. Lines and characters on the screen are drawn
pixel by pixel. The *resolution and complexity of the image depends on how many pixels
there are in total, and how many bits are assigned to each pixel. The more bits per pixel,
the more different colours or shades of grey. A single graphics device can operate in a
number of different graphics modes with different resolutions and colour selections. A
common mode for a *desktop PC would be 1024 by 768 pixels with 16 777 216 different
colours available for each pixel. See also COMPUTER GRAPHICS, TEXT MODE.
graphics primitive A basic nondivisible graphical element for input or output within a
computer-graphics system. Typical output primitives are *polyline, *polymarker, and *fill
area. *Clipping of an output primitive cannot be guaranteed to produce another output
primitive. Output primitives have *attributes such as line style and pattern associated with
them. Typical input primitives are *locator, *choice, and *valuator. Input primitives often
have a style of *echoing associated with them.
graphics processing unit (GPU) A piece of hardware, consisting of one or more
special-purpose microprocessors, dedicated to performing the data transformations
necessary to render complex graphics on a *raster display. The additional speed gained
from performing these operations by hardware, rather than by software using the
computer’s CPU, is essential for 3-D animations and other modern uses of computer
graphics.
graphics program A computer program where the main output is provided by a
graphical display.
graphics tablet Another name for data tablet.
graphics workstation See WORKSTATION.
graph plotter See PLOTTER.
graph rewrite system A set of rules, usually in the form of equations, that describe
computations that may be carried out on *graphs; these take the form of changes that may
be made to graphs (either finite or infinite).
gravity field An imaginary field placed around certain positions on a graphical display
to aid user input. For example, when inputting a line drawing, existing end points of lines
may have gravity fields associated with them that attract the *locator input device. As the
device approaches the point it will therefore snap onto the point with the gravity field. A
gravity field greatly assists the input of a connected set of lines for the operator, who only
needs to get close to the desired position rather than identifying it precisely.
Gray code A binary (n, n) *block code having the following properties:
(a) there are 2n codewords, each of length n bits;
(b) successive codewords differ by the complementation of a single bit, i.e. the *Hamming
distance between them is unity.
A Gray code can be conveniently represented by its transition sequence, i.e. the
ordered list of bit positions that change when moving from one codeword to the next. The
*Good–de Bruijn diagram graph of a Gray code forms a *Hamiltonian cycle. Gray codes
are used in encoding the positions of shafts, wheels, etc., in order to avoid the problems
that would arise when several digits were supposed to change at the same time.
greatest common divisor (GCD) of two integers m and n. The largest integer, d, that
exactly divides both m and n. If d = 1, then m and n are said to be relatively prime. For
example, the GCD of 18 and 24 is 6; 21 and 25 are relatively prime.
greatest lower bound See LOWER BOUND.
greedy method An algorithm that, with a certain goal in mind, will attempt at every
stage to do whatever it can, whenever it can, to get nearer to that goal immediately. In
other words the method surrenders a possible longer-term advantage in favour of an
immediate move toward the objective.
greeking The rendering of letters and other characters as lines or blocks when
previewing text on screen in a *wysiwyg system. Greeking can speed up the display while
still giving an accurate impression of the layout. It is used particularly for characters that
are too small to be read at the chosen magnification.
Green Book 1. The *coloured book that defined the virtual terminal protocol formerly
used within the UK academic community. 2. See CD-ROM FORMAT STANDARDS.
Greibach normal form A restricted type of *context-free grammar, namely one in
which all productions have the form
i.e. each right-hand side consists of a terminal followed by (zero or more) nonterminals.
Any context-free language is generated by such a grammar, except that derivation of the
empty string, Λ, requires the additional production
One significance of this form is that it makes clear the existence of an equivalent
*pushdown automaton: on reading b the PDA can pop A from the stack and push C1…Cn.
grey importer A term used to describe a company that buys products retail in one
country (typically the US) and sells them in another (typically the UK), relying for its
profit and its competitiveness on the different pricing policies in operation in the two
countries. Thus, if a printer manufacturer sells a printer at US$500 retail in the US, then it
may well be priced at £500 (perhaps $800, depending on the current exchange rate) in the
UK, if bought through an official importer. It is the difference between these prices that is
exploited by the grey importer.
grey-level array An array of numbers, each of which represents the level of brightness
in the corresponding area of a visual scene. The grey-level array might represent the
output of a television camera or similar device.
grey-level image The image corresponding to a *grey-level array.
greyscale A scale of variations in the *luminance value of ‘white’ light from black to
white. Shades of grey are defined as greyscale graduations that differ by √2.
grid See MESH.
Grosch’s law The best known of many attempts to provide a measure of computer
performance in terms of price, originally formulated by H. R. J. Grosch in 1953 as:
Reliance on this law, which was approximately true at the time, led to the concept of
‘economy of scale’, i.e. that large computers were less expensive per operation than small
computers. Since that time other values of the exponent have been suggested: a good case
can be made for the value 1 rather than 2. Current technology has almost completely
invalidated Grosch’s law.
ground term (closed term) See TERM.
group A *set G on which there is defined a *dyadic operation ° (mapping G × G into G)
that satisfies the following properties:
(a) ° is *associative;
(b) ° has an identity, i.e. there is a unique element e in G with the property that
for all x in G; e is called the identity of the group;
(c) inverses exist in G, i.e. for each x in G there is an inverse, denoted by x−1, with the
property that
These are the group axioms.
Certain kinds of groups are of particular interest. If the dyadic operation ° is
*commutative, the group is said to be a commutative group or an abelian group
(named for the Norwegian mathematician Niels Abel).
If there is only a finite number of elements n in the group, the group is said to be finite;
n is then the order of the group. Finite groups can be represented or depicted by means of
a *Cayley table.
If the group has a *generator then it is said to be cyclic; a cyclic group must be abelian.
The group is a very important *algebraic structure that underlies many other algebraic
structures such as *rings and *fields. There are direct applications of groups in the study
of symmetry, in the study of transformations and in particular *permutations, and also in
error detecting and error correcting as well as in the design of fast adders.
Groups were originally introduced for solving an algebraic problem. By group theory it
can be shown that algorithmic methods of a particular kind cannot exist for finding the
roots of a general polynomial of degree greater than four. See also SEMIGROUP.
group code Another name for linear code.
group code recording (GCR) See DISK FORMAT, TAPE FORMAT.
group graph A directed *graph that represents a finite *group; the vertices of the graph
represent elements of the group and the edges represent *generators of the group. If edge
E (representing generator g) joins vertices V and V′ (representing group elements v and v′
respectively) then
where ° is the group operation. Each vertex of the group graph will have outdegree (see
DEGREE) equal to the number of generators of the group.
group mark A notation within a record that indicates the start or finish of a group of
related fields. In the case of repeated fields, the group mark often indicates the number of
repetitions of such fields.
groupware (collaborative software) Software that supports the cooperation of a group
of people, usually working in a distributed environment.
Grzegorczyk hierarchy See HIERARCHY OF FUNCTIONS.
gsm mapping (generalized sequential machine mapping) A function that is the
response function of a generalized *sequential machine, and therefore generalizes the
notion of *sequential function. Without constraining the machine to have a finite state-set,
generalized sequentiality is equivalent to the following property of initial subwords
preservation:
for all u,v in I*, f(uv) has the form f(u)w for some w in O*, where I* and O* are the sets
of all input and output strings.
guest A user who is able to log into a site without the use of a password.
GUI Abbrev. for graphical user interface.
gulp Rare Several, usually two, *bytes.
H2020 (Horizon 2020) See ESPRIT.
hacker 1. A person who attempts to breach the *security of a computer system by access
from a remote point, especially by guessing or otherwise obtaining a *password. The
motive may be merely personal satisfaction, for example by endeavouring to access a
system in another country, but it may have a sinister intent. 2. Originally, a person who
had an instinctive knowledge enabling him or her to develop software apparently by trial
and error.
hacking Unauthorized access to computer material. See also Computer Misuse Act 1990,
HACKER.
Hadamard codes See HADAMARD MATRICES.
Hadamard matrices A family of matrices, a Hadamard matrix H of order m being an
m × m matrix, all of whose elements are either +1 or −1, and such that
where HT is the *transpose of H, I is the *identity matrix, and λ is a scalar quantity. They
are usually written in ‘normalized’ form, i.e. the rows and columns have been signed so
that the top row and left column consist of +1 elements only. Hadamard matrices exist
only for order m = 1, 2, or 4r for some r. It is known that they exist for all orders m = 2S. It
is conjectured, but not known that they exist for all orders m = 4r.
The rows of any Hadamard matrix form an *orthonormal basis, from which property
follows many of their applications in the theory of *codes, *digital signal processing, and
statistical *sampling. When the order m = 2S, they are called Sylvester matrices.
A Sylvester matrix has an equivalent matrix whose rows form a set of m-point *Walsh
functions or, in a different arrangement, Paley functions. Various *linear Hadamard
codes can be derived from a normalized Sylvester matrix in which +1 has been replaced
by 0, and −1 by 1.
half-adder See ADDER.
half duplex Involving or denoting a connection between two endpoints, either physical
or logical, over which data may travel in both directions, but not both simultaneously. An
important parameter of a half-duplex connection is the turnaround time, i.e. the time it
takes to reverse the roles of sender and receiver. See also DUPLEX, SIMPLEX.
half-height factor The physical dimensions of a piece of equipment with a *form
factor such that two of them stacked on top of one another occupy the same space as a
standard item such as a CD drive.
halfplane The set of points to the left or right of a given line on a plane. A line divides a
plane into two halfplanes.
half subtractor See SUBTRACTOR.
halfsurface The set of points to the left or right of a given plane. A plane divides threedimensional space into two halfsurfaces.
halftone A digital process used to create the effect of shading with a wide range of grey
values or colours when only two-level pixel values or a much limited range of values is
available. By varying the ratio of black to white pixels in each small area of the screen, the
eye sees a continuous intensity at normal viewing distance due to the limited resolving
power of the eye. (The printing industry uses dots of ink whose size or density varies.)
half word A unit of storage comprising half the number of bits in a computer’s *word.
halt (HALT) A program instruction that stops execution of the program. Originally a halt
instruction actually halted the processor (hence the name), but now it more often causes a
*trap into the operating system so that the operating system can take over control and, for
example, start another program.
halting problem A *decision problem that was discovered and investigated by Alan
*Turing in 1936. Suppose M is a *Turing machine and let x be an input to M. If we start
the machine running two things might happen: after a finite number of steps the machine
might stop, or it might run on forever. Is there any way to test, given M and x, which of
these two situations will occur? This is the halting problem. In fact there is no algorithm or
effective procedure that, given any Turing machine and its input, will decide whether or
not the calculation ever terminates.
Assuming the Church-Turing thesis, the halting problem is algorithmically unsolvable
or undecidable. It is one example of many unsolvable problems in mathematics and
computer science. It has profound practical implications: if it were solvable it would be
possible to write a program tester that, given (say) any Pascal program and its input,
would print ‘yes’ if the program terminated after a finite number of steps and ‘no’ if it did
not. For any programming language that can define the *recursive functions, no such
termination program exists.
Hamiltonian cycle (Hamilton cycle) A *cycle of a *graph in the course of which each
vertex of the graph is visited once and once only.
Hamming bound (sphere-packing bound) The theorem that the number, N, of
codewords in a *binary *linear code is bounded by
where the *code length is n digits, and the code is capable of correcting e errors. See also
CODING BOUNDS, GILBERT–VARSHAMOV BOUND.
Hamming codes A family of *binary *linear *perfect *error-correcting *block codes.
They are capable of correcting any single error occurring in the block. Considered as (n, k)
block codes, Hamming codes have
where m characterizes the particular code. Where multiple-error-correcting abilities are
required, Hamming codes may be generalized into *Bose–Chaudhuri–Hocquenghem
(BCH) codes. The code was discovered by Richard Hamming in 1950.
Hamming distance (Hamming metric) In the theory of *block codes intended for
error detection or error correction, the Hamming distance d(u, v) between two words u and
v, of the same length, is equal to the number of symbol places in which the words differ
from one another. If u and v are of finite length n then their Hamming distance is finite
since
It can be called a distance since it is nonnegative, nil-reflexive, symmetric, and triangular:
The Hamming distance is important in the theory of *error-correcting codes and *errordetecting codes: if, in a block code, the codewords are at a minimum Hamming
distance d from one another, then
(a) if d is even, the code can detect d − 1 symbols in error and correct ½(d − 1) symbols in
error;
(b) if d is odd, the code can detect d − 1 symbols in error and correct ½(d − 1) symbols in
error.
See also CODING BOUNDS, CODING THEORY, HAMMING BOUND, HAMMING SPACE,
PERFECT CODES.
Hamming metric Another name for Hamming distance.
Hamming radius See HAMMING SPACE.
Hamming space In coding theory, a mathematical space in which words of some given
length may be situated, the separation of points in the space being measured by the
*Hamming distance. The dimensionality of the space is equal to the number of digits in
the words; the coordinate in each dimension is given by each successive digit in the
words.
The Hamming sphere is the set of all words in Hamming space whose Hamming
distance from some given word (the ‘centre’) does not exceed some given value (the
Hamming radius).
Hamming sphere See HAMMING SPACE.
Hamming weight In coding theory, the number of nonzero digits in a word. It is
numerically identical with the *Hamming distance between the word in question and the
*zero word.
hand-held computer A small computer that can be held in one hand and operated with
the other.
handle 1. A means of uniquely identifying an object, or a property of an object. In
programming, a handle is a *pointer to a pointer to a variable. This level of indirection can
simplify the passing of references to the variable between parts of the program. 2. In a
graphical environment, a marker associated with an image. One very common form is as a
small square in the border of a *window: different handles may be used to drag the
window, so changing its position, to reshape the window, so changing its aspect ratio, or to
rescale the window, so changing the size of its contents. See also BOTTOM-UP PARSING.
handshake (handshaking) An exchange of signals that establishes communications
between two or more devices. The handshake synchronizes the devices and allows data to
be transferred successfully. The signals have various meanings, including
‘I am waiting to transmit.’
‘I am ready to receive.’
‘I am not ready to receive.’
‘I am switched on.’
‘The data is available.’
‘Data has been read successfully.’
See also ASYNCHRONOUS INTERFACE.
hands off See HANDS ON.
hands on A mode of operation of a system in which an operator is in control. The
operator literally has hands on a keyboard and other switches to control the processes to be
carried out by the system. The dependence on the capability of the operator to run a
medium-size or large computer has been reduced by the introduction of supervisor
programs or operating systems.
When no operator intervention is required the mode of operation can be described as
hands off.
hang-up 1. A state in which a program has come to an unexpected halt, e.g. because it is
trying to read data from a device that is not connected to the processor. 2. In the context of
time-sharing systems, the signal received by the program when a remote terminal breaks
its connection (‘hangs up the telephone’).
Hanoi See TOWERS OF HANOI.
haptics The study of the sense of touch in humans and machines. Two types of sensing
are involved: movement and force signals from muscles and joints; and cutaneous touch or
tactile signals from the skin. Haptics is important for *robotics where objects are to be
manipulated or explored by a machine. It is also very important for virtual reality systems
and new forms of human-machine interfaces, where users can touch and feel synthetic
objects. Applications include teleoperator systems (including surgery, demining, and
hazardous materials), haptic rendering and modelling, and advanced computer input
devices (tactile displays and haptic joysticks).
hard copy A printed or otherwise permanent copy of data from a processing system.
hard disk 1. A *magnetic disk consisting of a rigid substrate coated or plated—usually
on both sides—with a magnetic material. Hard disk is used as a generic term, but today is
generally used to mean the magnetic disks used in *Winchester technology. Compare
FLOPPY DISK, OPTICAL DISK. 2. A disk permanently mounted in its drive; in certain
circumstances disk + drive may be demountable.
hard return In word processing, the action prompted by the ‘Enter’ or *carriage return
key and used, for example, to mark the end of a paragraph; it causes a new line to be
started at that point in the text. Other new lines will be inserted where necessary
throughout the paragraph by the word-processing program to avoid text exceeding the
right-hand margin; these are soft returns, and will normally be moved around
automatically as the text is modified.
hard-sectored disk See SECTOR.
hardware The physical portion of a computer system, including the electrical/electronic
components (e.g. devices and circuits), electromechanical components (e.g. a disk drive),
and mechanical (e.g. cabinet) components. Compare SOFTWARE.
hardware character generation A technique whereby a device such as a *VDU,
printer, or plotter will, on receipt of certain codes, display characters of a style and size
determined by the device’s internal circuitry. The computer driving the peripheral
specifies only which character is to be displayed; it has no control over the individual
*pixels that make up the character.
hardware circuitry See LOGIC CIRCUIT.
hardware description An unambiguous method of describing the interconnection and
behaviour of the electrical and electronic subset of the computer hardware. There are a
number of computer hardware description languages (see CHDL).
hardware maintenance See MAINTENANCE.
hardware reliability A statement of the ability of hardware to perform its functions for
some period of time. It is usually expressed as MTBF (mean time between failures).
hardware security The use of hardware, e.g. *bounds registers or *locks and keys, to
assist in providing computer security.
hardwired Denoting circuits that are permanently interconnected to perform a specific
function, as distinct from circuits addressed by software in a program and therefore
capable of performing a variety of functions.
Harvard Mark I The name given at Harvard University to the Automatic Sequence
Controlled Calculator (ASCC), an electromechanical computer based on the ideas of
Harvard’s Howard H. Aiken. This machine, which performed calculations using rotating
shafts, gears, and cams, following a sequence of instructions on paper tape, was started in
1937; it was financed by IBM, built in collaboration with IBM engineers at their
laboratories in Massachusetts, and became operational at Harvard in 1944. It was donated
by IBM to Harvard later that year. The Mark I was used by the US navy for ballistics and
ship design. Aiken’s Harvard Mark II, based on electrical relays, was operational in Sept.
1948.
hash function See HASHING, HASHING ALGORITHM.
hashing A technique that is used for organizing tables to permit rapid *searching or
*table lookup, and is particularly useful for tables to which items are added in an
unpredictable manner, e.g. the symbol table of a compiler. Each item to be placed in the
table has a unique key. To place it in the hash table a hash function is used, which
maps the keys onto a set of integers (the hash values) that range over the table size. The
function is chosen to distribute the keys fairly evenly over the table (see HASHING
ALGORITHM); since it is not a unique mapping, two different keys may map onto the same
integer.
In the simplest version of the technique, the hash value identifies a primary position in
the table; if this is already occupied, successive positions are examined until a free one is
found (treating the table as circular). The item with its key is inserted in the table at this
position. To locate an item in the table a similar algorithm is used. The hash value of the
key is computed and the table entry at this position is examined. If the key matches the
required key, the item has been located; if not, successive table positions are examined
until either an entry with a matching key is found or an empty position is found. In the
latter case it can be concluded that the key does not exist in the table, since the insertion
procedure would have placed it in this empty position. For the technique to work, there
must be rather more table positions than there are entries to be accommodated. Provided
that the table is not more than 60% full, an item can on average be located in a hash table
by examining at most two table positions.
More sophisticated techniques can be used to deal with the problem of collisions,
which occur when the position indicated by the hash value is already occupied; this
improves even further the performance of the table lookup. Table lookup and insertion of
new items can be interleaved, but if items are deleted from the table the space they
occupied cannot normally be reused.
hashing algorithm An algorithm that, for a given key k, yields a function f(k); this in
turn yields the starting point for a hash search for the key k. The function f is called the
hash function. A typical hash function is the remainder modulo p, where p is a prime,
where k is interpreted as an integer. Another hash function uses a constant A and defines
f(k) as the leading bits of the least significant half of the product Ak. See also HASHING.
hash P complete See COUNTING PROBLEM.
hash search See HASHING ALGORITHM.
hash table See HASHING.
hash total A number produced by adding together (or otherwise combining)
corresponding fields over all the records of a file, when such a total does not have any
external meaning but is used solely to verify the records in the file. The hash total is
amended whenever a change occurs to the relevant field; the file is verified by
recomputing the hash total, and any corruption to the values in the field will be shown by
a discrepancy between the stored total and the recomputed total. See also CONTROL
RECORD.
hash value See HASHING.
Haskell A lazy *functional language (see LAZY EVALUATION) developed in the early
1990s as a common basis for research and to consolidate the large number of such
languages being invented at the time. It has become one of the most popular functional
languages (after *ML) and in recent years has influenced the design of new features in
existing nonfunctional languages.
http://www.haskell.org
• Haskell Home Page
Hatley–Pirbhai A particular variant of *structured systems analysis developed by
Derek Hatley and Imtiaz Pirbhai for use in real-time systems development. In addition to
the techniques used in structured systems analysis, Hatley-Pirbhai introduces the concept
of control bars in dataflow diagrams described by state-transition diagrams.
Hayes command set A set of modem control commands originated by the Hayes Corp.
but now supported by virtually all modem suppliers. The commands all start with the
character group AT followed by specific characters for controlling all aspects of the set-up
and data flow through a modem. Such modems are said to be Hayes-compatible or
Hayes modems.
Hayes-compatible (Hayes modem) See HAYES COMMAND SET.
hazard 1. A situation or event whose realization has the potential for damage to human
life, society, the economy, or the environment. See also HAZARD AND OPERABILITY
STUDY. 2. A potential or actual malfunction of a *logic circuit during change(s) of state of
input variables. Hazards result from the nonideal behaviour of actual switching elements,
e.g. noninstantaneous operation, turn-on time different from turn-off time.
In the UK the word hazard is sometimes used as the equivalent of *race condition.
hazard and operability study (HAZOP) A systematic investigation covering all
stages of the life cycle, whose purpose is to identify all possible situations that could lead
to hazards (which have been previously identified) in a particular system, taking into
account the environment in which it must operate. Usually the study involves the
investigation of previous disasters or similar situations, using these to indicate areas of
particular attention.
HAZOP Acronym for hazard and operability study.
HCI Abbrev. for human-computer interface (or interaction).
HD Abbrev. for high density, in floppy-disk recording.
HDD (hard disk drive) See DISK DRIVE.
HD DVD An *optical disk format. Developed by the DVD forum with especial backing
from Toshiba and Microsoft, HD DVDs are intended to supersede the *DVD both for the
distribution of video and for data storage—an HD DVD can hold up to 15 Gb on each of
up to three layers. Like its rival *Blu-ray format, it achieves this greater capacity by using
a ‘blue’ (actually, a violet) laser rather than the red laser used for DVDs; the shorter
wavelength allows the beam to be focused more precisely and so more data to be packed
into a given space. HD DVD was launched in 2006 but subsequently lost market share to
Blu-ray. In 2008 Toshiba stopped manufacturing HD DVD products.
HDLC (high-level data link control) A *data link control protocol developed by
ISO in response to IBM’s *SDLC protocol, which is a subset of HDLC. CCITT defined a
different subset of HDLC (see LAP) as the second (data link) layer of the X25 protocol.
HDTV (high-definition television system) A new television format that produces
images of similar quality to 35 mm film. The screen will normally have at least 1100 scan
lines. Several different formats are currently under development.
head 1. The part of a peripheral mechanism that is in contact with the medium or very
close to it and that is directly responsible for writing data or patterns onto the medium or
for reading or erasing them. The word is most frequently used of a magnetic head in a
*disk drive or tape transport (see MAGNETIC TAPE), an optical head in an optical storage
device, or a print head in a printer. See also READ/WRITE HEAD. 2. (head-end) One
end of a transmission medium. The head has some form of control over the contents of the
medium and of access to it. See also BROADBAND COAXIAL SYSTEMS. 3. (header) The
part of a *cell or *packet that contains routing and control information used to control the
passage of the cell or packet across a *packet switching network. See also CELL RELAY,
FRAME RELAY. 4. The first item in a *list.
head crash The accidental and disastrous contact of a *read/write head with the surface
of a hard disk as it rotates in a *disk drive. Normally the head flies just above the surface.
The disk has to be thrown away after a head crash as the head is much larger than the track
spacing and the contact destroys the track so affected—and any data stored in that track
and adjacent tracks. A head crash is often caused by the head passing over a dust grain on
the surface. Particles of surface material produced by the contact cause other tracks to be
destroyed.
The possibility of a head crash is reduced by keeping the disk clean and at a constant
temperature and humidity. Disks are copied at regular intervals so that in the event of a
crash a duplicate is available. *Fixed disk drives have greatly reduced the probability of a
head crash because they are sealed (except for a ‘breather’ filter) and have an internal filter
through which the air inside the drive circulates.
headend See HEAD.
header Some coded information that precedes a more general collection of data and
gives details about it.
The header of a data-structure representation is logically distinct from the data elements
themselves and may serve several purposes:
(a) to hold global information about the whole structure, e.g. list length, array index
bounds;
(b) to represent an empty structure;
(c) to provide links into the structure, e.g. pointers to first and last nodes in a list;
(d) to represent the entire structure in any other data structures of which it may be a part.
In networking, the header (or head) of a cell or packet is the part that holds routing and
control information used to control the passage of the cell or packet across a network.
head-mounted display (HMD) A headset with two stereoscopic images that give the
person wearing the device a three-dimensional view of a virtual scene.
head-per-track drive See FIXED HEAD.
heap 1. An area of storage used for dynamic allocation of data structures where the order
of releasing the allocated data structure is indeterminate. Compare STACK. 2. A complete
binary tree (*see COMPLETE TREE) in which the value at each node is at least as large as
the values at its children (if they exist). Heaps are used to implement *priority queues.
heapsort A sorting algorithm developed by Williams and Floyd in 1964 and employing
the ideas of *tree selection. It is more efficient for larger numbers of records but on
average is inferior to *quicksort. However, the worst possible distribution of keys does not
cause the efficiency of heapsort to deteriorate too much. The worst case for quicksort can
then be worse. Some of the ideas of heapsort are relevant to *priority queue applications.
height 1. (of a node in a tree) The length of a longest path from the node to a *leaf node.
2. (of a tree) The maximum height of any node in a tree. The height of a given tree will
have the same numerical value as the *depth of that tree.
height-balanced See AVL TREE, BALANCED.
helical scan A method of using magnetic tape, derived from video recording, in which
the tape is wrapped in a helical path around a rotating drum so that one or more heads
embedded in the drum record diagonal tracks on the tape. The tape is moved slowly so
that a separate track is recorded at each pass of a head.
Helical scan allows data to be recorded at a very high density and hence at very low
storage cost. When first introduced (using standard video cartridges) the error rates were
too high for general use but powerful error-correcting codes were later introduced, and the
method is suitable for backing up hard disks and for short-term archiving (long-term
stability has yet to be proved). Formats developed from *digital audio tape (DAT) are
popular for this purpose; larger cartridges with capacities of tens of gigabytes are also in
use.
help desk A location where queries by phone, email, fax, personal callers, etc., are dealt
with by people, usually assisted by computer software. Large commercial help desks
operate almost entirely by phone, while smaller help desks internal to organizations may
have predominantly personal callers. There are a number of models of help desk:
unskilled, where all queries are passed on, skilled, where up to 90% of the queries are
answered at the desk, and expert, where all queries are expected to be answered at the
desk. Which model is used depends on how broad or specialized are the topics covered by
the desk, and what staff are available.
Help-desk software is used to keep track of help-desk queries. The software will allow
the details of the problem to be entered, and its progress to be monitored as it is passed
from the desk to one or more specialists. It will also help to ensure that all problems are
eventually answered, and that the details of the solution are stored to assist in the solution
of future problems.
help system The part of an interactive system responsible for providing the user with
information about the workings of the program on request. Help can be obtained in a
number of ways: by typing the word ‘help’, by pressing a particular *function key on the
keyboard, or by using a mouse or other pointing device to select a ‘help’ item from a
menu. Help can be hierarchical, where each topic has subtopics that can be explored down
to an arbitrary number of levels, or context-sensitive, where the information provided is
appropriate to the part of the program currently being used. Some help systems can be
browsed through like a manual. A particular system may combine any or all of these
methods. A good help system is a crucial feature of any nontrivial program.
hemi cube A half-cube that defines the half-space above the surface of interest used as a
projection surface.
He model An illumination model that includes directional diffuse and ideal specular
terms to account for surface reflection plus an ideal diffuse component to accommodate
subsurface scattering (see DIFFUSE REFLECTION, SPECULAR REFLECTION).
Hermite interpolation See INTERPOLATION.
hertz (Hz) The SI unit of *frequency. A periodic phenomenon has a frequency of one
hertz if each cycle of the phenomenon repeats itself in a period of one second. A
megahertz (MHz) is one million (106) hertz; a gigahertz (GHz) is 1000 million (109)
hertz.
heuristic A ‘rule of thumb’, based on *domain knowledge from a particular application,
that gives guidance in the solution of a problem. Unlike algorithms, heuristics cannot have
proven performance bounds owing to their open-ended dependence on specific application
knowledge; an example is ‘If the sky is cloudy, then carry an umbrella.’ Heuristics may
thus be very valuable most of the time but their results or performance cannot be
guaranteed.
heuristic search A search process that uses *domain knowledge in *heuristic rules or
procedures to direct the progress of a search algorithm. It has the effect of pruning the
search space and is used in applications where a *combinatorial explosion means that an
*exhaustive search is not possible.
Hewlett-Packard A highly successful manufacturer of electronic equipment, founded
in 1938 by Bill Hewlett and Dave Packard, two electrical engineers recently graduated
from Stanford. By the 1980s, it was well known for its electronic instruments, calculators,
data-gathering equipment, medical equipment, and high-performance workstations. It is
noted as the first manufacturer of a hand-held calculator and as a pioneer of the office
laser printer. It was a major developer of software for use in its own products and has
exploited this fact by marketing development tools for its own workstations. In 1999, the
measurement, component, chemical analysis and medical systems part of the business
were split off into a separate and independent company, Agilent Technologies. HewlettPackard retained its computing, printing, and imaging businesses and in 2002 it merged
with *Compaq.
hex Short for hexadecimal.
hexadecimal notation The representation of numbers in the positional number system
with base 16. The sixteen hexadecimal digits are usually represented by 0–9, A–F. Any
hex number can be simply converted into its binary equivalent, and any binary number
into its shorter hex equivalent.
hex pad A *keypad with 16 keys that are labelled 0–9, A–F so that they correspond to
*hexadecimal notation.
hibernate A facility available on modern microcomputers that allows the machine’s state
to be saved to backing store and subsequently restored. This allows the machine to be
switched off for an indefinite period with, when it is switched on again, the automatic
restoration of screen layout, program states, etc., so that users can pick up work where
they had left off. Such a restoration is faster than a *cold boot, but slower than restoring
from *sleep. Users might be required to enter their password before they can access the
restored system.
hidden file A file that is not usually displayed in a directory. Hidden files are commonly
files that are important in the operation of the system and are hidden to protect them from
accidental deletion.
hidden-line/hidden-surface removal (HLHSR) Removal of those parts of a scene
that are obscured by objects nearer to the viewer. There is a whole range of methods for
doing this operation. The *Z-buffer is often used to hold depth information concerning
objects. See HIDDEN-LINE REMOVAL, HIDDEN-SURFACE REMOVAL.
hidden-line removal An algorithm used in computer graphics to determine which lines
should not be visible when a three-dimensional surface is displayed.
hidden-surface removal The process of eliminating the representation of surfaces in
three-dimensional graphics that would be obscured by opaque foreground surfaces if
photographed by a hypothetical camera.
hidden terminal problem A problem that manifests in wireless networks where some
of the nodes are unaware of each other. Specifically, it can occur when all nodes are within
signal range of the network’s *access point, but some are out of range of each other.
Because traditional networking protocols rely on a node listening to network traffic and
only transmitting data when the network is momentarily idle, it is possible that two nodes
unaware of each other will attempt to transmit simultaneously. The addition of
*handshaking to the protocols is a partial cure, but no complete solution has yet been
found. Compare EXPOSED TERMINAL PROBLEM.
hierarchical addressing See ADDRESSING.
hierarchical B-splines A sequence of *B-splines where the next in the sequence has a
defined relationship to the previous one; it may, for example, be twice as fine. Hierarchical
B-splines are used in adapting functions to local detail (see also WAVELETS).
hierarchical class structure See OBJECT-ORIENTED PROGRAMMING.
hierarchical cluster analysis See CLUSTER ANALYSIS.
hierarchical communication system 1. A physical organization of communications
facilities, each higher level covering a wider or more general area of operation than the
next lower level. As an example, a large bank might have a *local area network within
each branch, connecting the teller stations. Several branches might be linked to a data
concentrator, connected to regional concentrators, which in turn link to the bank’s main
data processing centre. 2. A logical organization of communication facilities, in which the
lowest levels deal with the physical network while higher levels deal with the
communication between specific applications. See also PROTOCOL.
hierarchical database system A *database management system that implements the
*hierarchical data model. The best-known hierarchical DBMS is *IMS.
hierarchical data model A *data model based on one-many relationships between
aggregations of fixed numbers of data items, such an aggregation being termed a
segment. A database record type comprises a number of segment types, arranged in a
hierarchy, commencing with the root segment type; below the root segment type there is
zero, one, or more segment types at the first level, with a similar structure below each of
these first-level types at the second level, and so on. Thus each segment type except the
root is dependent on a segment type at the immediately higher level. A database record
instance comprises a single instance of the root segment type and zero, one, or more
instances of each of its types at the first level. Corresponding to each of these first-level
instances, there will be zero, one, or more instances of each of the appropriate secondlevel types, and so on. Only the root segment can have an independent existence.
IMS, an important database management system supplied by IBM, is based on and
implements this data model.
hierarchical encoding A method of image coding that represents an image using a
sequence of *frames of information. The first frame is followed by frames that code the
differences between the source data and the reconstructed data from the previous frames
for that image. Hierarchical encoding is one of the options in the *JPEG standard.
hierarchical memory structure See MEMORY HIERARCHY.
hierarchical radiosity *Radiosity specifications where a coarse level of detail is used
to model the interaction between distant objects and a fine level of detail for near objects
(see also WAVELETS).
hierarchy A set of entities that are partially ordered; the word is frequently misused. See
PARTIAL ORDERING.
hierarchy of functions A sequence of sets of functions F0, F1, F2,… with the property
that
(see SUBSET). Typically the functions in F0 will include certain initial functions; the sets of
functions F1, F2,… are normally defined by combining initial functions in some way.
Hierarchies of *primitive recursive functions can be defined by letting Fi represent
those functions that can be computed by programs containing at most i loops nested one
within the other. then
for all integers i > 0. The *union of all these sets includes all the primitive recursive
functions and only those functions. Consequently the hierarchy is often called a
subrecursive hierarchy. This same hierarchy can be expressed in a slightly different
form, so resulting in the Grzegorczyk hierarchy.
In an attempt to circumvent problems caused by *recursion, Bertrand Russell invented a
theory of types, which essentially imposed a hierarchy on the set of functions;
functions at one level could be defined only in terms of functions at lower levels.
The study of hierarchies of functions dates from work of David Hilbert around 1926 on
the foundations of mathematics. More recent interest stems from their applicability to
computational *complexity.
High-Definition DVD See HD DVD.
higher-order term See TERM.
high-level design (architectural design) See PROGRAM DECOMPOSITION, PROGRAM
DESIGN, SYSTEM DESIGN.
high-level language A variety of programming language in which the *control and
*data structures reflect the requirements of the problem rather than the facilities actually
provided by the hardware. A high-level language is translated into *machine code by a
*compiler.
high-level scheduler See SCHEDULER.
highlight 1. The portion of light from a surface that is due to *specular reflection and
transmission. 2. See HIGHLIGHTING.
highlighting A way of making a portion of a document or screen stand out. The actual
effect used can normally be defined by the user, but usually a *default technique is
available such as boldface type or contrasting colour.
high-order language Another name for high-level language, used only by the US
Department of Defense.
high-pass filter A *filtering device that permits only those components in the frequency
domain whose frequencies lie above some critical value to pass through with little
attenuation, all other components being attenuated. See also BAND-PASS FILTER, BANDSTOP FILTER, LOW-PASS FILTER.
High Performance File System See HPFS.
High Sierra standard A standard defining the format of data files recorded on CDROM, now superseded by ISO 9660. The name derives from the place where the steering
committee first met. See CD-ROM FORMAT STANDARDS.
highway Another (UK) name for bus.
hill climbing A fast but sometimes unreliable *optimization method. When searching
for the minimum/maximum value of a function a random step is taken; if the value
improves it replaces the current value, then another random step is taken. This method is
fast and relatively easy to program but does not allow *backtracking and therefore can
become trapped on local minima/maxima in the search space.
A *heuristic variation uses an *evaluation function to examine and select the best
successor from the current position. This produces a faster ascent through the problem
space.
hi res Short for high resolution (often not very high *resolution but rather better than the
lowest resolution).
histogram A chart showing the *relative frequencies with which a measurable quantity
takes values in a set of contiguous intervals. The chart consists of rectangles whose areas
are proportional to the relative frequencies and whose widths are proportional to the class
intervals. It can be used to picture a *frequency distribution.
hit rate 1. The fraction of references to one level of the *memory hierarchy that must
otherwise be fulfilled in the less accessible levels within the hierarchy. Thus for a *cache
memory the hit rate is the fraction of references that do not result in access to main
memory. For a *page the hit rate is the fraction of references that do not result in a page
turn. 2. The proportion of records or blocks on a file that are retrieved or updated in a
batch run or in a given period of time.
HLHSR Abbrev. for hidden-line/hidden-surface removal.
HLS colour model A *colour model that defines colours by the three parameters *hue
(H), lightness (L), and *saturation (S). It was introduced by Tektronix Inc. Hue lies on a
circle, saturation increases from centre to edge of this circle, lightness goes from black to
white. This model uses the same hue plane as the *HSV model, but it replaces value (V)
by an extended lightness axis so that the maximum *colour gamut is at L=0.5 and
decreases in each direction towards white (L=1) and black (L=0). The HLS colour model
is represented by a double hexagonal cone, with white at the top apex and black at the
bottom.
HMD Abbrev. for head-mounted display.
HMI (human-machine interface) See HUMAN-COMPUTER INTERFACE.
Hoare logic A formalism for partial correctness proofs (see PROGRAM CORRECTNESS
PROOF).
Sentences have the form
where p and q are assertions and S is a program. The meaning of such a sentence is that,
starting from a state in which p is true, if S terminates it will result in a state in which q is
true; p is a *precondition and q is a *postcondition for S. A Hoare logic for a particular
programming language comprises a system of axioms and rules for deducing such
sentences from other simpler ones. By repeated use of these rules it is possible ultimately
to derive facts about an entire program, starting from facts about its smallest constituents.
Like the *Floyd method however, the approach requires judicious choice of loop
*invariants. As another application, Hoare logics can be taken as *axiomatic semantics for
programming languages. The theory of Hoare logic is determined by the assertion
language for writing the pre- and postconditions (such as predicate logic) and the
programming language (such as while programs). Many remarkable insights into
program correctness have been obtained from the mathematical study of Hoare logic.
HOL (high order logic) A system for specifying, designing, and verifying the design
of digital systems; it was devised at Cambridge University, UK. The HOL system includes
a theorem prover, an editor, and consistency checkers. The HOL specification language
has basic types that handle n-bit digital numbers, the natural numbers, and the Boolean
values true/false. More complex types can be built by binding together the basic types. A
library of functions and list operators is used to perform transformations on variables.
hold time The length of time for which information must be held constant on a *bus,
following the instant when all devices using the information have nominally responded to
its presence.
Hollerith, Herman (1860–1929) US statistician and inventor. After graduating from
the Columbia School of Mines in 1879, he worked on the US census of 1880. The manual
tabulating of its data took eight years, and Hollerith sought methods of automating this
task. The result was the *Hollerith code for recording data on *punched cards and a
tabulating machine that could read and count census items so encoded. This system was
used successfully with the 1890 census, and Hollerith established the Tabulating Machine
Company (one of the antecedents of IBM) in 1896 to market his inventions. Further
enhancements included the keypunch (1901; see KEYBOARD) and in 1906 an enhanced
tabulating machine whose operation could be adjusted via a plugboard, giving it a limited
programming capability. Hollerith machines continued to be developed during the 20th
century by IBM and had an important influence on early computers, with punched cards or
tape long being an important method of input, output, and data storage.
Hollerith code A code for relating alphanumeric characters to holes in a punched card.
It was devised by Herman *Hollerith in 1888 and enabled the letters of the alphabet and
the digits 0–9 to be encoded by a combination of punchings in 12 rows of a card.
holographic memory A storage device that records binary information in the form of
holograms, which are produced (as interference patterns) on photographic or
photochromic media by means of laser beams, and are read by means of low-power laser
beams. The advantage of a hologram is the way in which the image is dispersed over the
recording surface so that dust or scratches do not totally obscure data though they may
reduce the contrast. Several projects have attempted to apply this technology but none
have yet been commercially successful.
holographic scanner A type of *scanner in which a beam of light (usually from a
laser) is deflected by a rotating hologram so that it scans a plane in a multitude of
directions. Some of the light reflected from an object on or close to the plane is returned
via the hologram and brought to focus on a sensor. The most widely known use is for
reading *bar codes at retail checkouts.
home key The key on a keyboard that moves the cursor to some starting position.
Depending on the application, it may be the beginning of a line or the start of the
document.
home page The first page (loosely the first screen) of information that is retrieved when
the use of a URL on the *World Wide Web leads to a new *website. The home page
typically contains introductory information about the facility that has been accessed,
together with links to the actual details of services or information.
homogeneous coordinates A coordinate system that algebraically treats all points in
the projective plane (both Euclidean and ideal) equally. For example, the standard
homogeneous coordinates [p1,p2,p3] of a point P in the projective plane are of the form
[x,y,1] if P is a point in the Euclidean plane z=1 whose Cartesian coordinates are (x,y,1), or
are of the form [a,b,0] if P is the ideal point—the point at infinity—associated to all lines
in the Euclidean plane z=1 with direction numbers a,b,0. Homogeneous coordinates are so
called because they treat Euclidean and ideal points in the same way.
Homogeneous coordinates are widely used in computer graphics because they enable
affine and projective transformations to be described as matrix manipulations in a coherent
way.
homomorphic image (of a formal language) See HOMOMORPHISM.
homomorphism A structure-preserving mapping between *algebras. A homomorphism
allows the modelling, simulation, or representation of the structure of one algebra within
another, possibly in a limited form. Let A and B be algebras and h a function from A to B.
Suppose that A contains an n-ary operation fA, while B contains a corresponding operation
fB. If h is a homomorphism it must satisfy
for all elements a1,…,ak of A and every ‘corresponding’ pair of operations of A and B.
The idea that fA and fB are ‘corresponding’ operations is made precise by saying that A
and B are algebras over the same *signature Σ, while f is an operation symbol in Σ with
which A and B associate the operations fA and fB respectively. A homomorphism from A to
B is any function h from A to B that satisfies the condition given above for each f in Σ. As
applications of this idea, the semantic functions involved in *denotational semantics can
be viewed as homomorphisms from algebras of syntax to algebras of semantic objects.
Usually, to define a semantic function by induction on terms is to define a homomorphism
on a term algebra. In several important cases, compilers can be designed as
homomorphisms between two algebras of programs.
Special cases of this general definition occur when A and B belong to one of the
familiar classes of algebraic structures. For example, let A and B be *monoids, with
*binary operations °A and °B and *identity elements eA and eB. Then, rewriting the
general condition above, a homomorphism from A to B satisfies
A further specialization from *formal language theory arises with monoids of *words,
where the binary operation is *concatenation and the nullary operation is the empty word.
Let S and T be alphabets, and let h be a function from S to T*, i.e. a function that gives a
T-word for each symbol in S. Then h can be extended to S-words, by concatenating its
values on individual symbols:
This extension of h gives a monoid homomorphism from S* to T*. Such an h is said to be
∧-free if it gives a nonempty T-word for each symbol in S.
h can be further extended to a mapping on languages, giving, for any subset L of S*, its
homomorphic image h(L):
Similarly the inverse homomorphic image of L ⊆ T* is
These language-mappings are also homomorphisms, between the monoids of languages
over S and over T, the binary operation being concatenation of languages.
HOOD (hierarchical object-oriented design) HOOD was developed specifically
for the European Space Agency and very closely follows the structure of the *Ada
programming language. It provides diagram notations to depict nested *packages and
tasks; it also provides specification of these items in terms of procedures, functions,
variables, types, etc. It indicates how higher-level *objects are decomposed into lowerlevel objects and also how the interface of the high-level object is mapped to the
interface(s) of lower-level objects.
hook into Informal To make a connection to a network, or to a specific device or service
on a network.
hop See STORE AND FORWARD. See also FLOW CONTROL.
HOPE A *functional language, one of the first such languages to be widely used.
Horizon 2020 See ESPRIT.
horizon effect In computer game playing or other search processes, a large search tree
has to be explored. It is usual to set a maximum depth limit (D) beyond which it is
considered uneconomic to search further. The horizon effect refers to the fact that
interesting results will always exist beyond any depth D and therefore in any given search
will not be discovered. Variable *evaluation functions and dynamic search-depth controls
have been used in attempts to deal with this problem.
horizontal check See CYCLIC REDUNDANCY CHECK.
horizontal microinstruction See MICROPROGRAMMING.
horizontal recording See MAGNETIC ENCODING.
Horn clause In the clausal form of logic, an expression of the form
This should be contrasted with the general form of clause
if
where A1 … Am are the alternative conclusions and B1 … Bn are the joint conditions. A
Horn clause is a special case of this general form in that it contains at most one
conclusion.
Horn clauses were first investigated by the logician Alfred Horn. The majority of
formalisms employed in computer programming bear greater resemblance to Horn clauses
than to the more general form. The logic programming language *Prolog is based upon the
Horn clause subset of logic.
Horner’s method An algorithm for evaluating a *polynomial by adding brackets in
such a way that no powers greater than one need be evaluated. This reduces the number of
evaluations. The polynomial, in effect, ends up in the following form:
host computer (host) 1. A computer that is attached to a *network and provides
services other than simply acting as a *store and forward processor or communication
switch. Host computers range in size from small microcomputers to large time-sharing or
batch mainframes. Many networks have a hierarchical structure, with a *communication
subnetwork providing *packet switching services for host computers to support timesharing, remote job entry, etc. A host computer at one level of a hierarchy may function as
a packet or message switch at another. 2. A computer used to develop software for
execution on another computer, known as the target computer. 3. A computer used to
emulate another computer, known as the target computer. See also EMULATION.
hosting The process in which a third party provides both data storage and the appropriate
network capabilities to host a network-based service. Specific instances in common use
include web-hosting and source-code repository hosting. In particular, there are now many
sites that allow users to store and manage their own program code, often for free if the
code is made public as *open-source software. Currently (2014) the leading open-source
hosting sites are GitHub, Source Forge, Google Code, Bitbucket, LaunchPad, and
CodePlex.
host language See DATABASE LANGUAGE.
hot key 1. A key or combination of keys on a computer keyboard that has been
programmed to cause an immediate change in the operating environment, such as the
execution of a pop-up program. 2. To use such a key.
hot link 1. A technique for ensuring that when one object is embedded in another, the
latest version of the embedded object is always seen (see EMBEDDING). This is achieved
by using a reference to the embedded object rather than a copy of it. For instance if part of
a spreadsheet were embedded in a word-processor document, a hot link would ensure that
if the spreadsheet were updated, the changes would also appear in the document. See also
OBJECT LINKING AND EMBEDDING. 2. A word or phrase in a *hypertext document that
when selected using a mouse or cursor keys causes information relevant to the word or
phrase to be displayed. If this were a hypertext dictionary, selecting ‘*hypertext‘ above
would cause the appropriate definition to be displayed. The hot link is usually
*highlighted in some way.
hotspot 1. In a GUI display, a part of an image that when clicked causes some action to
take place. Hotspots are used especially in *web pages, where they invoke hyperlinks to
other pages. 2. In *wireless networking, an area that is within range of an *access point.
Wireless users can successfully connect to a network only within hotspots.
hot swapping 1. The process of changing power modules while a system is operating. It
is important in large computer installations involving servers that must run continuously.
In such systems there may be multiple power supply modules, designed to provide
redundancy and so enhance the system reliability. 2. A facility that enables interface
connections to be inserted and removed while the system is powered up. For example,
extra removable storage may be attached through a *USB port, without having to reboot
the system.
housekeeping Actions performed within a program or system in order to maintain
internal orderliness rather than to address the externally imposed requirements. For
example, the housekeeping of a program often includes *memory management.
HPF (highest priority first) Where several *processes are free to proceed, the
*scheduler will initiate the process that has been assigned the highest priority.
HPFS (High Performance File System) A *file system developed by Microsoft for
the *OS/2 *operating system.
HP-PA Trademark (Hewlett-Packard Precision Architecture) See RISC.
HSI (human-system interface) See HUMAN-COMPUTER INTERFACE.
HSV colour model A *colour model that defines colours by the three parameters *hue
(H), *saturation (S), and value (V). The HSV colour model is an inverted hexagonal cone
with black at the apex (V=0) and white at the centre (V=1) of the hexagonal base. The
three primary (red, green, blue) and three secondary (cyan, magenta, yellow) hues are
located at the vertices of the hexagon. See also HLS COLOUR MODEL.
HTML (hypertext mark-up language) A form of *SGML intended for use on the
World Wide Web. A particular feature of HTML is the use of tags that include information
about *hyperlinks, either to other places in the document or to other documents on the
Web. Text surrounded by these tags is usually underlined and in a different colour when
displayed by the browser, and can be clicked to jump to the link. HTML has a set of basic
tags, mostly defining format rather than content, although some *browsers use
nonstandard tags. The current version is HTML5. See also CSS, DHTML, XHTML,
XML.
http://www.w3.org/TR/html5/
• The HTML (version 5) specification
HTTP (hypertext transport protocol) An application-level protocol with the
lightness and speed necessary for distributed collaborative hypermedia information
systems. It is generic, stateless, and object-oriented, with typing and negotiation of data
representation, allowing systems to be built independently of the data being transferred.
By extension of its request methods (commands), it can be used for many tasks, such as
name servers and distributed object-management systems. HTTP has been in use by the
*World Wide Web since 1990, and is now described by *RFCs 7230–5.
http://tools.ietf.org/html/
• The HTTP (version 1.1) specification
hub In general, a unit that operates in some sense as the centre of a star configuration. In
the case of a network, a hub acts as a local concentrator that allows a number of devices,
connected to the hub in a star configuration, to connect to a network with an arbitrary
configuration. In the special case of an *Ethernet network, a hub may refer to a device that
provides connection for a number of end-user devices, each using a dedicated *twisted
pair (usually *CAT-5 or *CAT-6 cables) local connection, to an Ethernet segment running
on either a coaxial cable (*thick or thin Ethernet) or an optical fibre. Apart from
connecting and configuring devices, a hub has no intelligence: it belongs to the *physical
layer.
hub polling See POLLING.
hue The perceived main wavelength of light defining a colour. White, grey, and black
may be considered as colours but not hues.
Huffman encoding A (usually) *binary encoding of the elements of a finite set, A,
where each element ai in A has an assumed probability, pi, of occurring in a message. The
binary encoding satisfies the *prefix property and is such that messages will have a
minimum expected length. Thus an element ai with a high probability of occurring in a
message is encoded as a short binary string while an element with a low probability of
occurring is encoded with a longer string. See also SOURCE CODING.
human-computer interface (HCI) The means of communication between a human
user and a computer system, referring in particular to the use of input/output devices with
supporting software. Devices of increasing sophistication are becoming available to
mediate the human-computer interaction. These include graphics devices, touch-sensitive
devices, and voice-input devices. They have to be configured in a way that will facilitate
an efficient and desirable interaction between a person and the computer. *Artificial
intelligence techniques of knowledge representation may be used to model the user of a
computer system, and so offer the opportunity to give personalized advice on its use. The
design of the machine interface may incorporate *expert system techniques to offer
powerful *knowledge-based computing to the user.
HCI is a branch of the science of ergonomics, and is concerned especially with the
relationship between workstations and their operators. The aim is to develop acceptable
standards for such aspects as display resolution, use of colour, and navigation around an
application.
The terms human-system interface (HSI), human-machine interface (HMI), and
man-machine interface (MMI) are all used as synonyms.
hybrid computer A computer (system) that contains both a digital and an analogue
computer. The digital computer usually serves as the controller and provides logical
operations; the analogue computer normally serves as a solver of differential equations.
hybrid integrated circuit A complete electronic circuit that is fabricated on an
insulating substrate using a variety of device technologies. The substrate acts as a carrier
for the circuit and also has the interconnecting tracks between devices printed on it by
multilayer techniques. Individual devices, which comprise chip diodes, transistors,
integrated circuits, and thick-film resistors and capacitors and which form the circuit
function, are attached to the substrate and are connected together using the previously
defined interconnecting tracks.
hypercube In its simplest form, a four-dimensional cube, which can be considered as
two three-dimensional cubes connected at equivalent corners. Connecting the corners of
four-dimensional cubes gives a five-dimensional hypercube. In general, an (n+1)dimensional hypercube can be generated by connecting the corners of n-dimensional
hypercubes, and has twice as many corners as the n-dimensional hypercube.
Several *multiprocessing systems have an architecture based on the hypercube, where
processors replace corners and communication links replace edges. In an n-dimensional
hypercube network, no processor is more than n links from any other processor; doubling
the number of processors by using an (n+1)-dimensional network means information has
to travel over only one additional connection. However, as the number of processors
increases, the number of connections each one must make has also to be increased.
hyperedge See HYPERGRAPH.
hypergraph A generalization of the concept of a *graph in which each edge is
associated not with the normal two vertices but with an ordered set of n vertices; such an
edge is known as a hyperedge and n is the type of that edge. The hyperedges thus relate
an arbitrary number of vertices in a given subset of the graph.
hyperlink A connection between an element (e.g., word, phrase, image, etc.) in a
document to somewhere else in the same document, or to a different destination on the
Web. Hyperlinks are usually in a different colour to the rest of the document or are
underlined; they are activated by a mouse click.
hypermedia An extension of *hypertext to include multimedia, i.e. graphics, video, and
audio as well as textual material.
hypertext A generic term covering a number of techniques used to create and view
multidimensional documents, which may be entered at many points and which may be
browsed in any order by interactively choosing words or key phrases as search parameters
for the next text image to be viewed (see HOT LINK). Generally a *wimp style interface is
used and tools are provided to help structure the text, create indexes of the text of a
document, and to cross-reference between documents. The technique is related to full-text
database systems. Hypertext systems provide facilities for windowing viewed text,
selecting next view by mouse/keyboard marking of text fragments, searching the text
database or indexes, and displaying the new text. See also HYPERMEDIA.
hypertext mark-up language See HTML.
hypertext transfer protocol See HTTP.
hypervisor A *kernel that supports the running of a number of *virtual machines on the
same system. Each virtual machine is able to use the underlying hardware as if it were the
only machine present and ran its own operating system. This is a key enabling technology
for the new *cloud service industry, as well as being the basis for *integrated modular
avionics.
IA5 See ITA-5.
IAB (Internet Architecture Board) See INTERNET SOCIETY.
IANA (Internet Assigned Numbers Authority) Formerly a branch of the IAB
(see INTERNET SOCIETY), it is responsible for assigning IP addresses. Since 1998 it has
been run by *ICANN.
http://www.iana.org/
• The IANA home page
IAP Internet access provider. See ISP.
IAS Abbrev. for immediate access store.
IAS computer The model for a class of computing machines designed by John von
Neumann. The IAS (Institute for Advanced Study) machine was started at Princeton in
1946 and was completed in 1951. This machine used *electrostatic storage devices—
cathode-ray tubes—as the main memory. Such tubes, called Williams tubes, could each
store 1024 bits. Other computers modelled after the IAS computer included ORACLE,
JOHNNIAC, ILLIAC I, MANIAC, and IBM 701.
IBG (interblock gap) See TAPE FORMAT.
IBM International Business Machines Corporation. IBM was incorporated in 1911, in the
USA, as the Computing Tabulating Recording Company as a result of the merger of three
companies, one of which had been Hermann *Hollerith’s Tabulating Machine Company,
formed in 1896. It adopted its present name in 1924.
IBM occupied a dominating position in the computer industry from the mid-1950s to
the 1980s. It was the largest computer manufacturer in the world, by any measure, and
produced a wide range of processors, peripherals, software, and associated products, as
well as related services. It operated all over the world. It owed its dominance primarily to
its marketing strength. The architecture of its 360 range of computers, introduced in the
early 1960s, became a de facto standard for mainframes.
The incorporation of the microprocessor into desktop computers of sufficient power to
run useful business applications changed the emphasis from low volumes of mainframe
computers, IBM’s traditional strength, to very large numbers of smaller systems. It was
IBM’s version of the personal computer, the IBM PC, that set the standard, but
paradoxically it was during the 1980s that IBM gradually lost its dominance. The very
success of the PC series led competitors to introduce compatible machines (IBM had put
the PC architecture in the *public domain). These *IBM-compatible machines sold at
generally lower prices. In addition the growth of independent software producers meant
that customers were no longer constrained to buy from IBM. IBM’s subsequent ranges of
personal computers, including the PS/2 series, have not achieved the same success.
IBM has recovered from the setbacks of the 1980s. It is still the largest IT company in
the world and it continues to produce computer hardware, particularly servers, but the
major part of its revenue now comes from software and services.
IBM-compatible A computer functionally identical to an IBM PC and able to accept all
hardware and software intended for it. This was an important concept in the early 1980s
when the IBM PC was emerging from among a number of other contenders as the one to
copy. As IBM’s share of the market declined, the term became PC-compatible.
IBM system 360 IBM’s *third generation computer family that used essentially the
same architecture to span a wide range of performance and price objectives. The common
architecture permitted upward mobility of users to larger versions of the same machine
when their workload grew. Programs written for a smaller version of the 360 would run
unchanged on the larger machines. Many of the principles embodied in the 360 operating
systems were used in later IBM mainframes.
IC Abbrev. for integrated circuit.
I2C (inter-integrated circuit) A component-level interconnection bus that involves
only two wires, a clock and a bidirectional serial data line. Components equipped with this
interface include an integrated protocol to simplify system construction.
ICANN (Internet Corporation for Assigned Names and Numbers) A
nonprofit-making authority formed in 1998, it absorbed *IANA (the body responsible for
assigning IP addresses). It also administers domain names and certain technical matters.
https://www.icann.org/
The ICANN home page
ICC (integrated circuit card) see SMART CARD.
ICL International Computers Ltd. As ICT, International Computers and Tabulators Ltd.,
ICL was one of a considerable number of British computer companies active in the late
1950s and the 1960s. The computer manufacturing interests of Ferranti and Elliott
Brothers were taken over by ICT in the 1960s, at which point the name ICL was adopted;
at the same time, the computing interests of English Electric, *LEO Computers, and
Marconi were merged into a single company, which was also taken over by ICL, in the
1970s. In 1984, ICL itself became a wholly owned subsidiary of the UK company,
Standard Telephones and Cable Ltd (STC). It ceased to be a UK company in the early
1990s, when it was taken over by the Japanese company, *Fujitsu. Its identity gradually
disappeared and the name was finally abandoned in 2002, when the operation was
rechristened Fujitsu Services. The company’s main activity in its later years was the
provision of outsourcing services, particularly for large government contracts. It was the
difficulties associated with some of these contracts that ultimately led to the disappearance
of the ICL name.
icon A small image displayed on screen, relating to a particular function, and acting as a
visual mnemonic to the user. *Windows managers often use icons to represent devices,
wastebaskets, etc. Some window systems use icons to represent another view of a window.
See also THUMBNAIL.
ICON A programming language developed as a successor to *SNOBOL. ICON is a
general-purpose programming language in the style of Pascal, but includes many features
for processing strings of characters and other non-numerical data. ICON’s main use is in
research in humanities computing, and in teaching computing to students of the
humanities.
ICR (intelligent character recognition) A system of *OCR (optical character
recognition) in which the meaning is assigned after reference to things other than merely
the printed shape. This term is now little used since advances in OCR have enhanced its
capability to interpret many fonts of varying print quality.
ICT Abbrev. for information and communications technology.
IDE 1. (interactive development environment) A suite of programs for program
or application development with a common *user interface, often a *graphical user
interface, and including *software tools for code writing and editing, compilation,
execution, and debugging with an easy and consistent way of moving between the various
functions. 2. (integrated device electronics) A hard disk drive controller unit that
resides on the drive itself, doing away with the need for a separate *add-in card. It
provides a method of interfacing hard disk drives to PCs using the *ISA bus originally
developed for the IBM PC AT in 1986. It is a system-level interface in that it makes no
assumptions about the disk hardware but accepts a stream of formatted data. IDE disk
drives were installed in most home PCs until 2003, when it was replaced by its successor
*serial ATA. IDE is now often referred to as parallel ATA (PATA). See also EIDE.
IDEF A nonproprietary form of *SADT developed by the US Air Force.
idempotent law The law satisfied by any *dyadic operation ° for which
for all elements x in the domain of °. *Union and *intersection of sets satisfy these laws.
In a *Boolean algebra both of the dyadic operations are idempotent.
identification 1. The process of determining the identity of a user or a using process; it
is necessary for *access control. Identification is usually accomplished by *authentication.
2. The process of determining how a control parameter influences a system.
identifier A string of characters used to identify (or *name) some element of a program.
The kind of element that may be named depends on the programming language; it may be
a variable, a data structure, a procedure, a statement, a higher-level unit, or the program
itself.
identity burst See TAPE FORMAT.
identity element (of a *set S on which some *dyadic operation ° is defined) An
element e with the property that
for all elements a in S. It can be shown that e is unique. In normal arithmetic, 0 and 1 are
the identity elements associated with addition and multiplication respectively. In a
*Boolean algebra, 0 and 1 are the identities associated with the OR and the AND
operations respectively.
identity function A *function
with the property that
Such a function leaves every element in its domain unaltered. Identity functions are
needed for such purposes as the definition of *inverses of functions.
identity matrix (unit matrix) A *diagonal matrix, symbol I, with each diagonal
element equal to one.
idle time See AVAILABLE TIME.
IDMS A database management system based on the *CODASYL network model.
IDP (integrated data processing) See DATA PROCESSING.
IEC (International Electrotechnical Commission) An international body
concerned with the standardization of electrical and electronic components. It was
founded in 1906.
http://www.iec.ch/
• The IEC home page
IEEE (Institute of Electrical and Electronics Engineers) Formed in 1963 by
the merger of the IRE (Institute of Radio Engineers) and the AIEE (American Institute of
Electrical Engineers). Though based in the USA, it represents electrical and electronics
engineers throughout the world. The IEEE Computer Society (IEEE-CS) is one of several
special-interest groups.
The IEEE is an accredited organization for writing US national standards in
telecommunications and computing (see ANSI). For example, Project 802 is a longrunning project that manages the production of standards for the physical layer of local
area networks, ensuring that standards are produced quickly whenever new technologies
such as wireless or infrared become available.
http://www.ieee.org/
• The IEEE home page
IEEE1394 See FIREWIRE.
IESG (Internet Engineering Steering Group) See INTERNET SOCIETY.
IETF (Internet Engineering Task Force) See INTERNET SOCIETY.
if and only if statement A well-formed formula of the form
where A and B are also appropriate well-formed formulas. See BICONDITIONAL,
PROPOSITIONAL CALCULUS.
IFE Abbrev. for intelligent front end.
iff Short for if and only if.
IFIP International Federation for Information Processing, founded in 1959 under the
auspices of UNESCO and coming into official existence in 1960. It is a multinational
federation of professional/technical societies, or groups of such societies, concerned with
information processing. Each member country has only one such society or group as a full
member. IFIP aims to ‘promote information science and technology, advance international
cooperation in the field of information processing, stimulate research, development, and
application of information processing, further dissemination and exchange of information
on information processing, and encourage education in information processing’.
http://www.ifip.org/
• The IFIP home page
IFS Abbrev. for iterated function system.
if then else statement The most basic conditional construct in a programming
language, allowing selection between two alternatives, dependent on the truth or falsity of
a given condition. Most languages also provide an if…then construct to allow conditional
execution of a single statement or group of statements. Primitive languages, such as Basic
in its original form, restrict the facility to a conditional transfer of control, e.g.
which is reminiscent of the conditional jump provided in the order code of every CPU. See
also CONDITIONAL.
IGBT (insulated-gate *bipolar transistor) Usually applied in the computerized control of
high-power systems such as traction motors.
IGES (initial graphics exchange specification) An *ANSI standard developed in
1980 for exchanging product data between applications. Although *STEP was intended to
replace the IGES standard, it is still widely used.
ignore character (fill character) A character used in transmission to fill an otherwise
empty position and whose value is thus ignored.
IH Abbrev. for interrupt handler.
iLink See FIREWIRE.
ill-conditioned See CONDITION NUMBER.
illegal character Any character not in the *character set of a given machine or not
allowed by a given programming language or protocol.
illegal instruction An instruction that has an invalid *operation code. It is sometimes
deliberately inserted in an instruction stream when debugging in order to have a program
halt, or interrupt, at a particular point.
ILLIAC IV An *array processor that was designed by Daniel Slotnick and used a 16by-16 array of processing units (PUs), each interconnected to its four nearest neighbours.
The array of PUs was regulated by a single processor that controlled the flow of
instructions to the PUs. The ILLIAC IV was sponsored by ARPA and built by Burroughs
Corporation. It became operable at the Ames Research Center of NASA in the early
1970s, and was finally dismantled in 1981.
illumination The distribution of light falling on a surface. See GLOBAL ILLUMINATION,
LOCAL ILLUMINATION.
IMA Abbrev. for integrated modular avionics.
iMac Any of a range of Apple Macintosh personal computers first introduced in 1998.
The monitor, CPU, and CD drive are all contained in a single unit and stylish design is a
characteristic feature. Recent versions have all the hardware integrated into the display
monitor itself, which is flat, thin, and widescreen.
image 1. A copy in memory of data that exists elsewhere. 2. See DIGITAL IMAGE. 3. See
FUNCTION.
image capture (image acquisition) The process of obtaining a digital image from a
vision sensor, such as a video camera. Usually this entails a hardware interface known as a
frame grabber, which captures single frames of video, converts the analogue values to
digital, and feeds the result into the computer memory. The conversion process is often
accompanied with *image compression.
image compression The reduction of the number of bits used to define an image.
Many techniques are available. For example, run-length encoding allows a set of pixels
having the same colour to be specified by the colour and number of pixels with that colour
in a sequence. Other techniques include *fractal image compression and *wavelet image
compression. Compression can produce an approximation of the image, in which case it is
not possible to decompress the image and retrieve the original form. See also DISCRETE
COSINE TRANSFORM, LOSSLESS COMPRESSION, LOSSY COMPRESSION.
image display The process of displaying an image on a *display.
image file format A format for defining an image. Examples are *TIFF, *JPEG, and
*GIF.
image grabber See VIDEO SCANNER.
image management system (IMS) A management system for handling digital
images. An example is Starlink, used in astronomy.
image map An image on a web page that can function as a hyperlink. The term is
particularly used for an image in which different parts give different links. For instance,
clicking on different rooms in a plan of a house might link to photographs of each room.
Originally image maps were executed on the web server but they are now handled in most
browsers.
image processing (picture processing) Processing of the information contained in a
*digital image. Image processing operations include contrast distortion, expansion of a
specified range of brightness, bright outlining of objects, correction of over- or
underexposure of portions of the image, recognition (and perhaps counting) of predefined
objects, and comparison of one image with another. The last two of these operations are
examples of *pattern recognition. Some of the more advanced operations make use of the
concepts of *artificial intelligence. The development of image processing has been
prompted by applications such as satellite and unmanned spaceprobe observations,
undersea exploration, medical physics, and industrial robotics.
image tearing The appearance of jerking between discrete image positions. It occurs in
displays with only a single *frame buffer. See also DOUBLE BUFFERING.
image understanding Advanced *image processing in which *artificial intelligence
techniques are used to interpret images by locating, characterizing, and recognizing
objects and other features in the scene.
image warping A continuous transformation of an image on a plane. It is used to
compensate for errors in the device that performed the initial sensing of the information.
IMAP (Internet Message Access Protocol) An Internet protocol that *email
clients use to access mail on a remote server. Introduced in 1986, it is currently at version
4rev1 and is defined in RFC 3501. It offers more features than the *POP protocol, but at
the expense of greater implementation complexity
http://tools.ietf.org/html/rfc3501
• The IMAP (version 4rev1) specification
immediate access store (IAS) A memory device in which the access time for any
location is independent of the previous access and is usually of the same order as the cycle
time of the processor. Such devices are normally only used for main memory.
immediate addressing A method used to refer to data (often small constants or
similar) that is located in an address field of an instruction. Strictly this is not a method of
generating an address at all; it does provide a reference to the desired data in a way that is
both compact and requires less memory reference time.
immunization A technique of generic *virus detection in which, by ensuring that the
checksum of its code remains unchanged, a program itself verifies that it has not been
infected by a virus.
impact printer Any device that makes use of mechanical impact to print characters
onto paper. Typewriters come within this definition but the term is not usually applied to
machines that are only operated through a keyboard. A character may be formed by
impacting an inked ribbon against the paper with an engraved type character, or it may be
built up from a number of dots printed by the impacts of separate styluses. See DOT
MATRIX PRINTER, SOLID-FONT PRINTER.
imperative languages A class of programming languages. With an imperative
language a program explicitly states how the desired result is to be produced but does not
explicitly define what properties the result is expected to exhibit—the result is defined
only implicitly as whatever is obtained by following the specified procedure (compare
DECLARATIVE LANGUAGES).
The procedure for producing the desired result takes the form of a sequence of
operations, and thus with imperative languages the notions of flow of control and ordering
of statements are inherent. Such a language is typically characterized by the presence of
the *assignment statement, which, being destructive (the assigned value replaces the
previous value of the variable), also depends on the notion of ordering. Imperative
languages are closely associated with the von Neumann model of computation, and the
majority of widely used languages—including Cobol, Fortran, C++, Java, and Basic—are
imperative.
implementation The activity of proceeding from a given design of a system to a
working version (known also as an implementation) of that system, or the specific way
in which some part of a system is made to fulfil its function. For example, a control unit
may be implemented by random logic or by microprogramming; a multiplier may be
implemented by successive additions and shifts or by a table lookup. Another example
occurs in computer families, where different implementations may differ in the type of
circuit elements used or in the actual parallelism (as opposed to logical parallelism) of the
ALU.
With software, use of the term normally implies that all major design decisions have
been made so that the implementation activity could be relatively straightforward. For
many systems a number of important characteristics may not become bound until the
implementation activity; examples include the programming language in which the system
is written, the type of computer employed, the actual hardware configuration, or the
operating system used. With such systems there may be a number of distinct
implementation activities in order to provide several versions of the system, e.g. written in
different languages or operating on different hardware.
implicant A *product term that covers at least one of the *standard sum of product terms
in a *Boolean function, but will introduce no new (unwanted) standard sum of product
terms.
A prime implicant is an implicant that includes a *standard product of a function
that is not otherwise included.
implicit surface A surface defined by those points that satisfy
for some constant c. If f happens to be an algebraic function then this is an *algebraic
surface. If a surface is defined implicitly, there is an easy test of whether a point (x,y,z) lies
on the surface or is inside or outside the surface.
implied addressing (inherent addressing) A type of *addressing scheme, the term
referring to the fact that in many instruction formats the location of one or more operands
is implied in the instruction name and is specified in the instruction description. An
implied address is usually that of one of the machine registers. See also ACCUMULATOR.
import list In modular languages such as *Modula 2, a list of the names used inside a
module that are declared in other modules.
imprecision Humans have expert abilities to reason with vague information; they seem
to use approximations, abstractions, and qualitative data very effectively, in place of
precise numeric information. This has been explored in *artificial intelligence with
reasoning systems that employ approximate models and vague values. In order to
implement these ideas, techniques such as *fuzzy logic and *qualitative reasoning have
been developed.
impulse noise *Noise of large amplitude and some statistical irregularity, affecting an
analogue channel severely but (relatively) infrequently. In contrast, *white noise affects it
(relatively) unseverely but continuously. Impulse noise affecting an analogue channel
carrying a binary signal usually causes *burst errors.
IMS 1. Trademark A well-established *database management system supplied by IBM. It
is based on and implements the *hierarchical data model, but has gained additional
nonhierarchical features as a result of practical needs. DL/1 is the data manipulation
language of IMS. 2. Abbrev. for image management system.
inactive Not running (pertaining to the state of a process).
incidence matrix A representation of a *graph G employing a *matrix in which there is
a row for each vertex v of G. The entries on this row are just the vertices that are joined by
an edge to v.
inclusive-OR gate Another name for OR gate.
inclusive-OR operation Another name for OR operation, making explicit the
difference between this and the *exclusive-OR operation.
incomplete knowledge-based system See COMPLETENESS.
incompleteness theorems See GÖDEL’S INCOMPLETENESS THEOREMS.
inconsistent If a *knowledge base uses default assumptions or stores tentative
conclusions then, as a result of *inference, it may produce new facts that conflict with
existing facts; it is then said to be inconsistent. This can occur in *nonmonotonic
reasoning and systems that use *inheritance and must be either avoided or handled by
special treatment if the integrity of the system is to be maintained. See DEFAULT RULES.
increment To increase the contents of a *register or *counter by one.
incremental backup See FULL BACKUP.
incremental compaction (incremental compression) See STATISTICAL COMPACTION.
incremental compiler A compiler that can compile partial programs, and can compile
additional statements for a program without recompiling the whole program.
incremental dump See DUMP.
incremental learning See MACHINE LEARNING.
indegree See DEGREE.
indeterminate system A logic system whose *logic states are unpredictable.
index A list of values of some particular data item contained in a record, enabling it to be
retrieved more rapidly than by simple serial search. For example, a *subscript indexes a
particular element of an *array. The B+ tree (see B-TREE) is an efficient form of
multilevel index. See also INDEXED FILE.
indexed addressing (indexing) A method of generating an *effective address that
modifies the specified address given in the instruction by the contents of a specified
*index register. The modification is usually that of addition of the contents of the index
register to the specified address. The automatic modification of index-register contents
results in an orderly progression of effective addresses being generated on successive
executions of the instruction containing the reference to the index register. This
progression is terminated when the index register reaches a value that has been specified
in an index-register handling instruction.
indexed file A data file in which records can be accessed by means of an *index. If the
same field is used both in the index and for sequencing the records in the file, the index is
called a primary index (and the file is called an indexed sequential file). Otherwise
the index is called a secondary index (see INVERTED FILE).
indexed sequential file A file combining properties of *random-access files and
*sequential files. See INDEXED FILE, ISAM.
index register A register that can be specified by instructions that use *indexed
addressing. An index register is usually controlled by one or more instructions with the
ability to increment or decrement the register by a fixed amount, to test the register for
equality with a specified value (often zero), and to jump to a specified location when
equality is achieved. It may be part of the *processor status word.
indicator 1. A bit or bit configuration that may be inspected to determine a status or
condition. Examples are an *overflow bit, a device status, any portion of the *program
status word. See also QUALIFIER REGISTER. 2. A visual, sometimes aural, indication of the
occurrence of a specific status or condition, e.g. system running (halted), undefined
instruction.
indirect addressing A method of addressing in which the contents of the address
specified in the instruction (which may itself be an *effective address) are themselves an
address to be used to provide the desired memory reference. Two memory references are
thus needed to obtain the data.
One use of indirect addressing is to supply a way of circumventing short address field
limitations since the first memory reference provides a full word of address size. Another
use is as a pointer to a table. Since an operand is not available at the usual time in the
fetch-execute cycle, completion of that cycle must be deferred until the operand is finally
available. Indirect addressing is thus sometimes referred to as deferred addressing.
individual attributes *Attributes of a graphical output primitive specified by a global
variable that is attached to the primitive. Each output device is required to render the
primitive as close to the specified value as possible.
induction 1. A method of logical inference in which a general but not necessarily true
conclusion is drawn from a set of particular instances. In *machine learning, for example,
the term induction is used to describe an approach to machine learning in which
generalized structures or statements are inferred from particular examples. 2. A process
for proving mathematical statements involving members of an ordered set (possibly
infinite). There are various formulations of the principle of induction. For example, by the
principle of finite induction, to prove a statement P(i) is true for all integers i ≥ i0, it
suffices to prove that
(a) P(i0) is true;
(b) for all k ≥ i0, the assumption that P(k) is true (the induction hypothesis) implies
the truth of P(k + 1).
(a) is called the basis of the proof, (b) is the induction step.
Generalizations are possible. Other forms of induction permit the induction step to
assume the truth of P(k) and also that of
for suitable i. Statements of several variables can also be considered. See also
STRUCTURAL INDUCTION.
industrial robotics The branch of *robotics concerned with industrial and
manufacturing applications. Industrial robots usually take the form of a manipulator arm
equipped with an end effector and various sensors. Most commercial industrial robots
have very limited sensory capabilities and follow fixed but reprogrammable sequences of
operation. Many different programming languages have been adapted or developed for
these robots. Current research and development is focused on tasks such as automatic
assembly, automatic planning, visual guidance, and error recovery.
Industry Standard Architecture The *architecture developed by IBM and opened
up for use by other manufacturers. Renamed ISA, it became the de facto architecture for
personal computers for many years. It was introduced by IBM in the 8-bit IBM PC/XT
and expanded when the 16-bit PC/AT was introduced. It allowed *add-in cards to be
plugged into standard expansion slots. A 16-bit ISA slot comprised two separate 8-bit
slots. See also EISA, LOCAL BUS ARCHITECTURE, MCA.
inequality A *binary relation that typically expresses the relative magnitude of two
quantities, usually numbers though more generally elements of a partially ordered set (see
PARTIAL ORDERING).
The inequalities defined on the integers usually include
< (less than)
≤ (less than or equal to)
> (greater than)
≥ (greater than or equal to)
≠ (not equal to)
A similar set of inequalities is usually defined on the *real numbers; such inequalities can
produce errors when used in programming languages because of the inherent inaccuracies
in the way real numbers are usually represented.
The term inequality is often applied to any comparison involving algebraic expressions
and using the above symbols. A special case is the triangle inequality:
where | | denotes the absolute value function.
inference A rule or process that derives a new fact from a given set of facts. There are
three main methods: *deduction, *abduction, and *induction. Examples of these styles of
inference can be seen in *theorem proving, *expert systems, and *machine learning,
respectively.
inference engine Within the context of *expert systems, the part of the expert system
program that operates on the *knowledge base and produces inferences. If the knowledge
base is regarded as a program then the inference engine is the interpreter. The expressions
in the knowledge representation language are its inputs, and its outputs constitute an
interpretation of this input with respect to stored knowledge. The interpreter may be logicbased in that it operates within a certain logic formalism, for instance first-order
*predicate calculus. See PRODUCTION RULE SYSTEM.
infinite resolution The ability to zoom in on an image at any level and still have an
appropriate level of *resolution of the image.
infix notation A form of notation in which operators appear between their operands, as
in
Infix notation requires the use of brackets to specify order of evaluation, unlike prefix and
postfix notation, i.e. *Polish notation and *reverse Polish notation respectively.
influence In *regression analysis, the effect on estimates of *parameters of varying the
value of a particular observation. Observations that have greatest influence are also called
leverage points. Influence functions help to warn of possible over-reliance on too few
data values, and also provide a method of allocating new data observations most
effectively.
informatics The use of computers to maintain and analyse large amounts of data. The
term is applied particularly with respect to databases of chemical compounds or reactions
(chemoinformatics) or databases in biochemistry or cell biology (bioinformatics).
information Generally, information is whatever is capable of causing a human mind to
change its opinion about the current state of the real world. Formally, and especially in
science and engineering, information is whatever contributes to a reduction in the
uncertainty of the state of a system; in this case, uncertainty is usually expressed in an
objectively measurable form. Commonly, this is done by means of Shannon’s *entropy.
Nevertheless, this formula for uncertainty involves probabilities, and these may well have
to be subjective. If that is so, the formal measurement must be qualified as depending on
subjective probabilities, and ‘uncertainty’ must be replaced by ‘opinion, or personal
estimate, of uncertainty’.
Information must be distinguished from any medium that is capable of carrying it. A
physical medium (such as a magnetic disk) may carry a logical medium (data, such as
binary or text symbols). The information content of any physical objects, or logical data,
cannot be measured or discussed until it is known what range of possibilities existed
before and after they were received. The information lies in the reduction in uncertainty
resulting from the receipt of the objects or the data, and not in the size or complexity of
the objects or data themselves. Questions of the form, function, and semantic import of
data are only relevant to information inasmuch as they contribute to the reduction of
uncertainty. If an identical memorandum is received twice, it does not convey twice the
information that its first occurrence conveyed: the second occurrence conveys no
information at all, unless, by prior agreement, the number of occurrences is itself to be
regarded as significant.
Information has ramifications in security, politics, culture, and the economy, as well as
in science and engineering. The extent to which information is used as an economic
commodity is one of the defining characteristics of the ‘post-industrial’ society, hence the
phrase ‘the information society’.
information and communications technology (ICT) 1. An umbrella term used to
cover both computing and telecommunications technologies, with an emphasis on their
combined use in information processing and transmission. 2. The physical convergence of
telephone and computer network infrastructures.
information destination See SHANNON’S MODEL.
information engineering The engineering approach applied to *information systems.
The term shows considerable variation in scope. At its broadest, it refers to the
engineering discipline covering a spectrum from *software engineering and *systems
engineering to device-level electronics. At its most limited (but perhaps best known), it is
the name of a specific proprietary method for the development of organizational
information systems, primarily associated with Clive Finklestein and James Martin; this
method begins with *enterprise modelling and carries through to the generation of
program code, and a number of software toolsets are available for its support.
information hiding A principle, used when developing an overall *program structure,
that each component of a program should encapsulate or hide a single design decision.
The principle was first expounded by David Parnas, who advocated an approach to
program development in which a list is prepared of design decisions that are particularly
difficult or likely to change; individual components, known as modules, are then defined
so that each encapsulates one such decision. The interface to each module is defined in
such a way as to reveal as little as possible about its inner workings.
This approach leads to modules that are readily understood and can be developed
independently. More important, it also leads to programs that are easy to change, with
many desired changes requiring modification of only the inner workings of a single
module.
information leak Any code or data that makes information accessible to unauthorized
persons or systems. A *covert channel is a case of information leak.
information management system A term sometimes used synonymously with
*database management system (DBMS) although normally used in a more general sense.
The term has no widely accepted definition and thus can be applied to any system of
software that facilitates the storage, organization, and retrieval of information within a
computer system, without the implication that it need have all the essential characteristics
of a DBMS. The information held may include sound fragments, images, and video
sequences in addition to the usual textual and numerical information. These newer forms
of computer-held information are sometimes argued as being a defining characteristic of
the term, notwithstanding that DBMS are developing to provide for such forms of
information.
information processing The derivation of ‘information objects’ from other
‘information objects’ by the execution of algorithms: the essential activity of computers.
The term has related meanings outside the computing field. It is used in psychology, for
instance, and may also be used to refer to clerical operations.
information retrieval Strictly, the activity of retrieving previously stored information.
The term is sometimes used to mean *information storage and retrieval (as in information
retrieval application).
information science The branch of knowledge concerned with the storage,
organization, retrieval, processing, and dissemination of information. The term was coined
in the aftermath of the spread of computers and the corresponding revolution in
information-handling techniques. Information science therefore inevitably pays substantial
attention to, but is not confined to, what can be achieved with computers.
information sciences A cluster of separate but related branches of knowledge,
including *computer science, *information systems, and library science.
information source See SHANNON’S MODEL.
information storage and retrieval (ISR) The linked activities of storing and
retrieving information, and the strategies and techniques for doing so. The activities are
linked because the means of retrieving information are dependent on the means by which
it was stored. The storage strategy must be designed for the most efficient retrieval,
consistent with the characteristics of the information and the time and cost that can be
tolerated.
information structure Another name for data structure.
information superhighway Informal Any form of high-speed computer network.
The term was sometimes used to refer to the *Internet in the 1990s. See also NATIONAL
INFORMATION INFRASTRUCTURE.
information system A computer-based system with the defining characteristic that it
provides information to users in one or more organizations. Information systems are thus
distinguished from, for example, real-time control systems, message-switching systems,
software engineering environments, or personal computing systems.
The term could have a very much wider meaning than that suggested, considering the
range of meaning of the words *information and *system. It could, for instance, be
broadened to include all computer-based systems, or further broadened to include many
non-computer-based systems. Thus, within the domain of computer-based systems, the
more specific term organizational information system is sometimes used.
Information systems include *data processing applications, *office automation
applications, and many *expert system applications. When their primary purpose is to
supply information to management, they are commonly called *management information
systems.
The following are among the more important characteristics of information systems,
and make their design and construction particularly difficult.
(a) Their environment is complex, not fully definable, and not easily modelled.
(b) They have a complex interface with their environment, comprising multiple inputs and
outputs.
(c) The functional relationships between inputs and outputs are structurally, if not
algorithmically, complex.
(d) They usually include large and complex databases (or, in future, knowledge bases).
(e) Their ‘host’ organizations are usually highly dependent on their continuing availability
over very long periods, often with great urgency attending their initial provision or
subsequent modification.
See also INFORMATION SYSTEMS.
information systems (IS) The branch of knowledge concerning the purpose, design,
uses, and effects of information systems in organizations. IS is an interdisciplinary study,
drawing chiefly from *computer science on the technical side and from
business/management studies on the organizational side; it may also, however, embrace
aspects of economics, psychology and sociology, statistics, and operations research.
information technology (IT) Any form of technology, i.e. any equipment or
technique, used by people to handle *information. Mankind has handled information for
thousands of years; early technologies included the abacus and printing. The last four
decades or so have seen an amazingly rapid development of information technology,
spearheaded by the computer; more recently, cheap microelectronics have permitted the
diffusion of this technology into almost all aspects of daily life and an almost inextricable
cross-fertilizing and intermingling of its various branches. The term information
technology was coined, probably in the late 1970s, to refer to this nexus of modern
technology, electronic-based, for handling information. It incorporates the whole of
computing and telecommunication technology, together with major parts of consumer
electronics and broadcasting. Its applications are industrial, commercial, administrative,
educational, medical, scientific, professional, and domestic.
The advanced nations have all realized that developing competence in information
technology is important, expensive, and difficult; large-scale information technology
systems are now economically feasible and there are national programs of research and
education to stimulate development. The fundamental capabilities that are usually
recognized to be essential comprise VLSI circuit design and production facilities, and a
common infrastructure for the storage and transmission of digital information (including
digitized voice and image as well as conventional data and text). Major research problems
include improved systems and software technology, advanced programming techniques
(especially in *knowledge-based systems), and improved *human-computer interfaces.
information theory The study of information by mathematical methods. Informally,
information can be considered as the extent to which a message conveys what was
previously unknown, and so is new or surprising. Mathematically, the rate at which
information is conveyed from a source is identified with the *entropy of the source (per
second or per symbol). Although information theory is sometimes restricted to the entropy
formulation of sources and channels, it may include coding theory, in which case the term
is used synonymously with *communication theory.
INFORMIX Trademark; see DATABASE MANAGEMENT SYSTEM.
infrared interface An interface where communication is achieved by transmission of
infrared radiation instead of the conventional electrical signal connection. Such interfaces
may be used for purposes of electrical isolation. An infrared interface is frequently used to
communicate between a personal digital assistant (PDA) and a desktop computer.
infrastructure-based architecture In a *wireless LAN (WLAN), a network
architecture in which each node needs to be connected to a centralized controller or
*access point. Typically, the access point belongs to a network operator of some form. The
vast majority of WLAN architectures are infrastructure-based.
INGRES Trademark An influential relational *database management system, formerly
marketed by Computer Associates (CA) and now available as *open-source software.
inherent addressing Another name for implied addressing.
inherently ambiguous language A context-free language that has no nonambiguous
grammar (see AMBIGUOUS GRAMMAR). An example is the set
inheritance In a hierarchy of *objects an object generally has a parent object
(superclass) at the next higher level in the hierarchy and one or more child objects
(subclass) at the next lower level. Each object can have various *attributes associated with
it. The attributes can be local to that object, or can be inherited from the parent object.
Attributes can be further inherited by child objects (often without limit on the number of
inheritances). In addition an object can be an instance of a more general object (not a
parent object) with which it shares variables and also inherits its attributes.
Inheritance is thus a means by which characteristics of objects can be replicated and
instantiated in other objects. Inheritance is both static by *abstract data type and dynamic
by *instantiation and value. Inheritance rules define what can be inherited and
inheritance links define the parent and child of inheritance attributes.
See also OBJECT-ORIENTED PROGRAMMING.
inhibit To prevent the occurrence of an event, e.g. to use a logic gate to inhibit another
signal. Compare ENABLE.
initial algebra An *algebra A, from some class of algebras C, such that for every
algebra B in C there is a unique *homomorphism from A to B. Such an algebra is said to
be initial in the class C or, more precisely, initial in the *category that has all the algebras
in C as its objects and all the homomorphisms between them as its morphisms. Depending
on the choice of C, there may or may not exist initial algebras; however if any do exist
they will all be isomorphic to each other. If C is the class Alg(Σ, E) of all Σ-algebras
satisfying a set E of *equations or *conditional equations, then C has an initial algebra. If
the set E is recursive enumerable then the initial algebra is semicomputable.
Initial algebras have importance for the *semantics of programming languages,
*abstract data types, and *algebraic specifications. Of particular significance is the fact
that, in the class of all Σ-algebras for a given *signature Σ, an initial algebra is given by
the *terms or *trees over Σ; this is often called the term algebra for Σ.
initialization The act of assigning initial values to variables before the start of a
computation. Many programming languages provide a facility for specifying initial values
when a variable is first declared.
initial-value problem See ORDINARY DIFFERENTIAL EQUATIONS, PARTIAL
DIFFERENTIAL EQUATIONS.
injection (one-to-one function) A *function with the property that distinct elements in
its domain are mapped onto distinct elements in the codomain. Formally,
is an injection if
A common use of injections is to map or include elements of some smaller set, such as the
set of integers, into a larger set, such as the set of real numbers.
inkjet printer An output device that creates characters and graphics by firing a stream
of ink drops at a surface from one or more banks of tiny nozzles. The rapid displacement
required to eject the drops from the nozzles may be achieved by surface boiling of the ink
using tiny electric heating elements behind each nozzle, or by mechanical pressure using
piezoelectric crystals behind the nozzles. The technology has developed to the extent that
such printers can (on suitable media) offer comparable resolution and quality to the *laser
printer but at a much lower cost. Inkjet technology is also suitable for colour printing,
nozzles being fed with three or four different colour inks (see CMY COLOUR MODEL,
CMYK COLOUR MODEL). Inkjet printers can also act as *plotters.
Considerable advances have been made in recent years and some inkjet printers can
produce prints of photographic quality, though there are still concerns about the long-term
stability of the dyes used.
in-line function A short function whose code is inserted by the compiler at the point of
call, thereby avoiding the overhead of a normal function call.
inner code See CONCATENATED CODING SYSTEMS.
inoculation A technique for virus prevention in which a vaccine, the *signature (but
not the harmful code) of a virus, is deliberately added to a program. This is effective only
against those specific viruses that are programmed to avoid reinfecting code by detecting
the presence of their own signature.
inorder traversal Another name for symmetric order traversal.
input 1. The process of entering data into a processing system or a peripheral device, or
the data that is entered. 2. A signal that is applied to an electrical circuit, such as a logic
circuit. 3. To enter data or apply a signal.
input area The area of main memory that is currently allocated to hold incoming data.
The processing system will usually retrieve data from the input area and transfer it to a
working area or register before it is processed. The result of the processing may be written
to an *output area. Subroutines are usually organized so as to replenish the input area from
a source such as an input peripheral or communication line and clear the output area by
transfer to backing store.
input device Any device that transfers data, programs, or signals into a processor
system. Such devices provide the human-computer interface, the *keyboard being the
most common example. Early computers also used punched paper tape and cards but these
are now obsolete. Current devices include *pointing devices, *data collection terminals,
*speech recognition units, magnetic *card readers, and *document scanners. See also
LOGICAL INPUT DEVICE.
input-limited process A process whose speed of execution is limited by the rate at
which input data is available or obtained.
input/output (I/O) The passing of information into or out of the central processing unit
of a computer system, or the part of the system primarily dedicated to this activity. An
important function of most I/O equipment is the translation between the host processor’s
signals and the sounds, actions, or symbols that are understood or generated by people. In
some cases it may be translation between two types of machine-readable signals, as when
a *bar-code scanner reads the data-encoded package and translates it into a character code
point.
insert 1. One of the basic actions performed on *sets that, when applied in the form
adds the element el to the set S. If el is already in S the operation has no effect on the
membership of S. See also OPERATIONS ON SETS. 2. One of the basic actions performed on
*lists, that places a new element into a list, not necessarily at one end or the other.
install 1. To take software from the distribution files, which can be on CD-ROM, DVD,
or on a remote networked computer (often accessed via the Internet), and place it in its
permanent location from where it will be executed. The installation process is not just a
straight copy as it involves unpacking compressed files, configuring the software to suit its
environment, registering the new software components with the operating system, and
perhaps allowing the installer to choose how much of the software to install. A typical
installation program will offer choices of minimum, custom, or full installations. 2. To fit
new hardware features to a computer.
instance See INSTANTIATION, UNIFICATION. See also OBJECT-ORIENTED PROGRAMMING.
instantaneously decodable See PREFIX CODES.
instantiation 1. The creation of a particular instance of an object class, generic unit, or
template. 2. The application of a parameterized abstract data type to a particular set of
parameters.
instruction The description of an operation that is to be performed by a computer. It
consists of a statement of an operation to be performed and some method of specifying the
operands (or their locations) and the disposition of the result of the operation. Instructions
are often divided into classes such as *arithmetic instructions, *program control
instructions, *logic instructions, and *I/O instructions. They may or may not be of fixed
length. The *operation code or order code of an instruction specifies one of the set of
operations available in a particular computer. See also INSTRUCTION FORMAT.
instruction counter (program counter) A counting *register that normally increments
in each instruction cycle to obtain the program sequence (i.e. the sequence of instructions)
from the memory locations. This counter will have its contents changed by branch
instructions to obtain the next instruction from the branch target. The instruction counter
forms part of the *processor status word; this enables subsequent restarting of an
interrupted program.
instruction cycle Another name for fetch-execute cycle. See CONTROL UNIT.
instruction format An instruction is normally made up of a combination of an
*operation code and some way of specifying an *operand, most commonly by its location
or *address in memory though *nonmemory reference instructions can exist. Some
operation codes deal with more than one operand; the locations of these operands may be
specified using any of the many *addressing schemes.
Classically, the number of address references has been used to specify something about
the architecture of a particular computer. In some instruction formats and machine
architectures, the number of operand references may be fixed; in others the number is
variable. In the former case descriptions of formats include one-address, twoaddress, three-address, and (now rarely) four-address. An example (symbolically)
of a one-address instruction is
add x i.e.
add contents of address x
to contents of accumulator;
sum remains in accumulator.
An example of a three-address instruction is
add x,y,zi.e.
add contents of address x
to contents of address y;
sum is placed in location z.
In some cases the last address is the address of the next instruction to be executed. The
ability to specify this address was important when rotating (drum) main memories were
prominent. Thus a two-address instruction such as
add x,y i.e.
add contents of address x
to contents of address y;
sum is placed at address y,
may become
add x,y,z i.e.
add contents of address x
to contents of address y;
sum is placed at address y;
next instruction is taken
from address z.
The last may be called either a three-address instruction or a two-plus-one-address
instruction. In a similar way the term one-plus-one address instruction represents a
one-address instruction together with the address where the next instruction is to be found.
In these two cases the instructions do not come from sequential addresses; an instruction
counter, if present, is bypassed.
The figure shows three examples of possible/typical instruction formats.
In early computers instruction formats were forced into a fixed word size, that of the
computer. An instruction format consisted of two fields: one containing the operation code
and the other containing the address(es). As additional features of address modification
became available, it was necessary to add special bit positions in the instruction word to
specify functions such as *indirect addressing, use of *index registers, use of base
registers in *relative addressing, etc. Still other bits were sometimes used to allow for
reference to parts of a data word; this was usually as fractions of the word, as character
positions, more recently as byte positions.
As *registers became common, distinct operation codes were used to refer to register
locations; these locations could be specified in many fewer bits than normal addresses,
and variable-length instruction formats were developed. See also STACK PROCESSING,
ZERO-ADDRESS INSTRUCTION.
Instruction format. Examples of instruction formats
instruction register See CONTROL UNIT.
instruction repertoire Another name for instruction set.
instruction sequencing The order in which the instructions in a program are carried
out. Normally the sequence proceeds in a linear fashion through the program, and the
address of the instructions is obtained from the program counter in the *control unit. This
sequence is interrupted when a *branch instruction is executed; at such a time the address
field of the branch instruction is inserted into the program counter and the process
continues. In the case of an indirect branch instruction, the memory content referred to by
the address field of the instruction is inserted into the program counter.
instruction set (instruction repertoire) The totality of *instructions that a computer is
capable of performing. The list of all the *operation codes and the permitted *addressing
schemes pertinent to each.
instruction stream The sequence of *instructions from memory to the control unit.
instrument To add code to software, or devices to hardware, in order to monitor (and
sometimes control) operation of a system or component while under test or analysis. The
code or devices so used are called instrumentation. Instrumenting code may, for
example, write to a report file the before and after values of a variable together with a
source reference to the code each time the variable is referenced. Some software
environments provide tools to automatically add (and remove) the instrumentation and to
analyse report files or screen-directed output.
integer A whole number, as opposed to a *rational or *real number. The concept of
*integer type is used for computer representation of a finite subset of the integers.
integer programming See MATHEMATICAL PROGRAMMING.
integer type (type integer) A *data type comprising only integer (whole number)
values, lying between specified maximum and minimum values; legal operations include
integer arithmetic operations such as addition, subtraction, and multiplication.
integral domain See RING.
integral equation Any equation for an unknown function f(x), a≤x≤b, involving
integrals of the function. An equation of the form
is a Volterra equation of the second kind. The analogous equation with constant limits
is a Fredholm equation of the second kind. If the required function only appears under
the integral sign it is a Volterra or Fredholm equation of the first kind; these are more
difficult to treat both theoretically and numerically. The Volterra equation can be regarded
as a particular case of the Fredholm equation where
Fredholm equations of the second kind occur commonly in boundary-value problems in
mathematical physics. Numerical techniques proceed by replacing the integral with a rule
for *numerical integration, leading to a set of *linear algebraic equations determining
approximations to f(x) at a set of points in a≤x≤b.
integrated circuit (IC) An implementation of a particular electronic-circuit function in
which all the individual devices required to realize the function are fabricated on a single
*chip of semiconductor, usually silicon. The individual devices normally consist of
semiconductor diodes, transistors, and resistors.
In MOS integrated circuits the active devices are *MOSFETs, which operate at
low currents and high frequencies. A very large number of MOSFETs can be packed
together on one silicon chip, i.e. MOS circuits have a high packing density. They also
consume very little power. The development of MOS technology has allowed extremely
complex functions to be performed on a single chip.
In bipolar integrated circuits the components are *bipolar transistors and other
devices that are fabricated using the p-n junction properties of semiconductors. Compared
with MOS circuits, bipolar circuits have higher operating speeds but have the
disadvantages of high power consumption and low packing density. They are also less
simple to fabricate than MOS circuits.
The improvement in the fabrication technology of integrated circuits has made possible
the construction of a huge number of components on a single chip. These may be
combined on the chip to make a wide variety of digital and analogue circuits. The
complexity of a digital circuit produced on a single chip is usually described in terms of
the number of *transistors involved, or sometimes of the number of *logic gates. This
formerly led to the following differentiation:
VLSI very large-scale integration
LSI large-scale integration
MSI medium-scale integration
SSI small-scale integration
These terms are now not widely used because all modern chips are VSLI.
Digital integrated circuits are often represented by their logic function rather than their
electronic function in order to ease their understanding. See also HYBRID INTEGRATED
CIRCUIT.
integrated data processing (IDP) See DATA PROCESSING.
integrated device electronics See IDE.
integrated modular avionics (IMA) An approach to *avionics in which a number of
different flight functions share the same hardware platform; this is in order to reduce
weight, both of the computing hardware and the necessary cabling. The platform used
must have the ability to isolate application software of different levels of criticality, a
requirement usually achieved by some form of *hypervisor. IMA has been used in jet
fighters since the 1990s and in commercial aeroplanes since the late 2000s. It has yet to be
adopted for spacecraft.
integrated office system (IOS) A program for use on a personal computer or small
multiuser business computer that combines some of the functions otherwise performed by
a series of single-purpose programs. A typical mix of functions in an integrated office
system might be *spreadsheet, *word processor, *database management system, and
graphics. The results of the various sections can usually be merged to form a final
document containing pictorial, tabular, and textual material.
integrated services digital network See ISDN.
integrated systems factory See ISF.
integration testing See TESTING.
integrity 1. Resistance to alteration by system errors. A user who files data expects that
the contents of the files will not be changed by system errors in either hardware or
software. Since such errors inevitably will occur from time to time, the prudent system
manager maintains a system of protective *dumps, organized in such a way that there
always exists a valid copy of a recent version of every file on the system. For this to be
possible, the manager must run system utilities that operate at such a level of privilege that
they bypass the normal checks present to maintain the *privacy and *security of users’
files. The dump utilities must be able to read the users’ files in order to make copies, and
must have write access to the users’ files in order to reinstate a recent version of a file lost
or corrupted by system error. Thus the system for maintaining the integrity of a user’s files
automatically constitutes a security *vulnerability and represents a weakening of the
system for maintaining privacy. 2. (safety integrity) The probability of a system always
performing at some level of *safety.
integrity level A measure of the safety *integrity in a given system, expressed variously
as a number (e.g. 1, 2, 3, or 4) or using a descriptor (such as high or low) with these being
well defined in particular situations.
integro-differential equation Any equation for an unknown function involving
integrals and derivatives of the function. Many different types can arise and there is no
straightforward classification. The initial-value problem (see ORDINARY DIFFERENTIAL
EQUATIONS) given by
also contains features common to Volterra integral equations (see INTEGRAL EQUATION).
Boundary-value problems and equations involving partial derivatives also occur in
practice.
Intel A US corporation that is a leading manufacturer of *integrated circuits (chips),
particularly noted for its important range of *microprocessor chips. The current range
includes the Pentium, Xeon, Celeron, and Itanium families of processors. The
Pentium is Intel’s main 32-bit processor and is used by a variety of manufacturers in their
products. The Xeon is a high-performance version of the Pentium designed for file servers
and workstations. The Celeron is a lower-cost version of the Pentium with a reduced
specification. The Itanium is a 64-bit processor. Intel was founded in 1968 and produced
the world’s first microprocessor, the Intel 4004, in 1971. Since then, it has steadily
improved the power of its chips. The original IBM PC and its successors and clones have
all used Intel processors or copies of them. Intel also produces special purpose chip sets
for use in specific applications such as mobile phones.
Intel High Definition Audio A specification by Intel for a *codec providing highquality audio input and output for a computer. It was released in 2004 and is intended to
supersede *AC97.
Intellect A UK industry association representing the IT supply industry in all its forms. It
developed out of the Computer Services Association, which was founded in 1975.
intellectual property A term that is increasingly difficult to define. It combines the
traditional core of rights covered by patent, trademark, and copyright law coupled with
more recent additions such as the protection of registered designs, design right, plantbreeders’ rights, semiconductor topography rights, performing rights, and lending rights. A
working definition is that it is the species of legally enforceable right associated with
intangible aspects of physical items.
intelligent front end (IFE) A program designed to improve the accessibility of an
existing program or computer system. IFEs are useful where complex and highly
sophisticated software already exists. The expertise to use this software may take
considerable time to acquire; the purpose of an IFE is to alleviate this. The IFE may
contain knowledge about the domain of the software (e.g. mathematics or finite element
modelling) and also expert knowledge about how best to use the software to solve
problems in that domain. IFEs have been built for a wide range of programs (e.g. statistics,
finite element modelling, and ecology) and are potentially important in widening the
availability of existing software.
intelligent network A rather general term used to describe a computer network,
especially one with the ability to continue operation in the event of failure of some of the
network components.
intelligent terminal A device with some processing capability, by means of which
information may be transferred to and from a larger processing system. The device is often
a combination of a display and keyboard with at least one built-in microprocessor to
provide facilities such as editing and prompts for the operator. Modern application
terminals for banking, retail, and industrial data collection are other examples of
intelligent terminals. Nowadays most such terminals are based on personal computer
technology.
intensity A nontechnical synonym for both *luminance and brightness. Luminance is the
measured light intensity reflected or emitted by a surface in a given direction per unit of
apparent area. Brightness is a psycho-physiological attribute of visual perception in which
a source appears to emit or reflect more or less light.
interaction The term used when an operator interacts with a computer by means of a set
of input devices to achieve a desired effect. See also ACKNOWLEDGMENT, ECHOING,
FEEDBACK, PROMPT.
interactive Describing a system or a mode of working in which there is a response to
operator instructions as they are input. The instructions may be presented via an input
device such as a keyboard or mouse, and the effect is observable sufficiently rapidly that
the operator can work almost continuously. This mode of working is thus sometimes
referred to as conversational mode. An interactive system for multiple users will
achieve the effect by time sharing. See also MULTIACCESS SYSTEM.
interactive development environment See IDE.
interactive graphics A computer graphics system that allows the operator or user to
interact with the graphical information presented on the display using one or more of a
number of input devices, some of which are aimed at delivering positions relevant to the
information being displayed. Almost all computer workstations and personal computer
systems are now able to be used in this way.
interblock gap (IBG) See TAPE FORMAT.
interface 1. A common boundary between two systems, devices, or programs. 2. The
signal connection and associated control circuits that are used to connect devices. See also
STANDARD INTERFACE. 3. Specification of the communication between two program units.
For example, if a procedure does not refer to nonlocal variables, its interface is defined by
the parameter list. Careful definition of interfaces makes it possible to use a program unit
without knowledge of its internal working, and is vital to the design of a system that is to
be implemented by a team of programmers. The concept is an important feature of *Ada;
in Ada a *package is defined in two parts, the interface and the body. The interface
specifies exactly what identifiers are visible outside the package, and is sufficient to
permit separate compilation of program units that use the package. Similar facilities are
found in most modern programming languages and they are essential features of objectoriented languages such as C++ and Java. 4. To provide an interface. 5. To interact.
interior node Another name for nonterminal node.
interior path length (of a tree) The sum of the lengths of all paths from the root of the
tree to an interior (i.e. a nonterminal) node.
interlacing A method of displaying a video image by tracing out alternate *scan-lines in
successive fields. (A field is a single complete scanning of the screen.) When alternate
lines have been traced out, the scanning spot flies back to the top of the screen to trace out
the remaining lines in the spaces between those of the first descent. This allows a lower
refresh rate (and lower bandwidth requirements for lower frame rate) to produce an image
that appears flicker-free. While this is true of most pictorial content and interlacing is still
an essential feature of television, it is seldom now used in computer displays since a single
horizontal line can appear to flicker at half the frame frequency. Higher speed graphics
cards and monitors have generally replaced interlacing to produce high-quality displays.
interlock A hardware or software method of coordinating and/or synchronizing multiple
processes in a computer. Such a method can be used, for example, in the situation in which
a certain process should not begin until another process is completed. A common interlock
method uses *flags to do this. Another typical situation is one in which requests for some
service, e.g. memory access, arrive simultaneously. A hardware interlock procedure will
force the requests to become sequential, usually according to a predefined rule.
intermediate code The ‘machine code’ of a *virtual machine (def. 2). It is executed by
program that emulates such a machine on a specific *platform. To give better
performance, units of intermediate code are commonly translated into native machine
code at runtime by a *JIT compiler.
intermediate storage Any part or type of storage that is used for holding information
between steps in its processing.
internal fragmentation A form of *fragmentation that arises when allocations of
memory are made only in multiples of a subunit. A request of arbitrary size must be met
by rounding up to the next highest multiple of the subunit, leaving a small amount of
memory that is allocated but not in use. Internal fragmentation is reduced by reducing the
size of the subunit; such a reduction increases *external fragmentation.
internal schema (of a database) Another name for storage schema.
internal sorting See SORTING.
Internet (Net) The global informal network that now links a very substantial fraction of
the world’s computer networks. The Internet is an extraordinary development that stems
from the original *ARPANET, which was initiated in North America in 1969. In broad
terms the Internet does not offer services to end-users, but serves primarily to interconnect
other networks on which end-user services are located. It provides basic services for *file
transfer, *email, and remote login, and high-level services including the *World Wide
Web and the *MBONE.
The Internet is global, with connections to nearly every country in the world. It is
deliberately nonpolitical and tends to deal with nongovernmental levels within a country.
The structure is informal, with a minimal level of governing bodies and with an emphasis
in these bodies on technical rather than on administration or revenue generation. Up to the
mid-1990s the major users of the Internet were the academic and research communities,
but thereafter, with a growth in home computing, there has been a massive increase in the
number of individuals and companies using the World Wide Web and email. There has
also been a large increase in interest in the commercial exploitation of the Internet. See ECOMMERCE.
Internet access provider See ISP.
Internet address See feature THE ANATOMY OF AN INTERNET ADDRESS .
THE ANATOMY OF AN INTERNET ADDRESS
Most people today are familiar with the formal of addresses used on the Internet. A
typical simple example might be:
http://www.companyname.com/
All Internet addresses are instances of uniform resource identifiers (see URI) and
follow the rules laid down (2005) in the standard RFC3986. The example above consists
of two distinct parts, separated by a colon:
■ ‘http’ is the URI scheme.
■ ‘http://www.companyname.com’ is the host.
Two forward slash characters ‘//’ may precede the host, but they are not part of it.
The scheme
The scheme specifies what kind of resource is being sought at the specified address.
Often the scheme name comes from the protocol to be used: ‘http’ means that the
message being sent will use the hypertext transfer protocol (HTTP) and is therefore
seeking an HTTP server at the address. Similarly, the scheme ‘ftp;’ indicates a message
using the file transfer protocol (FTP) and seeking an FTP server. However, it is not
always the case that the scheme specifies the resource: for example, the ‘mailto’ scheme
is used to specify an email address, but emails are sent using the simple mail transfer
protocol (SMTP).
The host
The host is usually specified in plain-language form. It cannot be used directly but must
first be translated into the equivalent *IP address, which consists of a list of numbers.
The Internet uses a *domain name system, in which the plain-language address is
treated as a hierarchy of component domains separated by full stops. The hierarchy is
read from right to left, and the topmost level—in this case ‘com’—has to be one of the
top-level domains defined by the Internet Corporation for Assigned Names and
Numbers (ICANN).
In analysing the address, each domain is submitted in turn to an appropriate *domain
name server (DNS), beginning with the top-level domain on the far right. The DNS
returns information on where to find the server for the next domain: when the end of the
domain hierarchy is reached, an IP address will be returned.
This IP address can also be specified directly. Assuming that the IP address for ‘
http://www.companyname.com/
• ’ is 10.11.12.13,
http://10.11.12.13/
• means the same as ‘
http://www.companyname.com/
• ’. This form of the address is only used in practice for special reasons.
Top-level domains
The domain name ‘com’ in the example is the commonest example of a generic toplevel domain (gTLD), i.e. one with a name that indicates the type of site (in this case, a
commercial company). A number of other generic domain names are approved by
ICANN: for example ‘ac’ for an academic institution, ‘gov’ for a government
organization, etc. Often, the top-level domain is a country domain indicating the
country or region (‘uk’ for the United Kingdom, ‘us’ for the United States, ‘eu’ for the
European Union, etc.). The generic name is then a second-level domain: for example, an
academic institution in France might have the address:
http://www.collegenom.ac.fr/
or a company in the EU might be:
http://www.companyname.co.eu/
Note that ‘co’ is used as a second-level name rather than ‘com’. Full lists of both generic
and country approved domain names are given in the Appendix.
Additional components
The above examples show the basic form of an Internet address. There are several
additional components that may be added in particular cases. Some of these are
compulsory for some URI schemes.
Usernames and passwords
A username may be included as part of the address; for example:
http://myself@www.companyname.com
Optionally, a password may also be given using the format:
http://myself:mypassword@www.companyname.com
This format can be used with HTTP and FTP requests in order to prevent a passwordsecured site asking for login details. In addresses for email messages a username must
always be supplied:
mail to:
myself@http://www.companyname.com/
Note in this example the absence of the double forward slash ‘//’ in mailto: addresses.
Port numbers
A port number may be appended to the host:
http://www.companyname.com:8080
This indicates that the message is intended for an HTTP server listening on TCP port
8080 (rather than on port 80, the default port for HTTP.
Entry points and paths
In Internet terminology the host together with any specified username, password, or port
number is called the authority. An authority will access the default entry point of its
service: for example, the default page of a website or the top-level directory of an ftp
site (although the exact location of this default might depend on the username). Other
locations within the service can be accessed by appending a path, which consists of a
series of segments each preceded by ‘/’:
http://www.companyname.com/demos/sample1.htm
The path often represents a literal path in the server’s file system. However, this need
not be the case: for example, many web servers can be configured to interpret some
paths as commands lo generate appropriate dynamic web pages. Each path segment may
optionally contain appended parameters in the form of key-value pairs preceded by ‘;’.
This facility is not often used. A query can follow the authority or, if present, path. This
is introduced by ‘?’ and contains data that qualifies the resource being requested. The
internal syntax of the query is not specified by ICANN, but is usually organized as a
series of key-value pairs separated by ‘&’:
http://www.companyname.com/demos/sample1.htm?language=engb&encoding=utf-8
Queries are used extensively in HTTP addresses to pass parameters from the client to
the server. They are also used in other schemes, for example in mailto: addresses to
specify the subject, body, etc., of the email:
mailto:
myself@http://www.companyname.com?subject=Reminder
Finally, a fragment can be appended to the end of the address, preceded by a ‘#’. The
fragment identifies a secondary resource within the primary resource specified by the
rest of the address. For example,
http://www.companyname.com/demos/sample1.htm#section2
will cause the web browser to scroll to the element within web page sample1.htm that
has an ID) attribute with the value ‘section2.’ In client-server contexts, the client strips
the fragment from the address before it is used to locale a resource on a server.
Fragments are therefore not sent to the server.
Internet Architecture Board (IAB) See INTERNET SOCIETY.
Internet café See CYBERCAFÉ.
Internet Engineering Steering Group (IESG) See INTERNET SOCIETY.
Internet Engineering Task Force (IETF) See INTERNET SOCIETY.
Internet Explorer Microsoft’s web browsing software, first introduced in 1995. The
current version (2014) is IE 11. See also BROWSER.
Internet Message Access Protocol See IMAP.
internet protocol Any *protocol that allows traffic to pass between networks. The most
widely used is *IP, the Internet Protocol. See also INTERNETWORKING.
Internet Protocol Security See IPSEC.
Internet service provider See ISP.
Internet Society (ISOC) A professional membership society that promotes the use and
future development of the Internet. It has individual and organization members all over the
world and is governed by an elected board of trustees. ISOC coordinates various groups
responsible for Internet infrastructure. These include the Internet Engineering Task Force
(IETF), the Internet Architecture Board (IAB), and the Internet Engineering Steering
Group (IESG). The IETF develops technical standards for the Internet. The IAB has
overall responsibility for the architecture and adjudicates on disputes about standards. The
IESG, along with the IAB, reviews standards proposed by the IETF. See also IANA.
http://www.internetsociety.org/
• The Internet Society home page
internetworking Connecting several computer *networks together to form a single
higher-level network, as occurs in the *Internet. There are two basic approaches:
encapsulation and translation. The junctions between networks are called
*gateways, and their functions depend on which internetworking approach is taken.
When encapsulation is used, a new protocol layer (or layers) is defined; this provides
uniform semantics for services such as *datagram packet switching, *email, etc. When a
message is entered into the internetwork, it is wrapped (encapsulated) in a networkspecific protocol (local network datagram headers, or *virtual circuits). The encapsulated
packet is sent over the network to a gateway, which removes the old network-specific
encapsulation, adds a new set of network headers, and sends the packet out on another
network. Eventually the message reaches its destination, where it is consumed.
When protocol translation is used, messages are sent on a local network using the
protocols and conventions of that network. A gateway receives the message and
transforms it into the appropriate message on another network; this may involve
interpreting the message at multiple protocol levels.
The encapsulation approach provides a uniform set of semantics across all networks,
while the translation approach results in unanticipated problems due to subtle differences
between protocols. The encapsulation approach generally requires that new software be
written for all hosts on all networks, while the translation approach requires new software
only in the gateways. See also IP.
interoperability The ability of systems to exchange and make use of information in a
straightforward and useful way; this is enhanced by the use of standards in communication
and data format. For example, a microcomputer conforming to the *SCSI standard can be
connected to any SCSI peripheral device—i.e. many different hard disks, printers, etc. In
software, operating systems that run on different CPUs, and Microsoft *Word’s ability to
read files created using *Excel are both examples of interoperability.
interpolation A simple means of approximating a function f(x) in which the
approximation, say p(x), is constructed by requiring that
Here f(xi) are given values p(xi) that fit exactly at the distinct points xi (compare
SMOOTHING). The value of f can be approximated by p(x) for x ≠ xi. In practice p is often a
polynomial, linear and quadratic polynomials providing the simplest examples. In addition
the idea can be extended to include matching of p′(xi) with f′(xi); this is Hermite
interpolation. The process is also widely used in the construction of many numerical
methods, for example in *numerical integration and *ordinary differential equations. The
interpolating polynomial can be represented in many equivalent forms. For example, when
the xi are equally spaced, the forward and backward difference forms (see DIFFERENCE
EQUATION) are convenient. More commonly, nonequally spaced xi give rise to the
divided difference form, which incorporates successive differences
These are the first divided differences; second divided differences are obtained by a
similar differencing process and so on for higher order differences.
interpretation The process of attaching meanings to the expressions of a *formal
language—or the meanings so attached. Without interpretation, expressions are purely
formal entities, neutral with respect to meaning; this neutrality allows one to separate
syntactic from semantic concerns, and to consider different interpretations for one formal
language. The following are examples: *propositional logic interpretations attach
*Boolean values to primitive symbols; *predicate logic interpretations involve *relations
or *functions over some underlying *set; *algebras similarly attach sets and functions to
the symbols of a *signature. Interpretations are made in the semantics of programming
languages. An interpretation can give completely arbitrary meanings to primitive symbols.
By contrast, a model must also satisfy certain logical sentences.
interpreter A language processor that analyses a small unit of code, for example a
single line, and then carries out the specified actions, rather than producing a machinecode translation to be executed later.
interpretive language A programming language that is designed for or suited to
interpretive implementation. It is typically a language that is designed to be used in an
interactive manner during program development or prototyping; examples include *Basic
and *Rexx.
interprocess communication (IPC) In general any communication between
processes, or more specifically a collection of rules and conventions that govern the
passing of information between processes, especially in a *client/server environment.
interquartile range See MEASURES OF VARIATION.
interrogation The sending of a signal that will initiate a response. A system may
interrogate a peripheral to see if it requires a data transfer. The response is normally a
status byte. When a number of devices are interrogated in a sequence the process is called
*polling.
interrupt A signal to a processor indicating that an *asynchronous event has occurred.
The current sequence of instructions is temporarily suspended (interrupted), and a
sequence appropriate to the interruption is started in its place. Interrupts can be broadly
classified as being associated with one of the following.
(a) Events occurring on peripheral devices. A processor having initiated a transfer on a
peripheral device on behalf of one process may start some other process. When the
transfer terminates, the peripheral device will cause an interrupt. See also INTERRUPT
I/O.
(b) Voluntary events within processes. A process wishing to use the services of the
operating system may use a specific type of interrupt, a supervisor call (SVC), as a
means of notifying the *supervisor.
(c) Involuntary events within processes. A process that attempts an undefined or
prohibited action will cause an interrupt that will notify the supervisor.
(d) Action by operators. An operator wishing to communicate with the supervisor may
cause an interrupt.
(e) Timer interrupts. Many systems incorporate a timer that causes interrupts at fixed
intervals of time as a means of guaranteeing that the supervisor will be entered
periodically.
See also INTERRUPT HANDLER.
interrupt-driven Denoting a *process that is restarted by the occurrence of an
*interrupt. When a process initiates an auxiliary action to be carried out by some other
process (for example, when a *device driver starts the hardware action that will output
data to a disk drive), the initiating process may need to suspend its own activities until
such time as the auxiliary action runs to completion. The initiating process may do this by
running a *loop of instructions that repeatedly tests whether the auxiliary action has been
completed, then loops back to repeat the test if the action is not yet complete. No other
process can run during this time, which is clearly wasteful. In an interrupt-driven process
some other process is allowed to run, and the device responsible for the auxiliary action is
able to signal with an interrupt that it has completed its work. The operating system will
detect the occurrence of an interrupt, determine which process is now free to proceed, and
schedule that process to be restarted. See also POLLING.
interrupt handler (IH) A section of code to which control is transferred when a
processor is interrupted. The interrupt handler then decides on what action should be
taken. For instance, a first level interrupt handler (FLIH) is the part of an operating system
that provides the initial communication between a program or a device and the operating
system. When an interrupt occurs, the current state of the system is stored and the
appropriate FLIH is executed: it leaves a message for the operating system and then
returns, restoring the system to its original state and allowing the original task to continue
as though nothing had happened. The operating system will periodically check for new
messages and perform the appropriate actions.
interrupt I/O A way of controlling input/output activity in which a peripheral or
terminal that needs to make or receive a data transfer sends a signal that causes a program
interrupt to be set. At a time appropriate to the priority level of the I/O interrupt, relative to
the total interrupt system, the processor enters an interrupt service routine (ISR). The
function of the routine will depend upon the system of interrupt levels and priorities that is
implemented in the processor.
In a single-level single-priority system there is only a single I/O interrupt—the logical
OR of all the connected I/O devices. The associated interrupt service routine polls the
peripherals to find the one with the interrupt status set.
In a multilevel single-priority system there is a single interrupt signal line and a number
of device identification lines. When a peripheral raises the common interrupt line it also
sets its unique code on the identification lines. This system is more expensive to
implement but speeds the response.
In a single-level multiple-priority system the interrupt lines of the devices are logically
connected to a single processor interrupt in such a way that an interrupt from a highpriority device masks that of lower-priority devices. The processor polls the devices, in
priority order, to identify the interrupting device.
A multilevel multiple-priority system has both the property of masking interrupts
according to priority and of immediate identification via identification lines.
interrupt mask A means of selectively suppressing interrupts when they occur so that
they can be acted upon at a later time. See also MASKING.
interrupt priority An allocated order of importance to program interrupts. Generally a
system can only respond to one interrupt at a time but the rate of occurrence can be higher
than the rate of servicing. The system control may arrange *interrupt masks to suppress
some types of interrupt if a more important interrupt has just occurred.
interrupt service routine (ISR) See INTERRUPT I/O.
interrupt vector See VECTORED INTERRUPTS.
intersection 1. of sets. The set that results from combining elements common to two
sets S and T, say, usually expressed as
∩ is regarded as an *operation on sets, the intersection operation, which is
*commutative and *associative. Symbolically
When two sets S and T intersect in the empty set, the sets are *disjoint. Since the
intersection operation is associative, it can be extended to deal with the intersection of
several sets. 2. of two graphs, G1 and G2. The graph that has as vertices those vertices
common to G1 and G2 and as edges those edges common to G1 and G2.
intersegment linking The links between the *segments of a (large) program. Where
segments are separately compiled it is necessary to provide a mechanism for transferring
control out of one segment and into another, usually by introducing a specific type of
labelled statement that identifies the point at which a segment can be entered, and whose
value can be made accessible to other segments when the program is link-edited.
interval analysis A general method for analysing the approximation errors that arise
through doing imprecise floating-point arithmetic on digital computers.
interval timer A digital circuit that is used to determine the time interval between an
initial trigger pulse and subsequent *logic states that appear after a predetermined delay.
intranet A private *network, set up by an organization or company, that resembles the
*World Wide Web but which is inaccessible to external users.
intrinsic semiconductor (i-type semiconductor) See SEMICONDUCTOR.
invariant A property that remains TRUE across some transformation or mapping. In the
context of *program correctness proofs, an invariant is an assertion that is associated with
some program element and remains TRUE despite execution of some part of that element.
For example, a loop invariant is an assertion that is attached at some point inside a
program loop, and is TRUE whenever the attachment point is reached on each iteration
around the loop. Similarly a module invariant is associated with a given module, and
each operation provided by the module assumes that the invariant is TRUE whenever the
operation is invoked and leaves the invariant TRUE upon completion.
Note that invariants cannot accurately be described as TRUE AT ALL TIMES since
individual operations may destroy and subsequently restore the invariant condition.
However the invariant is always TRUE between such operations, and therefore provides a
static characterization by which the element can be analysed and understood.
inverse 1. (converse) (of a binary *relation R) A derived relation R−1 such that
where x and y are arbitrary elements of the set to which R applies. The inverse of ‘greater
than’ defined on integers is ‘less than’.
The inverse of a function
(if it exists) is another function, f−1, such that
and
It is not necessary that a function has an inverse function.
Since for each monadic function f a relation R can be introduced such that
then the inverse relation can be defined as
and this always exists. When f−1 exists (i.e. R−1 is itself a function) f is said to be
invertible and f−1 is the inverse (or converse) function. Then, for all x,
To illustrate, if f is a function that maps each wife to her husband and g maps each
husband to his wife, then f and g are inverses of one another. 2. See GROUP. 3. (of a
*conditional P→Q). The statement Q→P.
inverse homomorphic image See HOMOMORPHISM.
inverse matrix For a given n×n matrix of numbers, A, if there is an n×n matrix B for
which
where I denotes the *identity matrix, then B is the inverse matrix of A and A is said to be
invertible with B. If it exists, B is unique and is denoted by A−1.
inverse power method An *iterative method used to calculate *eigenvalues other than
the dominant (largest in value) eigenvalue. See also POWER METHOD.
inverse video Another term for reverse video.
inverted file A *data file in which one or more secondary indexes are used (see
INDEXED FILE).
For each indexed field, the file is said to be inverted with respect to that
field. If secondary indexes exist to all possible fields, the file is said to be fully
inverted. Inversion results in a mapping from content to file locations, which supports
the implementation of fast full-text searches.
inverter (negator) An electronic *logic gate that inverts the signal it receives so that a
logic 1 (true) is converted to logic 0 (false) and vice versa. It therefore implements the
logical *NOT operation. The diagram shows the circuit symbol and *truth table.
Inverter. Inverter circuit symbol and truth table.
invertible matrix See INVERSE MATRIX.
involution operation Any *monadic operation f that satisfies the law
for all a in the domain of f. The law is known as the involution law. It is satisfied by the
elements of a *Boolean algebra where the monadic function is the process of taking a
complement. Taking complements of sets and negation in its different forms also satisfy
the law, as does the principle of *duality as it applies in Boolean algebras.
I/O Abbrev. for input/output.
I/O buffering The process of temporarily storing data that is passing between a
processor and a peripheral. The usual purpose is to smooth out the difference in rates at
which the two devices can handle data.
I/O bus A *bus, or signal route, to which a number of input and output devices can be
connected in parallel.
I/O channel See CHANNEL.
I/O control Either the hardware that controls the transfer of data between main memory
and peripheral devices, or the part of the system software that in turn controls that
hardware.
I/O device Any unit of a system that is the entry and/or exit point for information. Such
devices are the link between the system and its environment. See also INPUT DEVICE,
OUTPUT DEVICE.
I/O file A file used to hold information immediately after input from or immediately
before output to an *I/O device.
I/O instruction One of a class of *instructions that describes the operations concerned
with input and output.
I/O-limited Denoting a process that is either *input-limited, *output-limited, or both.
I/O mapping A technique used primarily in microprocessing whereby peripheral
devices are interfaced to a processor whose architecture supports input and output
instructions. An I/O mapped device is assigned one or more of the processor’s I/O port
addresses, and data and status information are transferred between the processor and the
peripheral device using the processor’s input and output instructions.
ionographic printer A type of *electrostatic printer in which the required
electrostatically charged image is formed by the controlled projection of ions. Once
expected to provide a lower cost than laser printers, ionographic printers are no longer
used.
IOP Abbrev. for I/O processor.
I/O port See PORT.
I/O processor (IOP) A specialized computer that permits autonomous handling of data
between I/O devices and a central computer or the central memory of the computer. It can
be a programmable computer in its own right; in earlier forms, as a *wired-program
computer, it was called a channel controller. See also DIRECT MEMORY ACCESS.
I/O register A *register, perhaps one of several, used during the process of exchanging
data between I/O devices and the main computer. An I/O register often has the ability to
compose smaller units, such as bytes or characters, into units of machine-word size, or to
perform the reverse decomposition.
iOS Trademark The operating system developed by Apple and released in 2007 for its
mobile devices (*iPod, *iPhone, and *iPad). It supports a multitouch user interface with
clear large icons and a wide repertoire of gestures for controlling the devices. Since 2008
it has provided support for Apple’s App Store, which allows applications to be purchased,
downloaded, and installed online. The current version is iOS 8.
I/O supervisor A more specific term than *I/O control, referring almost invariably to
the appropriate software within the operating system.
I/O switching A means of selecting one out of several alternative hardware routes to a
particular peripheral device, with consequent benefits either in system throughput or
reliability.
IP (Internet Protocol) The basic communications protocol in *TCP/IP networks for
relaying data across network boundaries. Its *routing function allows *internetworking,
and is fundamental to the establishment of the Internet.
iPad Trademark A portable touchscreen *tablet marketed by *Apple. It is a natural
extension of the original *iPod, with a larger screen, more sensors (including GPS and
accelerometers), and a user-interface based on multitouch gestures. Owing to its ease of
use, it has come to dominate the tablet marketplace.
IP address (IP number) See TCP/IP.
IPC Abbrev. for interprocess communication.
IP core (intellectual property core) A hardware component library that silicon chip
designers can use to add predesigned functionality to the systems they are developing. The
core is usually protected by either patent or copyright, and it is made available to
designers under licence. IP cores provide functional hardware building blocks that range
from central processor cores to memory and networking hardware.
iPhone Trademark A *smartphone developed by Apple and using the *iOS operating
system. The iPhone is a natural extension of the *iPod, adding in mobile telephony
capability together with such features as GPS and an accelerometer. There is a
*multitouch user interface.
IPL 1. (initial program load) In the context of IBM mainframes, the action of
loading the operating system software into a ‘cold’ machine. 2. (information
processing language) In the early days of research into artificial intelligence the need
for special-purpose languages capable of manipulating *dynamic data structures was
recognized. IPL-I to IPL-V were a series of *list processing languages developed to meet
this need. They have long been obsolete.
IPO (input-process-output) A method for representing system designs in terms of
system functions and relations between system functions. The method provides a simple
diagram notation. Each IPO diagram has a name describing the function to be performed,
usually some reference number, and a substructure of three rectangular boxes, one each
for the input, process, and output for the named function. Relationships between IPO
diagrams are shown as a functional hierarchy with unnamed links between boxes named
and/or referenced.
iPod Trademark A range of portable media players manufactured by *Apple. They were
first released in 2001 as an *MP3 player; newer models have added picture, video, email,
and web browsing capabilities. Noted for their elegant design and ease of use, iPods
inspired the design of similar products and led directly to the development of the *iPhone.
IPSec (Internet Protocol Security) A series of Internet standards describing the
security mechanisms for IP version 4 (IPv4) and IP version 6 (IPv6) and the services that
they provide. IPSec was initially defined in RFC18295 through RFC1829 (1995), which
were then replaced by RFC2401 and others (1998). These were in turn superseded in 2005
by RFC4301 and RFC4309, which constitute the latest version to date. An update for
RFC4301 is contained in RFC6040 (2010).
IPv4 See TCP/IP.
IPv6 See TCP/IP.
IrDa (Infrared Data Association) A nonprofit trade association providing standards
to ensure the quality and interoperability of infrared (IR) hardware. IrDA typically uses
direct infrared, i.e. point-to-point line-of-sight one-to-one communications. IrDa ports are
found in products such as PDAs, printers, desktop adapters, notebooks, and digital
cameras.
IRQ (interrupt request) See INTERRUPT, INTERRUPT I/O.
irradiance The light (strictly the radiant flux) arriving at a point of a surface.
irradiance gradient The rate of change of light arriving at a point on a surface.
irrecoverable error of peripheral storage. See ERROR RATE.
irreducible polynomial See POLYNOMIAL.
irreflexive relation A *relation R defined on a set S and having the property that x R x
does not hold for any x in the set S. Examples are ‘is son of’, defined on the set of people,
and ‘less than’, defined on the integers. Compare REFLEXIVE RELATION.
irreversible encryption A cryptographic process that transforms data
deterministically to a form from which the original data cannot be recovered, even by
those who have full knowledge of the method of encryption. The process may be used to
protect stored *passwords in a system where the password offered is first encrypted before
it is matched against the stored encrypted password. Illegal access to the stored password
therefore does not permit access to the system.
IS Abbrev. for information systems.
ISA See INDUSTRY STANDARD ARCHITECTURE .
ISAM (indexed sequential access method) An *access method for data files,
supporting both *sequential access and indexed access (see INDEXED FILE). *Cobol
contains facilities for defining files to be accessed in this way, and the access method is
implemented by an ISAM utility package. See also VSAM.
ISDN (integrated services digital network) ISDN was developed, primarily by
the *PTTs, as a vehicle for the provision of a single service that carries all forms of
digitally encoded traffic—speech, data, and video—on a common platform. The service is
engineered so that, for the lower data rates, existing speech-quality *local loops can be
used from customers’ premises to an exchange supporting ISDN access. For higher speeds
it is necessary to install higher-grade *bearers, typically an optical fibre. The main service
offering is for *virtual circuits with fast call set up and clear down; the tariff structure is
based on a standing charge plus a usage charge based on aggregated call duration. The
presence of a call-duration component means that beyond a certain point users will find it
more effective to use a permanent leased connection to a standard digital bearer.
Basic-rate ISDN (B/ISDN) is an internationally standardized service that provides
digital access at 64 Kbps, referred to as a B-channel, and can carry one channel of
digitized speech, or data. A D-channel operates at 16 Kbps and is intended primarily for
data. A typical local loop can operate at 144 Kbps, and can support two B-channels and a
D-channel.
Primary-rate ISDN (P/ISDN) is an internationally standardized service that provides
digital access at 1.536 Mbps (1.920 Mbps in Europe), usually presented as 23 B-channels
and one D-channel (30 B-channels and one D-channel in Europe). In addition some
operators are now providing so-called N/ISDN, which offers multiple B-channels with
several options on the number of channels in the range 1–30.
ISDN has been superseded by ADSL for Internet access, but its high quality of service
makes it popular for verbal communication. It remains a core technology in the telephone
network.
ISF Abbrev. for integrated systems factory.
ISO International Organization for Standardization, the body responsible for all
international data-processing standards, and many others. It was founded in 1947 and its
members comprise national standards bodies in over 160 countries. In the field of
computing, it is best known for the ISO9000 series of standards for quality management
and the OSI (open systems interconnection) seven layer model for communications (ISO
ISO7498). It works closely with the *IEC in developing standards in other areas of
hardware. In practice, the ISO does not usually develop standards itself but adopts
standards developed by other standards-making bodies. Thus, for example, ISO9000 is
identical to the British standard BS5750.
ISO-7 An internationally agreed character code (ISO 646-1973) that used 7 bits for each
character. The code included certain positions designated for national use, to allow
different countries to include special characters for letters with diacritical marks, or
currency symbols, etc. The US version was *ASCII.
ISOC Short for Internet Society.
isolation Any technique aimed at the separation of the parts of a system or its database in
order to enhance computer security.
isoline A line consisting of all points with an associated value that is the same.
isolux curves Curves of constant *irradiance over a surface.
isomorphism A *homomorphism that, when viewed as a function, is a *bijection. If
is an isomorphism then the *algebras G and H are said to be isomorphic and so exhibit
the same algebraic properties. Isomorphic trees are *trees that are isomorphic as
directed graphs.
ISO/OSI reference model A general architecture proposed by the International
Standards Organization for communication systems, allowing open systems
interconnection. See SEVEN-LAYER REFERENCE MODEL.
isosurface A surface consisting of all points with an associated value that is the same.
ISP (Internet service provider) An organization that offers users Internet access.
ISPs are usually commercial companies. They often provide email and other information
services as part of the service contract. An alternative name is IAP (Internet access
provider).
ISR 1. (interrupt service routine) See INTERRUPT I/O. 2. Abbrev. for information
storage and retrieval.
IT Abbrev. for information technology.
ITA-5 (International Telegraph Alphabet, Number 5) An alphabet which
resulted from a joint agreement between the *CCITT, now *ITU-T, and the *ISO. It
consisted of a subset of *ISO-7 in which characters that are ‘for national use’ are either
specified or not used at all. The United States adaptation of ITA-5 was *ASCII.
Itanium Trademark See INTEL.
iterated function system (IFS) A large class of deterministic *fractals that may be
partitioned into tiles. Such fractals are called tiling structures. An IFS is a
representation scheme for tiling structures that makes an explicit mapping from the tiling
structure into its tiles.
iterated map A *function
from which is defined the iteration
for any element x in set X. Thus a new function
is created by
where N is the set of natural numbers. The construct that makes F from f is, under certain
circumstances, equivalent with the construct of *primitive recursion. Iterated maps are
used to model the dynamical behaviour of computers (for example, by iterating a next
state function) and physical systems (for example, a neurone firing), and to generate
fractals.
iteration 1. The repetition of a numerical or nonnumerical process where the results
from one or more stages are used to form the input to the next. Generally the recycling of
the process continues until some preset bound is achieved, or the process result is
constantly repeated. This is one of the key ideas used in the design of *numerical methods
(see also ITERATIVE METHODS).
An iterative process is m-stage if the new value is derived from m previous values; it
is m-stage, sequential if the new value depends upon the last m values, i.e.
The iteration is stationary if the function Gk is independent of k, i.e. the new value is
calculated from the old values using the same formula. For example,
is a stationary, one-stage iteration (used for evaluating the square root of a); this is a
particular application of *Newton’s method. The *secant method is a stationary two-stage
sequential iteration. False position is an example of a nonsequential iteration. 2. (of a
formal language). See KLEENE STAR.
iterative deepening A technique used to enhance *depth-first search. The search tree is
first processed to a maximum depth of two, and then the whole process is repeated to a
depth of three, then again to four, and so on to the maximum depth n. Surprisingly, this
costs little more than a single search to depth n (due to the exponential growth rate of the
*branching factor) and guarantees to find a shortest path to the solution. See also
COMBINATORIAL EXPLOSION.
iterative improvement A technique that approaches a solution by progressive
approximation, using the kth approximate solution to find the (k+1)th approximate
solution (see also ITERATION). Examples of methods that rely on iterative improvement are
the Jacobi method and Gauss-Seidel method, used in *numerical analysis.
iterative methods *Numerical methods that are based on or utilize the idea of
*iteration. Such methods are widely used in the solution of many different types of
problem, ranging from linear and nonlinear *optimization to discretized systems of
*partial differential equations. Starting from an initial estimate x0 of the solution x*, the
methods generate a sequence of approximations x0, x1, x2,…. The main objectives are to
design methods that will converge from poor initial estimates and also converge rapidly in
the vicinity of x*. Different ideas may be employed in these two phases. *Newton’s
method, together with its variants, is of fundamental importance for all types of *nonlinear
equations.
For the linear system Ax = b where A is large and perhaps sparse (see SPARSE MATRIX),
or has some other special structure, an important class of iterative methods is obtained by
‘splitting’ A into the form A = M − N. The splitting is such that systems of the form Mz =
d are ‘easy’ to solve, e.g. M could be lower triangular. The iteration then takes the form
where x0 is an approximation to the solution. Convergence for any x0 is guaranteed if all
the eigenvalues (see EIGENVALUE PROBLEMS) of M−1N have modulus less than one. The
objective is to choose splittings for which each step is efficient and the convergence is
rapid.
In *partial differential equations, linear systems arise for which the method of
successive over-relaxation is particularly suitable. This is given by
where A = D + L + U, D consists of the diagonal elements of A, and L, U are respectively
the strictly lower and upper triangular parts. The scalar ω is a free parameter and is chosen
to try to maximize the rate of convergence. For special problems in partial differential
equations, optimal values of ω can be computed. More recently the successive overrelaxation method is an important technique in the *multigrid method.
ITron See TRON.
ITSEC (IT security evaluation criteria) A set of criteria for *security evaluation
used in the UK and Europe. ITSEC was used in the development of the *Common
Criteria.
ITU (International Telecommunication Union) An agency of the United Nations
responsible for international standards concerning telephone and data-transfer systems. In
1992 it was reorganized into three sectors covering radio communication,
telecommunication standardization, and telecommunication development. The
Telecommunication Standardization Sector (ITU-TSS or ITU-T) took over the
responsibilities of the *CCITT.
http://www.itu.int/en/Pages/default.aspx
• The ITU home page
ITU-T See ITU.
jackknife A statistical technique in which, given a data set with n observations, the
analysis is recalculated n times omitting each observation in turn (removed with a
‘jackknife’). The mean and variance of the estimated *parameters in the model may be
compared with those obtained from the full set. The method is related to statistical
*bootstrap estimation.
Jackson method See JSD, JSP.
JANET (Joint Academic Network) The UK network that links all Universities and
Research Council sites. It was formed by amalgamating a number of separate networks,
and formally constituted as a single system in 1984. The name was at one time used for
some other networks, all of which have ceased to operate, and is now used solely for the
UK Academic Network that is operated by JANET(UK). See also SUPERJANET.
Jarrot’s method A method that minimizes a function in one variable using successive
parabolic interpolation. The method may diverge or converge to a maximum unless used
in conjunction with a safe method such as *golden section search.
Java A language for *object-oriented programming, especially applicable to the *World
Wide Web; it was developed from 1990 at Sun Microsystems by P. Naughton. In 2006–07
Sun released its Java source code as *open-source software. The output produced by a
Java compiler is not executable code but an *intermediate code, known as bytecode, that
is designed to translate directly into *native machine code for high performance. Bytecode
can thus be interpreted on any computer on which the Java *run-time system is installed,
allowing cross-platform portability (see PLATFORM, PORTABLE). Allegedly, full security is
provided as no Java program can break out of this run-time environment or access
unprotected system resources. Java is optimized for small networked applications that are
dynamically downloaded across the Internet. These small programs, known as applets,
can react to user input.
http://www.java.com/en/
• Sun’s Java home page
JavaBean A reusable segment of *Java code that can be combined with other segments
to create applications or applets. JavaBeans can, in principle, run on any platform. They
are analogous to *ActiveX controls.
Java Development Kit See JDK.
JavaScript A scripting language designed to add features to web pages. JavaScript code
is embedded in the HTML code and is run by the web browser. JavaScript is loosely based
on *Java and was produced by Netscape and Sun Microsystems. The language has been
standardized by *ECMA International, and its official name is ECMAScript.
https://developer.mozilla.org/en-US/docs/Web/JavaScript
• Mozilla’s documentation for JavaScript
JavaServer Pages (JSP) Trademark A technology from Sun to generate *server-side
*dynamic web pages, introduced in 1999. Its core is an extension to *HTML syntax that
allows program fragments, either written in *Java or using special XML tags, to be
embedded in web page templates; these fragments are executed by a JSP-aware web
server and their results are combined with the template to form the web page sent to the
client. Pages may also be generated by Java classes. See also ACTIVE SERVER PAGES.
Java Virtual Machine (JVM) The *virtual machine on which *Java programs run.
JCL Abbrev. for job-control language.
JDK (Java Development Kit) The original and still most widely used Java *SDK,
from Sun Microsystems.
jewel box A transparent flat plastic box in which CDs are kept.
JIT compiler (just-in-time compiler) A software utility that translates a program
unit into *machine code when it is first called at runtime. The resulting machine code is
then cached for reuse on subsequent calls. JIT compilers have the advantage over
traditional compilers that they are aware of the program’s runtime environment and can
optimize the code they generate accordingly. They are most often used as part of a twostage compilation process. A program’s source code is compiled by a traditional compiler
into a machine-independent *intermediate code, which forms the program image stored on
disk and is loaded when the program is launched. Units of this intermediate code are then
translated on demand by a JIT compiler into appropriate machine code for the *platform
that is executing the program. Thus, the ‘just-in-time’ element is usually confined to the
comparatively fast process of code generation, where it can be used to its greatest
advantage. Programs that use this approach have a small compilation overhead at runtime,
which usually manifests especially when they are first launched; however, this is
acceptable for many types of application and subsequent speeds are equivalent to
traditionally compiled code. Where this overhead is unacceptable, traditional compilation
remains the appropriate technique.
jitter The variations in the arrival time of a supposedly synchronous signal. Jitter may be
caused by the fact that the original source of the signals has variations from its ideal
periodic time, or by variations in the transit time from the signal source to the point at
which the arrival times are actually observed, caused either by variations in the path length
or in the speed at which the signal travels. In practice it is likely that all three effects
contribute, and jitter is nearly always present.
JK flip-flop A clocked flip-flop that has two inputs, J and K, and two outputs Q and Q-.
The truth table for this device is shown in the diagram, along with the circuit symbol. Qn
represents the state of the Q output prior to the current active transition of the clock. The
ambiguous condition of J and K both being true, logic 1, causes the device to ‘toggle’, i.e.
change to the complementary logic state, on active transitions of the clock signal. The JK
flip-flop (together with the D flip-flop) is the most useful type of flip-flop and is available
as a standard integrated-circuit package. See also FLIP-FLOP.
JK flip-flop. Truth table and symbol
job A set of programs and the data to be manipulated by these programs. The word also
means the execution of the set of programs. In its simplest form a job may consist of
loading a binary program and then executing this program using supplied data. In more
complex forms whole series of steps may be taken, certain of which may be contingent on
the outcome of earlier steps. The complete description of a job is written in a *job-control
language.
job-control language (JCL, command language) A language used to write the
sequence of commands that will control the running of a job. In a normal programming
language the objects manipulated and the operations applicable to these objects
correspond to variables within the original problem. In a JCL the objects manipulated are
such things as complete programs, or the input and output streams for these programs.
Most JCLs incorporate features to control the sequence in which actions will be
performed, including some form of conditional statement. The *shell language provided
for users to control a computer can often be used to write shell scripts (*job files) that
can do job control. When written with initial capitals, Job Control Language refers
specifically to the *scripting language developed by IBM for its mainframes.
job file A file containing in some suitable intermediate form one or more jobs awaiting
execution. The jobs are commonly presented as JCL statements that may be preprocessed
so as to eliminate the more blatant errors of syntax or other detectable errors before being
appended to the job file. In the context of *scripting job files are often now referred to as
shell scripts.
job mix The set of jobs actually being executed within a multiprogramming system at
any one time. See SCHEDULER.
job monitoring The control of the jobs running within a system. The term is almost
synonymous with *job scheduling.
Jobs, Steve (Steven Paul Jobs) (1955–2011) US computer pioneer and businessman. He
is credited as the driving force behind significant products that emphasize the tight
integration of functionality, ease of use, and elegant design. Interested in computers from
an early age, Jobs worked briefly for Hewlett-Packard and Atari before founding Apple
Computer (now *Apple Inc.) with Steve Wozniak in 1976 to sell the latter’s design of a
microcomputer circuit board, the Apple I. The Apple II (1977) was a full computer and
made Apple a major player in the emerging microcomputer industry. In 1979, inspired by
a visit to the *Xerox Palo Alto Research Center, Jobs decided that *GUI interfaces
represented the future for microcomputers. This vision was first implemented in the Lisa
(1983), which failed in the market because of its high price; and then, seminally, in the
*Macintosh (1984). A power struggle led to Jobs leaving Apple (1985) and he founded
NeXT Inc., which developed innovative but generally unsuccessful microcomputers. He
returned to Apple when Apple bought NeXT (1996) and soon became CEO, a position he
retained until his death. Jobs also owned the Pixar movie production studio from 1996
until 2006, when he sold it to The Walt Disney Company; he then became a director of
Disney.
job scheduling Selecting jobs for execution. See SCHEDULER.
job step A single identifiable execution of a program on its data within a job. A typical
job step will load a program module and execute it with appropriate data from files,
producing output in files suitable for passing on to the next job step. Each job step will
also produce an indication as to whether or not its outcome was successful.
job stream A sequence of jobs awaiting processing.
Johnson counter A type of digital counter characterized by a unique sequence of
states. The sequence has the effect of ‘filling up’ the counter with 1s from left to right, and
then ‘filling up’ with 0s again. A particularly useful feature is that only one output changes
at each clock pulse, making it simple to decode the individual states into single pulses,
ensuring that there are no spurious outputs or *glitches.
join operator See LATTICE. See also RELATIONAL MODEL.
Josephson junction A junction between two metals that exhibits controllable electron
tunneling properties at cryogenic temperatures. First reported by Brian Josephson in 1962,
it is a superconducting device that can act as an extremely fast electronic switch with very
low power dissipation. See JOSEPHSON TECHNOLOGY.
Josephson technology A computing technology based on *superconductivity and
electron tunnelling between metals. These effects usually occur at extremely low
temperatures, obtained by immersing the whole system in liquid helium or liquid nitrogen.
Logic circuits and nonvolatile memories can be made out of the technology, which has the
potential for ultrafast switching speeds and very low power dissipation (see JOSEPHSON
JUNCTION). This combination of properties offers the potential of extremely fast computers
that can be realized within minimum linear dimensions and that do not have the heat
transfer problems of VLSI silicon devices. As switching speeds become measured in
picoseconds, system linear dimensions must be reduced accordingly. (One nanosecond is
the order of 10 cm on a transmission line.)
journal tape The record produced in an *audit trail. It was once usually a magnetic
tape.
Jovial (Jules’ own version of international algorithmic language) A
programming language designed by Jules Schwarz of System Development Corporation
for military command-and-control systems. It was based on the international algorithmic
language (IAL), otherwise known as Algol 58, suitably extended for its purpose. Jovial
was implemented on a number of military computers.
joystick A device for generating input signals that can cause the cursor or some other
symbol to be moved rapidly about on a display screen in response to hand movements.
Frequently encountered in game playing, where it can emulate an aircraft control column,
it may be fitted with extra buttons for ‘firing weapons’ or similar functions. It is a shaft,
several centimetres in height, that is vertically mounted in a base and can be pulled or
pushed by the fingers in any arbitrary direction. The normal mode of operation is to tilt the
joystick from its upright position to produce the corresponding direction of motion; in
some cases it may respond to finger pressure in the desired direction of cursor motion.
A joystick may often be found controlling industrial equipment such as cranes and
earth-moving equipment.
JPEG 1. (Joint Photographic Expert Group) The committee—a joint CCITT and
ISO/IEC group—that works on the storage and transmission of still images and developed
the ISO 10918 standard (see def. 2). 2. The ISO 10918 standard, Digital Compression and
Coding of Continuous Still Images, developed by JPEG for *image compression of single
digital images. The goal was to develop a general-purpose compression standard to meet
the needs of almost all *continuous-tone still-image applications, reducing either the
bandwidth needed to transmit the image or the amount of memory needed to store it.
In its simplest mode of operation, JPEG can be thought of as compressing an image
broken into 8 by 8 blocks of pixels. Each 8 by 8 block is processed by a pipeline of
processes: *discrete cosine transform to produce a representation of the sample as a
collection of DCT coefficients, which are then quantized and entropy encoded (Huffman
or arithmetic coding options exist). Decoding is the reverse of this process.
In addition, JPEG defines a *lossless compression mode based on a simple predictive
method. There is also a *hierarchical encoding mode of operation that provides a
pyramidal encoding at multiple resolutions, each differing by a factor of two in the
horizontal direction, vertical direction, or both, from its adjacent encoding.
JPEG also makes provision for representing multiple-component images (colour,
spectral bands or channels), where each component consists of a rectangular array of
samples.
See also MPEG.
http://www.w3.org/Graphics/JPEG/itu-t81.pdf
• The JPEG standard (CCITT recommendation T.81)
JSD (Jackson system development) A proprietary structured method for the
analysis and design of data processing and real-time systems, originally devised by
Michael Jackson in 1983. JSD is fully integrated with *JSP (Jackson structured
programming). The JSD notation covers entity structures (similar to *SSADM entity life
histories), and network diagrams connecting entity and process structures. Rules assist the
designer to iteratively structure and sequence the design and to transform and trace
requirements into the software design.
JSP 1. (Jackson structured programming) A proprietary brand of *structured
programming, developed by the British consultant Michael Jackson specifically for use in
*data processing. He observed that the inputs and outputs of programs could be defined in
terms of particular data structures, which are mostly static and easier to define than
programs. He then proposed that programs should be constructed by a systematic method
based on data structure diagrams.
Two main problems arise. First, it may not be possible to combine the separate data
structure diagrams involved in a program because of what are called structure clashes;
this is solved by a form of program decomposition called inversion. Second, error
handling is not accommodated by the simple method, and gives rise to a technique called
backtracking, which is programmed by using *assertions and the notation
posit/quit/admit.
JSP is used in conjunction with Cobol and PL/I. Translators exist to convert from
textual equivalents of Jackson data-structure diagrams into the required target language. It
is claimed that the same code will always be produced from a given data specification. 2.
See JAVASERVER PAGES.
JTMP (Job Transfer and Manipulation Protocol) See RED BOOK.
jukebox Informal name for optical disk library.
jump 1. A departure from the normal sequential execution of program instructions. The
departure is achieved during execution by means of a jump instruction. (Jump
instruction is usually regarded as synonymous with *branch instruction.) A jump may be
*conditional or *unconditional. See also GOTO STATEMENT. 2. (transfer) To undergo
such a departure.
jump instruction (branch instruction) See JUMP.
junction The area of contact between two *semiconductor materials having different
electric properties, or between a semiconductor and a metal. Junctions play a fundamental
role in semiconductor devices. The most frequently used is the p-n junction, which is
formed between n-type and p-type *semiconductors. A p-n junction has rectifying
properties as a result of the potential barrier built up across the junction by the diffusion of
electrons from the n-type to the p-type material.
justify 1. To achieve uniform vertical edges to pages or columns of material printed or
displayed on a screen. Information can be aligned along the left or right margin or centred
between the margins. In the latter case, the space between words and/or letters is increased
until the line fills the distance between the margins. 2. To move the bit pattern stored in a
register so that either the least or most significant bit is at the appropriate end of the
register.
Just-in-time compiler See JIT COMPILER.
JVM Abbrev. for Java Virtual Machine.
K (k) See KILO-.
KADS See KNOWLEDGE ACQUISITION.
Kalman filter A mathematical estimation technique used to predict the behaviour of a
system from observations that contain noise. Used in applications involving tracking,
prediction, or forecasting, it is particularly useful in navigation of autonomous vehicles or
robots.
Kamarkar’s method See LINEAR PROGRAMMING.
Karnaugh map (Veitch diagram) A graphical means for representing *Boolean
expressions so that the manner in which they can be simplified or minimized is made
apparent. It may be regarded as a pictorial representation of a *truth table or as an
extension of the *Venn diagram. The method was proposed by E. W. Veitch and modified
slightly by M. Karnaugh. The Karnaugh maps for expressions involving one, two, three,
and four variables are shown in the diagram. When n = 2, for instance, the 00 square
represents the term a′b′ (where ′ denotes negation), the 11 square represents ab, and so on.
Terms that differ in precisely one variable can be combined. Such terms will appear as
adjacent squares on a Karnaugh map and so can readily be identified. For example, the
terms abc and abc′ can be combined since
These two terms should each occupy one square on the n = 3 map and appear side by side,
i.e. share a common edge. However, so too should the a′b′c and the ab′c squares. This
complication can be overcome by stipulating that the two edges marked with dashes
should be identified or joined together, i.e. the Karnaugh map for n = 3 should be drawn
on one side of a ring of paper. When n = 4 the situation is even more complex: the two
edges marked with dashes are identified, as are the dotted edges. The map can then be
viewed as drawn on the outside of a torus.
Karnaugh maps are useful for expressions of perhaps up to six variables. When n > 6,
the maps become unwieldy and too complex. Alternative methods of simplification, such
as the Quine–McCluskey algorithm, are then preferable.
Karnaugh maps.
kB (KB, Kb) Symbols for kilobyte. See BYTE, KILO-.
Kbps (kilobits per second, i.e. usually 1000 bits per second) See BPS, KILO-.
KBS Abbrev. for knowledge-based system.
Kbyte (kilobyte) See BYTE, KILO-.
K-complexity See KOLMOGOROV COMPLEXITY.
k-connectivity See CONNECTEDNESS, CONNECTIVITY.
KDC Abbrev. for key distribution centre (in *data security).
KDD (knowledge discovery in databases) See DATA MINING.
Kerberos A secure method of authenticating users on a computer network, developed by
MIT.
Kermit A protocol and set of utility programs that allows a computer to support terminal
access across a network, and to carry out file transfers.
kernel The lowest layer into which a large operating system is sub divided, each layer
dealing with some aspect of the system hardware. The kernel is responsible for allocating
hardware resources to the processes that make up the operating system and to the
programs running under the operating system. Formal verification of the kernel is usually
necessary for systems professing high *integrity or *security. See SECURITY KERNEL.
Nucleus is a near-synonym for kernel and tends to be used where the effects are
achieved by a mixture of normal programming and microcoding. The microprogram is
written in such a way as to complement the functions achieved by the normal code, with a
gain in running speed.
kernel field Another name for base field. See POLYNOMIAL.
kerning In printing, the adjustment of the spacing between adjacent characters, using the
natural slope in the letters, in order to improve the text appearance. Kerning is used in the
more advanced desktop publishing applications and is of particular value when using italic
fonts.
Kerning. Letter that are kerned (top) and unkerned (bottom)
key 1. A value used to identify a member of a set. Usually the elements of the set are
records (n-tuples), in which one of the fields holds the key. Variations allow multiple key
fields or any field to be used as a key. 2. A value used to establish authority to access
particular information. See LOCKS AND KEYS. 3. A value used as a basis for encryption.
See CRYPTOGRAPHY. 4. See KEYBOARD.
keyboard An array of keys that may be captioned buttons or marked areas on a plane,
each of which can cause a discrete signal or action when pressed with a finger. In current
systems the operation of the key is detected and turned into a coded electrical signal; in
the past mechanical coupling was used to allow depression of keys to directly punch a
pattern of holes in a punch card or paper tape, as in a keypunch, or to print a character.
Computer keyboards consist of the standard typewriter layout—the QWERTY keyboard
(in the English variants)—plus some additional keys. These can include a control key,
function keys, arrow keys, and a numeric keypad. The control key operates in the
same way as a shift key but allows noncharacter information to be sent to the computer;
the function keys send not one but a whole sequence of characters to the computer at a
time, and can often be programmed by the user to send commonly used sequences; the
*arrow keys are used, for example, to move the screen cursor to a new position. Modern
keyboards often include additional ‘shift’ keys, e.g. Alt, Function, Alt Gr, and Window
keys, which operate in conjunction with other keys to produce specific effects.
The numeric *keypad duplicates the normal typewriter number keys and speeds up the
entry of numerical data, the layout following a typical calculator keypad. The keypad may
be switched to provide numeric or cursor keys by means of the numlock key.
keyboard encoder See ENCODER.
key frame Any of the main representations of a scene between which intermediate
frames are interpolated to produce the sequence of frames necessary for an animation.
keypad A limited but compact form of keyboard, sometimes hand-held, with a small
number, often 12 or 16, of captioned buttons or pressure-sensitive areas on a plane. It is
used in conjunction with data collection equipment or as a means of entering limited
information, such as a personal identification number (PIN).
keypunch See KEYBOARD.
keyring drive See USB DRIVE.
key sorting A form of *address table sorting in which the sortkey is placed with the
addresses.
keyword A symbol in a programming language that has a special meaning for the
*compiler or *interpreter. For example, keywords in Basic include IF, THEN, PRINT. The
keywords guide the analysis of the language, and in a simple language each keyword
causes activation of a specific routine in the language processor. See also KEYWORD
PARAMETER, RESERVED WORD.
keyword parameter A parameter of a subroutine, procedure, or macro that is
identified by name rather than by its position in the parameter list, e.g.
Kildall, Gary (Arlen) (1942–94) US computer scientist and microcomputer pioneer.
After graduating from the University of Washington, Kildall became interested in the
emerging technology of microprocessors while teaching at the Naval Postgraduate School
at Monterey. In 1973 he developed both the first microprocessor programming language
*PL/M for Intel and the microcomputer operating system *CP/M. He founded Digital
Research, Inc., with his wife to market the latter, which by 1980 had become the most de
facto standard operating system for the 8080 and Z80 processors. However, in that year
Kildall famously failed to secure the contract to provide the operating system for the
forthcoming IBM PC in circumstances that are still unclear. Kildall continued to develop
new products, but Digital Research’s dominance ended following the IBM PC’s success
with *MS-DOS and it was bought by Novell in 1991.
kill file Informal In *newsreader applications, a system that identifies and discards
messages, typically on the basis of who sent them, or keywords relating to the subject
matter.
kilo- A prefix indicating a multiple of 103 (1000), as in kilogram and kilowatt; the symbol
for kilo- should then be k (not K), as in kg and kW. When the binary number system is
used in a structure or process (as in semiconductor RAM or ROM), kilo- then indicates a
multiple of 210 (1024), as in kilobyte and kilobit; the symbols k and K are both commonly
used, as in kB or KB (symbols for kilobyte). The context usually clarifies which meaning
of kilo- is intended, although being numerically close the meanings are often considered
more or less equivalent. However, special care should be taken to disambiguate the
intended meaning of this prefix when telecommunications and computing are both at
issue. See also BINARY PREFIXES.
Kilostream Trademark British Telecom’s lower-speed digital leased-circuit service.
Kilostream circuits are available as a fully digital service, operating at 2.4, 4.8, 9.6, 19.2,
48, and 64 Kbps. There is also a service called Kilostream N, which offers speeds in
preset multiples of 64 Kbps up to 1.024 Mbps. British Telecom has announced its
intention of ending support for the service on 30 March 2018. Kilostream is also available
as an international service. See also MEGASTREAM.
Klatt synthesizer A speech synthesizer written by Dennis Klatt at MIT. See also
SPEECH SYNTHESIS.
Kleene closure Another name for Kleene star.
Kleene-plus See KLEENE STAR.
Kleene star (star closure, Kleene closure, iteration) An operation on *formal
languages that gives for any language L the language L*, defined by
where Λ is the empty word. Thus a *word w is in L* if and only if it has the form
with each wi in L, i.e. is a *concatenation of words in L.
The Kleene-plus (L+) of L, is defined by
Thus L+ comprises the nonempty strings of L*.
Kleene’s theorem 1. on *regular expressions. A theorem in *formal language theory
proposed by Stephen Kleene and stating that a language is definable by a regular
expression if and only if it is recognized by a *finite-state automaton. A regular expression
equivalent to a finite-state automaton can be found by solving a set of simultaneous linear
equations (see ARDEN’S RULE, LINEAR GRAMMAR). Regular expressions were first used to
characterize the power of certain *neural networks. 2. on fixed points. See FIXED-POINT
THEOREM.
k lookahead See LL PARSING, LR PARSING.
kludge Informal An inelegant but effective mechanism (software and/or hardware).
KMP algorithm Short for Knuth-Morris-Pratt algorithm.
knapsack problem A common example of an integer programming problem: a
knapsack has volume V and there are an unlimited number of each of N different items.
For i = 1,…,N one unit of item i has known volume Vi and known value mi. Integer
numbers of the various items may be put into the knapsack and the objective is to pack as
much value as possible into the knapsack without exceeding the total volume V.
knot 1. An intersection of arcs in a *graph that is not a *planar graph. Where the arcs
represent linear code sequences in a program, and the nodes represent branch points in the
program, then the presence and frequency of knots is a measure of the *complexity of the
program (see CONTROL-FLOW GRAPH). 2. See SPLINE.
knowledge Information that can be expressed as a set of facts and is known to an *agent
or program. Knowledge can be distinguished from *information or *data by its
embodiment in an agent; for example, an agent might receive information that increases
its knowledge.
knowledge acquisition A range of techniques that are used to obtain *domain
knowledge about an application for the purpose of constructing an *expert system.
Knowledge acquisition covers all forms of knowledge and any methods by which they
may be obtained. Various aids have been developed, such as KADS, a major system that
consists of both a methodology and a set of tools. Knowledge elicitation is a subfield
of knowledge acquisition concerned with systematic procedures for gleaning knowledge
from human experts. Many tools are borrowed from psychology; for example, repertory
grids are used to help draw out discriminations between classes of data items.
knowledge base A collection of *knowledge, usually relevant to a particular
application domain, that has been formalized in an appropriate scheme to support
reasoning processes. *Rule-based formalisms are often used but there are other methods of
*knowledge representation. Knowledge bases are different from *databases in that (a) they
not only store data but facilitate modification, revision, and other forms of internal
manipulation of the knowledge, (b) they are also able to handle knowledge that is
incomplete (see COMPLETENESS), *inconsistent, and *uncertain, and (c) they may use
imperative as well as declarative forms of knowledge.
knowledge-based system (KBS) A computer system that uses a *knowledge base to
support reasoning processes in order to solve an application problem. *Expert systems are
examples, but knowledge-based systems can take many other forms and can be found in
many areas of *artificial intelligence.
knowledge discovery in databases (KDD) See DATA MINING.
knowledge elicitation See KNOWLEDGE ACQUISITION.
knowledge engineering The branch of artificial intelligence that is concerned with
building *expert systems.
knowledge engineering toolkits Large software packages that provide a range of
facilities for the construction of and experimentation with different *knowledge-based
systems. A range of *knowledge representation devices and different *inference engines
are usually included. Using a knowledge engineering toolkit, elaborate systems of more
sophistication and power than conventional *expert systems can be built, but considerable
initial learning is required to master the facilities.
knowledge representation The data-structure techniques and organizing notations
that are used in *artificial intelligence. These include *semantic networks, *frames,
*logic, production rules, and *conceptual graphs.
Knuth, Donald E. (Donald Ervin Knuth) (1938– ) US computer scientist. Graduating
with a doctorate in mathematics in 1963, Knuth was already working with computers.
Professor Emeritus at Stanford University, his many contributions to computer science
include *attribute grammar, *LR parsing, algorithms such as the *Knuth–Bendix
algorithm and the *Knuth–Morris–Pratt algorithm, the monumental The Art of Computer
Programming, and the *TeX typesetting and *METAFONT typeface design systems.
Knuth–Bendix algorithm A partial algorithm for turning a finite *term rewriting
system (e.g. derived from a set of equations) into an equivalent complete set of rewrite
rules. The algorithm, however, does not always return an input. The process is relevant to
the implementation of specification languages, such as OBJ, that allow *equational
specifications to be written and executed symbolically.
Knuth–Morris–Pratt algorithm (KMP algorithm) A method of finding patterns,
developed by D. E. *Knuth, J. H. Morris, and V. R. Pratt. It can be used for example to
find a certain pattern within a list of letters: the first letter in the list is stored in an array
and subsequent letters added until the pattern is no longer followed or is completed; on
failure the next letter is chosen and so on.
Kolmogorov complexity (K-complexity) A theory of computational *complexity
based on the amount of information contained within entities. It was developed by the
Russian mathematician Andrei Kolmogorov.
Königsberg bridges problem A problem solved by Euler in about 1736 for the
inhabitants of Königsberg (now Kaliningrad). Two islands in a river are connected to each
other by one bridge and to the banks by six other bridges; one island has two bridges from
the left bank and two from the right bank while the other island has one bridge from the
left bank and one from the right bank. The problem is whether or not it is possible to
follow a circular walk starting and finishing at the same river bank and crossing each
bridge precisely once. See EULER CYCLE.
Kraft’s inequality When an instantaneously decodable code is to be formed from an
alphabet of q letters, with the ith codeword being λi letters in length, Kraft’s inequality
is a necessary and sufficient condition for such a code to be constructible with n
codewords. In a code with no codewords remaining for allocation, the equality sign
operates. See also PREFIX CODES.
kriging A statistical technique for interpolating between points in space, developed
originally in the mining industry for locating profitable minerals. The analysis involves
modelling the relationship between deviations from the trend at neighbouring points in
space in order to find the best predictor at any point that was not sampled. The
*covariance function may depend both on distance and on orientation.
Kronrod’s algorithm (four Russians algorithm) A method of Boolean matrix
multiplication developed by M. A. Kronrod. It saves computational time and storage space
by doing computations in a strict order.
Kruskal’s algorithm A method of finding the minimum-cost *spanning tree of a
weighted undirected *graph, proposed by J. B. Kruskal Jnr (1956).
label 1. (tape label, volume label) A record at the very start of a magnetic tape, holding
the identity and other characteristic information about the tape. Labels are written by the
utility program, and checked at run time by the operating system to ensure that the
specified tape is the one that has been loaded. A tape label only holds information about
the physical tape, which remains constant irrespective of the file(s) held on the tape.
Labels are thus distinct from file *headers, which precede every file on a tape.
Magnetic and optical disks normally have similar labels, though there is no commonly
accepted term for them. 2. (statement label) A numeric or alphanumeric identifier
associated with a line or statement in a program and used in other parts of the program to
refer to that statement.
lambda calculus (λ-calculus) A formalism for representing functions and ways of
combining functions, invented around 1930 by the logician Alonzo Church. The following
are examples of λ-expressions:
λx.x denotes the identity function, which simply returns its argument;
λx.c denotes the constant function, which always returns the constant c regardless of
its argument;
λx.f(f(x)) denotes the composition of the function f with itself, i.e. the function that, for
any argument x, returns f(f(x)).
Much of the power of the notation derives from the ability to represent higher-order
functions. For example,
denotes the (higher-order) function that, when applied to a function f, returns the function
obtained by composing f with itself.
As well as a notation, the λ-calculus comprises rules for reducing λ-expressions to
equivalent ones. The most important is the rule of β-reduction, by which an expression of
the form
reduces to e1 with all *free occurrences of x replaced by e2. For example:
reduces to
As a second example, involving a functional variable, the expression
reduces to
and hence to
In theoretical terms, the formalism of λ-calculus can be shown to be equivalent in
expressive power to that of *Turing machines. It has a special role in the study of
programming languages: one can point to its influence on the design of functional
languages such as J. McCarthy’s Lisp; to P. Landin’s reduction of Algol 60 to λ-calculus,
and to D. Scott’s construction of a set-theory meaning for the full unrestricted λ-calculus
—a construction that ushered in the theory of *domains in the *denotational semantics of
programming languages.
lambda expression (λ-expression) An expression in the *lambda calculus.
lambda notation Informal The notation devised for defining nameless functions
(*lambda expressions) in the *lambda calculus.
Lambert’s law The law stating that *diffusely reflected and transmitted light is
scattered in all radiated directions with equal intensity and that this intensity is
proportional to three values: the intensity of the incident light, the reflectance of the
surface, and the cosine of the angle between the surface normal and the direction of the
incident light. In computer graphics the law is particularly useful for diffuse surfaces such
as chalk.
LAMP (*Linux/*Apache/*MySQL/*PHP) A very common combination of operating
system, web server, database language, and programming language. Variants include
WAMP (using Windows as the operating system instead of Linux) and MAMP (using Mac
OS X instead of Linux).
LAN Acronym for local area network.
landscape An orientation of a page in which the longer side is at the top. Compare
PORTRAIT.
language See FORMAL LANGUAGE, PROGRAMMING LANGUAGE, SPECIFICATION
LANGUAGE.
language concatenation See CONCATENATION.
language construct A syntactic structure or set of structures in a language to express a
particular class of operations. The term is often used as a synonym for *control structure.
LAP (link access procedure) The second-layer (data link layer) protocol suite that is
a subset of *HDLC and is used in X25-based networks in setting up channels between
*DTE and *DCE. An alternative protocol, LAP-B, developed after LAP, allows the
DTE/DCE interface to operate in ‘balanced mode’.
Laplacian operator A high-pass filter that is used in *image processing to detect
edges in an intensity-gradient image (see EDGE DETECTOR). Mathematically, the operator
is based on the two-dimensional sum of the second derivatives of the image convolved
with a Gaussian curve. The second derivatives detect rapid intensity changes and the
Gaussian smooths out the effects of noise. The operator shows an interesting
correspondence with biological detectors.
laptop computer (notebook) A small personal computer that can be simply carried
around by one person and used in transit from internal battery power. Laptops typically
have all the features of a *desktop model; the flat display screen folds over the keyboard
when not in use. They are constructed from components chosen for their lightness, small
size, and low power consumption. These tend to make laptops more expensive than their
desktop equivalents. See also NOTEBOOK, PALMTOP COMPUTER.
large-scale integration See INTEGRATED CIRCUIT, LSI.
laser A light source with special properties (principally spectral purity, narrow output
beam, and ease of modulation) that make it particularly useful in optical storage devices
and some kinds of printer, and also in *fibre optics communication systems.
laserdisk Colloquially, an *optical disk; more specifically, a particular form of read-only
optical disk using analogue rather than digital technology.
laser printer An *electrophotographic printer in which a laser is used as the light
source; the laser beam is modulated to produce the image. The term is also often used to
refer to *page printers of this type that use *LEDs or *LCDs as the active element. This
type of printer is now very widely used as an office printer, frequently shared among a
number of users. Most laser printers use single sheets of paper or transparent media and
provide media-handling facilities; some can handle 50 pages per minute. Laser printers
produce a very high standard of print. The higher-end range of laser printers now offers
resolutions of 1200 dots per inch. Colour laser printers are also available.
last in first out See LIFO.
latch An electronic device that can store temporarily a single bit of data. It can be
considered as an extension of a simple *flip-flop. The storage is controlled by a *clock
signal, a given transition of which fixes the contents of the latch at the current value of its
input. The contents will remain fixed until the next transition of the clock.
latch-up A state in which a circuit ceases to function normally and remains in a fixed
state. It is usually caused when input or output signals are permitted to exceed the power
supply limits. Latch-up can sometimes be catastrophic and the circuit destroyed.
latency 1. A measure of how long it takes for a given job or piece of work to be
completed, or for a message to make its way from source to destination. See also
THROUGHPUT. 2. The time taken for the start of a given sector of data on a storage disk to
reach the read/write head. The time is measured from the instant that the head settles at the
track within which the sector lies. The average latency is the time for half a revolution of
the disk. See also ACCESS TIME, SEEK TIME.
LaTeX A macro package built on top of *TeX. LaTeX implements a form of descriptive
markup system, in which the user specifies the function of each piece of text (heading,
paragraph, footnote, etc.) but not its printed appearance. The actual layout is defined in a
collection of style files, thus ensuring uniformity of appearance and conformity to house
style. LaTeX hides much of the complication of TeX from the user, and is widely used in
the academic community as a way of producing typeset research papers and reports.
Latin alphabet One of several *character sets based on the letters used for writing
Latin. (In contrast with Latin, these alphabets distinguish I from J, and U from V.) They,
along with sets in Cyrillic, Arabic, Greek, and Hebrew, are included in ISO 8859:
Information Processing—8-bit single-byte coded graphic character sets. These have all
been superseded by *Unicode on modern computers.
lattice An *algebraic structure, such as a *Boolean algebra, in which there are two
*dyadic operations that are both *commutative and *associative and satisfy the
*absorption and *idempotent laws. The two dyadic operators, denoted by ∧ and ∨, are
called the meet and the join respectively.
An alternative but equivalent view of a lattice is as a set L on which there is a *partial
ordering defined. Further, every pair of elements has both a greatest *lower bound and a
least *upper bound. The least upper bound of {x,y} can be denoted by x ∨ y and is referred
to as the join of x and y. The greatest lower bound can be denoted by x ∧ y and is called
the meet of x and y. It can then be shown that these operations satisfy the properties
mentioned in the earlier definition, since a partial ordering ≤ can be introduced by defining
Lattices in the form of Boolean algebras play a very important role in much of the theory
and mathematical ideas underlying computer science. Lattices are also basic to much of
the approximation theory underlying the ideas of *denotational semantics.
layer in *open systems interconnection (OSI). See SEVEN-LAYER REFERENCE MODEL.
lazy evaluation An execution mechanism in which an object is evaluated only at the
time when, and to the extent that, it is needed. This allows programs to manipulate objects,
such as lengthy or infinite lists, whose evaluation would otherwise be needlessly timeconsuming or indeed fail to terminate at all. An illustration is the problem of comparing
two *trees, t1 and t2, to test whether the leaves of t1, read from left to right, form the same
list as the leaves of t2. The simplest solution is first to construct the two leaf-lists and then
to compare them element by element. Lazy evaluation allows this program to interleave
the construction of the two leaf-lists and then test for equality. The program can then
terminate as soon as the lists are found to differ, without having unnecessarily constructed
both lists in toto. See also STRICTNESS.
LBA Abbrev. for linear-bounded automaton.
LCA (logic cell array) A form of *PAL in which the programming information is held
in a SIPO (serial in, parallel out) *shift register, so that the mode of operation of the
device can be read into it when the system of which it is a part is started up. The contents
of the register, and therefore the mode of operation of the LCA, remain unchanged while
the system is running.
LCC Abbrev. for leadless chip carrier.
LCD (liquid-crystal display) A *flat-panel display that is used with many
microcomputers. LCDs are also used in other digital instruments. Early LCDs suffered
from poor contrast between light and dark combined with narrow viewing angles. Several
different forms of construction now offer improved viewing characteristics.
LCD technology is based on liquid crystals. These are common organic compounds
that, between specific temperature limits, change their crystal structure to allow them to
flow like a liquid. Supertwisted nematic displays use rod-shaped (nematic) crystals.
The crystals are organized between two transparent polarized layers with 90° between the
directions of polarization. The crystals form a spiral between the two layers so that light
can be rotated and passed through the material unchanged. When an electric field is
applied, the orientation of the crystals is disturbed thus stopping the light passing.
Controlling the electric field applied to each pixel results in an image. It is possible to
switch modes up to 120 hertz. In consequence, by shuttering white light through coloured
dye filters it is possible to turn a monochrome display into a colour one. The same
shuttering system can be used to generate stereo images.
Supertwisted nematic displays may be passive-matrix LCDs, containing no active
(switching) electronic components. Nowadays much higher performance, especially for
colour displays, is obtained from active-matrix LCDs. In this construction, a *thinfilm transistor is added to each *pixel to ensure an adequate and constant drive is
maintained between refresh cycles. This gives a more uniform display and wider viewing
angle, though in this respect it has some way to go to match the CRT. Nevertheless, as
prices have fallen in recent years, thin-film transistor LCD displays have become very
popular and have superseded CRTs on new systems.
LCM Abbrev. for least common multiple.
LCSAJ (linear code sequence and jump) A section of program code that will
always be executed in sequence and followed by a particular sequence. See also
CONTROL-FLOW GRAPH.
LDAP (Lightweight Directory Access Protocol) An application layer protocol
(see SEVEN-LAYER REFERENCE MODEL) to query and control X500 *directory services on
a *TCP/IP network. It was developed in the early 1990s as an alternative to the X500
Directory Access Protocol, being ‘lightweight’ in the sense that it that did not require an
*open systems interconnection protocol stack. The current version is LDAPv3, defined in
RFC 4510.
http://tools.ietf.org/html/rfc4511
• The LDAP specification
LDU decomposition See LU DECOMPOSITION.
leader A blank section of a tape, preceding recorded information, that is needed for
threading the tape into a reading device.
leading The distance between two lines of text in a document. Increasing the leading
increases the line spacing and generally improves readability. In most word-processing
and desktop-publishing applications, the leading is measured from the baseline of one line
to the baseline of the next line. So if one has 10 point text with a 12 point leading, the
distance from baseline to baseline is 12 points. This meaning is different from that in
traditional printing usage, where the leading was the extra space between lines. So, in the
example above, the leading would be 2 points (12 points would be the body size and the
type would be described as ‘10 on 12pt’ or ‘10pt with 2pt leading’). The term comes from
the old printing technique of using metal (lead) type to increase the line spacing by placing
thin strips of lead between the rows of type.
leading edge (of a pulse) See PULSE.
leadless chip carrier (LCC) A form of *integrated circuit packaging where
connections to the device are not made by means of pins extending beneath the device (as
for instance in *DIPs), but instead by means of studs arranged around the package’s
periphery. This means that the device can be inserted into a socket mounted on a PCB or
mounted directly.
leaf Short for leaf node. See also TREE.
leaf node (terminal node, tip node, external node) Any node of a *tree with no
descendants and hence of *degree zero.
learning See MACHINE LEARNING.
leased line A dedicated telephone/data line that is leased from the *PTT and is
permanently connected between two points.
least common multiple (LCM) of two integers m and n. The smallest integer p such
that m divides p exactly and n divides p exactly. For example, the LCM of 9 and 6 is 18.
least fixed point See FIXED-POINT THEOREM.
least privilege A principle of software design that programs and systems should be split
into components, each of which has only those operating system privileges it needs to
perform its proper functions. This reduces the damage that can be caused by a bug or by
vulnerability in one component. Least privilege is often enforced using process ownership
and file permissions.
least significant character In a *string where the position of a character determines
its significance, the character at the end of least significance. Such a string is normally
written with the least significant position on the right. For example, the least significant
digit (LSD) and the least significant bit (LSB) contribute the smallest quantity to the value
of a digital or binary number.
least squares, method of A method of estimating *parameters in a model by
minimizing the sum of squares of differences between observed and theoretical values of a
variable. If
is a sample of n observations, and μi is a set of theoretical values corresponding to a set of
unknown parameters, θ, and a set of known associated observations, xi, then the criterion
to be minimized with respect to variations in θ is the sum of squares,
The values of θ at which the minimum occurs are known as least squares estimates.
The method of weighted least squares is used when each observation is associated
with a weight, wi (see MEASURES OF LOCATION), and the criterion to be minimized is
See also LIKELIHOOD, REGRESSION ANALYSIS.
least squares approximation See APPROXIMATION THEORY.
least upper bound See UPPER BOUND.
LED display A device used in some instruments to display numerical and alphabetical
characters. It consists of an array of light-emitting diodes, LEDs, which are
semiconductor diodes that emit light when a *forward bias is applied. LEDs are small,
cheap, and have relatively low current and voltage requirements and long life. Their power
consumption is, however, significantly higher than that of *LCDs. In an LED display
these diodes are arranged in such a way that by selectively illuminating individual ones in
the array, simple characters are formed on the display. Seven diodes suffice to display the
digits and some letters.
Single LEDs are used almost universally where single on/off indicators are needed.
Most colours are now available and high efficiency diodes are replacing incandescent
lamps in some applications.
Lee distance (Lee metric) In the theory of *block codes intended for error detection or
error correction, a distance measure analogous to the *Hamming distance but modelling
more accurately a *linear q-ary channel, such as the phase-modulated carrier used in
*modems. When q = 2 or q = 3, the Lee and Hamming distances are the same.
left-linear grammar See LINEAR GRAMMAR.
left shift See SHIFT.
left subtree See BINARY TREE.
left-to-right precedence A simple form of *precedence hierarchy, used in APL, in
which operators are taken in the order in which they appear in the expression. Each
operator takes everything to the right as its right operand, thus
evaluates as
Note that, paradoxically, left-to-right precedence actually causes operators to be applied in
right-to-left sequence.
legacy applications Applications that are still in use though written using languages or
for operating systems that are no longer current.
legacy networks Networks that use earlier technologies, and that almost any
organization using networks for more than a year or so will have in operation. The major
problem facing those with one or possibly several legacy networks is in trying to decide
whether to design a new network so as to interwork with the legacy network, or to replace
the legacy network at the same time as installing the new network. The interworking
option will increase the complexity of the new network and tend to reduce its
functionality. The replacement option will increase the overall cost of the new network.
legged robots Mobile robot systems that locomote by means of legs rather than wheels.
This includes multilegged systems similar to insects with six or eight legs, systems with
two legs (bipeds), and even one leg, as in the hopping machines developed at MIT. Such
research produces results on dynamics, mobility, and active balance. See also MOBILE
ROBOTICS.
Leibniz, Gottfried Wilhelm (1646–1716) German philosopher and mathematician.
One of the supreme polymath intellects of the 17th century, his significance to the future
science of computing was his exploration of binary numbers and arithmetic, which
interested him from an early age and was fully laid out in his Explication de l’arithmétique
binaire (1703). His many other contributions to knowledge include the philosophical
theory of monads and the invention of calculus as it is used today (1675, published in
1684; Isaac Newton, who had independently discovered calculus earlier but did not
publish until later, falsely contended that Leibniz had stolen ideas from his unpublished
notes).
Lempel–Ziv compaction A *data compaction method that uses a *VTVL or *VTFL
code. It uses *statistical compaction, and is particularly suited to adaptive implementation.
Lempel–Ziv–Welch compaction (LZW compaction) An improved form of
*Lempel–Ziv *data compaction. It is provided, for example, as a standard tool in the
*UNIX operating system. Typically, it achieves compaction ratios approaching 2 for
English text, more than 2 for tabulated data text and for source programs, and about 1.5
for binary object programs. Binary data in *floating-point notation is almost
incompressible owing to the near-random nature of the *mantissas.
length 1. (of a sequence) The *cardinality of the domain of the *sequence. Thus the
sequence
has length n. 2. (of a string) The number of elements in the *string. 3. (of a vector) The
number of elements in the *vector.
length-increasing grammar See CONTEXT-SENSITIVE GRAMMAR.
Lenovo Group Ltd A Chinese multinational computer technology company. It was
founded in 1984 and was known as Legend until 2003. In 2005 Lenovo acquired IBM’s
personal computer business and it has recently (2014) agreed to acquire Motorola
Mobility from Google, Inc. Lenovo is now the world’s largest PC company with
operations in some 60 countries. Other products include smartphones, tablet computers,
and servers.
LEO A line of computers, and a company, of historic importance in the British
computing industry. J. Lyons & Co (a large firm in the catering industry) initiated in 1947
a project to build a computer to mechanize clerical functions in their own offices. (This
decision was almost simultaneous with a similar decision in the US by Eckert and
Mauchly, which led to *UNIVAC 1.) The project was led by T. R. Thompson, a
mathematician, and J. Pinkerton, an electrical engineer. The machine they built, LEO
(Lyons Electronic Office), was fully operational at the end of 1953.
In 1954, Leo Computers Limited was founded. The company traded until 1963, when it
was merged with the computing division of English Electric. During that time it marketed
the LEO III, an extremely advanced commercial machine for its time. See also ICL.
letter (in formal language theory) See WORD.
letter distribution See PARIKH’S THEOREM.
letter-equivalent languages See PARIKH’S THEOREM.
level of a node in a tree. A numerical value equal to one greater than the *depth of the
same node. The level of the root node is thus one; the level of any other node is one
greater than that of its parent. In some texts, the term level is used as a synonym for depth.
leverage point See INFLUENCE.
LEX A lexical analyser generator for the *UNIX system. LEX automatically generates a
*lexical analyser, given the syntactic rules describing the *tokens of a language. It is
usually used in conjunction with the compiler generator *YACC.
lexical analyser (scanner) The part of a *compiler that breaks up the input into
meaningful units, e.g. names, constants, reserved words, operators. The lexical analyser
will also remove redundant characters, e.g. spaces, and may deal with character-set
mappings, e.g. replacing upper-case letters by the equivalent lower-case letters. The units
recognized by the lexical analyser are called tokens, and are output in some conveniently
coded form for subsequent processing by the compiler.
lexicographic order The order of words in a dictionary, given the order of letters in the
alphabet. In general, let a set S be *well-ordered by relation <, and for n > 0 let T be a set
of n-tuples
of elements xj in S. Then the ordering relation < over such n-tuples can be defined so that
iff x1 < y1 or there is some k, 1 ≤ k ≤ n, for which
The set T is in lexicographic order if the n-tuples are sorted with respect to this relation.
The concept can be extended to strings whose lengths may be different. The order would
then be that in which words are placed in a dictionary.
lexicographic sort Any sorting algorithm for putting n-tuples into *lexicographic
order.
LF Abbrev. for line feed.
Liang–Barsky clipping A graphics algorithm for *clipping a line with respect to a
rectangular boundary based on a parametric representation of the line and finding the
points where the line enters the region and leaves the region.
library See DLL, LINK LIBRARY, OPTICAL DISK LIBRARY, PROGRAM LIBRARY, TAPE
LIBRARY.
life cycle See SOFTWARE LIFE CYCLE, SYSTEM LIFE CYCLE.
LIFO (lifo) (last in first out) LIFO list is another name for *stack. A stack
implemented in hardware is sometimes referred to as a lifo.
light-emitting diode (LED) See LED DISPLAY.
lighting model (shading model) A model of the interaction of light with a scene. See
also ILLUMINATION, RADIOSITY, RAY TRACING, RENDERING.
light intensity See INTENSITY.
Lightning Trademark A proprietary dock connector produced by Apple in 2012 to
connect its mobile devices to chargers and computers. It is a small nondirectional
connector with a charging capacity of 12W.
light pen An obsolete penlike input device that was used with a *cathode-ray tube
display to point at items on the screen or to draw new items or modify existing ones. The
light pen had a photosensor at the tip that responded to the peak illumination that occurred
when the CRT scanning spot passed its point of focus. The display system correlated the
timing of the pulse from the photosensor with the item being displayed to determine the
position of the light pen.
Lightweight Directory Access Protocol See LDAP.
likelihood The *probability that an observation belongs to a *probability distribution
with *parameters θ, considered as a function of the parameters rather than of the
observation.
The method of maximum likelihood, originated by R. A. Fisher, estimates
*parameters in statistical models by maximizing the likelihood of observing the data with
respect to the parameters of the model. The values taken by the parameters at the
maximum are known as maximum likelihood estimates. This method is
computationally equivalent to the method of *least squares when the distribution of the
observations about their theoretical means is the *normal distribution.
limited license A license granted to a customer that limits the use that is made of a
computer program. Under *copyright law, limited licenses restrict customers from legally
being entitled to use several copies of individual programs at the same time or use copies
on anything except a particular computer.
Linda A particular model for *distributed processing in which the *processes
communicate by inserting, examining, and deleting objects in a common *bag. It is
architecture-independent.
Lindenmeyer system See L-SYSTEM.
linear algebraic equations (simultaneous equations) A problem in *numerical
linear algebra that requires the solution of n equations in the unknowns x1, x2,…, xn of the
form
where A is a square n×n matrix. The solution obtained by computing the inverse matrix
and forming A−1b is less accurate and requires more arithmetical operations than
elimination methods. In Gaussian elimination multiples of successive equations are
added to all succeeding ones to eliminate the unknowns x1, x2,…, xn−1 in turn. Properly
used, with row interchanges to avoid large multiples, this leads to a solution that satisfies
exactly a system close to the one given, relative to the machine precision. The accuracy of
the solution, which can be cheaply estimated, depends on the *condition number of the
problem.
Many other methods are used to deal with matrices of special form. Very large systems
where the matrix A has predominantly zero entries occur in the solution of *partial
differential equations. Elimination methods tend to fill in the zeros causing storage
problems and *iterative methods are often preferred for such problems.
linear array Another name for one-dimensional array, i.e. for a *vector. See also
ARRAY.
linear-bounded automaton (LBA) A *Turing machine M such that the number of
tape cells visited by M is bounded by some linear function of the length of the input string.
Of equivalent power is the smaller class of Turing machines that visit only the cells
bearing the input string. The *context-sensitive languages are precisely those recognized
by such Turing machines.
linear channel A transmission channel in which the information *signal and the *noise
signal combine additively to form the output signal. In a *q-ary linear channel, with a
finite number, q, of amplitudes, the signals add modulo-q; in the binary case (q = 2), this
has the same effect as an *exclusive-OR operation between the signals.
linear codes In coding theory, codes whose encoding and decoding operations may be
expressed in terms of linear operations. The term is usually applied to certain *errorcorrecting codes in which the encoding operation involves a generator matrix and the
decoding operation involves a parity-check matrix. Linear codes are, therefore, also
called parity-check codes. A particular linear code forms a commutative *group that
has the zero codeword as its identity.
In the case of linear (n, k) *block codes, the generator matrix is k × n and the paritycheck matrix is (n − k) × n; the elements of both matrices are elements of the base field
(this being {0, 1} for *binary codes). See also CONVOLUTIONAL CODE.
linear grammar A *grammar in which each production contains at most one
nonterminal in its right-hand side. Such a grammar is right-linear if a nonterminal can
only occur as the rightmost symbol, i.e. if each production has one of the forms
where A and B are nonterminals and w is a string of terminals. A left-linear grammar
can be similarly defined:
The right- and left-linear grammars generate precisely the *regular languages.
The word linear relates to an analogy with ordinary algebra. For example, a right-linear
grammar such as
corresponds to the simultaneous linear equations
where X and Y are sets of strings and Λ is the empty string. *Union and *concatenation
play roles analogous to addition and multiplication. The smallest solution to the equations
gives the language generated by the grammar. See ARDEN’S RULE.
linear independence A fundamental concept in mathematics. Let
be m-component vectors. These vectors are linearly independent if for some scalars α1, α2,
…, αn,
implies
Otherwise the vectors are said to be linearly dependent, i.e. at least one of the vectors
can be written as a linear combination of the others. The importance of a linearly
independent set of vectors is that, providing there are enough of them, any arbitrary vector
can be represented uniquely in terms of them.
A similar concept applies to functions f1(x), f2(x),…, fn(x) defined on an interval [a,b],
which are linearly independent if for some scalars α1, α2,…, αn, the condition,
implies
linear list See LIST.
linear logic A system of *combinational and possibly *sequential circuits in which the
combinational component comprises *exclusive-OR gates only. This is sometimes
referred to as strongly linear logic in order to distinguish it from weakly linear
logic in which *inverters are permitted.
In nonbinary (q-valued) systems, the EXOR gates are generalized to modulo-q adders
and subtractors.
linearly dependent See LINEAR INDEPENDENCE.
linear multistep methods An important class of methods for the numerical solution
of *ordinary differential equations. For the initial-value problem
the general form of the k-step method is
where fr= f(xr,yr) and h is the stepsize, h = xr − xr−1. The formula is said to be explicit if
βk= 0 and implicit otherwise.
The most important and widely used formulae of this type are the Adams formulae
and the backward differentiation formulae (BDF). These formulae are derived from
*interpolation polynomials to previously computed values of f(x,y) or y(x) respectively.
They form the basis for some of the best modern software, in which the stepsize and the
step number k are chosen automatically. The BDF codes, intended for stiff equations (see
ORDINARY DIFFERENTIAL EQUATIONS), have been particularly successful in relation to
other methods used for the same class of problems.
Linear multistep methods are more efficient than *Runge–Kutta methods when
evaluations of f(x,y) are sufficiently expensive. The ease with which the step number k can
be varied automatically permits the design of codes that can be efficient over a wide range
of requested accuracies.
linear predictor See GENERALIZED LINEAR MODEL.
linear programming A technique in *optimization, pioneered by George B. Dantzig,
that is widely used in economic, military, and business-management decisions. It deals
with the problem of finding nonnegative values of the variables x1, x2,…, xn that satisfy
the constraints
and minimize the linear form
Maximizing problems and problems with inequality constraints or unrestricted variables
can be converted to this form. An optimum solution (if any exist) is known to be a basic
feasible solution, which is one that satisfies the constraints and has at most m positive
xi values.
Computationally such problems are solved by the simplex method, an algorithm that
terminates after a finite number of steps. It starts at a basic feasible solution and moves
through the set of such solutions in such a manner that the value of the linear form is
nonincreasing. Very large problems occur in practice involving *sparse matrices. Iterative
infinite algorithms are sometimes faster, notably Kamarkar’s method.
linear recurrence A relationship that defines the next term in a sequence in the form of
sums and differences of multiples of earlier terms in the sequence. For example,
See also RECURRENCE.
linear regression model See REGRESSION ANALYSIS.
linear structure (totally ordered structure) A collection of items ordered by a single
property so that each item, except possibly for the first or last, has a unique ‘predecessor’
and a unique ‘successor’. It is the most commonly used structure and appears under a
variety of names depending on storage representation and its intended use. Linked
representations are normally called *lists while sequential representations are called
*arrays.
line feed (LF) 1. A format command for printers and displays, signalling the
requirement that the data that follows should be printed or displayed one line pitch below
the preceding data. In impact printers it invokes the physical movement required to move
the paper at right angles to the print line by a distance equal to the previously specified
pitch between printed lines. In nonimpact page printers it invokes an analogous action in
the stored image that is subsequently transferred to the paper in a continuous movement.
2. A format command that with some operating systems is used to terminate a line of input
and an implicit CR (carriage return) actioned so that the next input is displayed/printed at
the start of the next line.
line finder An *image processing procedure that detects abrupt changes in intensity in
*grey-level images. Line finders may look for the boundaries of *segments, or for bars
(with two edges), or other linear structure. They may operate on the raw data or they may
take the output after processing with *edge detectors.
line printer A computer output device that produces a line of print per cycle of its
operation. The number of character positions in a line generally ranges from 80 to 160,
and lines are printed at rates from 150 to 3000 lines per minute. A complete line of
information has to be assembled in a buffer memory within the machine before it can start
printing. When a line of print has been completed a paper-feed system moves the paper so
that the position for the next line of print is opposite the printing mechanism. The paper to
be printed is usually supplied as a continuous web of up to 2000 forms divided by
perforations. To ensure positive control of the forms, the margins are punched with holes
that engage on the tractors of the printer’s paper-feed system.
Although line printers have been superseded by *page printers for many applications,
they are still more efficient for high-volume jobs where a high print quality is not needed.
See also BAND PRINTER.
line protocol A formally specified set of possible bit sequences that will guarantee that
two ends of a communication link will be able to pass information between them in an
understandable way. A number of standards have been devised for the implementation of
such protocols.
line switching The most common form of concentration, used to connect n transmitting
devices to m receiving devices, where n is much greater than m. Buffering of data is done
by the input devices of the line-switching system if the transmission medium is busy.
link 1. To join together two or more separately compiled program modules, usually with
additional library modules, to form an executable program. See also LINK EDITOR. 2.
(linkage) A part of a program, possibly a single instruction or address, that passes
control and *parameters between separate portions of the program. The instruction,
address, etc., links the separate portions. 3. (pointer) A character or group of characters
that indicates the storage of an item of data. Thus when a field of an item A in a data
structure contains the address of another item B, i.e. of its first word in memory, it
contains a link to B. Two items are linked when one has a link to the other. An important
case is the link left pointing into the calling code by the *call of a subroutine, i.e. the value
of the *program counter at the point of call. See also LINKED LIST. 4. A word or phrase in
a *hypertext document that when selected in some way leads the user to another part of
the document or to a different document. 5. (line) A path for communication that may be
physical (as in a circuit) or either physical or logical (as in a channel). See also DATA LINK.
link access procedure See LAP.
linkage Another name for link (def. 2).
linkage editor Another name for link editor.
LinkedIn A professional networking service that enables members to describe their
work skills and to form and join discussion groups for common interests. Launched in
2003, it is now the world’s largest such network with more than 364 million members
(2015).
link editor (linkage editor, linker) A utility program that combines several separately
compiled modules into one, resolving internal references between them. When a program
is assembled or compiled, an intermediate form is produced into which it is necessary to
incorporate library material containing the implementation of standard routines and
procedures, and to add any other modules that may have been supplied by the user,
possibly in other high-level languages. The final stages of binding references within the
original program to storable address forms appropriate to the hardware is performed by the
link editor. See also LINK LOADER, LOADER.
linked list (chained list) A *list representation in which items are not necessarily
sequential in storage. Access is made possible by the use in every item of a *link that
contains the address of the next item in the list. The last item in the list has a special null
link to indicate that there are no more items in the list. See also DOUBLY LINKED LIST,
SINGLY LINKED LIST.
link encryption The transfer of an encrypted message across a system where the
message is decrypted and reencrypted after each stage of its journey. Typically, link
encryption is used in a switched communication network where the message is decrypted
at each switching node to read the routing information prior to reencryption and onward
transmission via the appropriate switch outlet. Compare END-TO-END ENCRYPTION.
link layer of network protocol function. See SEVEN-LAYER REFERENCE MODEL.
link library A library of functions, some of which are *linked into the compiled code of
a program in order to produce the executable version. The linking process is performed
once only, permanently embedding copies of the required library functions in the
executable. Compare DLL.
link loader A utility program that combines all the separately compiled modules of a
program into a form suitable for execution. See also LINK EDITOR, LOADER.
link testing *Testing of a group of modules to ensure that the modules operate correctly
in combination. It is normally performed after the individual modules have been tested in
isolation and prior to the integration testing that is performed for the complete system.
Linux An operating system based on UNIX and written originally by Linus *Torvalds.
The system is freely available and the source code is open. Linux has been developed by a
large number of world-wide collaborators. It is widely used as a server operating system,
especially on Web servers.
https://www.kernel.org/
The Linux Kernel Archives home page
liquid-crystal display See LCD.
Lisp (list processing) A programming language designed for the manipulation of
nonnumeric data. The basic data structure is a *list whose elements are either atomic
symbols or lists. An unusual feature of Lisp is that programs are also expressed as lists,
i.e. the programs and the data they manipulate have an identical structure. Pure Lisp is a
*functional language, having no assignment operator. The original Lisp 1.5 developed into
two distinct dialects, FranzLisp and MACLisp, but these have been combined to form
*Common Lisp. Lisp is the language used for much *artificial intelligence research.
list A finite ordered *sequence of items (x1,x2,…xn), where n ≥ 0. If n = 0, the list has no
elements and is called the null list (or empty list). If n > 0, the list has at least one
element, x1, which is called the head of the list (see also HEADER). The list consisting of
the remaining items is called the tail of the original list. The tail of the null list is the null
list, as is the tail of a list containing only one element.
The items in a list can be arbitrary in nature, unless stated otherwise. In particular it is
possible for an item to be another list, in which case it is known as a sublist. For
example, let L be the list
then the third item of L is the list (C,D), which is a sublist of L. If a list has one or more
sublists it is called a list structure. If it has no sublists it is a linear list. The two basic
representation forms for lists are sequentially allocated lists and *linked lists, the latter
being more flexible.
list box A control on a graphical user interface that displays a list of items. The user may
click on one or more items to select options. The whole list may be displayed in the box
(with scroll bars if necessary). Alternatively, in a drop-down list box, only the
currently selected item is shown. A small downward pointing arrow on the right edge of
the box is clicked to display the full list. See also COMBO BOX.
listing Short for program listing.
list insertion sort See LIST SORTING.
list processing A programming technique for dealing with data structures that consist of
similar items linked by pointers (see LINKED LIST).
list sorting A form of sorting that utilizes a link field in each record. The *links are
manipulated so that each link points to the following record in the sorted file to form a
straight linear *list. An insertion sort that utilizes link fields is a list insertion sort.
list structure See LIST.
literal A word or symbol in a program that stands for itself rather than as a name for
something else, i.e. an object whose value is determined by its denotation. Numbers are
literals; if other symbols are used as literals it is necessary to use some form of quoting
mechanism to distinguish them from variables.
literate programming A style of programming introduced by Donald E. *Knuth in
which the code is split up into fragments, each accompanied by a paragraph or paragraphs
of explanatory text. The fragments are presented in the order most appropriate for
explanation, rather than the order dictated by the rules of the programming language. A
utility called tangle is used to rearrange the code fragments into the right order for
compilation. Knuth’s system, called WEB, was developed for Pascal programs, but
versions for C have also been produced.
little-endian Denoting an addressing organization whereby the section of a memory
address that selects a byte within a word is interpreted so that the smallest numerical byte
address (i.e. 00) is located at the least significant end of the addressed word. See also BIGENDIAN.
liveness A property of a system that it will eventually do something good. Possible
causes of loss of liveness (sometimes called livelock) include *deadly embrace and
*starvation. Compare SAFETY.
LL parsing The most powerful *top-down parsing technique that proceeds without
backtracking, LL standing for Left-to-right Leftmost derivation sequence. In general an LL
parser uses a k-symbol lookahead, where k is an integer ≥1, to effect parsing decisions. For
most practical purposes, however, k is taken to be 1.
An LL parser may be implemented as a *pushdown automaton or by the method of
recursive descent (see TOP-DOWN PARSING). In the former method a stack is used to store
that portion of a leftmost *derivation sequence that has not been matched against the input
string. Initially the start symbol of the grammar is pushed onto an empty stack.
Subsequently, if the top element of the stack is a terminal symbol it is matched against the
next symbol in the input string. If they are the same then the stack symbol is popped and
the input marker advanced, otherwise there is an error in the input string. If the top stack
symbol is a nonterminal A, say, it is removed from the stack and replaced by the righthand side symbols of a production with left-hand side A. The right-hand side symbols are
pushed onto the stack in right-to-left order. Thus if the production is
the first symbol to be stacked is Z, then Y, and finally X. The choice of a production is
made by consulting a parsing table that contains an entry for each combination of
nonterminal symbol and k-symbol lookahead. Parsing is successfully completed when the
input is exhausted and the stack is empty.
A grammar that can be parsed using this technique is said to be an LL(k) grammar.
Not all grammars are LL(k); in particular any grammar that uses left recursion is not LL(k)
for any value of k.
loader A utility program that sets up an executable program in main memory ready for
execution. This is the final stage of the compiling/assembly process. See also LINK
EDITOR, LINK LOADER.
local A term applied to entities that are accessible only in a restricted part of a program,
typically in a procedure or function body. By contrast, nonlocal entities are accessible in
a wider scope and *global entities are accessible throughout a program. The use of local
entities can help to resolve naming conflicts, and may lead to a more efficient use of
memory.
local area network (LAN) A *network that in general is operated as a subsidiary
activity by a single organization for its own exclusive use, the typical LAN having an
overall size of a few kilometres or less. Normally the organization is located on a single
site, or a small number of nearby sites, and the LAN constitutes a single management and
naming *domain. LANs generally provide high-speed (100 Mbps to 1 Gbps) data
communication services to directly connected computers. *Gateways are used to connect
local networks to each other, or to longer-distance communication networks. Due to
limited distance, controlled environments, and (usually) homogeneous implementation,
local networks have very low error rates and can utilize simplified data communication
protocols. See also METROPOLITAN AREA NETWORK, WIDE AREA NETWORK.
local bus A bus used for the connection of digital system components such as
processors, memories, and disk controllers to form a computer entity. Its use may be
restricted to the connection of devices within the immediate locality of the processor and it
may be implemented as a *backplane. See also LOCAL AREA NETWORK, PCI, VME BUS.
local bus architecture A processor architecture based on a *local bus interconnection
of basic computer system components. The use of a standardized local bus facilitates the
rapid design of application-specific digital systems using off-the-shelf processor, memory,
and other system components.
local device A device, such as a hard disk or printer, attached directly to the user’s
computer rather than at some other point on the network, in which case they are *remote
devices.
local discretization error See DISCRETIZATION ERROR.
local-echo mode See ECHO.
local error A measure of the accuracy over one step of a method for the numerical
solution of *ordinary differential equations. This is a useful concept in the practical
implementation of numerical methods. If the step is described by the general formula
then the local error is defined to be
where z(x) is the exact solution of the differential equation through the previous computed
point, i.e. it satisfies z(xn) = yn.
An estimate of the local error is normally obtained by using two different formulae on
each step (see PREDICTOR-CORRECTOR METHODS). This estimate is kept below a userspecified tolerance, if necessary by rejecting steps and repeating with a reduced stepsize h.
With further modifications this leads to efficient and reliable variable stepsize programs.
The local error is related to the local truncation error (see DISCRETIZATION ERROR),
which is defined in terms of the exact solution of the original problem rather than the
current computed values used here.
local illumination An illumination model in which the illumination of a surface
depends solely on its own characteristics and those of the light sources.
localization The action of tailoring a generic software product, such as an application
package, by setting parameters or configuration data that correspond to a particular
geolocation (e.g. language, culture).
local loop The (twisted pair) connection from a switching exchange to the subscriber
terminal.
local optimization (peephole optimization) See OPTIMIZATION (in programming).
location (storage location, memory location) Any place in computer memory in which
an item of data—usually a word or byte—can be stored in binary form. Each location can
be identified by an *address, allowing items of data to be stored there or retrieved from
there. The terms location and address are thus used interchangeably.
location operator An operator in a programming language that yields the address of its
operand.
locator A type of input to a graphics system that defines a position, possibly with other
information. See also LOGICAL INPUT DEVICE.
lock 1. (lock primitive) An indivisible operation that allows a *process to ensure that it
alone has access to a particular resource. On a single-processor system the indivisible
nature of the operation can be guaranteed by turning off interrupts during the action,
ensuring that no process switch can occur. On a multiprocessing system it is essential to
have available a *test and set instruction that, in a single uninterruptible sequence, can test
whether a register’s contents are zero, and if they are will make the contents nonzero. The
same effect can be achieved by an exchange instruction. See also SEMAPHORE, UNLOCK. 2.
See LOCKS AND KEYS.
lockout A mechanism for arranging controlled access to a shared resource. See LOCK,
SEMAPHORE.
locks and keys A system of *memory protection in which segments of memory are
assigned identification numbers (the locks) and authorized users are provided the numbers
(the keys) by the operating system. This provision is done by a privileged process in some
location, such as a *program status word, not accessible to the user.
lofting Constructing a number of longitudinal curves to blend a set of previously defined
cross-sections in order to represent a surface (see BLEND). The term originates from the
days of manual ship design: traditionally these curves were drawn full size; the drawings
were too large to handle and lay out conveniently in the drawing office and were therefore
stored and dealt with in large attics, called lofts.
logarithmic search algorithm Another name for binary search algorithm.
log file A file that is used to record transactions against a database as they occur and is
distinct from the database itself. Update transactions must be recorded to provide for
database recovery. The information written to the log file usually also includes before and
after images of the database records (or pages) changed. Information on query-only
transactions may also be recorded. The log file will be used to create a *recovery log, to
provide an *audit trail, and by database administration for performance monitoring and
improvement.
The recording of information on a log file is known as logging.
logic 1. A knowledge representation and reasoning formalism originally developed by
mathematicians to formalize mathematical reasoning. In mathematical logic the
investigation involves mathematical methods taken from algebra or the theory of
algorithms. The two most common systems are *propositional calculus and *predicate
calculus.
Logic has been widely adopted within artificial intelligence, for example as an
alternative to production rules in expert systems and for representing the meaning of
natural language statements (see NATURAL-LANGUAGE UNDERSTANDING). Many
alternative logics have been developed in artificial intelligence to represent the vagueness
and uncertainty of common sense (as opposed to mathematical knowledge) and to
represent the tentative nature of *common-sense reasoning; these include *nonmonotonic
reasoning and uncertain reasoning (see UNCERTAINTY). 2. See COMPUTER LOGIC, DIGITAL
LOGIC.
logical 1. Involving or used in logic. 2. Conceptual or virtual, or involving conceptual
entities, as opposed to physical or actual.
logical cohesion See COHESION.
logical connective See CONNECTIVE.
logical encoding The representation of symbols in a source alphabet by strings of
logical values. It is hence equivalent to binary encoding.
logical expression Another name for Boolean expression.
logical formulas A representation of meaning or knowledge. See LOGIC, RESOLUTION.
logical input device An abstraction of one or more physical devices that delivers
logical input values to an application. Graphics standards divide the primitive input
devices into the logical classes *locator, *stroke, *valuator, *choice, *pick, and *string.
logical operator (logical operation) See LOGIC OPERATION.
logical record See RECORD.
logical schema (conceptual schema) The encoding of the *data model of a database in
the relevant *database language. It is sometimes simply referred to as the schema of a
database. See also STORAGE SCHEMA, USER VIEW.
logical shift See SHIFT.
logical type 1. (Boolean type) A *data type comprising the logical values true and
false, with legal operations restricted to *logic operations. 2. Loosely, an *abstract data
type.
logical value (Boolean value) Either of the two values true and false that indicate a
truth value. Although a single bit is the most obvious computer storage structure that can
be applied to logical data, larger units of store, such as a byte, are frequently used in
practice since they can be addressed distinctly.
logic analyser An electronic instrument that monitors the *logic states of digital
systems and stores the results for subsequent display. The storage of data is initiated in the
analyser by the recognition of preset ‘trigger states’ as these arise in the system under test.
Synchronous analysers sample data at intervals determined entirely by the external
system. Asynchronous analysers sample at intervals determined internally by the
analyser. The essence of a logic analyser is that it copes with many (often 8, 16, or 32)
channels in parallel, and that the data recorded can be read back from memory at will,
either in binary or after *decoding in some way, often by means of a *disassembler.
logic bomb Code introduced into a program to have an undesirable effect following the
occurrence of some later event. For example, a logic bomb may be programmed to destroy
valuable data should the programmer’s name ever be deleted from the firm’s payroll file.
logic card A printed circuit board that is of a standard size and carries a number of
digital logic devices in a circuit arrangement capable of fulfilling a specific function. The
board will, in general, also carry a standard connector by means of which power and
ground connections are provided and control and data signals may be transferred to and
from a standard *bus.
logic cell array See LCA.
logic circuit An electric circuit concerned with logic systems. The term logic device is
often used synonymously. A logic circuit is required to produce specified binary outputs as
a result of specified binary inputs. This may be accomplished by using *logic gates,
producing what is called hardware circuitry. Alternatively the inputs may be
associated with the address lines of a *ROM and the outputs with the data lines of a ROM;
this is called firmware circuitry.
Hardware circuitry constructed from integrated-circuit packages on circuit boards
requires two types of wiring. The first type carries the logic information between gates.
The second type provides the power for the individual chips. The process of locating the
power paths so that they do not interfere with the logic paths is called power routing.
Logic circuitry may be mathematically analysed using *Boolean (or switching) algebra.
In this representation the binary 1 is associated with the *identity element and the logic 0
is associated with the null element, i.e. zero.
See also COMBINATIONAL CIRCUIT, DIGITAL LOGIC, MULTIVALUED LOGIC, SEQUENTIAL
CIRCUIT.
logic design Another name for digital design.
logic device See LOGIC CIRCUIT.
logic diagram A diagram that displays graphically, by interconnection of *logic
symbols, the digital design of a *logic circuit or system.
logic element A small part of a digital *logic circuit, typically a *logic gate. Logic
elements can be represented by *operators in symbolic logic.
logic family A range of electronic devices that is made by the same manufacturing
technique and provides a number of logic functions. The range includes *logic gates,
*flip-flops, and *counters. Families in common use are *ECL and *TTL, which are based
on *bipolar transistors, and the *NMOS and *CMOS families, which are based on
*MOSFETs.
Logic families vary as regards *switching speed, *propagation delay, and power
dissipation, although developments in the fabrication technology of the different families
often improve these characteristics. A member of a logic family whose output changes
state typically within a few nanoseconds (10−9 second) is considered a high-speed logic
device. These devices are also characterized by short propagation delays, also in the order
of a few nanoseconds. A particular family is characterized by its *delay-power product, a
figure of merit that is frequently quoted in catalogues. See also LOGIC CIRCUIT.
logic function Another name for Boolean function.
logic gate A device, usually but not exclusively electronic, that implements an
elementary logic function; examples include *AND, *OR, *NAND, and *NOR gates, and
*inverters. There are typically between two and eight inputs and one or two outputs. In
order to represent the two *logic states, true and false, in electronic logic gates, the input
and output signals are held at either of two different voltage levels; a high voltage level
usually represents true (logic 1) and a low level false (logic 0).
Each type of logic gate has a *logic symbol that conveys its logic function but does not
indicate the electronic circuitry involved. The use of these symbols in circuit diagrams
simplifies the understanding of a complex logic circuit and means that technological
advances in electronics need not be taken into account.
Logic gates based on *fluid logic have been successfully used as have *optical switches
used as logic gates. See also DIGITAL LOGIC, LOGIC CIRCUIT, MULTIVALUED LOGIC.
logic instruction An instruction that performs one of the class of *logic operations on
one or more specified operands. These operations may apply to a single variable, as in
complementation, or more generally are defined on two variables. See also BOOLEAN
ALGEBRA.
logic languages See LOGIC PROGRAMMING LANGUAGES.
logic level 1. In a *combinational circuit, the maximum number of logic gates between
any input and any output. The logic level represents a measure of delay time through such
a circuit. 2. Either of the two voltage levels used in a binary *logic gate. See also
MULTIVALUED LOGIC.
logic operation An operation on *logical values, producing a Boolean result (see also
BOOLEAN ALGEBRA). The operations may be *monadic or *dyadic, and are denoted by
symbols known as operators. In general there are 16 logic operations over one or two
operands; they include *AND, *OR, *NOT, *NAND, *NOR, *exclusive-OR, and
*equivalence.
Logic operations involving more than two operands can always be expressed in terms of
operations involving one or two operands. Those involving two operands can be expressed
in terms of other operations involving one or two operands.
*Logic circuits are fabricated for the implementation of logic operations on their input
signals. The inputs may be words (or bytes), and the logic operation is applied to each bit
in accordance with Boolean algebra.
logic operator See LOGIC OPERATION.
logic probe An item of electronic test equipment that is capable of displaying the logic
state—true (logic 1), false (logic 0), or undefined—of a digital signal applied to its input
probe. It is generally used to check the operation of individual devices within a digital
logic circuit.
logic programming languages (logic languages) A class of programming languages,
and a subclass of the *declarative languages, that is based on the use of logical formulas.
The interpreter is usually some version of *resolution, or another logical inference
process. The ideal is that the programmer has only to make a series of true assertions
about the problem and the interpreter will find a way to run these as a program to solve the
problem. In practice, it is still necessary for the programmer to give regard to the
procedural interpretation of these logical assertions. The most widely used realization of
these ideals is the *Prolog programming language.
Logic programming languages are important because of their declarative nature, their
potential power and flexibility, and their suitability for execution on highly parallel
architectures.
logic state The logical sense, true or false, of a given binary signal. A binary signal is a
*digital signal that has only two valid values. In physical terms the logical sense of a
binary signal is determined by the voltage level or current value of the signal, and this in
turn is determined by the device technology. In *TTL circuits, for example, a true state is
represented by a logic 1, approximately equal to +5 volts on a signal line; logic 0 is
approximately 0 volts. Voltage levels between 0 and +5 volts are considered undefined.
Since only two logic states, logic 1 and logic 0, are possible, the techniques of *Boolean
algebra may be used to analyse digital circuits involving binary signals. The term
positive logic is applied to circuits where logic 1 is assigned to the higher voltage level;
in negative logic circuits a logic 1 is indicated by the lower voltage level. See also
MULTIVALUED LOGIC.
logic symbols A set of graphical symbols that express the function of individual *logic
gates in a *logic diagram. The most common symbols are those for the simple Boolean
functions and for flip-flops, as shown in the diagram.
Logic symbols. Commonly used logic symbols
login (logon) The process by which a user identifies herself or himself to a system. The
terms are also used as verbs: log in, log on, or sign on. A system with many registered
users will require each user to log in, and to produce some form of *authentication (such
as a password) before allowing the user access to system resources. The login activity may
also open an *accounting file for the session.
logistic function A ratio of sums of exponentials widely used in statistical analysis. The
logistic function lies in the range (0,1), and its inverse, known as the logit of a proportion,
is the logarithm of the odds-ratio (see ODDS).
logit See LOGISTIC FUNCTION.
Logo A programming language developed for use in teaching young children. Logo is a
simple but powerful language: it incorporates the concept of *procedures, and helps
children to think algorithmically. The original version of Logo incorporated *turtle
graphics.
logoff (logout) The process by which a user terminates a session. The terms are also used
as verbs: log off, log out, or sign off. By logging off, the user ensures that all the system
resources that have been used during the session are accounted for and released back to
the operating system.
logon 1. (log on) See LOGIN. 2. A unit of information, equal to the product of one unit
of *bandwidth by one unit of time, in Denis Gabor’s physical theory of communication. In
contrast, Shannon’s mathematical theory of communication uses the concept of *entropy.
logout (log out) See LOGOFF.
long filename A file name that may have a large number of characters, including
spaces, and use upper- and lower-case letters. Long filenames are now supported on most
personal-computer operating systems. In earlier systems, the 8.3 system was common—
files had a name of up to eight characters maximum, followed by a dot, followed by a file
extension of up to three characters. For example, in this dictionary the file containing this
entry is called ‘OUPCOM0L.XML’. On a long-filename system, it could be called
‘Oxford University Press Computing Dictionary letter L.XML file’.
longitudinal redundancy check (LRC) See CYCLIC REDUNDANCY CHECK.
lookahead Short for carry lookahead.
lookahead unit A unit forming part of an instruction unit pipeline in computers such as
*Stretch.
lookup table See TABLE LOOKUP.
loop 1. A sequence of instructions that is repeated until a prescribed condition, such as
agreement with a data element or completion of a count, is satisfied. See also DO LOOP. 2.
A configuration of a *local area network that consists of nodes connected serially in a ring
topology. See RING NETWORK. 3. (local loop) The (twisted pair) connection from a
switching exchange to the subscriber terminal.
loop invariant See INVARIANT.
lossless coding Coding in which no *information whatsoever is lost during the
*encoding (or *decoding) process. Generally, *encryption and *decryption are lossless, as
is *channel coding. Strictly, *data compaction is lossless, while *data compression is not,
but the latter term is often used for the former. The decoding of (i.e. recovery from)
compression and compaction are lossless. But the decoding of a signal received from a
*channel is usually lossy (strictly not lossless) by design, since the *noise at least must be
lost: the message entering the channel will usually have been prepared so as to permit this
loss by the use of an *error-correcting code.
lossless compression Any method of *compression that allows the original data to be
recovered from the compressed data. See also LOSSLESS CODING.
lossy coding Any form of coding in which *information is or may be lost. See LOSSLESS
CODING.
lossy compression *Compression of data that approximates the original data so that it
is not possible for it to be recovered identically. However a good approximation should
always be possible. See also LOSSLESS CODING.
Lotus 1–2–3 Trademark A *spreadsheet program originally from Lotus Development
Corp. (now part of IBM) for personal computers. Its popularity contributed significantly to
the early success of the IBM PC.
lower bound 1. (of a set S on which the *partial ordering < is defined) An element l
with the property that l < s for all s in S. Also l is a greatest lower bound if, for any
other lower bound h, h < l.
Since numerical computing demands the truncation of infinite arithmetic to finite
arithmetic, the computation of greatest lower bounds of real numbers, indeed of any limit,
can only be achieved to a machine tolerance, usually defined to be machine precision: the
smallest epsilon eps, such that
in computer arithmetic. See also UPPER BOUND. 2. (of a matrix or vector) See ARRAY.
low-level language A variety of programming language in which the control and data
structures directly reflect the underlying machine architecture.
low-level scheduler (dispatcher) See SCHEDULER.
low-pass filter A *filtering device that permits only those components in the frequency
domain whose frequencies lie below some critical value to pass through with little
attenuation, all other components being highly attenuated. See also BAND-PASS FILTER,
BAND-STOP FILTER, HIGH-PASS FILTER.
lpm (lines per minute) One of the terms used to describe the rate of output of line
printers.
LPT port The name of a parallel printer port on an IBM PC or compatible. There can be
up to three of these ports, called LPT1, LPT2, and LPT3. They are *Centronics interfaces.
LQ (letter quality) Traditionally, printed output indistinguishable from that produced
by a good electric typewriter. The term is normally applied to dot matrix printers. See also
NLQ.
LRC (longitudinal redundancy check) See CYCLIC REDUNDANCY CHECK.
LRM (language reference manual) The reference manual for the *Ada language is
commonly known as ‘the LRM’.
LR parsing A *bottom-up parsing technique, LR standing for Left-to-right Rightmost
derivation sequence. Originally developed by Donald E. *Knuth, it is the most powerful
left-to-right, no backtracking parsing method for *context-free grammars.
An LR parser consists of a pushdown stack, a parsing table, and a driving routine. The
driving routine is the same for all grammars. The stack is manipulated by the driving
routine using the information contained in the top stack element and the next k symbols in
the input stream (called the k lookahead); k is an integer ≥0, but for most practical
purposes k = 1. The stack consists of a string
where each Xi is a symbol of the input grammar and each si is called a state.
The parsing table is indexed by pairs (s,a) where s is a state and a is the lookahead.
Each entry in the table has two parts: (a) an action, which may be shift, reduce p (for some
production p), accept, or error, and (b) a state, called the goto state.
When the action is shift, the next input symbol and goto state are pushed onto the stack
(in that order). When the action is reduce p the top 2l elements of the stack will spell the
right-hand side of p but with goto states interspersed, where l is the length of this righthand side. These 2l elements are popped from the stack and replaced by the left-hand side
of p and the new goto state. This operation corresponds to adding a new node to the *parse
tree for the input string. The accept action is only encountered when the start symbol S is
the only symbol on the stack (i.e. the stack contains s0Ss1 for some states s0 and s1) and
the lookahead is the end-of-input symbol. It signifies that parsing has been successfully
completed. On the other hand an error entry in the parse table indicates an error in the
input string.
A grammar that can be parsed by an LR parser using k-symbol lookahead is called an
LR(k) grammar. The power of the LR parsing method comes from the fact that the
LR(1) grammars properly include other grammar types like precedence grammars and
LL(1) grammars (see LL PARSING). This and its efficiency make it a popular choice of
parsing method in *compiler-compilers. If a grammar is not LR(1) this will be evidenced
as multiply defined entries in the parsing tables called shift-reduce conflicts or
reduce-reduce conflicts.
Many different parsing tables may be constructed for one grammar, each differing in the
number of states it defines. The so-called canonical LR table tends to be too long for
practical purposes and it is commonly replaced by an SLR (simple LR) or LALR
(lookahead LR) table. A grammar that is LR(1) may not however be SLR(1) or LALR(1).
LSD , LSB (least significant digit, least significant bit) See LEAST SIGNIFICANT
CHARACTER.
LSI (large-scale integration) Integrated-circuit fabrication technology that allows a
very large number of components (at least 10 000 transistors) to be integrated on a single
chip. See INTEGRATED CIRCUIT, VLSI.
L-system (Lindenmeyer system) A way of generating infinite sets of strings. L-
systems are similar to *grammars with the crucial difference that, whereas for grammars
each step of derivation rewrites a single occurrence of a nonterminal, in an L-system all
nonterminals are rewritten simultaneously. An L-system is therefore also known as a kind
of parallel rewriting system. L-systems were first defined in 1968 by A.
Lindenmeyer as a way of formalizing ways in which biological systems develop. They
now form an important part of *formal language theory.
The subject has given rise to a large number of different classes of L-systems. The
simplest are the DOL systems, in which all symbols are nonterminals and each has a
single production. For example, with productions
one derives starting from A the sequence A AB ABA ABAAB ABAABABA …
This is called the sequence of the DOL-system, while the set of strings in the
sequence is called the language. The growth-function gives the length of the ith
string in the sequence; in the example this is the Fibonacci function.
Note that the productions define a *homomorphism from {A,B}* to itself. A DOLsystem consists therefore of an alphabet Σ, a homomorphism h on Σ*, and an initial Σword w. The sequence is then
The letter D in DOL stands for deterministic, i.e. each symbol has just one production. An
OL-system can have many productions for each symbol, and is thus a *substitution
rather than a homomorphism. Other classes are similarly indicated by the presence of
various letters in the name: T means many homomorphisms (or many substitutions); E
means that some symbols are terminals; P means that no symbol can be rewritten to the
empty string; an integer n in place of O means context-sensitivity—the rewriting of each
symbol is dependent on the n symbols immediately to the left of it in the string.
LU decomposition A method used in *numerical linear algebra in order to solve a set
of linear equations,
where A is a square matrix and b is a column vector. In this method, a lower *triangular
matrix L and an upper triangular matrix U are sought such that
For definiteness, the diagonal elements of L may be taken to be 1. The elements of
successive rows of U and L may easily be calculated from the defining equations.
Once L and U have been determined, so that
the equation
is solved by forward substitution. Thereafter the equation
is solved for x by backward substitution. x is then the solution to the original
problem.
A variant of the method, the method of LDU decomposition, seeks lower and upper
triangular matrices with unit diagonal and a diagonal matrix D, such that
If the matrix A is *symmetric and positive definite, there is an advantage in finding a
lower triangular matrix L such that
(see TRANSPOSE). This method is known as Cholesky decomposition; the diagonal
elements of L are not, in general, unity.
luminance A measure of the light intensity reflected or emitted by a surface in a given
direction per unit of apparent area. The unit of measurement is the candela per square
metre.
lurker Informal Someone who visits a chat room, blog, file-sharing website, etc. but
does not submit any material.
Lycos Trademark Originally an Internet search engine and directory and now a web
*portal.
LZW Abbrev. for Lempel–Ziv–Welch (compaction).
M Symbol for mega-, as in MHz, Mbyte, Mbps. See MEGA-.
Mac Short for Macintosh. See APPLE INC.
MAC 1. A project at Massachusetts Institute of Technology to introduce the first
practical *multiaccess system. The name is an acronym derived from machine-aided
cognition (expressing the broad project objective) and multiple-access computer
(describing its major tool). The system incorporated not only a new approach to operating
systems, but also introduced novel forms of highly interactive compilers and of terminals.
See also MULTICS. 2. Abbrev. for mandatory access control. 3. See MAC LAYER.
MAC-48 See MAC ADDRESS.
MAC address (Media Access Control address) A unique number assigned to all
network interface devices. It is used by many data link layer protocols (see SEVEN-LAYER
REFERENCE MODEL)
to distinguish and target the devices attached to a network. MAC
addresses are 48- or 64-bit numbers that are divided into two parts. A unique three-byte
Organizationally Unique Identifier (OUI) identifies the device’s manufacturer and must be
purchased from the *IEEE. The remaining three or five bytes are assigned by the
manufacturer in any way it chooses, provided all instances are unique. 48-bit MAC
addresses (called EUI-48 or MAC-48) are used by most network technologies,
including *Ethernet, *token ring, and *Bluetooth; 64-bit MAC addresses (called EUI-64)
are used by IPv6 (see TCP/IP) and *FireWire. MAC numbers may be overridden on their
own responsibility by network administrators.
Mach bands Illusory light and dark bands that are seen at the transitions between
uniformly illuminated regions of uniform density. Mach bands arise because the human
visual system is good at recognizing edges and thus enhances the intensity change
between the regions so that the lighter side appears lighter and the darker side appears
darker. This is a particular problem with shading algorithms, such as *Gouraud shading,
which cause a change in intensity to appear at the edge of an object between two
polygons. *Phong shading reduces Mach banding.
machine Usually, a real—or imagined—computer (see also ABSTRACT MACHINE,
TURING MACHINE, VIRTUAL MACHINE), which may or may not be sequential and
deterministic. In formal language theory it may imply a *sequential machine.
machine address Another name for absolute address, now deprecated.
machine code The *operation code of a particular machine, and hence, by association,
code specific to a particular machine.
machine equivalence The property describing two usually abstract machines that can
simulate one another. Machines M1 and M2 are said to be equivalent if M1 can simulate M2
and M2 can simulate M1. Given precise definitions of the machines, precise definitions of
simulation can be formulated. See also MACHINE SIMULATION.
machine-independent A term applied to software that is not dependent on the
properties of a particular machine, and can therefore be used on any machine. Such
software is also described as portable.
machine intelligence Another name for artificial intelligence.
machine language Strictly, the written representation of machine code. The term is
also used as a synonym for machine code.
machine learning A branch of *artificial intelligence concerned with the construction
of programs that learn from experience. Learning may take many forms, ranging from
learning from examples and learning by analogy to autonomous learning of concepts and
learning by discovery.
Incremental learning involves continuous improvement as new data arrives while oneshot or batch learning distinguishes a training phase from the application phase.
Supervised learning occurs when the training input has been explicitly labelled with
the classes to be learned.
Most learning methods aim to demonstrate generalization whereby the system develops
efficient and effective representations that encompass large chunks of closely related data.
machine simulation The process whereby one machine M1 can be made to simulate or
behave like a second machine M2. There are a number of ways of formalizing simulation
for each class of machines. For example, let there be *functions g and h that perform
encoding and decoding roles respectively:
g encodes information for machine M1 and produces corresponding information for
machine M2; h is the *inverse function. Machine M2 is said to simulate machine M1 if it is
possible to specify a translation algorithm such that, when given a program P1 for M1, it
produces a corresponding program P2 for M2; further, the effect of P1 on M1 should be
equivalent to the effect of
applying function g
then executing P2 on M2
then applying function h.
In symbols,
An equally useful formulation has functions
and the simulation criterion
Machine simulation of this kind is generally discussed for idealized abstract machines,
such as *Turing machines, and for formal models of microprocessors. It provides a useful
approach to defining the correctness of implementations. See also MACHINE
EQUIVALENCE.
machine translation The use of computers in translating from one natural language to
another. This was originally a branch of *artificial intelligence research, but commercial
translation systems are now used regularly in professional translation bureaus. Fully
automatic translation is not achievable but human post-editing can give acceptable results.
machine word See WORD.
Macintosh (Mac) Any of a range of *personal computers from *Apple Computer Inc.
MAC layer (media access control layer) One or more layers in a *protocol stack
that deal(s) with the issues of allowing a transmitter, wishing to send information, to gain
access to the actual transmission medium. In particular the MAC layer is usually
responsible for the resolution of *contention for access to the transmission medium.
MACLisp A dialect of *Lisp, now superseded by *Common Lisp.
macro (macroinstruction) An instruction in a programming language that is replaced
by a sequence of instructions prior to assembly or compiling. A macroassembler is an
*assembler that permits the user to define macros, specifying the macroinstruction form,
its arguments, and a replacement text (otherwise called the body of the macro), and then
allows macroinstructions to be interspersed among the assembly code. On encountering a
macro the assembler replaces it by the macro body, substituting the parameters provided in
the places marked in the macro body. The macro thus provides a mechanism for inserting
a particular body of text at various places in a program (and is thus the same thing as an
open *subroutine, though this nomenclature is obsolete).
A macroprocessor provides similar facilities, though not in combination with an
assembler. It accepts macro definitions and then reads arbitrary text in which macro
calls (i.e. instances of a macro name) can occur. Text is copied to the output until a macro
name is encountered: when this happens the arguments (parameters) are found and the
macro call is replaced by the macro body in the output stream, with appropriate
substitution of the parameters.
macroassembler See MACRO.
macrogenerator Another name for macroprocessor. See MACRO.
macroinstruction See MACRO.
macroprocessor (macrogenerator) See MACRO.
macro virus A virus written in the programming language of a word processor,
spreadsheet, or similar application. Whereas program viruses attach themselves to
executable files, macro viruses attach themselves to documents or spreadsheets and run
whenever their host document is opened.
magnetic bubble memory A type of digital memory in which data is represented by
magnetic bubbles that are made to move through a stationary planar medium by applying
suitable magnetic fields; the bubbles are tiny circular areas (stable magnetic domains) in
which the medium is magnetized in the reverse direction to the rest of the medium.
Developed at Bell Telephone Laboratories in the 1970s, it failed commercially and is
now obsolete.
magnetic card A data medium consisting of a card that is partly or completely coated
on one side with ferromagnetic film on which data can be encoded and read (see CARD
READER). The US driving license is one example, the encoding being restricted to a single
magnetic stripe that can contain three tracks.
magnetic cell An obsolete type of *memory element in which two different states of its
magnetic flux pattern are used to represent binary values. The element may be a
ferromagnetic core, part of a perforated ferromagnetic plane, or the intersection of two
coated wires, and it can store a single bit of information.
magnetic disk A rotatable storage medium usually in the form of a circular
nonmagnetic rigid plate coated on both sides with magnetic material, followed by some
form of lubricating layer(s). The disks themselves (the substrate) are made of aluminium
alloy or of some glass—ceramic composite material. The magnetic coating on early disks
was a ferric oxide in a binder. Current disks have a thin metallic film, such as cobalt/nickel
or cobalt/chrome, which is created by vacuum deposition (i.e. sputtering). The lubricating
layer is a coat of carbon a few angstroms thick, sometimes followed by a proprietary
lubricant. Flexible magnetic disks (i.e. *floppy disks) with oxide coating provide low-cost
lightweight media, but are now falling into disuse.
Data is stored on and retrieved from magnetic disks by means of a *disk drive. See also
ACCESS TIME, FIXED DISK DRIVE, MEMORY HIERARCHY, WINCHESTER TECHNOLOGY.
magnetic drum The earliest form of rotating magnetic storage device, used in some of
the first computers at a time when random-access store was volatile, bulky, and expensive.
The drum therefore formed the main memory of some of these machines, the randomaccess stores being used only as registers. Although random-access store developed
rapidly it was still relatively expensive and the drum was retained as a local backing store
on some computers. Magnetic disk, when introduced, took over a large part of the backing
store function. Drums remained in use however on certain systems that required faster
access than was generally provided by disk, but today they are obsolete.
A magnetic drum consists of a cylinder whose curved surface is coated with a suitable
recording medium, either metal or iron oxide. This surface is divided into tracks on which
data is recorded.
magnetic encoding The method by which binary data is recorded on magnetic media.
In horizontal recording on magnetic disks, tapes, and cards, magnetic domains in the
media are aligned along the direction of the applied magnetic field with either north or
south pole leading: each domain is a tiny bounded region in which the magnetic moments
of the component atoms are aligned, and it therefore behaves like a magnet. The domains
are arranged end to end along a track, which may be either a concentric ring on a disk or
run the length of a tape or card. There may not be a one-to-one relationship between the
binary information of the data and the orientation of the magnetic domains. See also DISK
FORMAT, TAPE FORMAT.
In 1975 Shun-ichi Iwasaki published his work on vertical recording methods. The
magnetic domains are oriented through the thickness of the magnetic film and have either
a north or a south pole at the exposed surface. The magnetic material is usually a vacuumdeposited film of metal such as an alloy or combination of cobalt and chromium over a
layer of permalloy. Vertical recording can yield an increase of at least 25 times and
possibly 100 times the bit density achievable by current horizontal recording techniques.
However, vertical recording proved difficult to implement. Disks using it began to appear
in the 2000s.
magnetic head See HEAD.
magnetic-ink character recognition See MICR.
magnetic media The various types of media, including *magnetic disk and *magnetic
tape, on which data recording is effected by writing a magnetic pattern onto the
magnetizable surface of the medium. The term distinguishes these types of media from
others that use different recording techniques, e.g. optical disks.
magnetic stripe See MAGNETIC CARD.
magnetic tape An information storage medium consisting of a magnetic coating on a
flexible backing in tape form. Data is recorded by *magnetic encoding of tracks on the
coating according to a particular *tape format.
Magnetic tape is wound on reels (or spools). These may be used on their own, as
open-reel tape, or they may be contained in some sort of *magnetic tape cartridge for
protection and ease of handling. Early computers used open-reel tape, and this is still
sometimes used on large computer systems although it has been widely superseded by
cartridge tape. On smaller systems, if tape is used at all it is normally cartridge tape.
Magnetic tape is used in a tape transport (also called a tape drive, tape deck,
tape unit, or MTU), a device that moves the tape over one or more magnetic *heads.
An electrical signal is applied to the write head to record data as a magnetic pattern on
the tape; as the recorded tape passes over the read head it generates an electrical signal
from which the stored data can be reconstructed. The two heads may be combined into a
single read/write head. There may also be a separate erase head to erase the
magnetic pattern remaining from previous use of the tape.
Most magnetic-tape formats have several separate data tracks running the length of the
tape. These may be recorded simultaneously, in which case, for example, a byte of data
may be recorded with one bit in each track (parallel recording); alternatively, tracks may
be recorded one at a time (serial recording) with the byte written serially along one track.
For parallel recording and some serial recording, there is a separate head (or set of read
and write heads) for each track, assembled into a single multitrack head unit; other
mechanisms have a single track head that is moved across the width of the tape to record
separate tracks. A third method is *helical scan recording where the heads are mounted in
a rotating drum around which the tape is wrapped on the skew, as in a video recorder, so
that tracks run diagonally across the tape.
Where write and read heads are close together, the magnetic signals may be read back
and checked for correctness as soon as they are written; this is called a read-whilewrite check.
Standard open-reel tape is ½ inch wide and carries nine data tracks, recorded in parallel;
the most widely used reel is 10.5 inches in diameter holding 2400 feet of tape, and such a
volume holds up to 140 megabytes of data depending on the tape format. 1200 or 600
foot tapes, on smaller reels, are sometimes used. Other formats are employed for special
purposes. Tape cartridges are much more variable in size and capacity because there are so
many different formats; volume capacity varies from a few megabytes to many gigabytes.
Magnetic tape has been used for offline data storage, backup, archiving, data
interchange, and software distribution, and in the early days (before disk storage was
available) also as online backing store. For many of these purposes it has been superseded
by magnetic or optical disk or by online communications. For example, although tape is a
*nonvolatile medium, it tends to deteriorate in long-term storage and so needs regular
attention (typically an annual rewinding and inspection) as well as a controlled
environment. It is therefore being superseded for archival purposes by optical disk.
Magnetic tape is still extensively used for backup; for this purpose, interchange standards
are of minor importance, so proprietary cartridge-tape formats are widely used.
magnetic tape cartridge (tape cartridge) A casing containing one or more reels
carrying a length of *magnetic tape, so arranged that it can be loaded on a suitable tape
transport for access without the tape being handled by the operator. There are many forms
of tape cartridge, some containing both the file reel on which the tape is wound and the
take-up reel, and some the file reel only. The term is also used to describe a file reel
without a separate casing but with some other provision, such as a special leader to protect
the tape and avoid the need for the operator to touch it.
magnetic tape unit (MTU) Another name for tape transport. See MAGNETIC TAPE.
magnetographic printer An obsolete type of printer in which the required image was
first written on a band or drum of magnetic recording material as a pattern of closely
spaced magnetic poles. The image was then developed by brushing it with a pigment that
was also ferromagnetic and thermoplastic. The image was transferred and bonded to paper
by applying pressure and/or heat.
magneto-optic storage (M-O storage) A storage method, used in rewritable optical
disk drives, that combines magnetic and optical recording techniques. The disk is coated
with film that initially is uniformly magnetized. A laser beam is used to demagnetize a
small spot on the film by heating it above a critical temperature (the Curie point or
compensation point), and a local magnetic field determines the direction in which the spot
is magnetized when it cools. To read the information, the disk is scanned by polarized
light from a low-power laser. The plane of polarization of the light reflected from a
magnetized surface is rotated according to the direction of the magnetic field—the Kerr
effect. This rotation, though small, can be detected and the original binary signal can be
reproduced. Despite high reliability and long life, which make M-O storage attractive for
specialized uses, it has not been widely adopted.
magnetostrictive tablet A type of *data tablet that consists of an array of wires that
will propagate strain waves at the speed of sound. As the device can be controlled by
signals moving at the speed of light, the difference in arrival times can be used to define a
position.
mag tape Short for magnetic tape.
mail See EMAIL.
mailbox The area on a network where a user’s email messages are stored.
mailmerge A technique whereby a list of names and addresses can be merged with a
*form letter to produce a set of personalized letters to a number of people, known as a
mailshot. The same list can also be used to produce address labels. The technique is
quite general and can be used wherever a list of items is to be printed or displayed in a
number of different ways.
mailshot See MAILMERGE.
mail user agent (MUA) An entity that offers services to the user as both a sender and
a receiver of email messages. When preparing to send a mail message, the mail user agent
allows the user to construct the message. The message is then passed by the user agent to
the MTA (message transfer agent), which is responsible for passing the message to the
recipient. At the point of delivery, the mail user agent allows the user to determine what
messages await collection. The mail user agent may also be able to access a message store,
which can act as a buffer for incoming mail.
mainframe 1. Generally, the combination of central processor and primary memory of a
computer system. The term excludes the I/O, backing store, etc., and is sometimes used
synonymously with central processor. 2. Any large computer system.
main memory (main store, main storage, RAM, primary memory) The storage that
is closely associated with the processor of a computer system and from which the program
instruction and data can be directly retrieved and to which the resulting data is written
prior to transfer to *backing store or *output device. In modern machines this is
*semiconductor memory but in earlier machines *core stores and *delay lines were used.
The majority of storage activity generated by a processor in the execution of a program
is directed at the main memory. In a modern processor, however, there are usually further
small high-speed memories interposed between the processor and main memory that holds
recently accessed main-memory data for rapid re-access. Each small high-speed memory
is known as a *cache. The main memory is normally used in conjunction with a backing
store with a much larger capacity. See also MEMORY HIERARCHY.
main program The section of a program that is entered first and from which program
units and procedures are called. It is the outermost block of a block-structured program.
main store (main storage) Other names for main memory.
maintenance 1. (hardware maintenance) The performance of *preventive or
*remedial maintenance on hardware in order to anticipate the onset of incipient faults or to
correct a *failure due to a hardware fault. 2. See SOFTWARE MAINTENANCE.
majority element (majority gate) A logic element with an odd number of inputs, and
whose output agrees with the majority of the inputs. See also THRESHOLD ELEMENT.
make A utility program—developed initially to run under UNIX—that can interpret a
build script (provided as an input file) containing instructions defining how, for
example, to build a program from a set of source text files. The instructions can indicate
the tools (such as language compilers, link editors, etc.) to be used to transform the text to
intermediate forms, and then to convert these intermediate forms into an executable
binary. An important feature of make is its ability to rebuild a program after some of its
components have been changed. When operating in this mode, make will interpret the
interdependency information inherent in the build script and use this to carry out the
minimum set of operations. Thus, for example, if a source language module (or any of the
definition files upon which it depends) has not been changed, then it will not recompile
the module. Make was designed to work closely with *sccs.
malfunction The occurrence of a fault, usually a hardware fault.
malware An inclusive term for any software with a subversive purpose. Malware
includes *Trojan horses, *viruses, *worms, *adware (def. 2), and *spyware.
MAN Acronym for metropolitan area network.
managed data network service (MDNS) A network service in which the contractor
provides not only the basic *bearer mechanisms between access points, but also a range of
management activities, typically those ensuring that the end-user will receive an agreed
level of service measured in terms of availability, recovery from breakdowns, traffic
levels, response times, and so on. Much of the necessary equipment and services can meet
the needs of a number of different clients that are based in the same or in overlapping
geographical areas, so reducing the total cost of the contractor’s operation. The advantage
to the user of an MDNS is that the responsibility of providing standby facilities and
trained maintenance are delegated to the provider of the MDNS, which should offset the
user’s loss of flexibility.
managed device A device, especially an active component in a network, that is capable
of receiving instructions and fresh information from elsewhere on the network, and of
returning responses to queries from elsewhere on the network. For this to be possible the
device must itself be an addressable entity on the network. See also SNMP.
management information system (MIS) An *information system whose prime
purpose is to supply information to management. The early concept of an MIS,
commonplace in the 1960s and early 1970s, was that systems analysts would determine
the information requirements of individual managers in an organization, and would design
systems to supply that information routinely and/or on demand.
Decision support systems (DSS) form a class of MIS, giving managers much greater
independence in their use of computer-based information. They depend on the union of
office information systems (including personal computing facilities for managers, operated
by themselves) with more conventional database and data-processing systems. They
assume that managers will be able to build and access their own personal databases, as
well as accessing the corporate databases, and that they will be able to formulate their own
access enquiries without depending on specialist intermediaries.
manager A program for organizing a resource such as a set of files (a file manager),
the windows of a graphical user interface (a *windows manager), a database (a *database
management system), or the allocation of RAM (a memory manager; see MEMORY
MANAGEMENT).
Manchester Mark I The world’s first operational stored-program computer, running
its first program in June 1948. It was designed by T. Kilburn and F. C. Williams at the
University of Manchester, UK, commencing in 1946. Several improvements were added
and the first realistic problem to be solved by the machine was achieved in April 1949,
shortly before *EDSAC began operations. It became the world’s first commercially
available computer when marketed by Ferranti Ltd in 1951 as the Ferranti Mark I. The
effectiveness of the machine was due to its use of *electrostatic (Williams tube) storage.
mandatory access control (MAC) A form of secure *access control in which the
*access rights to objects are set by system administrators and cannot be made more
permissive by other users. Compare DISCRETIONARY ACCESS CONTROL.
MANET See AD HOC NETWORK.
man-machine interface (MMI) Another name for human-computer interface.
Mann Whitney U-test See NONPARAMETRIC TECHNIQUES.
mantissa (fractional part) Another name for significand. See FLOATING-POINT
NOTATION.
many-sorted algebra See ALGEBRA.
many-sorted predicate calculus (many-sorted first-order logic) See PREDICATE
CALCULUS.
many-sorted signature See SIGNATURE.
map 1. (mapping) See FUNCTION. 2. See MEMORY MAP. 3. See BITMAP, PIXMAP. 4. See
KARNAUGH MAP.
MAP (Manufacturing Automation Protocol) A set of *protocols originally
devised by a group of US manufacturers of mechanical engineering products. This original
group was later expanded to include other parties, and the protocols became ISO OSI
(*open systems interconnection) standards. The protocols were intended to facilitate the
exchange of data relevant to mechanical-engineering design and manufacture. They cover
not only the problems of process control and assembly within a single manufacturing
plant, but also the exchange of design and manufacturing data between a main contractor
and his subcontractors. The standardization effort was abandoned in 2004.
MAPI Trademark (messaging application program interface) A system from Microsoft
that is designed to facilitate the handling of email messages from within some other
application, such as a word processor or spreadsheet.
map method A procedure for minimizing Boolean functions using a *Karnaugh map.
mapping 1. (map) See FUNCTION. 2. See I/O MAPPING, MEMORY MAPPING.
marching cubes An algorithm that creates a triangle representation of an *isosurface
from a volumetric dataset. The basis of this algorithm is a sequential *tessellation of the
boundary *voxels by small triangles. The algorithm was originally presented by Lorensen
and Cline. A refinement, called marching tetrahedra, deals with some of the
ambiguous cases not covered by marching cubes.
marching tetrahedra See MARCHING CUBES.
marginal check (marginal test) See PREVENTIVE MAINTENANCE.
mark 1. One of the binary signalling states on serial communication lines of terminals;
the other state is called space. Mark often corresponds to a negative voltage, space to a
positive voltage. 2. A line drawn on specially formatted cards or forms that are used with
mark sensing or mark reading equipment. 3. See TAPE MARK.
marker (on a magnetic tape) See BOT MARKER, EOT MARKER.
Markov chain A sequence of discrete random variables such that each member of the
sequence is probabilistically dependent only on its predecessor. An ergodic Markov
chain has the property that its value at any time has the same statistical properties as its
value at any other time.
Markov source A *Markov chain, whose random variables are regarded as internal
states, together with a mapping from these internal states to the symbols of some
external alphabet. The mapping need not be a *bijection. A Markov source is ergodic
if and only if its underlying Markov chain is ergodic. See also DISCRETE SOURCE.
mark reading (mark scanning) See OMR.
mark-space ratio See PULSE TRAIN.
mark-up language A notation for defining the structure and formatting of a document
by using ordinary characters embedded in the text. This system of tags identifies the
logical components of the document and relates them to a syntactic definition of the
document structure. See also HTML, SGML, XML.
marriage problem In a certain community every boy knows exactly k girls and every
girl knows exactly k boys. The problem is to show that every boy can marry a girl he
knows and vice versa. This problem is a case of showing that any *bipartite graph whose
vertices all have the same nonzero number of edges incident to it has a *perfect matching.
masking 1. (filtering) A logical operation carried out on a byte, word, or field of data
in order to modify or identify a part of it. A bit pattern—the same length as the item to be
masked—is generated and stored in a register as a mask. By use of the appropriate
operation, e.g. subtract, logical AND, logical OR, the mask can be used to suppress bits in
the data, or set them to zero, etc. The process is used for purposes such as identifying the
presence of high-priority bits in a status byte or resetting interrupts. 2. The use of a
chemical shield, the mask, to determine the pattern of interconnects in an integrated
circuit. Read-only memories (*ROMs) and programmable logic arrays (*PLAs) are
customized for their particular applications by the masking process, unless they are fieldprogrammable. See also PROGRAMMABLE DEVICES. 3. A technique used in software for
manipulating graphic images. An area of the image may be defined by a mark based on
colour, brightness, or some other parameter. The mask can then be used to allow
separation of parts of the image.
mask-programmable device See PROGRAMMABLE DEVICES, ROM.
masquerade See SEMANTIC ATTACK.
massively parallel See CONNECTIONISM, MPP.
mass storage An online backing store system capable of storing larger quantities of data
(sometimes an order of magnitude more) than conventional backing store. The quoted
capacity of mass storage has increased with advances in technology: in the early 1960s a
megabyte of storage came in this category; the term currently applies to systems that can
store petabytes of data.
master See BUS ARBITRATION, MASTER–SLAVE SYSTEM.
master file A *data file that persists over time and is subject to *file updating and
*query processing. A master file is thus distinct, for instance, from a *transaction file, an
*I/O file, or a work file.
mastering (of a CD-ROM disk) See MASTER TAPE.
master record A record on a *master file.
master–slave flip-flop A type of clocked *flip-flop consisting of master and slave
elements that are clocked on complementary transitions of the clock signal. Data is only
transferred from the master to the slave, and hence to the output, after the master-device
outputs have stabilized. This eliminates the possibility of ambiguous outputs, which can
occur in single-element flip-flops as a result of *propagation delays of the individual logic
gates driving the flip-flops.
master–slave system A system that has more than one processor and in which one of
the processors is designated as being the master and all other processors are slaves. The
master processor is capable of actions that the slaves cannot perform, usually in
connection with resource scheduling and the initiation of peripheral transfers. This
approach means that the problems of *synchronization are greatly reduced, since only the
master processor can be active in what might otherwise be *critical regions. It has the
drawbacks of introducing an artificial asymmetry between processors, and of causing
delays when processes that might be able to proceed are in fact delayed since the only
available processors do not have the necessary privileges.
master tape In tape-based data processing, a magnetic tape volume that is used without
any change to its contents. It is usually protected by a *write ring, or some equivalent
mechanical device, by which the operator can protect the tape from being erased or overwritten even though this is commanded by the host.
matching (of a graph) See PERFECT MATCHING.
mathematical programming A wide field of study that deals with the theory,
applications, and computational methods for *optimization problems. An abstract
formulation of such problems is to maximize a function f (known as an objective
function) over a constraint set S, i.e.
where Rn denotes the space of real n-component vectors x,
and f is a real-valued function defined on S. If S consists only of vectors whose elements
are integers, then the problem is one of integer programming. *Linear programming
treats the case of f as a linear function with S defined by linear equations and/or
constraints. Nonlinear objective functions with or without constraints (defined by systems
of *nonlinear equations) give rise to problems generally referred to as optimization
problems.
Mathematical-programming problems arise in engineering, business, and the physical
and social sciences.
matrix A two-dimensional *array. In computing, matrices are usually considered to be
special cases of n-dimensional arrays, expressed as arrays with two indices. The notation
for arrays is determined by the programming language. The two dimensions of a matrix
are known as its rows and columns; a matrix with m rows and n columns is said to be
an m×n matrix.
In mathematics (and in this dictionary), the conventional notation is to use a capital
letter to denote a matrix in its entirety, and the corresponding lower-case letter, indexed by
a pair of subscripts, to denote an element in the matrix. Thus the i,jth element of a matrix
A is denoted by aij, where i is the row number and j the column number.
A deficient two-dimensional array, in which one of the dimensions has only one index
value (and is consequently elided), is a special kind of matrix known either as a row
vector (with the column elided) or column vector (with the row elided). The
distinction between row and column shows that the two dimensions are still significant.
matrix inversion A numerical method by which the *inverse matrix of a given matrix
is produced.
matrix multiplication The multiplication of two matrices A and B according to the
rule
matrix norm See APPROXIMATION THEORY.
matrix printer A printer that forms the character or shape to be printed from an array of
dots. The dots can be formed on paper by a stylus impacting an inked ribbon, by separate
drops of ink ejected from a nozzle, or by one of the other nonimpact technologies in which
dots are formed by changing the colour of the media by heating (thermal printer) or by ink
adhering to an electric charge or magnetic pole pattern (electrographic and
magnetographic printers). When the term is used in reference to a single type of printer it
generally means an *impact printer or *dot matrix printer.
matrix-updating methods See OPTIMIZATION.
maximize In a *graphical user interface, to cause a *window to expand to its maximum
size, usually filling the entire screen. The action is achieved by clicking on the maximize
button or selecting ‘maximize’ from a window control menu. The maximum size and the
behaviour of items within the window (i.e. do they get enlarged too or is more seen of
them?) are determined by the window definition.
maximum-length sequence See M-SEQUENCE.
maximum likelihood, method of See LIKELIHOOD.
maximum-likelihood decoding A strategy for decoding an *error-correcting code: it
chooses the *codeword conditional upon whose occurrence the probability of the word
actually received is greatest. Compare MINIMUM-ERROR DECODING.
max sort A *sorting algorithm in which the largest key in the unsorted section of the file
is successively placed at the end of the file, which becomes the sorted section of the file.
maxterm (standard sum term) A sum (OR) of n Boolean variables, uncomplemented
or complemented but not repeated, in a Boolean function of n variables. With n variables,
2n different maxterms are possible. The complement of any maxterm is a *minterm. See
also STANDARD PRODUCT OF SUMS.
MB (Mb) Symbols for megabyte. See BYTE, MEGA-.
MBONE A *multicast backbone service that allows the transmission of messages to one
or more destinations. It supports multimedia applications such as videoconferencing.
MBONE is used for the *Internet. It employs a class D Internet address (see TCP/IP) to
route a packet to one or more LANs, and then relies on the facilities within these LANs to
route the packet to the required destinations.
Mbps (megabits per second, usually 106 (one million) bits per second) See
BPS, MEGA-.
Mbyte (megabyte) See BYTE, MEGA-.
MCA Trademark (micro channel architecture) An IBM *bus structure for personal
computers that was introduced in 1987 with the IBM PS/2. See also EISA.
MCAV (modified constant angular velocity) A modification of *CAV in which
the rotation rate of the disk is constant but the clock rate and data transfer rate are varied
in proportion to the radius of the track being accessed, thus obtaining the high data density
of *CLV without the long access time that usually goes with it. In practice the tracks are
usually grouped into 4 to 8 bands; clock and data rates vary between bands but not within
a band.
MCLs See MOBILE CODE LANGUAGES.
MCLV (modified constant linear velocity) A modification of *CLV in which the
data tracks on an optical disk are grouped in a number of bands; the same angular velocity
is used while accessing all the tracks within a band, but a different velocity is used for
each band. It is thus a compromise between CLV and *CAV.
MCSs (Mobile Code Systems) See MOBILE CODE LANGUAGES.
MDNS Abbrev. for managed data network service.
MDR Abbrev. for memory data register.
Mealy machine See SEQUENTIAL MACHINE.
mean See MEASURES OF LOCATION.
mean deviation See MEASURES OF VARIATION.
means/ends analysis A technique used in *artificial intelligence for forming plans to
achieve goals. A plan consists of a sequence of actions. The sequence is put together by
comparing the goals that each action achieves (the means) with the goals and action
preconditions that must be achieved (the ends).
measure 1. A quantity ascertained or ascertainable by measurement. 2. A number
assigned to a property of an entity according to well-defined rules, so as to describe or
represent that property objectively. 3. A number or other *symbol assigned to a specific
property by means of observation.
measurement of appearance The family of measurements necessary to characterize
the colour and surface finish of an object.
measures of location Quantities that represent the average or typical value of a
*random variable (compare MEASURES OF VARIATION). They are either properties of a
*probability distribution or computed *statistics of a sample. Three important measures
are the mean, median, and mode.
The mean of a sample of n observations, denoted by , is
The mean of a probability distribution, denoted by μ, is
for a discrete distribution and
for a continuous distribution; it is also called the expectation of x, denoted by E(x).
A weighted mean is used when members of a sample are known with different
reliability. To each observation xi corresponds a weight wi, and now is
If each observation is the mean of w observations, the formulas for the weighted and
unweighted means agree.
The median is the value of x exceeded by exactly half the sample or distribution. The
median of a distribution is the value for which the cumulative distribution function, F(x).
The mode is the most commonly occurring value. For distributions in which the
frequency function, f(x), has one or more local maxima, each maximum is called a mode.
These measures may be illustrated on the following sample of eight values of x:
The mean is 2.875, the median is 2.5, and the mode is 1.
measures of variation Quantities that express the amount of variation in a *random
variable (compare MEASURES OF LOCATION). Variation is sometimes described as spread
or dispersion to distinguish it from systematic trends or differences. Measures of
variation are either properties of a *probability distribution or sample estimates of them.
The range of a sample is the difference between the largest and smallest value. The
interquartile range is potentially more useful. If the sample is ranked in ascending
order of magnitude two values of x may be found, the first of which is exceeded by 75%
of the sample, the second by 25%; their difference is the interquartile range. An analogous
definition applies to a probability distribution.
The variance is the expectation (or mean) of the square of the difference between a
*random variable and its mean; it is of fundamental importance in statistical analysis. The
variance of a continuous distribution with mean μ is
and is denoted by σ2. The variance of a discrete distribution is
and is also denoted by σ2. The sample variance of a sample of n observations with mean
is
and is denoted by s2. The value (n − 1) corrects for *bias.
The standard deviation is the square root of the variance, denoted by σ (for a
distribution) or s (for a sample). The standard deviation has the same units of
measurement as the mean, and for a *normal distribution about 5% of the distribution lies
beyond about two standard deviations each side of the mean. The standard deviation of the
distribution of an estimated quantity is termed the standard error.
The mean deviation is the mean of the absolute deviations of the random variable
from the mean.
mebi- See BINARY PREFIXES.
mechanical verifier A system that provides automated assistance to the production of
a *program correctness proof. Typically such a system consists of two distinct parts: a
verification condition generator and a theorem prover. The former is
responsible for generating the theorems that must be proven in order to demonstrate that
*preconditions and *postconditions are consistent with the semantics of the statements to
which they relate. The theorem prover is then responsible for proving these verification
conditions.
Different mechanical verifiers vary considerably in their capabilities. A relatively
simple verifier might require that assertions giving all relevant information are attached
between every pair of successive statements (simple or compound), and would present any
nontrivial verification conditions to the user for manual proof; this approach is sometimes
called an assertion checker. A more sophisticated mechanical verifier requires only
major assertions to be attached prior to verification (perhaps only the input assertion and
output assertion) and is able to generate its own intermediate assertions as necessary.
Further, the theorem prover is capable of proving complex verification conditions, perhaps
presenting only the occasional lemma to the user for confirmation.
mechatronics An engineering discipline that attempts to integrate technologies from
mechanical engineering, electronics, and computer software and hardware in order to
design and create flexible ‘smart’ machines. Mechatronics is closely related to *robotics,
but covers relatively less complex systems such as intelligent door locks, cameras,
photocopiers, and washing machines.
Media Access Control address See MAC ADDRESS.
median See MEASURES OF LOCATION.
medium (plural: media) See DATA MEDIUM.
meet operator See LATTICE.
mega- (symbol: M) A prefix indicating a multiple of one million (106), as in megahertz
and megawatt. When the binary number system is used in a structure or process (as in
semiconductor RAM or ROM), the prefix then indicates a multiple of 220, i.e. 1 048 576,
as in megabyte or megabit. The context usually clarifies which meaning is intended,
although being numerically close the meanings are often considered more or less
equivalent. See also BINARY PREFIXES.
Megastream Trademark British Telecom’s higher-speed digital leased-circuit service.
Megastream circuits (or more correctly *virtual circuits) are available as a fully digital
service, operating at 1 and 622 Mbps. See also KILOSTREAM.
member (element) (of a *set S) An object x that is in S, usually denoted by x ∈ S. One
of the basic actions that can be performed on sets is asking whether or not an object is in a
set. See also OPERATIONS ON SETS.
member disk A disk that is under the control of array management software (see DISK
ARRAY).
Disk drives may be array members for part of the time and be used as
conventional disk drives otherwise. See also RAID.
memory A device or medium that can retain information for subsequent retrieval. The
term is synonymous with storage and store, although it is most frequently used for
referring to the internal storage of a computer that can be directly addressed by operating
instructions. See also CACHE, MAIN MEMORY, MEMORY HIERARCHY, MEMORY
MANAGEMENT, SEMICONDUCTOR MEMORY.
memory card An *add-in card containing memory chips either directly mounted on the
card or arranged in *SIMMS that plug into sockets on the card.
memory compaction (block compaction) Any of several methods used to relocate
information blocks in main memory in order to maximize the available free space in the
memory. See also STORAGE ALLOCATION.
memory cycle 1. The complete sequence of events for a unit of memory to go from a
quiescent state through a read and/or write phase and back to a quiescent state. 2. The
minimum length of time that is required between successive accesses (read or write) to a
memory. See also CYCLE.
memory data register (MDR) A *register used for holding information (either
program words or data words) that is in the process of being transferred from the memory
to the central processor, or vice versa.
memory dump A representation, which can be read by a person, of the contents at
some time of some part of the main memory of a computer system. A variety of
representation formats might be employed, but typically these would all be relatively lowlevel—e.g. purely numeric or assembler-code format. A memory dump is normally taken
for *postmortem purposes.
memory element A device that stores one item of information: if it has q stable states it
is said to be *q-ary, and if q = 2 it is said to be binary. It is usually implemented
electronically, sometimes with the assistance of the magnetic, optical, or acoustic
properties of a storage medium. In practice, most memory elements are binary. In fast
computer circuitry, the *flip-flop is the most common type of memory element.
Memory elements are employed specifically in computer memories and generally in
*sequential circuits. A memory element is any smallest part of such a system that
possesses more than one stable state. For example, a binary *shift register contains four
flip-flops and has 16 states, but each of its four memory elements has only two states; a
similar ternary shift register would have 81 states, but would still consist of four memory
elements, each having three states.
memory fill An aid to program debugging in which every location in the memory is
filled with a predetermined character before being overwritten by the incoming program.
memory guard A form of hardware *interlock used in some systems to control access
to memory that is currently involved in a peripheral transfer. At the time of initiating the
transfer the channel sets an indication that the buffer area is associated with the transfer;
this indication is cleared by the channel on completion of the transfer. Any attempt to
access the buffer area (other than by the channel) will suspend the process attempting to
access the buffer until the transfer has been completed.
memory hierarchy For physically different kinds of *memory there are significant
differences in the time to read or write the contents of a particular *location in memory,
the amount of information that is read or written on a given occasion, the total volume of
information that can be stored, and the unit costs of storing a given amount of information.
To optimize its use and to achieve greater efficiency and economy, memory is organized in
a hierarchy with the highest performance and in general the most expensive devices at the
top, and with progressively lower performance and less costly devices in succeeding
layers. The contents of a typical memory hierarchy, and the way in which data moves
between adjacent layers, might be organized as follows.
1. Register—A single word held in each *register of the *processor; typically a word
contains 4 bytes. This is sometimes not thought of as part of the hierarchy.
2. Cache—Groups of words within the *cache; typically a single group in the cache will
hold 64 words (say 256 bytes), and there will be, say, 1024 such groups, giving a total
cache of 256 Kbytes. Single words pass between the cache and registers within the
processor. All transfers into and out of the cache are controlled entirely by hardware.
Modern processors with a multi-core architecture (see MULTI-CORE PROCESSOR) will
have two levels of cache, L1 and L2, where an L1 cache is associated with each core
and the L2 cache links the whole device to main memory.
3. Main memory—Words within the main (*random-access) memory. On a very high
performance system, groups of words corresponding to a group within the cache are
transferred between the cache and the main memory in a single cycle of main memory.
On lower-performance systems the size of the group of words in the cache is larger
than the width of the memory bus, and the transfer takes the form of a sequence of
memory cycles. The algorithm that controls this movement is implemented entirely in
hardware. Main memory sizes are very variable—from 256 Mbytes on a small system
up to tens or even hundreds of Gbytes on a high-performance system.
4. Online backing store—Blocks of words held on permanently connected *backing
store. There may be two somewhat distinct forms of activity here:
(a) swapping device—pages (of say 4 Kbytes) or segments (up to many Mbytes) of
memory held on a *swapping device are transferred as complete units between their
backing-store home and a page frame or segment area in main memory, under the
control of an algorithm implemented by the software of the operating system but
with hardware assistance to indicate when pages or segments are to be moved;
(b) backing store—complete files, or clearly identifiable subsections of large files,
are moved between the backing-store device and the main memory in response to
explicit actions by the programmer, usually by a supervisor call to the operating
system.
5. Demountable storage—Complete files, backed up onto removable disks or
magnetic tape within the file store system and the archiving system. Complete files are
transferred in either direction. The creation of backup copies and the reinstatement of a
backed-up file may be automatic, or may require direct intervention by the end user.
The backup medium is typically an external *hard disk, a solid-state drive, or a
modified form of a video system, often connected via plug-in, plug-out system such as
*USB.
6. Read-only library—Complete files, and collections of associated files relating to a
single application, held on read-only devices such as *DVD, or on a device with some
form of write-protection control. Complete sets of files are read into the system from
the read-only device, but for obvious reasons there are never any transfers from the
system to the device.
memory management Control of the *memory hierarchy of a system as a whole, or
control of allocation at a fixed level within the memory hierarchy. In the former case
information stored within the system is shuttled between one realization of memory and
another, the objective being to maintain maximum *hit rate in each form of memory. This
movement may be controlled by
(a) voluntary user action, e.g. copying a file from disk to memory in order to edit it;
(b) system software, e.g. transfer of a page between swapping device and memory when a
page fault occurs;
(c) system hardware, e.g. movement of a set of words from memory to cache when a word
within the set is accessed.
At a given level of the hierarchy the operating system will control what fraction of that
level is to be allocated to each process. This can clearly only occur where control is by
system software, and refers most particularly to the allocation of memory to a process, or
to the allocation of space on the swapping device. Movement between disk and magnetic
tape is often separately treated as archiving. See also STORAGE PROTECTION.
memory map A schematic presentation of the use to which memory is being put, often
presented as a byproduct during the compilation of a program. The memory map may be
useful in the diagnosis of faults in the compiled program, especially when used in
association with a *memory dump.
memory mapping 1. A technique for managing peripheral devices. The control
registers of the peripheral device appear to the processor as words in memory whose
contents can be written and read using the normal store and fetch operations. 2. A similar
technique for reading and writing *files. A file’s contents are mapped to a section of a
process’s virtual memory and treated as an array of bytes.
memory protection Any of many methods for controlling access to or use of memory.
This control may be to prevent inadvertent user interference, to provide for system
security, or both.
A mechanism for controlling the types of access permitted to an area of memory is
known as a memory protect. In virtual memory systems it may be possible to assign
certain areas as being capable of designated modes of access; for example, an area that is
known to contain only the code of shared subroutines may be designated as having
‘execute only’ access, and can only be read during the instruction-fetch phase of executing
an instruction. The permitted mode of access may differ for different processes. Definition
of memory areas may use *bounds registers; fixed memory areas may be controlled by
*locks and keys; individual words may be controlled by *tags.
A violation of the memory protection system usually leads via an *interrupt to a forced
process termination.
memory reference instruction An *instruction that has one or more of its operand
addresses referring to a location in memory, as opposed to one of the CPU registers or
some other way of specifying an operand.
memory-resident program A program that once loaded into memory stays there and
can be accessed or reactivated whenever necessary without having to load another copy
from disk.
memory stick See USB DRIVE.
memory-to-memory instruction An instruction that transfers information from a
memory and returns it to a memory. The information may be modified during the transfer
(e.g. incremented); the information may or may not be returned to the same location. The
term is also used to refer to an instruction that transfers information between levels of a
*memory hierarchy. Transfers may be word by word or block transfers.
menu A list of options that may be displayed either vertically or horizontally on a screen
and from which one or more items may be selected using an input device. If a mouse or
other *pointing device is available, then the *cursor may be moved to the desired item and
a selection made by clicking a mouse button or its equivalent. Alternatively the cursor
may be moved by means of the arrow keys on the keyboard. Each item in the menu may
have a unique number or letter to identify it, or the first or some other character unique to
the item may be emphasized in some way. In this case, the selection may be made by
pressing the appropriate key on the keyboard. See also POP-UP MENU, PULL-DOWN MENU,
TEAR-OFF MENU.
menu bar In either a text- or graphics-based user interface, a row, usually horizontal, of
words or abbreviations that when activated by a pointing device or a sequence of key
depressions cause some appropriate action. This may involve the display of *menus.
menu bypass A technique whereby expert users of a *menu-driven program may avoid
the rather slow and cumbersome process of stepping through a number of menus. This
usually involves pre-empting the menus by typing in the selections before they appear.
menu-driven program A program that obtains input from a user by displaying a list
of options—the *menu—from which the user indicates his/her choice. Systems running
menu-driven programs are commonplace, ranging from microprocessor controlled
washing machines to bank cash dispensers. In the case of the cash dispenser, single keys
are pressed to indicate the type of transaction (whether a receipt is wanted with the cash,
or if a statement of the bank balance is required) and with many, a single key is pressed to
indicate the amount of money required.
Menu-driven systems are advantageous in two ways: firstly, because input is via single
key strokes, the system is less prone to user error; secondly, because only a limited range
of characters are ‘allowed’, the way in which the input is to be entered is unambiguous.
This contributes toward making the system more user-friendly. Compare COMMAND-LINE
INTERFACE.
Mercurial A distributed *source code control system developed by Matt Mackall in
2005 and now maintained as open-source by the Mercurial community.
mergeable heap Any data structure representing a set of ordered elements that can
support the insertion and deletion of elements as well as the set operation of union and the
calculation of the minimum elements in a set. See also OPERATIONS ON SETS.
merge exchange sort Another name for Batcher’s parallel method.
merge sort See MERGING.
merging Combining multiple sets of data to produce only one set, usually in an ordered
sequence. This approach is usually employed in external *sorting, where the data is kept
on backing store. The *polyphase merge sort is an example of a merging method.
mesh (grid) The result of subdividing a region in time and/or space into smaller
subregions. A rectangular region in the x,y-plane can thus be divided into smaller
rectangles by lines parallel to the x- and y-axes. The points of intersection of the lines are
called the mesh (or grid) points. A *discretization method replaces *differential
equations defined in a region by a finite set of equations, which define approximations to
the exact solution at the mesh points. The *finite-difference and *finite-element methods
are important methods of this general type. See also ADAPTIVE MESHING.
mesh interconnection 1. (crossbar switch) A form of network connection in which
each possible transmitter can establish a direct connection to each possible receiver. 2.
(mesh network) A set of network connections in which there is more than one route
between any two nodes on the network, thus giving resilience against the failure of any
single link between any pair of nodes.
message 1. The unit of information transferred by a *message switching system.
Messages may be of any length, from a few bits to a complete file, and no part of a
message is released to its final recipient until all of the message has been received at the
network node adjacent to the destination. 2. Another name (deprecated) for packet. The
distinction between packet and message is valuable, since it refers to whether or not a
partial transmission of a complete document can occur; a *packet switching system may
allow this whereas a *message switching system may not. 3. See SHANNON’S MODEL (of
a communication system). 4. A specially formatted document sent in an *email system. 5.
See OBJECT, OBJECT-ORIENTED PROGRAMMING.
message passing A way of designing a software system that involves concurrent
processes sending data encapsulated as messages to each other. The advantage of the
approach is that it provides a low level of coupling between the concurrent processes such
that the messages can be passed either directly within a single processor or indirectly
using a *LAN or *WAN communications medium.
In some forms of message passing the recipient is named specifically by the sender; in
other forms the recipient is not defined by the sender but by the way in which the network
of concurrent processes is defined. The latter scheme provides a very good basis for
reusing the concurrent processes, because they are independent of each other. *UNIX
processes use this form of communication; the processes are independent and the
connectivity is defined (at a higher level) by defining ‘pipes’ that convey messages
generated by one process to one other process. A similar scheme is provided by
MASCOT. Most *object-oriented design methods include some form of message passing,
especially to transmit events from one object to another. In these approaches the recipient
is usually defined explicitly, which thereby increases the coupling between the objects.
message queueing The process of storing a message in a node of a *message switching
network until sufficient resources are available for the message to be forwarded to the next
node along the path to its destination.
message switching A data-switching strategy that requires no physical path to exist
between sender and receiver before communication can take place. Message switching
passes *messages via relays, called switching offices, in a *store and forward network.
Each switching office receives a message, checks it for errors, and retransmits it to the
next switching office on the route to the destination. Because of the large buffers and
variable delays of message switching, most computer networks use *packet switching or
*circuit switching techniques for their underlying network components, and add message
switching functions (such as *email and *file transfer protocol) at higher levels.
message switching network A network in which data is moved as complete messages
of arbitrary length, rather than being subdivided into packets, which contain a variable
amount of data but with a fixed upper limit on length, or as cells, which contain a fixed
amount of data.
meta-assembler A program that accepts the syntactic and semantic description of an
assembly language, and generates an *assembler for that language. Compare COMPILERCOMPILER.
metaballs A representation used in computer graphics for efficiently modelling soft
objects, i.e. objects that can be deformed.
metafile A mechanism for storing and transmitting graphical information in a deviceindependent way. See also CGM.
METAFONT A system for designing digital typefaces, designed to complement the
*TeX typesetting system. The designer specifies character shapes in terms of curves called
splines, and the system then generates bitmap images for use in printing.
metalanguage A language used to specify some or all aspects of a programming
language. *BNF and *XML are examples.
meta tag A tag used in a web page to contain text that is not displayed on the screen, but
is used to describe the contents. The meta tag might include, for example, the author, date
created, and a list of keywords. Many search engines use the keywords in meta tags to
compile their indexes.
methodology 1. In general, a coherent set of methods used in carrying out some
complex activity. The word is most frequently used in terms such as programming
methodology or (system) design methodology. In the UK the word method is
usually preferred for this meaning. 2. (especially in the UK) The science or study of
method.
methods In object-oriented programming, the procedures of an *object.
metric 1. A number representing the degree to which software, or an entity related to
software, possesses some notional property, as observed or perceived by an individual or
group. 2. Informal name for measure. 3. A specific type of *mapping in which the
codomain is a number, and the triangle *inequality applies.
metropolitan area network (MAN) A network intermediate between a *local area
network (LAN) and a *wide area network (WAN); the term was originally used to refer to
a network serving a single town or district. There are no formal rules to determine whether
a given network should be classified as a LAN, MAN, or WAN, and the differences lie as
much in their style of organization as in their technology or geographical or physical size.
A MAN may either be operated as a joint activity by a number of separate
organizations, which may set up a jointly owned enterprise to operate the MAN, or it may
be operated by a company that specializes in the operation of networks and acts as a
managing agent on behalf of the organizations that require the MAN. The MAN
interconnects the LANs of the organizations that operate the MAN, but may also provide
immediate connection to the MAN for organizations that do not operate their own internal
LAN.
Mflops (MFLOPS, megaflops) A million floating-point operations per second. See
FLOPS.
MFM (modified frequency modulation) See DISK FORMAT.
M2FM (modified modified frequency modulation) See DISK FORMAT.
MICR (magnetic-ink character recognition) A process in which data, printed in
ink containing ferromagnetic particles, is read by magnetic read heads. The shape of the
characters resembles those of normal typescript but each generates a unique signal as it is
scanned by the read head. The most common application is for encoding numbers on bank
checks.
There are two standardized fonts: the E13B and CMC7. The E13B font is very
rectangular in appearance and some parts of the vertical limbs may be thickened to
accentuate the difference in the generated wave form. This font is widely used in the US
and the UK. The CMC7 font has the character shape sliced into seven vertical strips with
the six intervening spaces either wide or narrow. Each of the numerical symbols and the
four special symbols is coded with a combination of two wide and four narrow spaces.
micro 1. (symbol: μ) A prefix to a unit, indicating a submultiple of one millionth, 10−6,
of that unit, as in microsecond. 2. Short for microcomputer.
microblog A type of *blog in which the length of messages is restricted, typically to
hundreds of characters only. Some microblogging services also allow pictures and videos
to be posted. The ‘immediacy’ of microblogging can make it an appealing medium to
advertisers or social campaigners. A very popular microblogging service is *Twitter.
microcircuit An *integrated circuit, generally one performing a complex function. An
example is a *microprocessor comprised of ALU, control circuits, registers, program
counter, and some memory, all within a single integrated circuit.
microcode A sequence of *microinstructions, i.e. the program code in a
microprogrammed *control unit. See also MICROPROGRAMMING.
microcomputer 1. A computer system that utilizes a *microprocessor as its central
control and arithmetic element. The *personal computer is one form. The power and price
of a microcomputer is determined partly by the speed and power of the processor and
partly by the characteristics of other components of the system, i.e. the memory, the disk
units, the display, the keyboard, the flexibility of the hardware, and the operating system
and other software.
Memory sizes range up to several terabytes and the access speed can also vary
considerably. *Optical disks’ capacities lie in the hundreds of gigabyte range, as do the
capacities of *USB flash drives, while hard disk capacities are in the terabyte range.
Microcomputer *displays are generally high-definition colour monitors based on CRT and
LCD technologies. *LCD and *plasma displays are used on *laptops, *notebooks, and
other portable models. The flexibility of the hardware can be measured by the number and
type of enhancements available. These might include extra memory, more disk drives,
*pointing devices, communications interfaces, and the ability to participate in networks.
The *operating system can be characterized by its use of memory, how much can be
accessed and how well it is done, how many tasks can be run concurrently, and how it
appears to the user. 2. A single integrated circuit containing all the logic elements needed
for a complete computer system.
microcontroller 1. A single-chip computer designed specifically for use in device
control, communication control, or process-control applications. It typically comprises a
microprocessor, memory, and input/output ports. A typical microcontroller might have a
relatively short word length, a rich set of bit-manipulation instructions, and lack certain
arithmetic and string operations found on general-purpose microprocessors. 2. A
microprocessor-based device or system designed for control applications.
microfiche (microfilm) See COM.
microinstruction One instruction in a microprogram that specifies some of the detailed
control steps needed to perform an *instruction. See also MICROPROGRAMMING.
micropipeline An asynchronous processing pipeline (see PIPELINE PROCESSING). It is a
self-timed FIFO buffer that may include computational elements between its stages.
microprocessor A semiconductor chip, or chip set, that implements the *central
processor of a computer. Microprocessors consist of, at a minimum, an *ALU and a
*control unit. They are characterized by speed, word length (internal and external),
*architecture, and *instruction set, which may be either fixed or microprogrammed. It is
the combination of these characteristics and not just the *cycle time that determines the
performance of a microprocessor.
Most microprocessors have a fixed instruction set. Microprogrammed processors have a
control store containing the microcode or firmware that defines the processor’s instruction
set; such processors may either be implemented on a single chip or constructed using *bitslice architecture elements. *RISC microprocessors are designed to execute a small
number of simple instructions extremely fast.
The processor’s architecture determines what register, stack, addressing, and I/O
facilities are available, as well as defining the processor’s primitive data types. The data
types, which are the fundamental entities that can be manipulated by the instruction set,
have included bit, nibble (4 bits), byte (8 bits), word (16 bits), double words (32 bits), and
quadruple words (64 bits). Note that a word is usually defined as the number of bits in the
processor’s internal data bus rather than always being 16 bits. Instructions generally
include arithmetic, logical, flow-of-control, and data movement (between stacks, registers,
memory, and I/O ports).
The first microprocessor, the four-chip set Intel 4004, appeared in 1971 accompanied by
considerable debate about its utility and marketability. It was the outcome of an idea
proposed by Ted Hoff of *Intel Corp. for a calculator that could implement a simple set of
instructions in hardware but permitted complex sequences of them to be stored in a readonly memory (ROM). The result of his proposal was a design for a four-chip set consisting
of a CPU, *ROM, *RAM, and a *shift register chip, the chip design proceeding in 1970
under the direction of Federico Faggin, later the founder of Zilog, Inc. The Intel 4004 had
a 4-bit data bus, could address 4.5 Kbytes of memory, and had 45 instructions. Its 8-bit
counterpart, the Intel 8008, was introduced in 1974 and its improved derivative, the Zilog
Z80, in 1976. By this time there were over 50 microprocessors on the market.
The next generation of microprocessors included the Zilog Z8000, Motorola 68000,
Intel 8086, National 16000, as well as the older Texas Instruments 9900 and Digital
Equipment Corporation LSI-11. All of these chips use a 16-bit-wide external data bus.
Microprocessors that use 32-bit external data buses include the Intel386, Intel486,
Motorola 68030, and Digital’s VAX 78032 and 78132 (processor and FPA). Modern
processors, for example recent products in Intel’s Ivy Bridge family and its derivatives and
in AMD’s Piledriver family, use a 64-bit external data bus with 64-bit data types and have
multiple CPU cores. RISC microprocessor chips with a 64-bit architecture include the
PowerPC and SPARC families. See also MULTI-CORE PROCESSOR.
microprogramming A method of accomplishing the *control unit function by
describing the steps in that function as a sequence of register-transfer level operations that
are much more elementary than *instructions. In this method of designing and building a
control unit, an additional memory, commonly called a microprogram store, contains
a sequence of microinstructions. A number of microinstructions will be required to
carry out an ordinary machine instruction, thus the microprogram store should be faster—
have a shorter *cycle time—than the normal fast memory.
Microinstructions are usually classified as either horizontal or vertical. In a
horizontal microinstruction most of the bit positions have a one-to-one correspondence
with specific control functions. Horizontal microinstructions provide explicit control of
functions at particular points within the CPU. For example, a particular bit in the
microinstruction would call for a specific register to be cleared at a specific clock time. A
vertical microinstruction generally contains highly coded fields describing elementary
operations to be performed by certain elements of the control unit and *ALU, and the
sources and destinations of information passing between these units. In such a
microinstruction, a field, say of three bits, might be decoded to indicate which of eight
registers is to be one source of an operation to be performed in an ALU. Other fields
would define the operation and any other necessary sources. Horizontal microinstructions
will in general contain more bits, or be wider, hence the word horizontal. Vertical
microinstructions, although containing fewer bits, require more decoding.
Some microprogrammed control units go through two levels of microprogramming. The
first level consists of addresses of horizontal microinstructions. The second level is the
used or useful subset of all horizontal microinstructions. This provides for more efficient
use of a horizontal microprogram memory at the expense of two memory references per
microinstruction execution. In this form of microprogramming the first memory has been
called the microprogram store and the second memory has been called the nanostore.
The control units of most CISC processors are microprogrammed. This permits a more
orderly and flexible approach to control unit design and permits changes in a control unit
by changing the memory contents. Most microprogram stores are made with *ROM.
These memories are generally faster and are potentially less prone to errors. Other
microprogram stores, usually called writeable control stores (WCS), are made with
*RAM. These provide greater ease of change of control unit function; in some cases users
are permitted or encouraged to ‘build’ specialized instructions. Some microprogrammed
control units have a mixture of ROM and RAM microprogram stores. These permit
special microprograms to be loaded for maintenance and diagnostic purposes.
Manufacturers of supercomputers have not, in general, employed microprogramming
because they have been prepared to accept the higher complexity of *hardwired control
for the sake of ultimate performance. The simpler designs of current RISC processors
have also opted for hardwired techniques to optimize instruction-execution rates of their
simple instruction sets.
microprogram sequencer The part of a microprogrammed control unit that provides
the equivalent of a *program counter at the microprogram level. See
MICROPROGRAMMING.
microprogram store (control memory) The memory that contains a microprogram. It
may be fixed (ROM) or alterable (writeable control store). See MICROPROGRAMMING.
microrelief A technique used in optical recording. The surface of the medium is
impressed with a very fine pattern that scatters light. When a spot on the surface is heated
by a laser beam, the material flows to leave a smooth reflective surface. The technique is
sometimes called moth-eye recording because the pattern resembles that of the cornea of
a moth’s eye.
microsequence A sequence of *microinstructions, i.e. a microprogram or a portion
thereof. See also MICROPROGRAMMING.
Microsoft The largest independent software producer in the world, founded by Paul
Allen and Bill Gates in 1975. Microsoft produces a very wide range of software products
ultimately based on its Windows operating system. Microsoft’s business practices have
often been criticised; this has led to successful legal action, in the United States and
elsewhere, resulting in Microsoft agreeing to change its practices. The company also
publishes books and multimedia titles, offers email services, and sells electronic game
systems, computer peripherals (input/output devices), and portable media players.
middleware 1. (firmware) Products that in some sense occupy a position between
hardware and software. It is usually system software held in *ROM. In particular where
microcoded systems are used, the actual microcode is sometimes spoken of as
middleware. 2. Software that occupies a position between the *operating system and
*applications programs, particularly in a distributed system. The term is often used for a
library of infrastructure routines that provide services for application developers.
MIDI (musical instrument digital interface) The means whereby an electronic
musical instrument can communicate with other MIDI instruments and computers. Many
*sound cards provide MIDI input and output facilities.
midi-tower A computer system box (see DESKTOP) that is small enough to stand on a
desk usually alongside the monitor. The dimensions are such that height > depth > width.
Peripherals such as CD-ROM disk drives are usually mounted horizontally in the front
surface one above the other. See also TOWER.
midpoint rule The explicit rule
for the solution of ordinary differential equations (h is the stepsize). It is an example of a
*linear multistep method, important for its use as the basis of *Gragg’s extrapolation
method.
migration path The series of steps undertaken to allow an organization to move away
from its current infrastructure (hardware, software, or network). The term is frequently
used in connection with the introduction of new aspects of an IT service, where it is
essential both to maintain an existing service, to introduce a new service, and to allow the
old and the new services at least to coexist and possibly to interwork. See LEGACY
NETWORKS.
Millennium bug The problem faced by computer users when the year 2000 (y2k) was
reached. Many accounting and database applications had, for years, used only two digits
to represent the year in a date; i.e. they would use 31.12.99 to represent 31 December
1999. This would obviously give incorrect follow-on dates for 01.01.00, and incorrect
sorting of records in date order. Another problem involved the BIOS giving incorrect dates
after 31.12.99. A considerable amount of money and time was spent by companies
preparing for y2k. Most problems were solved by new software issues or by patches to
existing software, and the major disruption that many had predicted did not materialize.
milli- (symbol: m) A prefix to a unit, indicating a submultiple of one thousandth, 10−3, of
that unit, as in millisecond.
Milnet (Military Network) A restricted-access part of the original *ARPANET.
MIMD processor Short for multiple instruction (stream), multiple data (stream)
processor. See CONCURRENCY.
MIME (multipurpose Internet messaging extensions) A system designed to
support the encoding of information other than straightforward text, such as digitized
audio or video signals, so as to allow the signals to be transferred as the contents of email
messages.
min (minimum) 1. One of the basic actions performed on a set on whose elements a
*total ordering ≤ is defined; when applied in the form min(S) it produces the smallest
element of the set S with respect to ≤. 2. A *monadic operation applied to a language L
and defined in such a way that min(L) is the set of strings in L that have no proper
*prefixes that are also in L.
minicomputer (mini) Historically, a computer that physically went within a single
equipment cabinet, i.e. on the order of a few cubic feet. Compared with larger computers,
minicomputers were cheaper and slower, with smaller memory and usually shorter word
length. Minicomputers have largely been replaced by networks of microcomputers.
mini DIN connector See DIN CONNECTOR.
minimal algebra An *algebra generated by elements named as constants in its
*signature. Every element of the algebra can be constructed by finitely many applications
of the basic operations to the constants. The simplest example is the algebra
wherein all natural numbers can be constructed by applying the *successor function n+1 to
the constant 0 sufficiently many times.
minimal machine An abstract machine possessing no redundant states. To any *finitestate automaton or *sequential machine there corresponds a unique (up to isomorphism)
minimal machine that recognizes the same language (in the case of finite automata) or has
the same response function (in the case of sequential machines). This is true for infinite as
well as finite state-sets.
There are two ways in which a state q may be ‘redundant’: it is either ‘inaccessible’ in
that there is no input string that takes the start-state to q, or else it is equivalent to another
state q′ in that the subsequent behaviour of the machine is the same whether it is in state q
or q′. In a minimal machine all inaccessible states have been dropped and all equivalent
states have been merged. There is a simple algorithm that will give the minimized version
of any machine. See also MYHILL EQUIVALENCE, NERODE EQUIVALENCE.
minimax A basic algorithm in *artificial intelligence, in particular when constructing
programs to play games such as chess. A *tree of possible moves, alternating with
possible opponent’s moves, is constructed to some depth. Evaluation of the positions at the
leaves is then passed back up the tree, choosing always the minimum evaluation for the
opponent and the maximum for the program itself. See also COMPUTER CHESS.
minimax procedure A procedure usually used in *approximation theory in order to
find an approximating function, often a polynomial, that has the smallest maximum error
on a given interval.
minimization 1. The process of manipulating a logical expression and thereby
transforming it into a simpler but equivalent expression with the same truth table. In
practice this commonly means reducing the number of *logic gates, gate inputs, or *logic
levels in a *combinational circuit that realizes the logical expression. Minimization
methods include use of *Karnaugh maps and algebraic manipulation (often computeraided). 2. The process of converting a *finite-state machine to an equivalent *minimal
machine. 3. In the study of *effective computability, the process of defining a new
function by searching for values of a given function using the minimization operator
or μ-operator. The functions involved are usually over the *natural numbers. Let g be a
function of n+1 variables. Then, for any given values of x1,…,xn, the expression
is evaluated by searching for the smallest value of y for which
This can be done by letting y run through all natural numbers, in increasing order, until a
suitable y is found, whereupon that value of y is returned as the value of the μ-expression.
If no suitable y exists the μ-expression is undefined. Also it may happen that before a
suitable y is found a value of y is encountered for which
is itself undefined; in this case again the μ-expression is undefined.
This construct is used to define a function f of n variables from the function g of n+1
variables:
Because of the possibility of the μ-expression being undefined, f is a *partial function. The
process of searching for values, and the use of minimization, are essential factors that
allow the formalism of *recursive functions to define all the computable functions. 4. See
OPTIMIZATION.
minimization operator (μ-operator) See MINIMIZATION.
minimize In a *graphical user interface, to cause a *window to contract down to an
*icon, normally close to one edge of the screen. The action is achieved by clicking on the
minimize button or selecting ‘minimize’ from a window control menu.
minimum-access code A form of programming for early computers with magneticdrum storage. It was also known as optimum programming. In programs for this
kind of machine, each instruction specified the address of its successor, and it was
desirable to place instructions in addresses so chosen that they were available under the
reading heads when required. The most widely used machine of this kind was the IBM
650; the success of the machine was largely due to the SOAP assembler, which produced
near-optimal code positioning without any special effort on the part of the programmer.
minimum-cost spanning tree See SPANNING TREE.
minimum-error decoding A strategy for decoding an *error-correcting code: it
chooses the *codeword most likely to have been transmitted, given the word actually
received. This is by contrast with *maximum-likelihood decoding, but the two strategies
become identical when all the codewords are equally probable.
Minitel (Médium interactif par numérisation d'information téléphonique)
(Interactive medium by digitalizing telephone information)) French *videotex service that
counts as perhaps the most successful online service before the general adoption of the
World Wide Web. It began in 1977 as an online telephone directory but went on to provide
more than 25 000 services, including facilities for online purchases, train reservations,
mail, and chat. At its peak the Minitel had more than 20 million users, before being
gradually overtaken by the Internet. The service was suspended in June 2012.
minterm (standard product term) A product (AND) of n Boolean variables,
uncomplemented or complemented but not repeated, in a Boolean function of n variables.
With n variables, 2n different minterms are possible. The complement of any minterm is a
*maxterm. See also STANDARD SUM OF PRODUCTS.
mipmap A pyramidal structure used in mapping two-dimensional textures; mip stands
for multum in parvo—Latin: many things in a small place. The use of mipmaps—
mipmapping—enhances bilinear interpolation (which may be used to smoothly translate
and magnify the texture) with interpolation between prefiltered versions of the map
(which may be used to compress many pixels into a small place).
A mipmap is indexed by three coordinates: U, V, and D. U and V are spatial coordinates
of the map and D is used to index and interpolate between different levels of the pyramid.
A mipmap is organized as a two-dimensional array, where successively filtered and downsampled versions of each colour component of the image are instanced above and to the
left of the originals, in a series of smaller and smaller images, each half the linear
dimension (a quarter of the number of samples) of its parent. With this memory
organization, addressing the maps is possible with binary scaling, which is inexpensive.
When a target pixel is covered by a collection of source pixels, the mipmap pixels
corresponding most closely to this collection are used to give a filtered value. Linear
interpolation between levels of filtering (levels in the pyramid) is used to further smooth
the values.
mips (million instructions per second) A measure of processing speed.
Miranda A functional programming language, similar to *ML.
mirror disk Part of a mirror set in which two or more disk drives contain identical
images of user data. A mirror set provides a very reliable single *virtual disk drive whose
capacity is equal to that of its smallest *member disk. See also RAID, STRIPE DISK.
mirroring See RAID.
mirror set See MIRROR DISK.
mirror site A website or FTP site that has an exact copy of data held at some other site.
Mirror sites are used to widen access and speed up downloads.
MIS Abbrev. for management information system.
MISD processor Short for multiple instruction (stream), single data (stream) processor.
See CONCURRENCY.
missing observations Values unavoidably absent from a set of structured data, as in an
*experimental design. Algorithms exist to estimate values to be substituted for those that
are missing, to allow the analysis to be completed.
mixed alphabet An *alphabet that has been subjected to a *permutation for
incorporation in an *encryption algorithm, usually to effect a substitution (see
SUBSTITUTION CIPHER).
mixed-base system See NUMBER SYSTEM.
mixed cipher A cipher that incorporates both *transposition and *substitution
operations, often repeating these alternately. Mixed ciphers are usually *block ciphers.
The *Data Encryption Standard is a mixed cipher.
mixed logic A *digital design that includes both *positive and *negative logic.
mixed-radix system See NUMBER SYSTEM.
ML A *functional language developed at Edinburgh University in the late 1970s to
support a formal proof system (Logic for Computable Functions), which was later
developed into a general-purpose functional programming language. See also STANDARD
ML.
MMI (man-machine interface) See HUMAN-COMPUTER INTERFACE.
MNP (Microcom Network Protocol) A protocol for error correction and
compression of data transmitted on telephone lines. Originally developed by Microcom,
Inc., a major modem vendor during the 1980s, it was acquired by *Compaq Computer
Corporation in 1997 and very widely used until supplanted by the v32bis line of modems.
M-O (magneto-optic) See MAGNETO-OPTIC STORAGE.
MOB (movable object block) Another term for sprite.
Mobile Code Languages (MCLs) A class of programming languages that support the
development of Mobile Code Systems (MCSs). These are systems that realize code
mobility—the movement or migration of a program known as an executing unit (EU),
or of its code or text, from one computational environment (CE) to another. A CE is
the environment (computer, system, subsystem, or network) in which the actual execution
or computation takes place.
MCLs model two types of mobility: weak mobility, which is characterized by the
migration of the program’s code only, without reference to any precedent execution state
except perhaps some initialization data; and strong mobility, which takes into account
the last execution state and permits a program seamlessly to resume its execution at the
point at which it had left it. *Java applets are an example of weak mobility. An example of
an MCL that provides both weak and strong mobility is occam-pi. This also provides an
additional form of mobility known as channel mobility, which models the change of
connectivity in a network of communicating programs. Traditional MCLs (e.g. Icarus) do
not take channel mobility into account at all.
Mobility in this sense is not to be confused with *mobile computing, which is
concerned with the computation carried in portable devices. Use of MCLs is not
widespread and research on the topic is still ongoing.
mobile computing Generally, any application in which the computing system used is
not assigned a specific location. In some cases the movement of the system is an essential
element of the application; for example the system may be mounted in a vehicle, or may
be used by someone whose work demands visits to different locations with no on-site
computing facilities. In other cases it is the end-user who may move from place to place,
each equipped with computing facilities, and along the way the user is able to use any
network-connected workstation that will automatically reconfigure itself so as to
reconstruct the environment he or she was last using on some other workstation. This
requires the user to carry a machine-readable identification.
mobile robotics The branch of *robotics concerned with vehicular robot systems that
are able to locomote within an environment or terrain. Mobile robots are used in research
on navigation, exploration, and *autonomous agents. Recent research in *behaviour-based
systems and *biomimetic robotics has created *legged robots and other mechanical
analogues of insects and animals.
Applications include *autonomous guided vehicles for use as guides and couriers,
automatic vehicle driving systems, and military and security surveillance devices. The
entertainment sector is a new market responsible for many designs of small humanoid and
four-legged toy robots.
MOD A file format used to store Amiga Module music files. This format stores the
sampled digital sounds as well as the patterns and performance data. Programs that create
and play these files are commonly called trackers.
modal dialogue See DIALOGUE MANAGEMENT.
modal logic Any logical system that allows the use of modal operators designed to
explore modes of truth. The two most common operators are ‘necessity’ and ‘possibility’,
usually written as □ and ◊, where □F expresses ‘F is necessarily true’ and ◊F that ‘F is
possibly true.’ The objective of modal logic is to pin down meanings and laws of
reasoning for these modes of truth. Modal logic has been developed in philosophy and is
now the basis of advanced technologies in computer science.
For a modal operator α, the value of a formula αF in an *interpretation I depends on the
values of F in a whole class of interpretations related to I, rather than on the value of F in
just I itself as is the case in a nonmodal logic. Thus □F is true in an interpretation (or
world) w if F is true in all worlds w′ related to (or accessible from) w, while ◊F is true
in w if F is true in at least one such w′. In discussing the semantics of modal logic,
therefore, one considers frames of the form (W,R), where W is a set of worlds and R is an
accessibility relation on W. Each world attaches a value to all the primitive symbols in
the language.
In dynamic logic the modal operators correspond to programs, and the worlds
correspond to states of execution. Then the formula αF is true in a particular state s if F is
true in all states reachable from s by running the program α. Dynamic logic is similar to
*Hoare logic in the fact that its formulas involve both programming and logical
constructs.
In *temporal logics the modal operators deal with interpretations that might depend on
the time: formulas express ‘F is sometimes true’ or ‘F is always true’. Other modal
operators express notions of belief, desirability, and obligation. All these ideas are of great
relevance in reasoning about programs and systems. Hence recent years have seen
extensive use of modal logics in *program verification and *formal specification,
especially for concurrent programs and systems.
mode 1. A term used in many contexts concerning the operation and use of a computer
system. For example: conversational mode refers to interactive computer use; interpretive
mode refers to a way of executing a language; there are addressing modes in instruction
descriptions. 2. See MEASURES OF LOCATION.
model A simplified representation of something (the referent). The representation may
be physical or abstract, and may be restricted to certain properties of the referent. In
computing, models are usually abstract and are typically represented in a diagramming
notation, such as *dataflow diagrams (in *functional design), *ERA diagrams (for a *data
model), or *state-transition diagrams (for a model of behaviour); in the case of the
*relational model the referent is the target system while in the *waterfall model, *Vmodel, and *spiral model the referent is the development process. In computer graphics,
models are used to create realistic images of objects and their attributes (see COLOUR
MODEL, LIGHTING MODEL, REFLECTANCE MODEL).
model-based reasoning An approach in *artificial intelligence that relies on the use of
a model as the basis of its inferencing abilities rather than empirical information. A model
is a principled representation of a problem domain that has predictive and explicative
features. An example is seen in diagnosis applications where model-based reasoning offers
an alternative to methods based on *probabilistic reasoning.
model-based specification A form of specification, usually *software specification,
that is developed by creating a mathematical model of that system. Typically the
mathematical model is expressed in terms of objects and operations, and these are defined
using such mathematical concepts as *sets, *relations, and *functions.
model checking An automatic verification technique for finite-state concurrent systems
(see CONCURRENCY). Typically, three elements are needed: a formal finite-state model of
the system; a formal specification of the properties that the model must satisfy; and an
algorithm that checks the specification against the model, normally through an exhaustive
search of the *state space. The algorithm, which is guaranteed to terminate given the
finiteness of the state space, gives a positive answer when the model satisfies the
specification; otherwise, a negative answer is returned, together with a counterexample
indicating why the model is incorrect. The algorithm is in general fast, producing an
answer in a matter of minutes.
There are two main approaches to model checking. In the first, which is referred to as
temporal logic model checking, specifications are expressed using *temporal logic,
while systems are modelled using finite-state transition systems. In the second, both the
specification and the model are expressed as *automata, which are then compared using
available techniques. Termination, speed, and full automation are the chief advantages of
model checking over *theorem proving. The main disadvantage is the problem of
*combinatorial explosion that arises with large concurrent systems, although many
techniques can be used to minimize this. Model checking has been widely employed to
verify hardware controllers and communication protocols.
modeless dialogue See DIALOGUE MANAGEMENT.
modelling The act of creating a *model of something for a particular purpose, such as to
describe it, understand it, or derive some properties. The process involves deciding which
simplifications, idealizations, or abstractions to make, what kinds of representations to
adopt, and how to express the selected properties of the referent. The context of a
prospective system may be modelled as part of the *systems analysis. A program or
software-based system may be modelled to produce an abstract design or for
nonfunctional properties such as performance.
modelling clip A clip defined at the modelling stage of constructing objects to be
viewed. See also CLIPPING.
model numbers In the language Ada, the set of values of a variable that are guaranteed
to be exactly represented for the requested accuracy of the variable. The implementation
will typically use a greater accuracy which has a larger range than that requested.
Consequently the implemented accuracy will usually be higher, and other values will also
be exactly represented. Associated with each implemented value will be a model
interval, which defines the degree of uncertainty in the value. If a value is a model
number then the model interval is zero; if a value is not a model number then the model
interval is defined by the two model numbers surrounding the value.
modem (modulator and demodulator) A device that can convert a digital bit
stream into an analogue signal suitable for transmission over some analogue
communication channel (*modulation), and can convert incoming analogue signals back
into digital signals (*demodulation). Modems are used to connect digital devices across
analogue transmission lines. Most modems are designed to match specific national or
international standards so that data communication equipment from one manufacturer can
talk to that of another.
Modems can be packaged in many ways: as *add-in cards or *PC cards allowing
personal computers to communicate over ordinary phone lines, as small external units, or
as rack-mounted sets for large applications requiring many simultaneous connections.
Modern modems, for attachment to a normal telephone line, can handle data at 56 000
bps, which is about the upper limit attainable over voice-frequency channels. *Broadband
modems allow users to connect at speeds of several gigabits per second using ADSL or
similar services.
moderator A person who controls a newsgroup, having the authority to warn users and
block or remove messages if these are inappropriate.
modifier bits Usually a small subset of bits (i.e. bit locations) in an instruction, used to
provide some additional specification of the way in which the operation code and/or
operand addresses are to be used or interpreted. See INSTRUCTION FORMAT.
mod-n counter (modulo-n counter) See COUNTER.
Modula A programming language developed from *Pascal as a research exercise to
demonstrate that operating systems can be written entirely in a high-level language. It is
now superseded by *Modula 2 and Modula 3.
Modula 2 A high-level programming language designed by *Wirth (the designer of
Pascal) as the programming language for the Lilith personal computer system. Modula 2 is
a derivative of *Pascal. Its name derives from the fact that a program is made up of
modules—collections of procedures and data objects that exist independently of other
modules and have a controlled interface with other modules (compare PACKAGE (as used
in Ada)). Modula 2 also provides facilities for describing parallel computations together
with their interaction and synchronization.
modular arithmetic (residue arithmetic) Arithmetic based on the concept of the
*congruence relation defined on the integers and used in computing to circumvent the
problem of performing arithmetic on very large numbers.
Let m1, m2,…, mk be integers, no two of which have a common factor greater than one.
Given a large positive integer n it is possible to compute the remainders or residues r1, r2,
…, rk such that
Provided n is less than
n can be represented by
This can be regarded as an internal representation of n. Addition, subtraction, and
multiplication of two large numbers then involves the addition, subtraction, and
multiplication of corresponding pairs, e.g.
Determining the sign of an integer or comparing relative magnitudes are less
straightforward.
modular counter See CASCADABLE COUNTER.
modular programming A style of programming in which the complete program is
decomposed into a set of components, termed *modules, each of which is of manageable
size, has a well-defined purpose, and has a well-defined interface for use by other
modules. Since the only alternative—that of completely monolithic programs—is
untenable, the point is not whether programs should be modular but rather what criteria
should be employed for their decomposition into modules. This was raised by David
Parnas, who proposed that one major criterion should be that of *information hiding. Prior
to this, decomposition had typically been performed on an ad hoc basis, or sometimes on
the basis of ‘stages’ of the overall processing to be carried out by the program, and only
minor benefits had been gained. More recently there has been great emphasis on
decomposition based on the use of *abstract data types and on the use of *objects or
object orientation; such a decomposition can remain consistent with the principles of
information hiding.
modulation The process of varying one signal, called the carrier, according to the
pattern provided by another signal. The carrier is usually an analogue signal selected to
match the characteristics of a particular transmission system. Modulation signals and
techniques may be combined to produce composite signals carrying many independent
channels of information (see MULTIPLEXING).
The primary types of modulation are as follows:
(a) Amplitude modulation (AM)—the strength or amplitude of the carrier signal is
varied. This form of modulation is not often directly used in computer communication
except in some modems as quadrative amplitude modulation (*QAM).
(b) Frequency modulation (FM)—the frequency of the carrier is varied. This
technique is often used by *modems. See also FREQUENCY SHIFT KEYING.
(c) Phase modulation (PM)—the phase of the carrier wave is varied. This technique is
often used together with amplitude modulation in high-speed modems. See also PHASE
SHIFT KEYING.
(d) *Pulse code modulation (PCM)—an analogue signal is encoded as a series of pulses in
a digital data stream. This technique is used by *codecs.
The term shift keying, as in frequency shift keying, denotes specialized modulation
techniques in which the modulating signal is digital rather than analogue.
modulator A device that applies *modulation to a carrier for transmission through an
analogue channel. A *demodulator performs the reverse transformation to recover the
original digital signal. See also MODEM, MODULATION.
module 1. A programming or specification construct that defines a software component.
Often a module is a unit of software that provides users with some data types and
operations on those data types, and can be separately compiled. The module has an
interface in the form of a heading that specifies the data types and operations the module
provides its users. Mathematically, the syntax of the interface is a *signature and the
semantics of a module is a class of *algebras of that signature. In some programming
languages that provide modules, they are called by other names such as package, cluster,
or object. The concept developed as a programming construct to support *information
hiding and *abstract data types. The theory of program construction based on modules is a
promising, but difficult, area of research. 2. A component of a hardware system that can
be subdivided.
module coding review See CODE INSPECTION, REVIEW.
module design review See REVIEW.
module invariant See INVARIANT.
module specification A precise statement of the effects that a software module is
required to achieve. It can be employed both by the implementer of the module, since it
gives a definitive statement of the requirements that are imposed on the module, and by
users of the module, since it gives a precise statement of what the module provides. A
good module specification makes no commitment as to how the module’s effects are
achieved.
A variety of techniques have been developed for module specification. A functional
specification identifies the operations that the module makes available and provides an
individual specification for each operation, typically in the form of an input-output
specification describing the mapping that the operation provides from a set of input values
to a set of output values. In the typical case where a module has local data, a simple
functional specification will need to refer to this local data when specifying each
individual operation. This tends to obscure the specification, and also violates the
principle that a specification should state what a module does but not how this is done.
The state machine model technique developed by Parnas treats the module as a *finitestate machine and distinguishes operations that can observe the state of the machine from
those that can alter the state of the machine. The specification is given by indicating the
effect of each operation that can change the state on the result of each operation than can
observe the state. This technique therefore avoids the need to refer to the module’s local
data.
The same applies to the technique of *algebraic specification, largely due to Guttag and
Horning. With this technique, which is tailored to the specification of *abstract data type
modules, the specification is given in two parts—a syntactic specification and a set of
equations. The syntactic specification states the names, domains, and ranges of the
operations provided by the module. Each equation specifies the net effect of some
sequence of operations (or perhaps a single operation), and the complete set of equations
must be sufficient to specify the effects of all operations under all conditions.
Because of the need for precision, module specifications are best given in some formal
specification language. A variety of such languages have been developed, many
drawing heavily on first-order *predicate calculus. Specific examples include the
SPECIAL language of the HDM system, which adopts the finite-state machine approach,
and the language used by the AFFIRM system, which employs algebraic specification
techniques.
module testing (unit testing) See TESTING.
modulo-n check Another name for checksum.
modulo operation An arithmetic operation in which the result is the remainder after
one integer is divided by another. Hence
is the remainder of the division of integer i by integer j. The exact definition of the
operation, when the integers may be negative, is not defined. See also MODULAR
ARITHMETIC.
MOHLL (machine-oriented high-level language) A programming language with
the control structures of the typical high-level language (if-then, while-do, etc.), whose
data types and structures map onto the underlying machine architecture. Thus such a
language will allow variables of type bit, byte, word, etc. These languages, also known
simply as machine-oriented languages, provide an alternative to assembly language
for systems programming at the hardware-interface level. Well-known examples are
*Babbage and *PL/360. MOHLLs are now largely replaced by the language *C. Compare
PROBLEM-ORIENTED LANGUAGE.
monadic Having one operand.
monadic operation (unary operation) (defined on a set S). A *function from the
domain S into S itself. The *identity function is a monadic operation. Other examples are
the operations of *negation in arithmetic or logic and of taking *complements in set
theory or in *Boolean algebra. Although basically functions, monadic operations are
frequently represented using a special notation, e.g. ¬A or A′ or Ā. When the set S is finite,
a *truth table can be used to define the meaning of the operation.
monalphabetic See SUBSTITUTION CIPHER.
Mondex A *smart card-based electronic cash system developed by the NatWest Bank
(UK) in the 1990s. In 1999 Mondex became the first product to achieve *ITSEC Level E6,
the highest security level standard available at that time.
monic polynomial See POLYNOMIAL.
monitor 1. A device that is used for checking the progress and operation of a system. A
display and keyboard may be used in the roles of both a control console and a monitor.
Display screens without keyboards may be used as remote monitors to allow the status of
the system to be observed from remote locations. 2. Another name for supervisor, or even
a complete operating system. 3. A programming construct devised by Hoare to allow
controlled sharing of resources by otherwise asynchronous processes, and involving the
provision of controlled passing of variables between the processes.
monochrome display A display where the picture consists solely of a single colour
(with variations of shade in some models: see GREYSCALE).
monoid A *semigroup that possesses an *identity element, e. If S is a semigroup on
which there is defined a *dyadic operation ∘, then
for all elements x in S. Monoids play an important role in various areas of computing,
especially in the study of *formal languages and *parsing.
monomode Describing or involving the form of electromagnetic signal that is carried by
a waveguide with a cross section that is small, or of the same order of size, compared with
the wavelength of the electromagnetic wave. The wave will only propagate purely along
the axis of the waveguide, with very little degradation apart from a possible loss of
amplitude. This is especially valuable for systems using digital signals, which in general
rely on the preservation of sharp edges in the signals. See also FIBRE OPTICS, MULTIMODE.
monomorphism A *homomorphism that, when viewed as a function, is an *injection.
monostable (one-shot) A digital circuit that has only one stable output state. It is
constructed in such a way that it may be triggered by an externally generated signal to
produce a single pulse. The time duration of the pulse is specified by the choice of
external components, usually a capacitor. Two forms of monostable are common:
(1) the triggered monostable where the pulse is timed from the leading edge of the
triggering pulse. Once triggered this type cannot be triggered again until the time delay
(plus recovery time) has elapsed.
(2) the re-triggerable monostable starts the timing interval again on the trailing edge of the
trigger pulse. This can occur any number of times.
monotonic 1. Assuming that appropriate *ordering relations exist on the domain A and
the codomain B of the function f: A → B, then f is said to be monotonic if for all a in A and
b in B for which a ≤ b then f(a) ≤ f(b). 2. See WEAKENING.
Monte Carlo methods Numerical methods in which randomly generated numbers
play a part in the calculations. A probabilistic model is constructed, corresponding to the
mathematical or physical problem, and random samples are taken within the model. By
taking more samples, a more accurate estimate of the result is obtained. Such methods are
used for example on problems in particle physics, evaluation of multiple integrals, traffic
problems, and large-scale operational problems generally. See also STOCHASTIC PROCESS.
MOO (multiuser object oriented) A system that has been developed from the early
text-based multiuser adventure games, and offers a purely text-based environment
allowing multiple users to establish *virtual circuits and interact with other users and with
end-user systems.
Moore machine See SEQUENTIAL MACHINE.
Moore’s Law The prediction made in 1965 by Gordon Moore, cofounder of Intel, that
in the future the number of transistors on a chip would double every two years.
Surprisingly, Moore’s prediction—based on the development of the then very new concept
of the *integrated circuit—still holds true in 2014. The Intel 4004 processor released in
1971 had 2300 transistors, whereas the most recent Intel 15-core Xeon processor has 4.3
billion. Over that period transistor sizes have shrunk from 10 micrometres to 22
nanometres.
morphing Derived from metamorphosis. Changing the shape of an object to produce
unusual effects. Morphing is often used in computer graphics to change one object into
another.
morphism See CATEGORY.
Mosaic The first widely used *web browser. Created by a team led by Marc
*Andreessen at the University of Illinois National Center for Supercomputing
Applications and released in 1993, it was easy to install and reliable in operation. Readily
usable by non-specialists, it is credited with a crucial role in the popularization and
explosive growth of the Web in the 1990s. It became the model for subsequent web
browsers.
MOSFET (MOS transistor) (metal oxide semiconductor field-effect
transistor) A type of *field-effect transistor that has an insulating layer of oxide, usually
silicon dioxide, separating the gate from the drain-source conduction channel in the
semiconductor. In an NMOS the channel is formed between n-type source and drain by
negative charge carriers (i.e. electrons). In a PMOS the channel is formed between p-type
source and drain by positive charge carriers (i.e. holes).
MOSFETs require no gate input current, other than a pulse to charge or discharge their
input capacitance. They can operate at higher switching speeds and lower currents than
*bipolar transistors.
MOS integrated circuit See INTEGRATED CIRCUIT.
MOS transistor Another name for MOSFET.
most significant character The character in the most significant position in a number,
word, signal, etc. Common examples are the most significant digit (MSD) and the
most significant bit (MSB), which contribute the greatest quantity to the value of a
digital or binary number.
motherboard A *printed circuit board into which other boards can be plugged. In
microcomputer systems the motherboard carries all the major functional elements, e.g. the
processor and some of the memory; the function can be enhanced by additional boards
that perform specific activities such as memory extension or disk control and that
communicate to the motherboard via sockets onto a standard bus. See also BACKPLANE.
moth-eye See MICRORELIEF.
motion blur The artefact by which fast-moving objects appear blurred. Each frame in a
conventional film is an average sample taken over about half the time it takes to record the
frame. In consequence, fast-moving images appear blurred. Temporal *aliasing is more
severe in the case of computer-generated images where the image is likely to be defined at
a specific point in time. In computer animation, the created images are often deliberately
blurred to achieve a similar effect to the conventional camera and enhance the simulation
of motion.
motion prediction Prediction of the motion in subparts of an image in order to improve
activities such as *compression.
Motorola A US corporation originally devoted to the production of car radios. In the late
1950s it entered the semiconductor field and developed the 6800 and 68000 series of
processors. These are generally regarded as a better design than the equivalent *Intel
processor chips and are widely used in embedded systems of all kinds. Motorola later
participated in the *PowerPC project. In 2011 Motorola separated into two independent,
publicly traded companies: Motorola Solutions and Motorola Mobility. The latter was
acquired by *Google in 2012.
Mount Rainier specifications A series of specifications for rewritable compact disks
and DVDs. See also CD-RW.
mouse A *pointing device that is moved by hand around a flat surface: the movements in
the x- and y-directions on the surface are communicated to a computer and cause
corresponding movements of the cursor on the display. The mouse’s movements are
sensed by the rotation of a ball in its base, or by optical sensors.
The mouse has one or more buttons to indicate to the computer the desired function. It
is normally connected by cable to the computer or may communicate by means of radio,
infrared, or optical signals. Some mice incorporate a finger-operated roller to control
scrolling.
movement file Another name for transaction file.
moving-average methods See TIME SERIES.
MP3 A form of audio compression based on the *MPEG format for video. Users specify
a bit rate—the number of kilobits to be used for each second—and the MP3 encoder will
discard differences in the sound signal sufficient to achieve this. Lower bit rates thus give
smaller files but lower sound quality on playback. Bit rates of 32 kbps or higher will
compress speech significantly without a discernible loss of quality; however, at least 128
kbps is required for music. MP3 files are a highly popular format for downloads of music
from the Internet. MP3 players, capable of storing large numbers of music tracks in
flash memory, and playing the tracks through earphones, are also popular. See also IPOD.
MPEG 1. (Moving Picture Experts Group) The committee—a joint CCITT and
ISO/IEC group—that works on the storage and transmission of moving images, especially
video images, and developed the ISO 11172 standard (see def. 2). 2. The ISO/IEC 11172
standard, Compression of Moving Images with Audio and Timing Data. It is designed to
reduce the amount of information needed to describe a video sequence, so reducing either
the bandwidth required to transmit the sequence or the amount of memory needed to store
it. The MPEG-1 standard is for digital storage media such as CD-ROM; the MPEG-2
standard is for high-quality video transmission such as digital broadcasting.
The MPEG video-compression algorithm relies on two basic techniques: block-based
motion compensation for the reduction of temporal redundancy (effectively recognizing
the similarity between adjacent frames in the video) and DCT (*discrete cosine transform)
compression for the reduction of spatial redundancy (see JPEG).
MPP (massively parallel processor) A high-performance computer system
providing an approach to supercomputing with very specialized programming
requirements.
MSD , MSB (most significant digit, most significant bit) See MOST SIGNIFICANT
CHARACTER.
MS-DOS Trademark (Microsoft disk operating system) An operating system written
by Microsoft to be marketed with the early release of the IBM Personal Computer. The
prefix MS is used to help distinguish the product from the large number of similarly titled
DOS products. When IBM first announced the IBM PC, the company intended that it
would run under CP/M, a popular proprietary operating system then available on other
hardware platforms. In the event, Microsoft offered IBM their own product, which was to
some extent a modified version of CP/M and was to be known as MS-DOS. The rest is
history.
In common with other versions of DOS, MS-DOS has limited functionality, offering a
*command-line interface, management of peripheral devices, management of files, and no
multitasking. The initial hardware restriction of the IBM PC to a total of 640 Kbytes of
memory is embedded in MS-DOS. An MS-DOS emulator continues to be available in
Windows.
m-sequence A periodic sequence of symbols generated by a linear *feedback shift
register whose feedback coefficients form a primitive *polynomial. A *q-ary register (with
q′) whose generating polynomial is of degree n will have period qn − 1, provided that the
initial state is nonzero, and its contents will proceed through all the nonzero q-ary ntuples. The termwise modulo-q sum of two m-sequences is another m-sequence: the msequences (of a given generating polynomial), together with the zero sequence, form a
*group.
The term is short for maximum-length sequence. It is so called because the generating
shift register only has qn states, and so such a register (with arbitrary feedback logic)
cannot generate a sequence whose period exceeds qn. But with linear logic the zero state
must stand in a loop of its own (see GOOD–DE BRUIJN DIAGRAM) and so the period of a
linear feedback register cannot exceed qn−1. This period, which can be achieved when and
only when the polynomial is primitive, is therefore the maximum that can be achieved.
m-sequences have many useful properties. They are employed as *pseudorandom
sequences, *error-correcting codes (as they stand, or shortened, or extended), and in
determining the time response of linear channels (see CONVOLUTION). See also SIMPLEX
CODES.
MSI (medium-scale integration) Integration in the range of 100 to 10 000
transistors on a single chip. See INTEGRATED CIRCUIT.
MSR (magnetic stripe reader) A device for reading the data from the magnetic
stripe on the back of credit cards and similar cards. See also MAGNETIC CARD.
MS Windows See WINDOWS.
MTA (message/mail transfer agent) An entity that takes an email message created
by the sender’s *mail user agent, and delivers it to the receiver’s mail user agent. If
delivery is not possible because the receiver’s mail user agent is not active (for example
because it runs on a personal computer that is currently disconnected from the network or
is not powered on), the message will be placed in a message store to await collection by
the receiver’s mail user agent when it becomes active. A computer dedicated to running
MTAs is called a mail server.
MTBF (mean time between failures) A figure of merit for system reliability.
MTBI (mean time between incidents) A measure of reliability similar to *MTBF
but sometimes distinguished from it by the inclusion of failures that can be rectified
without engineer attention.
MTS (Michigan terminal system) An operating system that was developed at the
University of Michigan in the late 1960s, and was specifically intended to offer interactive
computing to large numbers of users, each carrying out relatively straightforward tasks.
MTTR (mean time to repair) See REPAIR TIME.
MTU (magnetic tape unit) See MAGNETIC TAPE.
MUA Abbrev. for mail user agent.
mu-law encoding (µ-law encoding) See PULSE CODE MODULATION.
multiaccess system A system allowing several users to make apparently simultaneous
use of the computer. Each user has a terminal, typically a keyboard plus VDU display, and
is connected via a multiplexer or front-end processor to the main system. As individual
users type their commands, the system will multiprogram among the several users of the
system, each command being processed as it is received. See also TIME SHARING.
multiaddress Short for multiple-address.
Multibus Trademark A flexible bus structure designed by Intel Corp. that was used in
many early commercial microprocessor systems.
multicasting A transmission system in which messages are directed to a particular
group of nodes on a network. It is thus intermediate between a transmission directed to a
single address and one directed to all the addresses on a network (see BROADCASTING).
multicore cable See CABLE.
multi-core processor A computing chip containing more than one *central processor
or ‘core’. These cores each have local memory and *cache, and communicate internally
via a common *data bus, which itself is connected via a second, larger cache to the outside
world. Until the early 2000s, processor chips had but one core, and improvements in chip
technology simply meant wider data bus widths, more internal registers, and higher clock
speeds. In the 2000s, however, further clock-speed improvements became infeasible,
mainly owing to the excessive heat being generated. The focus now switched to the use of
multiple cores running in parallel on a single device. At the time of writing (2014) chips
with 12–16 cores are emerging for commercial use. This has had a major impact on the
programming of such devices, as much greater use has to be made of parallel and
concurrent multiprocessor programming techniques.
MULTICS Trademark A *multiaccess operating system designed in project *MAC to
provide a MULTiplexed Information and Computing Service. The MULTICS system
made extensive use of ‘rings’ of hardware protection of access to memory in order to
achieve management of a very large virtual memory. Users operating on files move their
entire file into memory in order to operate on it. The MULTICS system was implemented
on specially commissioned hardware constructed by General Electric, and the entire
project was later taken over by Honeywell Computer Systems.
multidimensional array An *array of *dimension greater than one.
multidimensional spreadsheet A *spreadsheet having more than two dimensions.
The basic spreadsheet is a table of rows and columns, and so is regarded as twodimensional. A third dimension can be pictured as a stack of tables, or pages of a
workbook. Mathematically there is no difficulty in having as many dimensions as
required, but the visual representation on a flat display screen becomes rather difficult
after the third dimension.
multidrop line A single communication line that connects multiple stations—terminals
or computers. Typically, one station will use *polling to coordinate access to the line and
prevent collisions (multiple stations transmitting at once). A control protocol such as
*SDLC is used. See also MULTIPOINT CONNECTION. Compare POINT-TO-POINT LINE.
multifunction device A device containing the functions of scanner, printer, copier, and
fax in one unit. These devices cost less and occupy less space than the individual elements
and are attractive to small businesses and home users.
multigrid methods A broad class of methods for the numerical solution of certain
classes of *partial differential equations. In its simplest form, after a suitable *finitedifference replacement of the problem, a system of *linear algebraic equations is obtained,
perhaps involving thousands of unknowns. These equations are solved iteratively by a
process that involves the solution of smaller linear systems arising from a sequence of
coarser meshes (see FINITE-DIFFERENCE METHOD). The method of successive overrelaxation has an important role in the solution of these subsystems. See ITERATIVE
METHODS.
multilevel memory A memory system containing at least two memory subsystems
with different capacity and access-time attributes. See also MEMORY HIERARCHY.
multilevel security A *security processing mode where users with differing security
clearances have correspondingly limited access to a database holding objects of different
classifications. Output material may carry *trusted *security labels.
multilinked Having a *link to several distinct data structures. For example, a *sparse
matrix is frequently held so that each element belongs to two separate linear lists
corresponding to a row list and a column list. A multilinked structure is sometimes called
a multiple chain.
multimedia The combined use of digitized information representing text, sound, and
still or video images, or the media so used. The term can refer to any interactive system
and any data storage medium, but is widely applied to data stored on *CD-ROM or DVD
and accessed by a personal computer: the dialogue with the user makes use of the various
media in an integrated way. The PC must be equipped with a CD-ROM drive; it usually
also has a *sound card and a pair of loudspeakers, since the audio capability of an ordinary
PC is very limited. All but the cheapest modern PCs meet these requirements.
multimedia mail See EMAIL.
multimode Describing or involving the form of electromagnetic signal that is carried by
a waveguide with a cross section that is large compared with the wavelength of the
electromagnetic wave. The wave can propagate in directions at an angle to the axis of the
waveguide, undergoing a series of internal reflections along its length. This causes a
gradual degradation of the signal. See also FIBRE OPTICS, MONOMODE.
multimode counter See COUNTER.
multipart stationery See STATIONERY.
multiple-address machine A computer whose *instruction format specifies (for at
least some instructions) more than one operand address.
multiple assignment A form of *assignment statement in which the same value is
given to two or more variables. For example, in C,
sets a, b, c to zero.
multiple chain See MULTILINKED.
multiple inheritance See OBJECT.
multiple instruction, multiple data (MIMD) See CONCURRENCY.
multiple-master font See POSTSCRIPT FONT.
multiple precision (multiprecision) See DOUBLE PRECISION.
multiple-range tests *Significance tests for differences between means of several
samples. The significance levels are adjusted to take account of the fact that more than one
comparison is being made.
multiple regression model See REGRESSION ANALYSIS.
multiple-valued logic See MULTIVALUED LOGIC.
multiplexed bus A type of bus structure in which the number of signal lines comprising
the bus is less than the number of bits of data, address, and/or control information being
transferred between elements of the system. The information is transferred sequentially,
i.e. time-domain multiplexed, with additional control lines being used for sequencing the
transfer.
multiplexer 1. A device that merges information from multiple input channels to a
single output channel. See also MULTIPLEXING. 2. A *combinational circuit that converts
from 1 of m inputs to n outputs, where m ≤ 2n. See also DATA SELECTOR/MULTIPLEXER.
multiplexer channel See CHANNEL.
multiplexing The process of combining multiple messages simultaneously on the same
physical or logical transmission medium. There are two main types: *time division
multiplexing (TDM) and *frequency division multiplexing (FDM). In TDM a device is
allocated specific time slots in which to use the transmission medium. FDM divides the
transmission medium into channels of smaller *bandwidth to which the user has exclusive
rights. FDM and TDM can be combined to provide devices with time slots of logical
channels.
multiplier A specific part of an *ALU that is used to perform the operation of
multiplication. It is not always explicitly present in an ALU; for example, a multiplication
can be accomplished by a sequence of additions and shifts under the direction of the
*control unit.
multiply connected Denoting a node in a communication network that has links,
circuits, or channels to more than one of its neighbours. If one link fails, the node may still
communicate using the remaining links.
multipoint connection A connection of a number of terminals in parallel, analogous to
a *multidrop connection. Sometimes the terms are used synonymously, although
multidrop strictly implies that the connections are all served from a common connection
point (node), whereas multipoint implies that connections are made through a series of
(analogue) bridging connections where some or all of the terminals are served by different
common carrier offices interconnected by communication trunks.
multipoint line A data communication link that connects more than two *nodes.
Individual nodes are identified by unique addresses. A *data link control protocol is used
to determine which node has the right to transmit on the line, and which node(s) should be
receiving.
multiport memory A memory that provides more than one access *port to separate
processors or to separate parts of a single processor. The mechanism may be a *bus. It is
sometimes used as a method whereby computers may be interconnected. See also
CENTRAL PROCESSOR, SHARED MEMORY.
multiprecision (multiple precision) See DOUBLE PRECISION.
multiprocessing system (multiprocessor, multiunit processor) A system in which
more than one processor may be active at any one time. While the processors are actively
executing separate processes they run completely asynchronously. However it is essential
to provide synchronization between the processors when they access critical system
resources or critical regions of system code. A multiprocessing system is also a
*multiprogramming system. See also CONCURRENCY.
multiprocessor Another name for multiprocessing system.
multiprogramming system A system in which several individual programs may be
active. Each active program implies a running *process, so there may be several
processes, but only one process runs at any one time on any particular processor. It is
perfectly feasible to run a multiprogramming system containing only one processor. A
*multiprocessing system, containing several processors, will also be a multiprogramming
system.
multireader A device that can read from (and write to) all types of CD and DVD.
multiresolution image An image where the *resolution varies depending on the
complexity of the scene at each point of the image.
multisession compatible See CD-ROM FORMAT STANDARDS.
multiset Another name for bag.
multitape Turing machine A *Turing machine that has a finite number of tapes, each
tape having a tape head that can move independently. Such machines have the same
computational power as single-tape Turing machines. Consider a multitape Turing
machine M. If for no input word of length n does M scan more than L(n) cells on any tape
then M is said to be an L(n) tape-bounded Turing machine. If for no input word of
length n does M make more than T(n) moves before halting then M is said to be a T(n)
time-bounded Turing machine.
multitasking The concurrent execution of a number of tasks, i.e. of a number of jobs or
processes. See PARALLEL PROCESSING.
multithreading A form of code that uses more than one *process or processor, possibly
of different types, and that may on occasions have more than one process or processor
active at the same time. See also SINGLE THREADING, THREADING.
multitouch Describing a user-interface in which surfaces are capable of simultaneously
sensing the location of more than one finger in contact. This allows interactions based on
gestures with multiple fingers, such as pushing finger and thumb together to indicate
‘zoom-in’ and moving them apart to request a ‘zoom-out’. First used commercially on a
major scale in 2007, multitouch interfaces are now associated particularly with Apple
devices such as the iPhone and iPad.
multiunit processor Another name for multiprocessing system.
multiuser system A system that is (apparently) serving more than one user
simultaneously, i.e. a *multiprogramming or *multiprocessing system.
multivalued logic (nonbinary logic) Digital logic for use in *logic circuits that are
designed to handle more than two levels (voltages, etc.). In q-valued logic there are q
levels and each *memory element (flip-flops, etc.) can exist in q different states. The
classification of logic circuits into *combinational and *sequential circuits applies to
multivalued logic exactly as it does to binary logic.
There is much interest currently in ternary logic (q = 3) and, to a somewhat lesser
extent, in quaternary logic (q = 4). Such logics promise reduced numbers of logic
gates, memory elements, and—perhaps most significantly—interconnections. Ternary
logic is simple to implement in *CMOS technology, and is likely to become important in
the design of *VLSI circuits. Its increased logical richness is shown by the fact that there
are 16 possible two-input binary gates, but 19 683 such ternary gates (ignoring
degeneracies in both cases).
multivariate analysis The study of multiple measurements on a sample. It embraces
many techniques related to a range of different problems.
*Cluster analysis seeks to define homogeneous classes within the sample on the basis of
the measured variables. Discriminant analysis is a technique for deciding whether an
individual should be assigned to a particular predefined class on the basis of the measured
variables. Principle component analysis and factor analysis aim to reduce the
number of variables in the study to a few (say two or three) that express most of the
variation within a sample.
Multivariate *probability distributions define probabilities for sets of random variables.
multivibrator An electronic oscillator that consists of two resistor-capacitor amplifier
stages that interact in such a way that the amplifier’s outputs are complementary and
exhibit two stable mutually exclusive states, i.e. fully on and fully off. The circuit can be
made to oscillate continuously, producing a square wave (astable mode), produce single
pulses (monostable mode), or change state on application of an external trigger (bistable
mode). See also FLIP-FLOP.
multiway search tree (of degree n). A generalization of a *binary search tree to a tree
of degree n where each node in the ordered tree has m ≤ n children and contains (m−1)
ordered key values, called subkeys. for some given search key, if the key is less than the
first subkey then the first subtree (if it exists) is searched for the key; if the key lies
between the ith and (i + 1)th subkey, where
then the (i + 1)th subtree (if it exists) is searched; if the key is greater than the last subkey
then the mth subtree (if it exists) is searched. See also B-TREE.
Munsell colour model A *colour model based on perceptual principles, proposed by
the American artist Albert Munsell in 1905. It is based on the dimensions of *hue (H),
value (V), and chroma (C), the visual characteristics of colour in paint rather than light.
mu operator (μ-operator, minimization operator) See MINIMIZATION.
mutual exclusion A relationship between processes such that each has some part (the
*critical section) that must not be executed while the critical section of another is being
executed. There is thus exclusion of one process by another. In certain regions of an
operating system, for example those dealing with the allocation of nonsharable resources,
it is imperative to ensure that only one process is executing the relevant code at any one
time. This can be guaranteed by the use of *semaphores: at entry to the critical region of
code a semaphore is set; this inhibits entry to the code by any other process until the
semaphore is reset as the last action by the process that first entered the critical region.
Myhill equivalence An *equivalence relation arising in *formal language theory. If L
is a language over alphabet Σ (see WORD) then its Myhill equivalence is the relation =M
on Σ* defined as follows:
if, for all w1,w2 in Σ*,
Similarly (and more generally), if f is a function from Σ* to any set, its Myhill equivalence
is defined by:
if, for all w1,w2 in Σ*,
See also NERODE EQUIVALENCE.
An important fact is that L is *regular iff the equivalence relation =M is of finite index
(i.e. there are finitely many *equivalence classes). Indeed, L is regular iff it is a union of
classes of any equivalence relation of finite index. In addition =M is a *congruence on Σ*,
i.e.
The equivalence classes therefore can be *concatenated consistently and form a
*semigroup. This is in fact the semigroup of the *minimal machine for L (or f).
MySpace A social networking website (see SOCIAL MEDIA) established in 1999 and now
ultimately owned by Specific Media Group. It was the leading social networking website
until 2008, when it was overtaken by *Facebook.
mySQL A *relational database management system popular in *web applications. First
released in 1995 by MySQL AB of Sweden, it was acquired by *Sun Microsystems Inc. in
2008.
nagware Informal Software that gives the user regular messages that registration or
payment is required or that updates may be available.
naive physics A model of simple physics as experienced by people in their everyday
lives. An area of research in *artificial intelligence, naive physics is an important
component of *common-sense reasoning and is closely linked to *qualitative reasoning.
NAK The ‘negative acknowledge’ control character. See also ACKNOWLEDGMENT.
name A notation for indicating an entity in a program or system. (The word can also be
used as a verb.) The kinds of entity that can be named depend on the context, and include
variables, data objects, functions, types, and procedures (in programming languages),
nodes, stations, and processes (in a data communication network), files, directories,
devices (in operating systems), etc. The name denotes the entity, independently of its
physical location or address. Names are used for long-term stability (e.g. when specifying
a node in a computer program) or for their ease of use by humans (who recognize the
name more readily than an address). Names are converted to addresses by a process of
name lookup.
In many languages and systems, a name must be a simple identifier, usually a textual
string. In more advanced languages, a name may be composed from several elementary
components according to the rules of the language.
name lookup See NAME.
nameset An identification attribute (in the form of a set of names) associated with a
graphical output primitive in standards such as GKS-94 and *PHIGS. The attribute is used
to filter or select groups of primitives for manipulation or display.
namespace 1. The names of the variables accessible at a particular point in the text of a
program. See BLOCK-STRUCTURED LANGUAGES. 2. A named group to which identifiers
can be assigned. Namespaces are widely used to prevent clashes between multiple
identifiers with the same name, especially in programs or data derived from several
sources. For example, assume an XML *schema defines an element called ‘object’, but a
document using that schema also uses another schema that contains another definition of
element ‘object’. XML resolves the problem by treating the two schemas as different
namespaces, and documents using them must qualify their references to elements etc. by
prepending the appropriate namespace label. One namespace may be designated the
default namespace, and unqualified names are assumed to refer to it. Similar facilities are
provided in modern programming languages, for example, C++ and Java.
NAND gate An electronic *logic gate whose output is logic 0 (false) only when all (two
or more) inputs are logic 1 (true), otherwise it is logic 1. It thus implements the logical
*NAND operation and has the same *truth table. The diagram shows the usual circuit
symbol of a two-input gate (which implies by the small circle that it is equivalent to an
*AND gate whose output has been inverted) and the associated truth table.
NAND gate. Two-input NAND gate, circuit symbol and truth table
NAND operation The logical *connective combining two statements, truth values, or
formulas P and Q in such a way that the outcome is true only if either P or Q or both is
false (see table). The NAND operation may be represented by the Sheffer stroke, |, or
by Δ. P | Q is just the negation of P ∧ Q, hence the name (see AND OPERATION).
The NAND operation is of particular significance to computer designers since any
Boolean expression can be realized by an expression using only the NAND operation. In
practical terms, circuits can be built using only *NAND gates.
NAND operation. Truth table
nano- (symbol: n) A prefix to a unit, indicating a submultiple of one billionth, 10−9, of
that unit, as in nanosecond.
nanostore See MICROPROGRAMMING.
narrow A term a is said to narrow to a term b using a substitution s (which replaces a
variable v by expression e) provided a is obtained from b by replacing an instance of e in b
by v.
narrowband See BANDWIDTH.
NAS (network-attached storage) A specialized device for storing data on a
network. It fulfils a similar role as a *file server, but more efficiently because it is
dedicated to and optimized solely for storing data efficiently and securely. A NAS device
consists of a disk-storage subsystem controlled by a NAS head, which interfaces with
the network. Compare SAN.
Nassi–Shneiderman chart (NS chart) A kind of diagram (devised 1973–4) for
representing the sequence of execution in a program. The diagram takes the form of a
rectangle divided mainly into smaller rectangles with the sequence of execution going
from top to bottom of the diagram. There are various standard constructs, including NS
sequence structures, NS repetition structures, and NS selection structures.
NAT See NETWORK ADDRESS TRANSLATION.
National Information Infrastructure A term much used by politicians in the 1990s
to refer to the totality of network services used within a country to carry its information,
especially the extended services advocated by US Vice President Gore. In 2013 the UK
government decided to set up such infrastructure for use in the public domain.
native code See NATIVE SOFTWARE.
native software Software specifically written, compiled, or assembled to run on a
particular system. Native code uses all the individual features of the target system with
no regard for generality or portability.
natural binary-coded decimal (NBCD) See BINARY-CODED DECIMAL.
natural-language processing (NLP) The area of computer science that develops
systems that implement *natural-language understanding. It is a sub-discipline of
*artificial intelligence and of computational linguistics.
natural-language understanding The processing of utterances in human language
(natural language as opposed to programming language) in order to extract meaning and
respond appropriately. The main natural language studied has been written English,
although there has also been work on other languages and on speech (see SPEECH
UNDERSTANDING). The processing requires both syntactic knowledge about the language
concerned and semantic knowledge of the relationship between the utterance and what it
means, usually in a *knowledge base containing an internal representation of the world.
Grammatical and semantic rules are used to analyze the utterance into *logical formulae
or *semantic networks, where the meaning representation can be used by a reasoning
system. See also DISCOURSE UNDERSTANDING, NATURAL-LANGUAGE PROCESSING.
natural number (natural) A number that can count the members of a *set. In effect,
the natural numbers are the non negative *integers, i.e. the set {0,1,2,…}.
NBCD (natural binary-coded decimal) See BINARY-CODED DECIMAL.
NCP (network control protocol) A transport layer protocol that was designed for
the *ARPANET. The DARPA internetworking project developed the TCP protocol to
replace NCP. See also TCP/IP.
NCR An American manufacturer of a wide variety of hardware and software products.
Founded in 1884, it was known as National Cash Register Co. until 1974. In 1991 the
company was purchased by the *AT&T Corporation and was renamed Global Information
Solutions. As part of AT&T’s split into three separate companies in 1996, the NCR
Corporation was spun off to AT&T shareholders and resumed its original name. NCR’s
products include cash registers, semiconductors, automatic teller machines, supermarket
scanners, electronic office equipment, and information-processing systems.
NDC (normalized device coordinates) A coordinate system, usually in the range 0
to 1 in each dimension, that acts as a generic device-coordinate system used within a
graphics system such as *GKS. See also DEVICE COORDINATES.
NEC Corporation A large multinational electronics and IT company, based in Japan. It
is a major producer of semiconductor products and of network equipment; it also produces
advanced systems for such applications as fingerprint identification, as well as consumer
electronics. The company was founded in 1899, under the name of the Nippon Electric
Company, as a joint venture with the Western Electric Company of the United States. For
many years it was primarily a supplier of telephone equipment and services.
negation 1. In arithmetic, the operation of changing the sign of a nonzero arithmetic
quantity; the negation of zero is zero. Negation is usually denoted by the minus sign. 2. In
logic, the application of the *NOT operation on a statement, truth value, or formula.
negation as failure A rule of *inference that assumes a fact is false when all possible
proofs of the fact being true have failed. This is exactly equivalent to negation when the
*closed-world assumption holds—if some information is not contained within the system
as a truth, then it is assumed false. Negation as failure is an important feature of the
language *Prolog.
negative acknowledgment See ACKNOWLEDGMENT. See also BACKWARD ERROR
CORRECTION.
negative logic 1. A logic system in which the normal meanings of the binary signal
levels are interchanged, e.g. high voltage equals logic 0, low voltage equals logic 1. 2.
(complementary logic) A logic system in which all the Boolean variables and Boolean
functions behave as though they were complements.
Compare POSITIVE LOGIC.
negator Another name for inverter.
negentropy See ENTROPY.
neighbour (of a router) See ROUTING PROTOCOL.
nerd Derogatory slang Someone who spends excessive time using a computer, often with
unreasonable enthusiasm. (The term is also used more generally.)
Nerode equivalence An *equivalence relation, =N, arising in *formal language theory.
It is defined analogously to the *Myhill equivalence by the weaker properties:
Although coarser than the Myhill equivalence, it is finite only if the latter is. Unlike the
latter, it gives only a right congruence:
and thus does not give rise to a *semigroup. The number of *equivalence classes is the
number of states in the *minimal machine for L.
nested blocks (nested scopes) See BLOCK-STRUCTURED LANGUAGES.
nesting A feature of language design in which constructs can be embedded within
instances of themselves, e.g. nested loops:
while b1 do
begin
while b2 do
begin
…
end;
end;
Nesting of blocks in *block-structured languages provides an elegant, though not entirely
practicable, control over the scope of *identifiers, since identifiers are local to the
innermost level of nesting at which they are declared.
nesting store Another name for stack, implemented in hardware. See STACK
PROCESSING.
Net Short for Internet.
netgod Derogatory slang Someone who knows, or more often thinks he knows, all there
is to be known about networking. Note the emphasis on gender—most netgods are male—
and on knowledge rather than understanding.
netiquette Informal (network etiquette) The guidelines that constitute good behaviour on
a network, especially the Internet, and that, like all forms of etiquette, tend to be
determined by a self-appointed group. A breach of netiquette, such as *spamming, may
attract a *flame as a response. Netiquette should not be confused with the behaviour
formalized in an *acceptable use policy, contractual commitments, or the results of
properly enacted legislation.
Netnews Another name for Usenet.
netpolice Derogatory slang Those who take on the role of enforcing their own views as
to correct behaviour on a network.
Netscape Navigator One of the first web browsers, based on *Mosaic. It was produced
by Netscape Communications, founded in 1994. It lost to Internet Explorer in the ‘browser
wars’ of the 1990s and is now not widely used.
Netware Trademark A network-based system from Novell Inc. (The name Novell is
sometimes applied to the Netware product.) The first widely used networking system for
IBM-compatible PC’s, Netware remained dominant until the mid-1990s. Thereafter it lost
market share to networks based on *Windows NT. In 2005 it was subsumed into Novell
Open Enterprise Server.
network 1. In communications, a rather loosely defined term applied to a system that
consists of terminals, *nodes, and interconnection media that can include lines or trunks,
satellites, microwave, medium- and long-wave radio, etc. In general, a network is a
collection of resources used to establish and switch communication paths between its
terminals. A given network may be classified as a *local area network, a *metropolitan
area network, or a *wide area network, the differences lying as much in their style of
organization as in their technology or geographical or physical size. Networks and
*servers have now largely replaced centralized mainframe computers in most applications.
See also MESSAGE SWITCHING, NETWORK ARCHITECTURE, NETWORK DELAY, PACKET
SWITCHING. 2. In electronic circuitry, an interconnection of various electrical elements. A
passive network contains no active (amplifying or switching) elements such as
transistors; a linear network is a passive network that contains no nonlinear elements
such as diodes. 3. (net) In mathematics, a *connected directed *graph that contains no
cycles. Interconnections involving objects such as telephones, logic gates, or computers
could be represented using a connected but not necessarily directed graph.
network address translation (NAT) When an organization’s network uses *private
IP addresses, external communications must be converted to use public addresses as they
cross the boundary between the private and public network. Network Address Translation
is one way to achieve this. When a packet is sent to an external address the boundary
firewall replaces the private source address by one of a small pool of public addresses;
when a reply packet is received for that public address the firewall replaces the packet’s
destination address with the correct private address. Although intended to reduce the
number of public addresses needed, NAT can also be used as a security tool as it reduces
the exposure of internal systems to external attack.
network administrator The person in charge of the computer hardware and software
that constitute a given computer network. His or her responsibilities generally follow from
the network’s life cycle but typically will include designing and planning, configuring,
maintaining, and expanding the network. Depending on the size of the network, an
administrator might be responsible for all of these activities or specialize in one or more of
them.
network architecture The design and implementation of a communication network
with respect to its communication disciplines and its interconnection topology. Network
architecture deals explicitly with the encoding of information, its transmission, *error
detection, *error correction, and *flow control, techniques for *addressing subscribers on
the network, analysis of network performance under abnormal or degraded conditions
(such as missing communication lines or improperly functioning switching nodes), etc.
Examples of generalized network architectures are OSI (*open systems interconnection,
an architecture propounded by the ISO) and SNA (systems network architecture, proposed
and supported by IBM).
Interconnection topology is also considered a part of network architecture. There are
three generic forms of topology: star, ring, and bus. Star topology consists of a single
hub node with various terminal nodes connected to the hub; terminal nodes do not
interconnect directly. By treating one terminal node as the hub of another star, a tree-like
topology is obtained. In ring topology all nodes are on a ring and communication is
generally in one direction around the ring; some ring architectures use two rings, with
communication in opposite directions. Various techniques (including time division
multiplexing, token passing, and ring stretching) are used to control who is allowed to
transmit onto the ring. Bus topology is noncyclic, with all nodes connected; traffic
consequently travels in both directions, and some kind of arbitration is needed to
determine which terminal can use the bus at any one time; Ethernet is an example.
Hybrids that mix star and ring topologies have been employed.
A special area of network architecture is involved with the necessary disciplines
required of some of the newer network architectures (see ETHERNET, RING NETWORK,
TOKEN RING).
network-attached storage See NAS.
network delay Broadly speaking, the time needed for a signal to traverse a network.
The extent of the delay caused by the network may be effectively constant, but in most
cases it is variable. If the variable delay can be guaranteed not to exceed some
predetermined value, then the network has a *bounded delay. In other cases the delay is
not bounded but can grow without limit, although with a decreasing probability of a longer
delay.
In a *circuit switching network the only significant delay arises from the finite speed
with which the signals propagate along the transmission medium. For electrical signals on
a conducting wire, electromagnetic waves in free space, or light signals in an optical fibre,
this speed is of the same order as the speed of light, 300 000 km per second, and the
network delay in a circuit-switched system is of the order of 3–5 microseconds per km.
There may also be delays arising from the finite time needed by amplifiers or repeaters to
pass a signal from their input to output; these delays are again in the order of
microseconds. The delay in a signal crossing the Atlantic (5000 km) is of the order of 25
milliseconds, and for a signal routed via a geostationary satellite (total round trip of 80
000 km) it is of the order of 400 milliseconds.
In a *packet switching network the situation is more complex. The time needed to
traverse the network is normally measured as the period between the sender indicating that
the transmission is to start, and the delivery of the last bit of the packet to the destination.
This time is the sum of times needed to traverse each sector of the network, and contains a
number of different contributions. If the data source is not capable of generating a network
packet directly, it will need to be connected to a *PAD that will assemble the data into
packets; devices that can generate their own packets will not require a PAD. It may well
be that although a PAD is not present as a separate component, it is still there
conceptually, where for example a (human) user is using a PC or workstation to connect to
a remote system. Once packets have been generated, each packet will move between
successive pairs of network nodes until it reaches the destination. Each sector has
contributions from
(a) the transit time along the medium connecting the two nodes;
(b) the time needed to disassemble the outgoing packet into its component bits at the
transmitting node (necessarily identical with the time needed to reassemble the
incoming packet at the receiving node);
(c) the time needed by the switching process within the receiving node to determine the
route the outgoing packet is to follow, and carry out the switching.
The first of these is essentially similar to the transit time in a circuit-switched network,
and has a similar value of say 3–5 microseconds per km. The second is essentially equal to
the packet size multiplied by the inter-bit time on the transmission line. The third is a
function of the organization of the switching nodes, of their processing speeds, and of the
extent to which the switching must be delayed until the information needed to allow
switching to start is determined by the internal structure of the packet. The use of *cell
relay systems, in which switching can start before the entire packet has been received,
allows this time to be reduced.
A heavily loaded system will have queues (lines) of packets in each node, leading to a
further complication. The queue may either be of outgoing packets awaiting the attention
of the switching process to determine on which onward connection they should be
transmitted, or of packets that have been rerouted to an onward connection that is already
active, requiring the packet to wait until those ahead of it have been transmitted.
In networks using only terrestrial links, the total network delay is typically dominated
by packet assembly times, (b) above. This is not the case where satellite links are used,
especially where geostationary satellites are involved.
Network File System (NFS) A set of protocols that run over a network and offer
support for *file transfer and access, and for *paging. The system was originally
developed by *Sun Microsystems Inc. to allow workstations without disks to access files
on other machines as if they were on local disks. The system became a de facto standard,
and new versions of NFS are now controlled by *IETF.
http://tools.ietf.org/html/rfc3530
• The NFS (version 4) specification
network front end An auxiliary processor or system attached to another, usually
larger, computer specifically to connect that computer to a network. The goals of a
network front end are to improve overall performance by doing network-related tasks that
would be expensive on the main computer, and to convert the standard interfaces and
protocols used by the external network into a form better suited to the local system’s
internal operation (and vice versa). A network front end may also be used to multiplex a
single network interface among several computers, in which case the network front end
may be considered a *gateway or *bridge.
network interconnection See INTERNET, INTERNETWORKING.
network layer of protocol function. See SEVEN-LAYER REFERENCE MODEL.
network management The activity of managing a (computer) network. Networks,
especially data networks, are complex and contain independently operating units, often
from a number of different suppliers, as well as using services provided by other agencies
such as *PTTs for some parts of the network. In order for the network to be run reliably,
for faults to be identified, isolated, and repaired, and for the network as a whole to be
developed in a controlled manner, it is necessary to have a management activity operating
at several levels:
(a) routine collection of data on traffic;
(b) routine collection of data on failures of connections and of network nodes;
(c) ability to query the status of network nodes in order to assist in fault location;
(d) ability to control the status of network nodes, including resetting, restarting, and
reloading with software;
(e) ability to withdraw network nodes from service, and to reconfigure routing
information.
Ideally, the manager would like to be able to perform all these activities from a
workstation connected to the network. For this to be done, the nodes must themselves be
treated as addressable objects on the network, and there must be a protocol that allows
suitably authorized and qualified personnel to carry out both the routine activities (a) and
(b) above, and to take corrective action in the event of a failure. There is a suitable
protocol, *SNMP (simple network management protocol), and nearly all suppliers now
market products that can process SNMP queries and commands.
network share (share) A *directory on a networked computer that is made available
(shared) for access over the network. Usually the network share is given a name and a set
of access permissions. Originally a term used on Windows networks, ‘network share’ is
now becoming more widespread.
network topology See NETWORK ARCHITECTURE.
network virtual terminal (NVT) See TELNET. See also VIRTUAL TERMINAL.
neural computer A computer system based on a *neural network.
neural network (neural net) A form of computation inspired by the structure and
function of the brain. One version of this is as follows. The topology is a *weighted
directed graph. *Nodes in the graph can be on or off. Time is discrete. At each time instant
all the on nodes send an impulse along their outgoing arcs to their neighbour nodes. All
nodes sum their incoming impulses, weighted according to the arc. All the nodes at which
this sum exceeds a threshold turn on at the next time instant; all the others turn off.
Computation proceeds by setting some input nodes, waiting for the network to reach a
steady state, and then reading some output nodes. Nodes can be trained, using examples,
to recognize certain patterns, for instance to classify objects by features. See also BACK
PROPAGATION, CONNECTIONISM, PERCEPTRON.
neuron A node in a *neural network.
newsgroup See USENET.
newsreader An application program that allows a user to read and post messages to
newsgroups.
Newton–Cotes rules See NUMERICAL INTEGRATION.
Newton’s method An iterative technique for solving one or more *nonlinear equations.
For the single equation
the iteration is
where x0 is an approximation to the solution. For the system
the iteration takes the mathematical form
where J(x) is the n′ n matrix whose i,jth element is
In practice each iteration is carried out by solving a system of linear equations. Subject to
appropriate conditions the iteration converges quadratically (ultimately an approximate
squaring of the error occurs). The disadvantage of the method is that a constant
recalculation of J may be too time-consuming and so the method is most often used in a
modified form, e.g. with approximate derivatives. Since Newton’s method is derived by a
linearization of f(x), it is capable of generalization to other kinds of nonlinear problems,
e.g. boundary-value problems (see ORDINARY DIFFERENTIAL EQUATIONS).
NFS See NETWORK FILE SYSTEM.
nibble Rare Half a byte, i.e. generally four bits.
Nigerian fraud See ADVANCE-FEE FRAUD.
nine’s complement See RADIX-MINUS-ONE COMPLEMENT.
N-ISDN (Narrowband/Normal ISDN) The term refers to *BRI and *PRI services,
the first services developed for ISDN, in opposition to *B-ISDN, which offers larger
(broadband) *bandwidth in the order of 100 Mbps. See also ISDN.
NLP See NATURAL-LANGUAGE PROCESSING.
NLQ (near letter quality) Printed output somewhat inferior to that produced by a
good electric typewriter but acceptable for most purposes. See also LQ.
NMOS A type of *MOSFET.
no-address instruction An instruction that does not require the designation of an
operand address, e.g. ‘complement the accumulator’. See also IMPLIED ADDRESSING,
STACK PROCESSING, ZERO-ADDRESS INSTRUCTION.
node 1. A point in a computer *network where communication lines, such as telephone
lines, electric cables, or optical fibres, are interconnected. The device used to make the
connection(s) may be a simple electric *interface—as used in a *local area network. In
more complex longer-distance networks a computer is required.
Node computers vary in their functional capabilities but their basic use is to switch
incoming information to the necessary output line so that the information ultimately
reaches its specified destination. The information may be transmitted as a whole or may be
split into segments (see MESSAGE SWITCHING, PACKET SWITCHING). When the information
reaches its final destination, the node computer at this point will send it through to the
recipient(s).
Nodes can also be called stations, and in many X25 networks the switching nodes are
known as exchanges. 2. A substructure of a hierarchical data structure that cannot be
further decomposed, e.g. a vertex in a *graph or *tree.
Noetherian See ABSTRACT REDUCTION SYSTEM.
noise Any signal that occurs in an electronic or communication system and is considered
extraneous to the desired signal being propagated. Noise can be introduced, for example,
by external disturbances and may be deleterious in a given system since it can produce
spurious signals, i.e. errors.
The noise immunity is a measure of the magnitude of external disturbances that a
digital circuit can tolerate without producing errors. Logic values are represented
electronically by two different voltage levels. Any noise introduced into logic circuitry by
external disturbances is added (or subtracted) from the real digital logic signal. The noise
margin is the maximum noise voltage that can be added or subtracted from the logic
signal before a threshold voltage for a logic state is passed. See also GAUSSIAN NOISE,
IMPULSE NOISE, WHITE NOISE.
noise immunity See NOISE.
noiseless coding In communication theory, the use of a code to improve the efficiency
of a *communication system in which *noise is absent or negligible. Noiseless coding is
thus generally the same as *source coding. Note that the process of coding is itself usually
noiseless: there is no need for encoders or decoders to introduce noise, so the term
noiseless coding is not used to imply the absence of such noise.
noise margin See NOISE.
noise sequence See PSEUDONOISE SEQUENCE.
noise source 1. See SHANNON’S MODEL. 2. A piece of test equipment used to inject
noise deliberately into a channel, used for testing the performance of amplifiers and
detectors.
noisy mode A method of operation that is sometimes used when normalizing a floatingpoint number. If the significand is shifted m bits to the left during normalization, then in
noisy mode the digits generated to fill the m rightmost bits in the normalized significand
are not necessarily zeros.
nonbinary logic Another name for multivalued logic.
nondestructive read The process of reading a memory device in such a manner that
the contents of the memory are not altered. The reading of most integrated-circuit devices
is nondestructive.
nondeterminism A mode of computation in which, at certain points, there is a choice
of ways to proceed: the computation may be thought of as choosing arbitrarily between
them, or as splitting into separate copies and pursuing all choices simultaneously. The
precise form of nondeterminism depends on the particular model of *computation.
For example, a nondeterministic *Turing machine will have a choice of moves to make
for a given internal state and tape symbol being read. After a choice has been made, other
choice-points will be encountered. There is therefore a *tree whose paths are all possible
different computations, and whose *nonterminal nodes represent choice-points. If, for
example, the algorithm performs some kind of ‘search’, then the search succeeds if at least
one sequence of choices (path through the tree) is successful.
Nondeterministic constructs in programming languages can offer a choice of control,
e.g.
or a choice of data, e.g.
These latter select a value for y randomly and such that it satisfies test R. Many algorithms
are expressed most conveniently using such constructs; nondeterminism also arises
naturally in connection with interleaving and concurrency.
Nondeterminism is important in the field of *complexity: it is believed that a
nondeterministic Turing machine is capable of performing in ‘reasonable time’
computations that could not be so performed by any deterministic Turing machine (see
P=NP QUESTION).
nonequivalence gate Another name for exclusive-OR gate.
nonequivalence operation Another name for exclusive-OR operation.
nonerasable programmable device See PROGRAMMABLE DEVICE.
nonfunctional requirements See SOFTWARE REQUIREMENTS SPECIFICATION.
nonhierarchical cluster analysis See CLUSTER ANALYSIS.
nonimpact printer A printer in which the image is formed without use of mechanical
impact. *Inkjet, *thermal, *electrographic, and *laser printers are examples of this type.
nonlinear equations In general, a problem that requires the determination of values of
the unknowns x1, x2,…, xn for which
where f1, f2,…, fn are given algebraic functions of n variables, i.e. they do not involve
derivatives or integrals. This in both theory and practice is a very difficult problem. Such
systems of equations arise in many areas, e.g. in numerical methods for nonlinear
*ordinary and *partial differential equations. When n = 1 the single equation can be solved
by a variety of effective techniques (all involving *iteration); the case of *polynomial
equations can give rise to complex solutions. For systems of equations, *Newton’s method
and principally its many variants are widely used. For cases of extreme difficulty where,
for example, only poor starting approximations are available, methods based on the idea of
*continuation can be of value.
nonlinear regression model See REGRESSION ANALYSIS.
nonlocal entity See LOCAL.
nonmemory reference instruction An instruction that can be carried out without
having to obtain an operand from, or return a result to, memory. Immediate instructions
and some branch instructions are examples. See also ZERO-ADDRESS INSTRUCTION.
nonmonotonic reasoning A form of reasoning in which the acquisition of new
knowledge can cause earlier conclusions to be withdrawn, so that the body of inferred
knowledge does not grow monotonically (i.e. does not increase consistently) with the
body of received knowledge. Various systems of nonmonotonic reasoning have been
developed, among which are nonmonotonic logic, circumscription, default reasoning,
autoepistemic logic, and negation as failure.
nonparametric techniques *Statistical methods that make no assumptions about the
precise form of the *frequency distribution from which the data are sampled. They are
mainly of use for hypothesis testing using the information in the rank order within each
sample. For example, the Mann Whitney U-test may be used to test whether two
samples are drawn from the same distribution, and the rank correlation coefficient
may be used to test whether two variables are independent.
These methods can be contrasted with parametric techniques, which require
specific models with *parameters to be estimated.
nonpreemptive allocation An allocation that does not preempt a resource from a
process to which it is already allocated. Compare PRE-EMPTIVE ALLOCATION.
nonprocedural language Another name for declarative language.
nonreturn to zero See NRZ.
nonsingular matrix A square matrix, A, of numbers whose *determinant is nonzero. A
is nonsingular if and only if it is invertible (see INVERSE MATRIX).
nonstop processing The use of multiple computers in a redundant configuration to
provide high *availability of computing service and tolerance to failures of service in a
single computer.
nonterminal (nonterminal symbol) See GRAMMAR.
nonterminal node (interior node) (of a tree) Any node that is not a terminal node (i.e.
a leaf node) and hence has one or more children.
nonvolatile memory A type of memory whose contents are not lost when power to the
memory is removed. *ROM and *PROM are examples. Compare VOLATILE MEMORY.
non von Neumann architecture Any computer architecture in which the underlying
model of computation is different from what has come to be called the standard von
Neumann model (see VON NEUMANN MACHINE). A non von Neumann machine may thus
be without the concept of sequential flow of control (i.e. without any register
corresponding to a ‘program counter’ that indicates the current point that has been reached
in execution of a program) and/or without the concept of a variable (i.e. without ‘named’
storage locations in which a value may be stored and subsequently referenced or changed).
Examples of non von Neumann machines are the *dataflow machines and the
*reduction machines. In both of these cases there is a high degree of parallelism, and
instead of variables there are immutable bindings between names and constant values.
Note that the term non von Neumann is usually reserved for machines that represent a
radical departure from the von Neumann model, and is therefore not normally applied to
multiprocessor or multicomputer architectures, which effectively offer a set of cooperating
von Neumann machines.
no-op instruction (pass instruction, do-nothing instruction) An instruction that
causes no action to take place in the computer except for consumption of time and
instruction storage space. There are several uses for this instruction including time
adjustment of a program, filling out program space in a system where instruction
boundaries do not always coincide with word boundaries, and replacement of unwanted
instructions without having to recompute all other program addresses.
NOR gate An electronic *logic gate whose output is logic 1 (true) only when all (two or
more) inputs are logic 0 (false), otherwise it is logic 0. It thus implements the logical
*NOR operation and has the same truth table. The diagram shows the usual circuit symbol
of a two-input gate (which implies by the small circle that it is an inclusive *OR gate
whose output has been inverted) and the associated truth table. See also EXCLUSIVE-NOR
GATE.
NOR gate. Two-input NOR gate, circuit symbol, and truth table
norm See APPROXIMATION THEORY.
normal distribution (Gaussian distribution) An important *probability distribution
for data in the form of continuous measurements. The frequency function is given by
The distribution is symmetric about the mean, μ, and its variance is σ2. The range of x is
infinite (–∞, ∞). Many sampling distributions tend to the normal form as the sample size
tends to infinity.
normal forms 1. A term applied to a relation (table) in a relational database. A table is
said to be in first normal form if it conforms to the constraint of the *relational model
that each entry is an elementary data item. In defining further normal forms the concept of
functional dependency is used. This concept is quite distinct from that of *function
since it requires the context of relation for its definition. A functional dependency thus
exists only within a particular relation.
Given two attributes A and B of a relation, then B is functionally dependent on A if
whenever any two tuples (rows) of the relation have the same value for A, they will
necessarily also have the same value for B. Notationally this is written A →B, often
colloquially expressed as ‘A determines B’. This definition is readily generalized to the
case where A and B are arbitrary subsets of attributes, which is the definition used in the
theoretical development. A logical consequence of the definition is that if the values of a
particular attribute in a relation are necessarily all distinct (e.g. if it is a key) then all other
attributes of the relation are functionally dependent on it, and similarly for a set of
attributes (e.g. a compound key).
A relation is in second normal form if it has a single attribute that can serve as a
key or, if having a compound key, all other attributes are functionally dependent on the
whole of the key and not just part of it. A relation is in third normal form if it contains
no functional dependencies among its nonkey attributes. The concepts of second and third
normal form are widely understood and used in practical database design, the functional
dependencies usually being a reflection within the tables of real-world functions that exist
in the application domain.
Further normal forms, less used in practice, are Boyce–Codd, fourth and fifth. Fourth
normal form also uses the concept of multivalued dependency and fifth normal form that
of join dependency. 2. See ABSTRACT REDUCTION SYSTEM.
normalization 1. The action of reorganizing a *relational database so that its data
conforms to a higher *normal form. 2. The action of removing unimportant differences
from data, especially text, to simplify subsequent processing. For example, the different
conventions for denoting new lines in text files are often detected automatically when a
file is read and translated to a single consistent representation before the data is presented
to the rest of the program for processing.
normalized coordinates See NDC, NPC.
normal plots Graphical plots of ranked *residuals against percentage points of a
*normal distribution to test the assumption of normality in a statistical analysis. If the
plotted points do not lie roughly on a straight line the analysis may have to be changed, for
example by *transformation of the data.
normal subgroup See COSET.
NOR operation The logical *connective combining two statements, truth values, or
formulas P and Q in such a way that the result is true only if both P and Q are false (see
table). The NOR operation is the dual of the *NAND operation (see DUALITY). It may be
represented by the Pierce arrow, ↓, or by ∇. P↓Q is just the negation of P ∨ Q, hence
the name (see OR OPERATION).
The NOR operation is of particular significance to computer designers since any
Boolean expression can be expressed using the NOR operation alone. In practical terms,
circuits can be built using only *NOR gates.
NOR operation. Truth table
NOS Acronym for network operating system.
NoSQL (Not Only SQL) A collection of database technologies designed to improve
on traditional *relational databases in terms of ease of design, *scalability, and
*availability. They are becoming the technology of choice for handling very large
datasets, or for supporting very responsive web applications. Many NoSQL systems do not
adhere to *ACID principles, sacrificing consistency for availability and ease of
distribution. See also CAP THEOREM.
notch filter See BAND-STOP FILTER.
notebook See LAPTOP COMPUTER. See also PALMTOP COMPUTER, SUBNOTEBOOK.
not-equivalence gate Another name for exclusive-OR gate.
NOT gate Another name for inverter.
NOT operation A logical *connective with just one operand. When applied to a
statement, truth value, or formula P, the outcome is false if P is true, and vice versa, i.e. it
produces a negation. It can be denoted in a variety of ways, e.g.
Novell Inc. A US-based developer and supplier of network software. Originally a
producer of small desktop computers, in the 1980s the company acquired a dominating
position in the local area network field, through its *Netware product. In the 1990s it made
a series of unwise acquisitions that it was subsequently forced to dispose of. It was slow to
spot the decline in the market for systems based on proprietary standards. In recent years,
however, it has concentrated on web services, with tools to support the use of J2EE and
XML. It also has a growing stake in the market for Linux products. In 2011 it was
acquired by The Attachmate Group, Inc., a privately owned software company.
NP, NP-complete See P=NP QUESTION.
NPC (normalized projection coordinates) A viewing transformation that maps a
world-coordinate position into one in NPC space. See also WORLD COORDINATES.
npn See BIPOLAR TRANSISTOR.
NREN (national research and education network) An *ISP dedicated to a
country’s research and education centres.
NRZ (nonreturn to zero) A way of encoding binary signals that aims to achieve the
highest possible data transfer rate for a given signal frequency. The name is derived from
the principle of operation, i.e. the signal line does not return to zero—make any transition
—between a succession of 1 bits. The method was first used for communications
signalling in which there was always a 1 bit at the start of a character and thus there was a
predictable and acceptable short interval over which the sending and receiving devices had
to maintain synchronism independently.
Many variants of the basic principle have been derived to overcome synchronization
problems that occur at high speeds and long bit streams. See also DISK FORMAT, TAPE
FORMAT.
NS chart See NASSI–SHNEIDERMAN CHART.
NSPACE, NTIME See COMPLEXITY CLASSES.
NTFS (NT file system) See FILE SYSTEM.
n-tuple An ordered set with an unspecified but finite number (n) of elements. See
CARTESIAN PRODUCT, ORDERED PAIR.
n-type semiconductor See SEMICONDUCTOR.
nucleus See KERNEL.
null A special value used to indicate that a variable intentionally contains either no value
or an unknown value. It is used particularly in *relational databases, where expressions
that include a null value will generally return either ‘null’ or ‘unknown’. This is distinct
from all numeric and logical values and requires special handling. Null is also used in
programming to indicate that a *pointer does not contain an address. Using a null pointer
as if it did contain an address will generally cause a runtime error.
nullary operation See OPERATION.
null character A special character in a *character set, denoting nothing, and usually (as
in ASCII and Unicode) represented by zero.
nullity (of a graph) See CONNECTED GRAPH.
null link See LINKED.
null list (empty list) See LIST.
null matrix (zero matrix) A square matrix, all the elements of which are zeros.
null set Another name for empty set.
null string Another name for empty string.
number cruncher Informal name for supercomputer.
number system Although early number systems were not positional, all of the number
systems most commonly used today are positional systems: the value of a number in
such a system is determined not just by the digits in the number but also by the position in
the number of each of the digits. If a positional system has a fixed radix (or fixed
base) R then each digit ai in any number
is an integer in the range 0 to (R – 1) and the number is interpreted as
Since this is a polynomial in R, such numbers are sometimes called polynomial
numbers. The decimal and binary systems are both fixed-radix systems, with a radix of
10 and 2, respectively.
Fractional values can also be represented in a fixed-radix system. Thus,
is interpreted as
In a mixed-radix (or mixed-base) system, the digit ai in any number
lies in the range 0 to Ri, where Ri is not the same for every i. The number is then
interpreted as
for example, 122 days 17 hours 35 minutes 22 seconds is equal to
seconds
numerical analysis A branch of mathematics/computer science dealing with the study
of *algorithms for the numerical solution of problems formulated and studied in other
branches of mathematics. Numerical analysis now plays a central role in engineering and
in the quantitative parts of pure and applied science. The tasks of numerical analysis
include the development of fast and reliable *numerical methods together with the
provision of a suitable *error analysis. The algorithms are developed as computer
programs, taking full account of machine architectures such as parallelism.
numerical code A code whose target alphabet contains only digits and/or strings of
digits, e.g. a binary code.
numerical control The application of digital computer techniques to the control of a
manufacturing process. The concept has been applied primarily to various kinds of
machine tools such as milling machines, metal-cutting lathes, welding machines, and
some specialized machines. The machines are controlled by numerical specification of
parameters such as position, where the numbers are usually calculated beforehand (offline)
by a computer and recorded on a medium such as punched paper tape. If the computer is
directly connected for online control, the technique is called computer numerical
control (CNC). See also COMPUTER-AIDED MANUFACTURING, COMPUTER-INTEGRATED
MANUFACTURING.
numerical differentiation The problem of approximating the derivative of a function
using values of the function. An obvious approach is to use the derivative of an
*interpolation polynomial. Such estimates involve differences of function values, and loss
of potential accuracy occurs, due to *cancellation, if the data values are at points too close
together.
numerical integration (quadrature) The problem of finding the numerical value for a
definite integral. The underlying approximation behind most methods is the replacement
of a function f(x) by an *interpolation polynomial, based on a set of points x1, x2,…,xn.
This leads to integration rules of the form
in which the wi are called weights.
The standard problem has a,b finite and w(x) ≡ 1. For this case the rules with equally
spaced points xi are called Newton–Cotes rules. Well-known examples are the
*trapezium rule and *Simpson’s rule. Most program libraries implement the more
powerful Gaussian rules in which the points xi are chosen to maximize the *degree of
precision. This is achieved by choosing the xi as the zeros of the Legendre polynomials
that are *orthogonal polynomials with respect to w(x) ≡ 1 on the interval [−1, 1]. Another
important idea is the *extrapolation method due to Romberg, based on the trapezium rule.
For infinite range problems Gaussian rules can also be defined in terms of suitable
orthogonal polynomials. A useful case is where
where the appropriate orthogonal polynomials determining the xi are the Laguerre
polynomials.
In practice the interval of integration is subdivided and the chosen rule applied to each
subinterval, together with a companion rule to provide an error estimate (see ERROR
ANALYSIS). By then subdividing the interval where the error is largest, a greater
concentration of effort is placed where the integrand is most difficult. This is known as
adaptive quadrature. Such nonuniform distribution of effort, adapted to the particular
problem, is essential for the efficient solution of all practical problems.
Multiple integrals over a large number of dimensions may be treated by *Monte Carlo
methods, involving the use of randomly generated evaluation points.
numerical linear algebra A fundamentally important subject that deals with the
theory and practice of processes in linear algebra. Principally these involve the central
problems of the solution of *linear algebraic equations
and the *eigenvalue problem in which eigenvalues λk and the eigenvectors xk are sought
where
Numerical linear algebra forms the basis of much scientific computing. Both of these
problems have many variants, determined by the properties of the matrix A. For example,
a related problem is the solution of overdetermined systems where A has more rows than
columns. Here there are good reasons for computing x to minimize the norm
(see APPROXIMATION THEORY).
A major activity is the computing of certain linear transformations in the form of
matrices, which brings about some simplification of the given problem. Most widely used
are orthogonal matrices Q, for which
(see IDENTITY MATRIX, TRANSPOSE). An important feature of large-scale scientific
computing is where the associated matrices are sparse, i.e. where a high proportion of the
elements are zero (see SPARSE MATRIX). This is exploited in the algorithms for their
solution.
There is now available high-quality software for an enormous variety of linear algebra
processes.
numerical methods Methods designed for the constructive solution of mathematical
problems requiring particular numerical results, usually on a computer. A numerical
method is a complete and unambiguous set of procedures for the solution of a problem,
together with computable error estimates (see ERROR ANALYSIS). The study and
implementation of such methods is the province of *numerical analysis.
numerical stability See STABILITY.
numlock A key controlling the mode of the numeric pad on a keyboard whereby the
keys produce numeric codes. An alternative mode allows the keys to be used for cursor
control.
NURBS (nonuniform rational B-splines) The ratio of two nonuniform *B-spline
curves.
n-version programming (diverse programming) The implementation to a common
specification of two (or more) different versions of a program, usually using two
completely different teams of programmers. The purpose is to create versions of the
program that are unlikely to have the same faults. On comparison of the two programs,
identification of any differences can point to errors that occurred in interpreting the
specification, errors in design, and errors during implementation.
The use of n-version programming inevitably leads to an increase in the development
costs of a software system, but this is compensated by an increase in confidence in the
quality of the software and often leads to a lower cost in validation, verification, and
testing.
Nyquist interval The time interval between successive samples of a continuous-time
band-limited signal that is being sampled at the Nyquist rate. See also NYQUIST’S
CRITERION.
Nyquist rate See NYQUIST’S CRITERION.
Nyquist sampling The process of *sampling a continuous-time band-limited channel
at, or possibly more frequently than, the Nyquist rate. See also NYQUIST’S CRITERION.
Nyquist’s criterion The statement that when a continuous-time *band-limited channel
is to be sampled, the *sampling process may or may not cause information to be lost
according to whether the sampling rate, ν, is less than, greater than, or equal to twice the
*bandwidth, W.
If ν = 2W, sampling is said to occur at the Nyquist rate.
if ν < 2W, sub-Nyquist sampling is said to take place, and some information will be
lost; this may be quite acceptable in certain cases.
If ν > 2W, super-Nyquist sampling occurs; it cannot cause any more information to
be extracted than sampling at the Nyquist rate.
Super-Nyquist sampling (at somewhat over the Nyquist rate) is, however, commonly
employed to allow a margin of safety since there may be some doubt about the actual
value of the bandwidth. There is no harm in it, if it is convenient, but the samples taken at
a super-Nyquist rate will not be independent of one another.
See also DISCRETE AND CONTINUOUS SYSTEMS.
Nyström methods A class of *Runge–Kutta methods directly applicable to second-
order equations of the form
without requiring a reduction to first-order systems (see ORDINARY DIFFERENTIAL
EQUATIONS). *Extrapolation methods and *linear multistep methods of this direct type
have also been developed. Such methods can be particularly advantageous for equations of
the type y″ = f(x,y), where y′ does not appear explicitly.
Oberon A programming language developed as a successor to *Modula 2. Oberon-2 is
a backward-compatible extension.
OBJ An executable *specification language.
object A term loosely used to describe an identifiable component of a software system or
design, now more commonly applied to a component that is in some sense self-contained,
having an identifiable boundary. In *object-oriented design, objects are the basic
components from which the model of the system to be implemented is constructed.
In *object-oriented programming, the term has a more precise definition. An object is
an instance of a component comprising data structures and procedures (called methods)
for manipulating the structures. These methods are activated by messages sent to the
object, and the interior structure of the object is entirely hidden from any other object (a
property called encapsulation). Objects are derived from a template, and the collection
of objects that are instances of a particular template are said to form a class. A
particularly important feature is *inheritance, which allows new classes to be defined in
terms of existing classes, inheriting some or all of the properties of an existing class. Some
systems implement multiple inheritance, which allows a class to inherit properties
from more than one parent class.
See also OBJECT-ORIENTED ARCHITECTURE, OBJECT-ORIENTED LANGUAGE.
object code The output of a *compiler.
object language The language in which the output of a *compiler or *assembler is
expressed.
object linking and embedding (OLE) A set of techniques for incorporating an
*object from one application in another. An embedded object has no permanent
connection with its parent application, but when activated the parent application is
launched. For instance an embedded picture in a word processor, when activated, might
cause the paint program to appear with the picture loaded, ready to be modified or viewed.
When an object is linked into a target application the parent application can be active, and
any changes made by the parent application are immediately displayed in the embedded
object (see HOT LINK). OLE techniques all differ from a simple copy, where the object has
no further connection with the parent application and becomes part of the target.
Object Management Group (OMG) An international software technology standards
consortium. It was founded in 1989 by a group of leading companies with interests in
computer technologies and now has hundreds of member organizations. Popular OMG
standards include *CORBA, and *UML.
http://www.omg.org/
• The OMG official website
object management system (OMS) That part of a *PSE which is concerned with
maintaining information about the system under development. The OMS may be based on
a relational database management system, and includes relationships between elements
such as derivation and configurations.
object-oriented architecture An obsolete architecture in which everything
(processes, files, I/O operations, etc.) is represented as an *object. Objects are *data
structures in memory that may be manipulated by the total system (hardware and
software); they provide a high-level description that allows for a high-level user interface.
Objects have descriptors that are referred to variously as names, pointers, and labels.
These descriptors also provide information as to the type of object and a description of
capabilities that apply to the particular object. Object-oriented architecture systems could
thus be considered as an extension or generalization of *capability architecture systems,
and had the same ability to provide a basis for protection and computer security.
Examples of object-oriented architecture systems were the IBM System 38, the
Carnegie-Mellon experimental C.mmp/Hydra, and the Intel iAPX 432.
object-oriented database A term not well defined but applied to software products
that provide *persistence for applications written in *object-oriented languages with
features such as rollback and recovery. Thus ONTOS provides persistence for C++ and
GemStone for a variant of Smalltalk-80. There is no generally accepted object-oriented
*data model on which products can be based as with the *relational model, although
various proposals have been and are being made. It remains unclear whether all the
concepts of object-oriented programming are relevant in the database context.
object-oriented design (OOD) A software development technique in which the
system is seen as a collection of *objects that communicate with other objects by passing
messages. Design is targeted toward defining the kinds of objects, the methods (i.e.
procedures of objects), and the messages passed. OOD is based on the principle of
*information hiding. See also MESSAGE PASSING.
object-oriented language (OOL) A programming language used in *object-oriented
programming. In such a system the concept of procedure and data, which is embodied in
conventional programming systems, is replaced by the concepts of *objects and messages:
an object is a package of information and a description of its manipulation, and a message
is a specification of one of an object’s manipulations. Unlike a procedure, which describes
how manipulations should be carried out, a message merely specifies what the sender
wants done, and the receiver determines exactly what will happen. See also C++,
SMALLTALK.
object-oriented programming (OOP) A programming technique that involves
*objects. See feature OBJECT-ORIENTED PROGRAMMING.
OBJECT-ORIENTED PROGRAMMING
Object-oriented programming (OOP) is a programming technique that combines data
abstraction and inheritance. The central feature is the object, which in practical terms
is a development of a data structure. The latter is a composite data type, consisting
of a collection of appropriate variables. The object comprises a data structure definition
and its defined procedures in a single structure.
Objects are instances of a class, each instance having its own private instance
variables. The class definition defines the properties of the objects in a class. A
particularly important feature is inheritance, which allows new classes to be defined
in terms of existing classes, inheriting some or all of the properties of an existing class.
This facilitates sharing of code, since users can inherit objects from system collections
of code.
The procedures of an object (often called methods) are activated by messages
sent to the object by another object. Thus in an object-oriented programming system the
basic control structure is *message passing. The programmer identifies the real-world
objects of the problem and the processing requirements of those objects, encapsulating
these in class definitions, and the communications between objects. The program is then
essentially a simulation of the real world in which objects pass messages to other
objects to initiate actions. The interior structure of the object is entirely hidden from any
other object (a property called encapsulation).
Objects add several capabilities to the data structure. The most important are briefly
described below.
Procedures
Objects can contain procedures (methods) as well as variables (also called
properties). For example, a data type representing an automobile might be defined in
C as follows:
Variables of type ‘automobile’ would then be instantiated, initialized by assigning
appropriate values to their component subvariables, and manipulated by appropriate
*procedures. In OOP, the automobile structure could be reformulated in C++ to include
a procedure:
Assuming a variable of type ‘automobile’ called ‘gasGuzzler,’ the method ‘travel’
could be called thus:
(The significance of the keyword ‘virtual’ is explained below.)
Inheritance
The fact that objects can be defined in terms of other objects is an important feature of
OOP. A ‘child’ object type (or subclass) *inherits all of its parent’s methods and
properties (which may have been inherited in turn from its parent) as well as defining its
own. This facility allows complex hierarchies of related objects to be created. A child
object type may override a method or property of its parent by defining a new method or
property of the same name:
If the ‘travel’ method of a variable of type ‘stretchLimo’ is called, it is stretchLimo’s
own version that is invoked rather the version inherited from class ‘automobile.’
Child object types may be treated as if they are one of their ancestor types. The
following is a legal assignment using C++ pointers:
No data is lost, but only those properties and methods defined for class ‘automobile’
will be available to variable myLimo.
Polymorphism
if a method has been overridden, it is usually the overriding method defined in a child
class that is invoked. For example,
will invoke the ‘travel’ method defined in class stretchLimo because ‘myLimo’ is in
fact a stretchLimo object. (Note that in C++ methods must be designated ‘virtual’ to
achieve this behaviour; in such languages as Java it is automatic.)
This capability, called polymorphism, gives object-oriented programming its great
power. The class ‘automobile’ could have numerous subclasses defined, each extending
it in ways appropriate to a particular brand of automobile; and each might have its own
version of the ‘travel’ method, tuned to suit its own characteristics. Yet, when an object
of any subclass is assigned to pointer variable of class ‘automobile’ and the ‘travel’
method invoked, it is the variant defined for the appropriate subclass that is invoked.
Each object thus carries the knowledge of how to manipulate itself, and the code that
uses such objects need not be aware of exactly which type of object it is manipulating.
This enhances encapsulation, reducing the complexity and increasing the robustness of
almost any nontrivial programming project.
An important application of polymorphism is in interfaces. These may be defined
as abstract classes: that is, classes that define properties and methods but which do not
provide any implementations for the methods. An implementation of an interface is a
subclass that overrides all the interface’s methods with versions that provide appropriate
functionality.
Languages
The first complete realization of an object-oriented programming system was
*Smalltalk. A more recent example is *Ruby. In addition a large number of modern
programming languages contain features of object-oriented systems; examples are C++,
C#, Java, and Visual Basic.
object program Like object code, the output of a *compiler. The object program is the
translation into *object language of the *source program.
object-relational database management system (ORDBMS) A term sometimes
used to describe a *relational database management system that allows users to create
their own data types as *objects. Many modern RDBMSs fall within this definition to
some degree. Such systems are faster than *object-relational mapping systems and are
more practicable to implement full *object-oriented databases.
object-relational mapping The conversion of data held in *objects to a form that can
be stored in a *relational database and vice versa. This is a common activity; many
programs need to *persist their data and using a relational database is often an appropriate
way to do this. However, the strict rules of relational database design mean that mapping
the more flexible data structures natural to *object-oriented languages onto a database can
be an intricate and time-consuming operation. Software packages exist that create the
necessary code automatically, the result being in effect an *object-oriented database. See
also OBJECT-RELATIONAL DATABASE MANAGEMENT SYSTEM.
object-space octree An *octree used to model an object in *world coordinates.
occam Trademark A programming language devised originally for use with *transputerbased systems. occam facilitated the writing of parallel programs for execution on one or
more transputers, and was intended to be the normal way of programming transputers. The
current version is occam-π. occam is available for other platforms but is not widely used.
occam-pi See MOBILE CODE LANGUAGES.
OCR (optical character recognition) A process in which a machine scans,
recognizes, and encodes information printed or typed in alphanumeric characters. The first
devices, marketed around 1955, could only recognize a limited repertoire of characters
that had to be produced in a font that was optimized for machine recognition but was still
recognizable by people. By the mid-1970s OCR A font and OCR B font were the
dominant fonts and were close to a normal letter-press appearance. Modern OCR
equipment can read most typed or printed documents and high recognition rates are
achieved. OCR A and B fonts are still used for applications requiring high accuracy and in
cases when context cannot aid recognition. In some instances printed information intended
for *MICR (magnetic-ink character recognition) is read by optical recognition techniques,
as with some check readers associated with bank teller terminals.
OCR software is now readily available for many low-cost *scanners giving good
recognition rates for printed material using the Latin alphabet. The more difficult
problems posed by other character sets and handwriting are areas of ongoing research.
octal notation The representation of numbers in the positional number system with
radix 8. The octal digits are denoted by 0–7. Any octal number may be simply converted
into its binary equivalent, and any binary number into its shorter octal equivalent.
octant See OCTREE.
octet Eight contiguous bits; an eight bit byte. The term is used instead of byte to prevent
confusion in cases where the term has pre-existing hardware associations, as in machines
with 7-bit bytes, 9-bit bytes, 12-bit bytes.
octree A representation of space and solid objects used in *computer graphics and
*spatial reasoning; it is a *tree structure. The space around the origin point is divided up
into eight octants. Each octant is marked occupied or free according to whether there is
any object occupying that location in the environment to be represented. Each occupied
octant is then divided again into eight subspaces and the process continues recursively
until sufficient resolution has been achieved. The representation is efficient where large
volumes of space are unoccupied, and the level of detail required is in proportion to the
spatial complexity of the object structure. The two-dimensional version is called a
*quadtree.
odd-even check Another name for parity check.
odd-even rule A rule for determining whether a point is inside a polygon boundary by
counting the intersections that a line from the point to infinity makes with the boundary. If
the number is odd, the point is inside the boundary.
odd-even transposition sort A refinement of the *bubble sort in which adjacent
pairs, starting with an odd position, are sorted then adjacent pairs, starting with an even
position, are sorted. The two phases alternate until sorting is completed.
odd parity A property that holds when a group of binary values contains an odd number
of 1s. See PARITY.
odds The ratio of the *probability that an event occurs to the probability that it does not
occur. The ratio of two odds, known as the odds-ratio, is used especially in the
comparison and modelling of conditional probabilities.
ODP Abbrev. for open distributed processing.
OEM (original equipment manufacturer) Traditionally, the company that
actually manufactured a product as opposed to a client company responsible for marketing
it, usually under the marketer’s name. In some cases, however, the client may add value to
the original product (*VARs) or incorporate it within its own end product; here, the client
could be seen as a ‘second manufacturer’ and also considered as an OEM. The term can
therefore be the source of some confusion.
OFB (Output Feedback) See DATA ENCRYPTION STANDARD.
office automation The application of computers to office tasks. This may involve the
use of *electronic filing systems, *word processing systems, *computer graphics systems,
*email, *desktop publishing, management information systems, *database management
systems, and *teleconferencing or *videoconferencing systems.
Office of Government Commerce (OGC) The UK government office that provides
support for the procurement and management of large projects and programmes. It
developed from the Central Computing and Telecommunications Agency (CCTA), and is
an independent office of the Treasury.
office software product (office suite) A collection of items of software from a single
supplier that is useful in an office environment and is sold as a single item. The
components typically include a selection from a word processor, spreadsheet, presentation
graphics package, meeting scheduler and appointment manager, email manager, and
perhaps a database system as an optional extra. There are significant cost savings over
buying the items separately or making a selection from different suppliers, and there may
be compatibility advantages. Compare INTEGRATED OFFICE SYSTEM.
offline (off-line) 1. Of peripheral devices or files: not connected to the system or not
usable. A device may be physically connected but offline if the system has been instructed
not to use it. 2. Not connected to a network, especially the Internet.
OLAP See ONLINE ANALYTICAL PROCESSING.
OLE Acronym for object linking and embedding.
OMG Abbrev. for Object Management Group.
OMR (optical mark reading) A method for data input in which marks made on
preformatted documents are sensed by photoelectric means. The marks are interpreted as
either characters or values according to their position on the form. This provides an
efficient type of data input in applications in which there are relatively few answers to a
limited number of questions. No further data preparation activity or machines are required
since the reader can be connected directly to the system. Special readers are available to
handle large documents. OMR documents are printed on paper, and information to the
user as to where the marks should be put and what significance they will have is usually
printed in a colour that will not be detected by the photoelectric sensors. Machine-readable
timing marks are preprinted along the edge of the document.
OMS Abbrev. for object management system.
OMT (Object Modelling Technique) An object-oriented method developed by Jim
Rumbaugh.
one-address instruction See INSTRUCTION FORMAT.
one-level store The original term used for what is now called *virtual memory. The
term arose from the fact that although the memory in use was found on units at different
levels within the *memory hierarchy, the user saw all his memory at a single level of
accessibility.
one-pass program A program that requires only one linear forward scan of its input
data.
one-plus-one address instruction See INSTRUCTION FORMAT.
one’s complement See RADIX-MINUS-ONE COMPLEMENT.
one-shot Another name for monostable.
one-to-one function Another name for injection.
one-to-one onto function Another name for bijection.
one-way filter A type of access controller that restricts the flow of information in a
distributed system having parts of differing security clearance. The filter allows a part with
high clearance to read from a part of lower clearance but prevents the converse operation.
one-way linked list Another name for singly linked list.
online (on-line) 1. Connected to the system and usable. See also OFFLINE. 2. Connected
to a network, especially the Internet. 3. In automaton theory, describing an automaton that,
having read the first k symbols of the input string, has already produced the first k symbols
of the output string. The concept of being online is analogous to the initial subwordspreserving property of *gsm mappings.
online analytical processing (OLAP) The use of a database for data analysis. The
design of databases used primarily for OLAP differs from those whose primary purpose is
*online transaction processing (OLTP). In particular the normal basic rule of a *relational
database, that data should not be duplicated, is relaxed. Every possibly useful aggregate is
precomputed and stored in a data structure called a cube, a multi-dimensional array with
axes for, in principle, every useful measure of the data. The advantage of such a design is
the high speed at which query results are returned, which makes it useful for *data mining.
In practice space constraints often prevent the storage of all possible aggregates and
choices must be made at design time. An important precondition for an OLAP database is
that its data is relatively stable: each update will affect many aggregates and so is an
expensive operation. A common practice is to update an OLAP database periodically from
an OLTP database used to collect the data.
online transaction processing (OLTP) The use of a database for data storage,
maintenance, and interrogation. The term is used especially to distinguish this ‘normal’
use of databases from the more specialized *online analytical processing, and also to
distinguish the differing designs appropriate for each use. A basic rule of OTLP databases
is that data should not be duplicated in any way. This ensures data consistency and
efficient update, but causes complex analytical queries to perform slowly because all
aggregates much be recomputed every time. Today most OLTP databases use the
*relational database model.
O notation, o notation See ORDER.
on-the-fly error recovery See ERROR RATE.
onto function Another name for surjection.
ontology A description of some concepts and their relationships, for the purpose of
defining the ideas sufficiently to allow a computer to represent them and reason about
them. Thus an *agent’s ontology specifies the basic building blocks of knowledge that
defines what it can perceive and reason about. This is a kind of model and, as such, is very
useful to define what agents or learning programs can know and what they can
communicate. Ontologies are usually compiled for a particular ‘domain’, e.g. the domains
of wind engineering, medical diagnosis, or office interior navigation, but they are more
formal than *domain knowledge.
OOD Abbrev. for object-oriented design.
OOL Abbrev. for object-oriented language.
OOP Abbrev. for object-oriented programming.
op-amp Short for operational amplifier.
op code Short for operation code.
open To instruct an application that a particular file is required for reading, writing, or
both. When a file is opened, its name is passed to the operating system, which locates it
and checks that it exists and is available—creating it if necessary—before giving to the
application status information and the location of the first record. Once a file has been
opened for writing it is normally unavailable to other applications until it has been *closed
(but see RECORD LOCKING).
open-collector device A particular implementation of an electronic logic device in
which the output of the device is formed by the open-circuit collector termination of the
output transistor (see diagram). The device’s output is thus active-low and a *pull-up
resistor is required to establish the active-high state. These devices are used to drive loads
with high supply voltages or to implement *wired logic buses.
Open-collector device.
open distributed processing (ODP) An *open system of *distributed processing. In
a distributed processing system the various cooperating *processes that jointly make up
the total activity may run on separate processing systems linked only by communications
channels. In an open distributed system the components are physically separated and are
linked by communications channels that use *open systems standards for their interfaces
and protocols, and the intercommunication between the processes is again in accordance
with a (different) set of open systems standards. It is clear that there is still a long way to
go before open distributed processing will be a commercial reality.
OpenGL Trademark A computer-graphics system for drawing complex two- and threedimensional images. Created by Silicon Graphics in 1992, version 3.0 of the specification
is expected to be released in 2008.
https://www.opengl.org/
• The OpenGL home page
Open Group See THE OPEN GROUP.
open-reel tape See MAGNETIC TAPE.
open relay A *proxy that accepts requests even though they do not come from its
intended clients. Open relays are often used to obscure the true origin of improper use of
the Internet such as unsolicited bulk email or attacks on websites.
open shop A method of running a computing facility such that the design, development,
writing, and testing of computer programs is carried out by the problem originator and not
by specialist computing staff. Open shop operation is the operation of a computing
system by the writer or user of a program and not by specialist computer operators.
Compare CLOSED SHOP.
Open Software Foundation See OSF.
open-source Denoting software that is freely available with its source code, to be used
or altered by anybody as they wish. Commonly the only restriction is that it cannot be
charged for, that its free distribution should not be hindered, and that the work of others
should be properly respected. Behind such software lies a belief that the cooperative
approach it seeks to foster is the best way to create high quality software, through
widespread inspection, modification, and correction of the source code by any interested
party. It is contrasted especially with the traditional proprietary model, where source code
is a closely guarded commercial secret. A strong recent trend has been the emergence of
websites that use software *version control tools to provide online source code hosting
(e.g. GitHub, SourceForge).
open subroutine Obsolete name for in-line *subroutine, usually provided by a *macro.
open system Any system in which the components conform to nonproprietary standards
rather than to the standards of a specific supplier of hardware or software.
open systems interconnection (OSI) A concept whereby communications-oriented
computer equipment with different *protocols can be interconnected by means of a data
network. The principal methods being developed are those of the major computer vendors
and of the International Standards Organization (ISO). The term open systems
interconnection is specifically related to the efforts of the ISO and its *seven-layer
reference model.
open term See TERM.
OpenType font A font format developed jointly by Microsoft and Adobe in an attempt
to resolve the split between *TrueType fonts and *PostScript (Type 1) fonts. OpenType
fonts have either a TrueType or PostScript outline enclosed in a TrueType ‘wrapper’.
operand 1. A quantity upon which a mathematical or logical operation is performed. 2.
The parts of a machine instruction that specify the objects upon which the operation is to
be performed. For instance, in the instruction
A and B are the operands and could be *registers in the central processor, or actual values,
or *addresses of values, or even addresses of addresses of values.
operating system (OS) The set of software products that jointly controls the system
resources and the processes using these resources on a computer system. Major products
include *Windows, *OS X, and *UNIX, and the large mainframe operating systems used
in commercial applications.
operation 1. A *function from Sm (see CARTESIAN PRODUCT) into S itself, where S is
some set specific to the function. Such a function is usually referred to as an m-ary or madic operation over S, m being some *natural number, sometimes referred to as the arity
of the operation. The most common operations are the *dyadic (or binary) operations that
map S × S into S and the *monadic (or unary) operations that map S into S. The case
where the arity is zero gives the so-called nullary operations, which correspond simply
to elements of S. There is also a more general kind of operation that involves more than
one set. For example, in a *finite-state automaton the next state depends on the current
input symbol and the current state, and is thus given by a dyadic operation from I × Q into
Q, where I is the set of input symbols and Q the set of states. See also LOGIC OPERATION,
ARITHMETIC OPERATION, OPERATIONS ON SETS. 2. Another name for instruction (in a
computer), as designated by an *operation code. 3. (in a programming language)
Whatever is carried out by an *operator (def. 2), or, more generally, anything that can take
place within a program: a *declaration, an *assignment statement, a *selection, a *loop,
the call of a *function, and so on.
operational amplifier (op-amp) A very high gain voltage amplifier having a
differential input, i.e. its output voltage is proportional to (and very much greater than) the
voltage difference between its two inputs. Operational amplifiers usually have feedback
circuits of resistors and/or capacitors connected between their output and inputs. These
circuits make op-amps operate as voltage amplifiers with a gain precisely defined by the
values of the resistors, or else enable them to perform mathematical operations, such as
integration, or signal-conditioning functions, such as filtering. Operational amplifiers are
generally employed in linear circuits, but with the addition of nonlinear components (e.g.
diodes) other functions such as precision rectification and logarithmic amplification can be
effected.
operational research See OPERATIONS RESEARCH.
operational semantics An approach to the *semantics of programming languages that
uses the concept of an ‘abstract machine’ that has a state and some primitive instructions
or rules that cause the states to change. The machine is defined by specifying how the
components of the state are changed by each of the instructions or rules. Computations are
sequences of state transitions. The abstract machine is not meant to be a model of any
realistic machine or machine language; it is meant to be simple enough so that the
language can be unambiguously defined by simple rules for state transitions. The semantic
description of a programming language specifies a translation into this operational model.
Examples of this approach include the Vienna Definition Language used to define PL/I,
which was the first method for defining the semantics of a programming language.
operation code (op code, order code) 1. The portion of the *instruction that specifies
the operation to be performed by the instruction. See also INSTRUCTION FORMAT. 2. The
set of such portions available for a particular computer, and defining the repertoire of
operations it can perform.
operation register The part of the *control unit instruction register that contains the
*operation code.
operations on sets The simple *operations that can be performed on sets are those of
*union, *intersection, and *complement, and possibly *set difference. Using these it is
possible to create new sets from existing sets. Certain other actions that have to be
performed on sets are sometimes considered as operations, although they do not conform
to the strict definition of the word. These include the actions *find, *insert, *delete, *split,
and *min.
operations research (operational research, OR) The study of some human operation
or set of operations by quantitative means. It is usually conducted with the aid of computer
modelling; models may be hypothesized and fitted to experimental data, or experimental
data may be analysed to derive a model. Once a model is available, the effects of changes
in the operations under study can be developed and predicted in a quantitative way.
operation table Another name for Cayley table.
operator 1. A person responsible for the immediate supervision of the hardware of a
computer system. 2. A function that can be applied to one or more operands so as to yield
a result. It is (usually) a symbol representing an operation to be carried out, as opposed to
a *variable, which represents a data value. See also ARITHMETIC OPERATOR, LOGIC
OPERATION, RELATIONAL OPERATOR, PRECEDENCE.
optical card A form of *optical storage in which the medium is in credit-card form,
intended for uses similar to those of a magnetic-stripe card but with much higher capacity
(several megabytes).
optical character recognition See OCR.
optical computing Computing based on the use of logic elements, in the form of
*optical switches, that employ light beams as logic signals instead of the voltage or
current levels of conventional electronic logic elements. These optical switches may use
light beams exclusively or a combination of electronic and optical signals, depending on
the application.
optical disk A type of *optical storage in which the medium is in the form of a disk that
is rotated to give one dimension of access while the light beam is scanned radially to give
a second dimension. In nearly all cases the disk is exchangeable. This is easily arranged
because there is a substantial clearance, typically 1 mm, between the surface of the disk
and the nearest component of the optical system. Rewritable, write-once, and read-only
media have been developed for optical disk drives: multifunction drives can read two
or all three of these media types. Disk sizes range from 350 mm downward with 300 mm
and 130 or 120 mm the most widely accepted, although smaller sizes are becoming
popular. The only widely used formats for read-only disks are *CD-ROM and *DVD.
The first optical disk drives suitable for data storage (with a read error rate after
correction better than 1 in 1012 bits) appeared on the market at the end of 1984: these all
used *write-once media on large-diameter disks (350 mm to 200 mm). Read-only disks,
particularly CD-ROM, appeared about the same time. Rewritable disks became
practicable several years later because of difficulty in developing reliable media, but have
now replaced write-once disks for many purposes. Optical disks are very robust, need no
special environmental control, and have an almost unlimited life.
Optical disks have higher capacity than magnetic disks of similar cost, but their
performance is lower than that of hard magnetic disks. They are therefore rarely used as
the working store of a computer, but are suitable for archival storage, backup, and data
distribution and exchange.
See also BLU-RAY, HD DVD, OPTICAL DISK LIBRARY.
optical disk library (jukebox) A peripheral device in which many optical disks
(usually in cartridges) are stored in slots in a storage rack. The device contains one or
more *optical disk drives; any disk can be taken from its slot and loaded into a drive by a
picker mechanism, at the command of the host computer. The picker can also return a
disk to its slot, turn a disk over (if the drive can only read one side), and move a disk to or
from a drawer where it can be reached by the operator. Standard disks and cartridges are
used.
optical fibre A thin transparent fibre used to carry optical signals, typically in the
infrared with a wavelength of 1200–1550 nanometres. Optical fibres require special
devices to convert electric signals to light energy at the transmitting end, and to convert
light energy to electric signals at the receiving end. Equipment is also needed to handle
whatever lower-level *protocols are to be used across the optical fibre. A variety of
methods are used to reduce the loss of the optical signal. See also FIBRE OPTICS.
optical flow An image in which the colour of a pixel represents the motion occurring at
that location in the image. An optical flow field is the instantaneous velocity vector field
for an image of a moving environment. From operations on local velocity contours it is
possible to deduce the movements of objects in the image and the general relative
movement of the observer. See also ACTIVE VISION.
optical font A printing font or style of character specially designed to be accurately read
by reading machines and by people. The most widely used are OCR A and OCR B and
they are defined in internationally recognized standards. Although reading machines are
available that can process a wide variety of fonts, provided that they are clearly printed,
lower-cost machines and lower error rates can be achieved if the specialized optical fonts
are used. See also OCR.
optical mark reading See OMR.
optical media See OPTICAL STORAGE.
optical storage The storage or retrieval, or both, of data or images by optical means.
Numerous methods have been explored, including holography, but current techniques
depend on the use of a semiconductor laser and optical system to generate a very small
spot of light (typically one micrometre in diameter) focused on a thin layer of a suitable
medium to access each information element in turn. The principal configurations used are
*optical disk, *optical card, and *optical tape.
When writing data or images, the beam power is sufficient (typically 10 milliwatts) to
heat the illuminated area of the medium so as to change its optical characteristics,
reversibly or irreversibly. (In the case of *magneto-optic recording, a magnetic field is
also applied to control the state taken by the element of the medium as it cools.) When
reading, the beam power is reduced to the point where it does not produce any change in
the state of the medium, and the light reflected (or in some cases transmitted) by each
element is detected and its intensity or polarization is observed to decide whether it
represents a 1 or 0 bit.
Optical storage is capable of higher areal storage densities than have been achieved by
magnetic media, and does not require the close medium-to-head spacing of magnetic
storage. The medium is rugged, since the sensitive layer is beneath a clear protective
layer; the light beam is out of focus at the surface of this and thus reasonably insensitive to
dust or scratches. There is thus the potential of low-cost storage on rugged readily
interchangeable volumes. On the other hand the optical components are relatively
expensive and bulky, and the flaw density in the medium (relative to the element size) is
higher than in magnetic storage thus requiring elaborate error correction techniques for
most applications.
Three classes of media can conveniently be distinguished: rewritable, where recorded
data can be erased and rewritten as in magnetic storage; write-once (or WORM),
where information once written cannot be erased; read-only, where the information is
impressed on the medium during manufacture and cannot subsequently be changed. Some
technologies allow two of these classes to be combined on the same media volume.
Write-once media offer permanent storage once recorded and so are an attractive
alternative to magnetic tape for archival storage. Read-only media are a very cheap means
of distributing large amounts of data, such as images, or software in machine-readable
form (see CD-ROM, DVD). Rewritable media compete more directly with magnetic
storage, but are becoming popular for backup and for the storage of *bitmapped images,
which tend to need very large files.
optical switch A device whose optical transmission properties (e.g. refractive index and
polarizing properties) can be varied by an externally applied field or by some other
external influence. Electric, magnetic, and surface acoustic wave techniques are all used
for this purpose. By these means, light may be deflected away from a detector, thus
switching the beam. LCD shutters are also used. The light that is processed in this way
often originates in a laser source. Optical switches can be used, for example, as logic
elements (see OPTICAL COMPUTING).
optical tape An optical medium in tape form. It is handled by a mechanism similar to a
*magnetic tape drive, but written and read by similar methods to those used in *optical
disk drives. Capacity per volume is very high but the mechanism is expensive. It is not
widely used.
optimal binary search tree A *binary search tree constructed to be of maximum
expected efficiency for a given *probability distribution of search data.
optimization The process of finding the best solution to some problem, where ‘best’
accords to prestated criteria. The word is used in a number of contexts. 1. In mathematics
the word is generally used to describe the theory and practice of maximizing, or
minimizing, a function (known as an objective function) of several variables that may
be subject to a set of constraints. The special case of a linear objective function is the
subject of *linear programming. The case of nonlinear objective functions, with or without
constraints, is treated in a quite well-developed field. The unconstrained optimization
problem (usually expressed as minimization) is:
where f(x) is the given objective function of n real variables,
A necessary condition for a minimum is that
which is a system of *nonlinear equations. *Newton’s method can be applied, but in
practice this technique has been extensively modified to improve computational
efficiency. Matrix-updating methods are a broad class of methods that involve a
sophisticated means of computing approximations to the matrices required in Newton’s
method.
For constrained problems, x must also satisfy a system (possibly nonlinear) of equations
or inequalities. Some of the ideas and methods for unconstrained problems can be suitably
modified to handle the constraints. A successful technique is *sequential quadratic
programming.
Optimization problems are widespread in control theory, chemical engineering, and
many other fields. 2. In programming the word is usually applied to part of the codegeneration phase of a *compiler, denoting production of object code that is in some sense
optimal, i.e. making best use of the resources provided by the target machine, or at least
using these resources in a manner that is not blatantly wasteful. Programs can be spaceefficient in the sense of occupying minimal storage, or time-efficient in the sense of
executing in the minimum time.
Compiler optimization is usually directed toward generating time-efficient programs,
and takes three forms. Global optimization seeks to reorder the sequencing of a
program so as to eliminate redundant computations (moving invariant operations outside
loop bodies, coalescing loops, etc.). Register optimization adjusts the allocation of
machine registers to variables and intermediate quantities in such a way as to minimize the
number of occasions on which a register has to be stored and later reloaded. Local
(peephole) optimization seeks to adapt the code to exploit particular features of the
machine architecture and to remove local mishandling such as loading a register with a
value that it already contains.
optimum programming Another name for minimum-access code.
optional product See CONSENSUS.
optoelectronics An increasingly important technology concerned with the generation,
processing, and detection of optical signals that represent electric quantities. Major areas
for application of this technology include communications, where digital or analogue
information can be transmitted over optical fibres (see FIBRE OPTICS). A major feature of
optical links is their very high immunity to EMI. Another important application is where
two electric circuits may exchange signals by means of an optical link yet remain
electrically isolated; these devices are called optoisolators. This type of device is used
extensively in power supplies and similar applications, where they allow closed-loop
control while maintaining a safety barrier to protect users. The technology is also being
used to implement logical gating functions employing *optical switches, the advantages
being high speeds of operation (see OPTICAL COMPUTING).
Optical signals may be generated from electric signals using *transducers such as
switchable semiconductor lasers. Detection of optical signals is often achieved using
phototransistors, i.e. *bipolar transistors whose base drive is made dependent on
incident light. See also OPTICAL STORAGE.
optoisolator See OPTOELECTRONICS.
OR 1. Abbrev. for operations research. 2. See OR GATE, OR OPERATION.
Oracle A US corporation that develops and markets computer software applications for
business. The company is best known for its ORACLE database software, a *relational
database management system. It acquired *Sun Microsystems Inc. in 2010 and took up the
development of the latter’s popular products Solaris (now Oracle Solaris), *Java, and
*MySQL. The latter two products have remained open-source.
ORACLE Trademark A *relational database management system developed and
supplied by Oracle Corporation. It runs on a wide range of platforms, from mainframes to
workstations, and a suite of application development tools is available. Recent versions
support the deployment of databases in the cloud (see CLOUD COMPUTING).
oracle-based testing A form of *testing in which the results produced by the program
under test are compared with those produced by a test oracle under the same conditions.
The oracle is a program whose behaviour is known to be correct and thus can be used to
predict the output of any other program supposed to satisfy the same specification.
Although test oracles can be expensive to produce, for some applications they may be
available as precedent versions of the program under test, or as programs known to
perform the expected tasks, although in a different platform or language. In the latter case,
it might be necessary to ensure that the tests performed on both platforms are equivalent.
Orange Book 1. The *coloured book that defined a former network service running
over a *Cambridge Ring. 2. A publication by the US National Computer Security Center
(NCSC) concerned with *security evaluation. 3. The proprietary standard defining the
CD-R format, or the publication setting it out. See CD-ROM FORMAT STANDARDS.
ORDBMS See OBJECT-RELATIONAL DATABASE MANAGEMENT SYSTEM.
order 1. A means of indicating the way a function varies in magnitude as its argument
tends to some limits, usually zero or infinity. More precisely if there is some constant K
such that
for all x ≥ x1, then we say that f(x) is order ϕ(x) as x tends to infinity, and we write
For example,
If
then we write
For example,
Both these notations are statements about maximum magnitude and do not exclude f from
being of smaller magnitude. For example,
is perfectly valid, but equally
If
then we write
For example,
The term order and the O notation is used in numerical analysis, particularly in
*discretization methods. In *ordinary differential equations, if h denotes the stepsize, then
a method (or formula) has order p (a positive integer) if the global *discretization error is
O(hp). This means that as the step size h is decreased, the error goes to zero at least as
rapidly as hp. Similar considerations apply to *partial differential equations. Highaccuracy formulas (order up to 12 or 13) are sometimes used in methods for ordinary
differential equations. For reasons of computational cost and stability, low-order formulas
tend to be used in methods for partial differential equations.
The term is also used to refer to the speed of convergence of iteration schemes, for
example *Newton’s method for computing the zero of a function f(x). Subject to
appropriate conditions, Newton’s method converges quadratically (or has order of
convergence 2), i.e. an approximate squaring of the error is obtained in each iteration. 2.
Another name for operation code.
order code Another name for operation code.
ordered pair A pair of objects in a given fixed order, usually represented by
for objects x and y. Two ordered pairs are said to be equal if and only if the first elements
of each pair are equal and the second elements are equal. Typical situations in which
ordered pairs are used include discussion of points in the Cartesian plane or complex
numbers.
The idea can be extended to cover ordered triples, such as
and indeed ordered n-tuples, such as
ordered set 1. A sequence of objects in a given fixed order. An *ordered pair is an
example. 2. Another name for partially ordered set. See PARTIAL ORDERING.
ordered tree See TREE.
ordering relation A relation that is *reflexive, *antisymmetric, and *transitive. The
relation ‘less than or equal to’ on integers is an ordering relation. See also PARTIAL
ORDERING. Compare EQUIVALENCE RELATION.
order of precedence See PRECEDENCE.
order register Another name for instruction register. See CONTROL UNIT.
order statistics A branch of statistics that uses not the numerical value of an
observation but its ranking relative to other observations. The rth order statistic of a
sample of n observations is simply the rth smallest variate value in the sample. Examples
of statistical tests for ordering include: the median test, the sign test, Cochran’s test, the
Wald–Wolfowitz ‘runs test’, the Mann–Whitney test, the Wilcoxen test, the Kruskal–
Wallis test, and the Friedman test.
ordinary differential equations *Differential equations that involve one
independent variable, which in practice may be a space or time variable. Except in simple
cases the solution cannot be determined analytically and approximation methods are used.
Numerical methods are mainly developed for equations involving first derivatives only,
written in the form
where y and f are s-component vectors with component functions
Equations involving higher derivatives can be equivalently written in this form by
introducing intermediate functions for the higher derivatives. Alternatively direct methods
may be derived for such problems (see NYSTRÖM METHODS).
In general, s conditions must be imposed to determine a particular solution. If the values
y(a) = y0 are specified, it is an initial-value problem. These problems can be solved
directly using step-by-step methods, such as *Runge–Kutta methods, *linear multistep
methods, or *extrapolation methods, which determine approximations at a set of points in
[a,b]. The problem is a boundary-value problem if the s conditions are given in
terms of the component functions at a and b. In general, such problems require iterative
methods, such as the *shooting method. However, if f is linear in y, *finite-difference
methods can be advantageous. Excellent software has been developed for both types of
problem.
An area of particular interest in many applications is the solution of stiff equations.
A stiff system possesses solutions that decay very rapidly over an interval that is short
relative to the range of integration, and the solution required varies slowly over most of
the range. To allow large steps in the slowly varying phases, it is necessary to use special
methods, such as the implicit trapezoidal rule:
At each step a system of equations has to be solved for yn+1, using very often a
modification of *Newton’s method. More straightforward explicit methods rapidly lead to
catastrophic error growth unless the stepsize h is prohibitively small. These problems have
been the subject of very active research interest.
organizational information system See INFORMATION SYSTEM.
Organizationally Unique Identifier See MAC ADDRESS.
OR gate An electronic *logic gate whose output is logic 0 (false) only when all (two or
more) inputs are logic 0, otherwise it is logic 1 (true). It therefore implements the logical
*OR operation and has the same *truth table. The diagram shows the usual circuit symbol
and the truth table for a two-input gate. The device is more correctly called an inclusiveOR gate since the condition of both inputs true generates a true output. See also
EXCLUSIVE-OR GATE.
OR gate. Two-input OR gate, circuit symbol, and truth table
OROM (optical read-only memory) See OPTICAL STORAGE.
OR operation (inclusive-OR operation) The logical *connective combining two
statements, truth values, or formulas P and Q in such a way that the outcome is true if
either P or Q or if both P and Q is true (see table). The latter outcome distinguishes the
OR from the *exclusive-OR operation. The OR operation is usually denoted by and
occasionally by +. It is one of the dyadic operations of *Boolean algebra and is both
*commutative and *associative.
OR operation. Truth table
One way of implementing the OR operation (e.g. in Lisp) is to test P first, and then
evaluate Q only if P is false. The resulting operation is noncommutative; in some
languages there is a distinct notation for this.
When it is implemented as a basic *machine code instruction, OR usually operates on
pairs of bytes or pairs of words. In these cases the OR operation defined above is normally
applied to pairs of corresponding bits.
orthogonal analysis (orthogonal basis) See ORTHONORMAL BASIS.
orthogonal equations See ORTHOGONAL TERM REWRITING SYSTEM.
orthogonal functions Let
be a set of functions defined on the interval (a,b); also let w(x) be a given positive function
(a weight function) on (a,b). The functions fi(x),
are said to be orthogonal with respect to the interval (a,b) and weight function w(x), if
If, for i = j,
then the functions are said to be orthonormal.
A similar property is defined when (a,b) is replaced by the set of points
and the integral is replaced by a sum,
Orthogonal functions play an important part in the approximation of functions and data.
orthogonal list A two-dimensional orthogonal list has list cells that are linked
symmetrically to both left and right horizontal neighbours and up and down to vertical
neighbours. This idea can be generalized to higher dimensions and suggests an efficient
representation for *sparse matrices.
orthogonal matrix A matrix Q is orthogonal if QTQ = I, where I is the *identity matrix
and QT denotes the *transpose of Q.
orthogonal memory See ASSOCIATIVE MEMORY.
orthogonal term rewriting system There are several useful conditions on the set E
of *equations defining a *term rewriting system that lead to a well-behaved reduction
system →E. A commonly used condition is orthogonality. If a set E of equations is
orthogonal then its term rewriting system →E is *Church–Rosser. A set of equations is
orthogonal if it is left-linear and nonoverlapping:
the set E of equations is left-linear if for all t = t E, each variable that appears in t
does so only once;
the set E of equations is nonoverlapping if
(a) for any pair of different equations t = t′, r = r E, the terms t and r do not overlap in the
following sense—there exist closed substitutions τ ρ of t, r such that ρ(r) is a subterm
of τ(t) and the outermost function symbol of ρ(r) occurs as part of t,
(b) for any rule t = t E, t does not overlap with itself in the following sense—there exist
closed substitutions τ, ρ of t such that τ(t) is a proper subterm of ρ(t) and the outermost
function symbol of τ(t) occurs as a part of t.
orthonormal analysis See ORTHONORMAL BASIS.
orthonormal basis The set of orthonormal functions employed in calculating the terms
of a transform of the kind exemplified by the *Fourier transform and the Walsh transform
(see WALSH ANALYSIS): the orthonormal basis of the Fourier transform consists of the
imaginary exponential functions, and that of the Walsh transform consists of the *Walsh
functions.
In order to calculate the terms of a transform effectively, the basic functions must be
*orthogonal but need not also be normal (orthonormal). Such a non-normalized basis is
called an orthogonal basis. The calculation of the transform terms is correspondingly
called orthonormal analysis or orthogonal analysis. Such analysis is only
possible if there are sufficient functions in the set to form a basis: such a set is called a
complete set of functions.
orthonormal functions See ORTHOGONAL FUNCTIONS.
OS (operating system) The abbreviation was used as the name for a specific operating
system (OS/360) introduced by IBM, but is now used generically.
OS/2 Trademark An operating system produced in the late 1980s by IBM and Microsoft
for microcomputers. It lost out to *Windows in the market for PC operating systems and is
now not widely used.
oscillator An electronic circuit that switches back and forth between states. Oscillators
are mainly used to provide *clock signals or a frequency reference, in which applications
they are normally crystal controlled. A specialized form is the VCO (voltage controlled
oscillator) in which the frequency may be modified within limits by a control voltage, the
free-running frequency being determined by external components.
OSF Open Software Foundation, an IT industry organization founded in 1988 to promote
public standards for *UNIX. In 1996 it merged with X/Open Company Ltd to form *The
Open Group.
OSI Abbrev. for open systems interconnection.
OSI reference model See SEVEN-LAYER REFERENCE MODEL.
OS X The operating system distributed with the *Macintosh personal computer since
2001. Derived from the NEXTSTEP operating system, which Apple acquired when it
bought NeXT Software, Inc., in 1996, it combined a development of the traditional
Macintosh graphical user interface built over a *UNIX base. The latter provided such
important technical improvements as pre-emptive multitasking and memory protection.
Since the first version 10.0 ‘Cheetah’ (continuing the numbering of the previous
Macintosh OS), there have been 10 versions, the latest being 10.10 ‘Yosemite’.
OTLP See ONLINE TRANSACTION PROCESSING.
OUI See MAC ADDRESS.
outdegree See DEGREE.
outer code See CONCATENATED CODING SYSTEMS.
outlier See RESIDUAL.
output 1. The result of data-processing activity when it is presented external to the
system, or the process of presenting the data externally. The output from a computer can
be in a form for use by people, e.g. printed or displayed, or it may be ready for input to
another system or process, when it may be encoded magnetically or optically on a tape or
disk. 2. A signal that is obtained from an electrical circuit, such as a logic circuit. 3. To
produce a result or signal.
output area The area of main memory that is allocated for storage of data prior to
transfer to an output device. See also INPUT AREA.
output device Any device that converts the electrical signals representing information
within a computer into a form that can exist or be sensed outside the computer. Printers
and visual displays are the most common type of output device for interfacing to people,
but voice is becoming increasingly available (see AUDIO RESPONSE UNIT, SOUND CARD).
Devices such as magnetic tape transports are really types of intermediate or backing store
but are sometimes referred to as output devices.
output-limited process A process whose speed of execution is limited by the rate at
which output data can be accepted.
overflow The condition that arises when the result of an arithmetic operation exceeds the
size of the location allotted for receipt of that result, or the amount by which the result
exceeds the allotted number.
overlap A form of parallelism in which events that are not mutually dependent take place
concurrently in order to increase computer performance, e.g. fetching a second instruction
while a first instruction is being executed. When there is overlap between portions of
arithmetic operations (i.e. when the portions are overlapped), the process is usually
called *pipelining.
overlay A section of code that is loaded into memory during the execution of a program,
overwriting what was previously there. The loading of an overlay is under the explicit
control of the programmer, and should not be confused with *paging. In general several
overlays are loaded into the same area of memory, ‘overlaying’ the code already residing
in that part of memory. Overlays can be thought of as a form of voluntary memory
management.
overloading A feature of some programming languages that makes it possible to give
more than one meaning to a single *operator. For example, in some functional
programming languages, the + symbol is used both for integer addition and for string (or
character) *concatenation.
over-voltage An unusually high voltage. With many switching PSUs a single
component failure can cause the output voltage to rise above that which the load can
safely tolerate. This could destroy all the components connected to that supply. It is
common to provide a special circuit which forces the output to a low voltage and will
usually operate protective devices (fuse or overload relay), thus removing all power. This
is sometimes called a crowbar circuit (equivalent to connecting a crowbar across the
output terminals).
overwrite To destroy information in a memory location by writing in new information.
own coding The practice of providing (and filling) place holders in a general-purpose
software package where pieces of ordinary program can be inserted. It should be noted
that there is loss of security when this practice is adopted.
P See P=NP QUESTION.
pack To store compactly in order to reduce the amount of memory required to hold the
same data. There are several ways of doing this, for example by storing several bytes in
one word or by replacing multiple occurrences of a character or word by a triplet
consisting of
(a) a special code indicating the start of a triplet;
(b) a single instance of the replicated character or word;
(c) a count of the number of times the character or word occurs.
package 1. See APPLICATION PACKAGE. 2. In *Ada, a self-contained collection of entities
(data objects and procedures) that are available for other parts of a program to use. A
package consists of two parts that can be separately compiled: its specification and its
body. The specification provides the public information about the entities that the
package makes available, in the form of declarations of constants, variables, and data
types, and procedure headers. It may also contain a private part giving further information
about types and constants that is needed by the compiler but not by a programmer using
the package. The package body contains the procedure bodies for the procedures that form
part of the package, together with local variables and types that these procedures may
need. The separation of specification and body means that the implementation of the
procedures is hidden from the users, thus a package is a realization of an *abstract data
type.
Similar features are found in other languages, particularly Modula 2: here the term
module is used in preference to package. In Modula 2 a module comprises a definition
part and an implementation part, corresponding to the specification and body of the
Ada package. The main difference is that the definition part of a module contains
declarations of all the objects required by the module, together with an export list
specifying which objects are visible outside the module.
packed decimal An economical method of storing decimal digits represented as binarycoded decimals (BCD), using only four bits per digit. Thus two decimal digits may be
stored in one *byte. This is only slightly less compact than storing a number in binary, and
avoids decimal-to-binary conversion. See also CHARACTER ENCODING.
packet A group of bits of fixed maximum size and well-defined format that is switched
and transmitted as a composite whole through a *packet switching network. Any message
that exceeds the maximum size is partitioned and carried as several packets.
Typically each packet contains addressing information defining the source and the
destination of the packet, control information defining the type of data carried in the
packet, and some form of checksum to verify that the packet has been correctly received.
In many systems the packet may hold several hundred bytes and the internal structure can
vary from one packet to the next. See also CELL, FRAME.
packet assembler/disassembler See PAD.
packet radio A transmission method that makes use of radio broadcast signals carrying
*packets of data. There is no assurance that only a single transmitter is active at a time, so
it is necessary to have a convention for the action to be taken when packets ‘collide’.
Logically, packet radio is essentially equivalent to bus architecture networks that are used
in some local *network architectures.
packet switching A technique by which communication resources are allocated
dynamically to multiple communicating entities. Messages between entities are partitioned
into segments with a fixed maximum size. The segments, or packets, are passed through
a *store and forward switching network until they reach their destination (or are
discovered to be undeliverable). The packets are reassembled, if necessary, into complete
messages when they reach their destination. Packet switching, as it applies to electronic
communication, was first proven feasible by the development of the *ARPANET in 1969.
A packet switching network may provide a variety of levels of service, depending
upon the sophistication of the underlying communication technology and the requirements
of the network’s customers. The simplest packet switching networks provide only
*datagram service, which is unordered unreliable delivery of packets. Other networks may
provide only reliable individually flow-controlled *virtual circuits. The decision between
datagrams, virtual circuits, or other modes of operation can be made independently for the
internal operation of a packet switching network, and the interface that it presents to its
customers. See also CELL, FRAME.
packet switching network See PACKET SWITCHING.
packing density 1. (functional packing density) A measure of the number of
electronic devices per unit area contained on one *integrated circuit. 2. (recording
density) A measure of the amount of information in a given dimension of a storage
medium.
PAD (packet assembler/disassembler) A device commonly found in *X25
networks and which is placed between a *DTE and a *DCE. It is used when a DTE that
does not implement (fully) the X25 protocol wants to communicate with an X25 network;
it performs packet assembly (data coming from the DTE are assembled into packets and
forwarded to the DCE) as well as packet disassembly (packets coming from the DCE are
disassembled before the data are sent to the DTE).
padding A filler used to extend a string or record to some prescribed length. See also
BLOCK.
page The unit of interchange between memory and swapping device involved in a
*paging system. The number of words or bytes in a page is usually fixed for a given
system and is almost invariably an exact power of 2. The term page frame is used as an
alternative name for page, but is more particularly used to apply to the copy of a page that
is held on the swapping device.
Page, Larry (Lawrence Edward Page) (1973– ) US computer scientist and
businessman. Graduating from the University of Michigan, Page pursued postgraduate
studies in computer science at Stanford University. He and fellow student Sergey *Brin
shared interests in data mining and the structure of the *World Wide Web, which led to
several papers, including their seminal ‘The Anatomy of a Large-Scale Hypertextual Web
Search Engine’. Their theoretical work was realized (1996–8) in the *Google search
engine, and they founded Google Inc. in 1998. Page was its first CEO (1998–2001) and
has since returned to that role (2011– ). He is currently ‘on leave’ from his doctoral course
at Stanford.
page break An indication in a document stored on disk or displayed on a screen that
when the document is printed, a new page will be started at that point. The page break can
be inserted by the user, or generated automatically by the software.
page description language (PDL) A protocol for defining a page of text, including
images and graphics. *PostScript is an example of a PDL.
page frame See PAGE.
page printer A type of printer that prints a complete page of output in one cycle. It is
generally a *nonimpact printer, such as a *laser or *inkjet printer, in which the printing
process requires continuous movement of the paper. The information for one page of
output is usually accumulated within a buffer in the printer before the printing process is
started. Compare LINE PRINTER, SERIAL PRINTER.
page table A table within a computer that contains a mapping between logical page
addresses and physical page addresses. In many systems the table is supported in a fastacting memory area. See PAGING.
paging A method of managing *virtual memory. The logical address is subdivided into
two fields: the low-order bits indicate a word or byte within a *page and the high-order
bits indicate a particular page. Active pages are held in main memory and a page that is
not active may be transferred out to the *swapping device. An *associative memory
indicates the physical location within memory of those pages that are present. For pages
that are not in memory the associative memory will contain a pointer to the backing-store
home for that particular page. When reference occurs to a page, an interrupt is generated if
the page is not in main memory and the operating system will transfer the relevant page
from the swapping device into main memory.
paging drum An obsolete form of *swapping device used to hold the images of *pages
no longer held in main memory in a *paging virtual management system. Paging drums
typically were designed to have a relatively small capacity, low latency, and very high
transfer rate.
painter’s algorithm An algorithm for displaying three-dimensional scenes where the
objects are rendered from the furthest to the nearest in much the same way as artists paint
oil paintings. If objects intersect, they are broken into smaller parts so that no object can
be both in front of and behind another.
paint program A computer-graphics system that defines pictures as though paint was
being applied to a canvas. Various standard shapes are usually available plus the ability to
draw freehand with various brushes and fill in areas with a range of patterns.
PAL (programmable array logic) A form of *PLA in whose *sum of products the
products (*AND operations) are programmable, but the sums (*OR operations) are either
fixed, or programmable only to a limited extent. In the latter case, any product terms that
can take part in a programmable sum are called shareable P terms.
palette The choice of colours or shades available to a computer program. The size of the
palette may vary from two (as in monochrome with no intervening graduations) to many
millions. The colours in the palette are normally chosen from a much larger number, such
as a choice of 256 chosen from 4096; the numbers are usually powers of 2.
palmtop computer A very small computer that can be hand-held and carried in the
pocket. Palmtops feature a small *LCD screen and a compressed keyboard. Most models
offer personal organizer, diary, address list, and calculator. Some models are
programmable and can support file transfer to larger host computers. A palmtop is smaller
than a *subnotebook. Some models have *PCMCIA slots, for interfacing external
peripherals. Palmtops have been largely superseded by *smartphones and the emergence
of small touch-sensitive tablets such as the *iPad.
PANTONE Trademark A system of colour coding used in commercial colour printing.
Some graphics application programs include the PANTONE range.
paper slew (paper throw) A rapid and continuous movement of the paper in a line or
serial printer such that the space of several line pitches occurs without printing. In highperformance line printers the slew rate may be 75 inches per second (190 cm/s).
paper tape An obsolete but once widely used data medium in the form of a continuous
tape of paper with uniform width and thickness and specified physical attributes; other
materials included laminates of paper and polyester. Data was encoded by punching
patterns of holes on the tape.
Punched paper tape was in use for data communication purposes (telex) prior to its use
for computer input/output. It has also been used for programmed control of industrial
equipment, and the preprogrammed control of continuous paper through computer
printers.
paper tape I/O An obsolete but once widely used means of entering data into and
extracting it out of a processor system using punched *paper tape as the medium.
paper throw See PAPER SLEW.
paper white display A *positive display where the background is white and the
characters dark.
PAR (positive acknowledgment and retransmission) See BACKWARD ERROR
CORRECTION.
paradigm A model or example of the environment and methodology in which systems
and software are developed and operated. For one operational paradigm there could be
several alternative development paradigms. Examples are functional programming, logic
programming, semantic data modelling, algebraic computing, numerical computing,
object-oriented design, prototyping, and natural language dialogue.
paradoxical combinator See COMBINATOR.
parallel Involving the simultaneous transfer or processing of the individual parts of a
whole, such as the bits of a character. Compare SERIAL.
parallel access Access to a storage device in which a number of bits are transferred
simultaneously rather than sequentially. For example, access to semiconductor memory
almost invariably yields a number of bytes in parallel; by contrast access to the contents of
a disk is usually serial in nature.
parallel adder A binary adder that is capable of forming sum and carry outputs for
addend and augend words of greater than one bit in length by operating on corresponding
pairs of addend and augend bits in parallel, i.e. at the same time. Parallel adders normally
incorporate *carry lookahead logic to ensure that carry propagation between subsequent
stages of addition does not limit addition speed. See also ADDER, SERIAL ADDER.
parallel algorithm An algorithm designed to run ‘efficiently’ on a parallel computer. A
parallel algorithm may involve a greater number of arithmetic operations than a serial
counterpart. It is designed, however, so that many arithmetic operations are independent
and can be performed in parallel, i.e. simultaneously.
parallel arithmetic Operation upon more than one bit or digit of a number at the same
time. See PARALLEL ADDER.
parallel ATA (PATA) See IDE.
parallel composition See PROCESS ALGEBRA.
parallel computer A computer that is capable of *parallel processing.
parallel in parallel out (PIPO) A term used to describe a *shift register that can be
loaded in parallel and also read in parallel, in addition to which (by implication) data can
enter and leave the device serially.
parallel input/output (PIO) A method of data transfer between devices, typically a
computer and its peripherals, in which all the bits associated with a character or byte are
presented to the interface simultaneously on separate conductors. There are usually other
parallel conductors to carry the control signals. PIO is frequently used since it is
compatible with the format used within the processor and enables high rates of data
transfer to be achieved. When connection over any significant distance has to be made, the
cost of the conductors and the associated drive circuits becomes significant and it is then
preferable to convert to a *serial input/output. PIO is gradually being replaced by highspeed serial interfaces such as *USB, *serial ATA (serial ATA), and *FireWire, which
offer better performance and lower cost.
parallel in serial out (PISO) A term used to describe a class of digital device that can
accept parallel n-bit data words and convert them into serial sequential n-bit data streams.
These devices often consist of an n-bit *shift register that is parallel loaded with the data
word (see diagram). This data is then clocked out of the register in serial form. Compare
SERIAL IN PARALLEL OUT.
Parallel in serial out.
parallel interface A connection point that comprises a set of individual electric
connections, each having a specified function, usually either data or control. The transfer
of data across the interface is achieved by one connection per bit of a data word or byte;
for example for 8 bits there would be 8 connections in parallel. The control signals are
also carried on individual electric connections in parallel with the data connections.
Compare SERIAL INTERFACE, SERIAL-PARALLEL.
parallel port A 25-way input/output socket, called a DB-25 connector, on a computer or
other device for a *parallel interface (often called a *Centronics interface. It includes three
groups of lines: eight for data, four for control signals, and five for status signals. Parallel
ports have been largely superseded by *USB connectors. Compare SERIAL PORT.
parallel printer A printer with a *parallel interface that connects to a computer by
means of a parallel port. The original parallel printer interface (*Centronics) was
unidirectional. Most parallel ports on current computers will support data transfers in
either direction.
parallel processing A term applied rather loosely to a number of rather similar
concepts but with important detailed differences. The essence of parallel processing is that
more than one particular *process is active at any given instant; however the term is often
applied to a situation in which a large number of processes are potentially active but at any
one instant only one is active. Strictly speaking the term parallel processing should only be
applied where more than one processor is active among a group of processes at any one
instant. In practice it is seldom used with this accurate connotation. See also CONCURRENT
PROGRAMMING.
parallel projection A *projection where the eyepoint is an ideal point (see
HOMOGENEOUS COORDINATES).
The lines along which points are projected are all parallel
(having the same ideal point), hence the name of the resulting projection.
parallel rewriting system See L-SYSTEM.
parallel running Another term for parallel processing.
parallel shooting method See SHOOTING METHOD.
parallel transfer Transmission of multiple units of information concurrently. For
example, if two computers connected by eight wires wish to communicate an 8 bit unit of
information, the sending computer would present all eight bits at the same time, one bit
per wire. The receiving computer would accept the bits from the wires, and recreate the 8
bit unit. Compare SERIAL TRANSFER.
parameter 1. Information passed to a subroutine, procedure, or function. The definition
of the procedure is written using formal parameters to denote data items that will be
provided when the subroutine is called, and the call of the procedure includes
corresponding actual parameters. See also PARAMETER PASSING. 2. A quantity in a
function or mathematical model whose value is selected or estimated according to the
circumstances. Parameters should be distinguished from constants, which are fixed for
all uses of the function or model, and variables, which are the actual recorded
measurements involved in the function or model.
Many properties of functions and mathematical models can be deduced from their
structural characteristics without reference to particular values; such properties include
continuity, differentiality, and linear independence. A function or model for a specific
purpose may be formulated by first establishing the appropriate structure (e.g. polynomial,
differential equation of a certain form) in which particular values are not yet determined;
such values are parameters of the function or model. Various techniques can then be used
to find the most suitable value or range of values for the parameters when considering the
observed set of data.
For simple models, such as elementary *probability distributions, parameters may be
estimated from the *statistics of the sample, such as the mean and the variance. General
principles of estimation, in which the criterion is the agreement between model and data,
lead to procedures that may require iterative computing to obtain estimates; important
examples are the method of *least squares and its generalization, the method of maximum
*likelihood.
The *probability distribution of a parameter estimate is often required, and it is usual to
compute its standard deviation, known as its standard error (see MEASURES OF
VARIATION), its *correlation with other parameter estimates, and its confidence limits
where appropriate (see CONFIDENCE INTERVAL).
parameter passing The mechanism used to pass *parameters to a procedure
(subroutine) or function. The most common methods are to pass the value of the actual
parameter (call by value), or to pass the address of the memory location where the actual
parameter is stored (call by reference). The latter method allows the procedure to change
the value of the parameter, whereas the former method guarantees that the procedure will
not change the value of the parameter. Other more complicated parameter-passing
methods have been devised, notably call by name in Algol 60, where the actual
parameter is re-evaluated each time it is required during execution of the procedure.
parametric curve A curve defined as a function of independent variables. For
example, a curve in 3-space may be thought of as the path of a moving point and can be
described by the values of the position vector r at successive instants in time t. Adding
higher-order terms in t past the linear form gives curves of different complexity. If t2
appears only, then it is a quadratic; if t3 appears it is a cubic, and so on.
parametric patch A *patch defined in the same way as a *parametric surface.
parametric surface A surface defined as a function of two parameters. For example,
the successive positions and shapes of a deformable curve r=r(u) moving in 3=space
generate a surface where each point is characterized by the time v at which the moving
curve passes through it and the value of the parameter u, which characterizes the point on
the moving curve.
parametric techniques See NONPARAMETRIC TECHNIQUES.
parent A node A is the parent of node B in a *tree if B is the root of one of the sub trees
of the tree rooted at A.
parent file (father file) See FILE RECOVERY.
parenthesis-free notation See POLISH NOTATION, REVERSE POLISH NOTATION.
Parikh’s theorem A theorem in formal language theory that concerns the nature of
*context-free languages when order of letters is disregarded.
Let the alphabet Σ be the set {a1,…,an}. The letter distribution, ϕ(w), of a Σ-word w
is the n-tuple
with Ni the number of occurrences of ai in w. The Parikh image, ϕ(L), of a Σ-language
L is
i.e. the set of all letter-distributions of words in L. L1 and L2 are letter-equivalent if
Letter distributions may be added component-wise as vectors. This leads to the following:
a set S of letter distributions is linear if, for some distributions d and d1,…,dk, S is the set
of all sums formed from d and multiples of di. S is semilinear if it is a finite union of
linear sets.
Parikh’s theorem now states that if L is context-free ϕ(L) is semilinear. It can also be
shown that ϕ(L) is semilinear if and only if L is letter-equivalent to a *regular language.
Hence any context-free language is letter-equivalent to a regular language—although not
all such languages are context-free.
parity A function that is computed to provide a check on a group of binary values (e.g. a
word, byte, or character) by forming the modulo-2 sum of the bits in the group. The
generated sum, a redundant value, is called the parity bit. The parity bit is 0 if the
number of 1s in the original group was even. The parity bit is 1 if the number of 1s in the
original group was odd.
The parity computation just defined will cause the augmented group of binary values
(the original group plus the parity bit) to have an even number of 1s; this is called even
parity. In some cases, hardware considerations make it desirable to have an odd number
of 1s in the augmented group, and the parity bit is selected to cause the total number of 1s
to be odd; this is called odd parity. See also PARITY CHECK.
parity bit See PARITY.
parity check (odd-even check) The computation, or recomputation for verification, of a
parity bit to determine if a prescribed parity condition is present. See PARITY. See also
CHECKSUM.
parity-check code (parity-check matrix) See LINEAR CODES.
Parlog A parallel version of *Prolog.
parser (syntax analyser) See PARSING.
parser generator A program that accepts the syntactic description of a programming
language and generates a *parser for that language. See also COMPILER-COMPILER, YACC.
parse tree (syntax tree) A tree defining the syntactic structure of a sentence in a
*context-free language. The interior nodes are labelled by nonterminals of the context-free
*grammar; the descendants of a node labelled by A, say, spell from left to right the righthand side of some production having left-hand side A. The leaf nodes of a parse tree may
be terminals or nonterminals. If all the leaves are terminals then they spell from left to
right a sentence of the language.
Parse tree.
An example of a parse tree is shown in the diagram. It is assumed that the grammar in
question has productions
Note that it is conventional for the top of the tree to be its root and the bottom to be its
leaves.
An early stage in compiling a program usually consists of generating a parse tree in
which the constructs that make up the program are expressed in terms of the *syntax of
the programming language.
parsing (syntax analysis) The process of deciding whether a string of input symbols is a
sentence of a given language and if so determining the syntactic structure of the string as
defined by a *grammar (usually *context-free) for the language. This is achieved by
means of a program known as a parser or syntax analyser. For example, a syntax
analyser of arithmetic expressions should report an error in the string
since the juxtaposition of the minus and plus operators is invalid. On the other hand the
string
is a valid arithmetic expression with structure specified by the statement that its
subexpressions are
(Note that 2–3 is not a subexpression.)
The input to a parser is a string of tokens supplied by a *lexical analyser. Its output may
be in the form of a *parse tree or a *derivation sequence. See also BOTTOM-UP PARSING,
PRECEDENCE PARSING, TOP-DOWN PARSING.
partial correctness, proof of See PROGRAM CORRECTNESS PROOF.
partial differential equations Differential equations that involve two or more
independent variables, which in practice are often space and time variables. Because more
than one independent variable is present, the ‘derivatives’ that occur are partial
derivatives. Such equations are widespread in science and model physical phenomena;
they also arise frequently in the form of systems of equations. Simple examples in space
and time are given by the heat conduction (or diffusion) equation,
and the wave equation,
where α and β are physical constants. Steady-state phenomena in two space variables are
typified by Laplace’s equation,
Appropriate initial and boundary conditions must be specified for these equations. The
majority of partial differential equations that arise in practice require numerical techniques
for their solution, the most successful and widely used being *finite-difference and *finiteelement methods.
partial evaluation An *optimization technique. Parts of a program that have just
enough data are evaluated, other parts are kept unchanged. For *logic programming
languages, *unification and *resolution automatically support mechanisms for partial
evaluation such as: unfolding of procedure calls with their bodies, forward and backward
propagation of data structures, and evaluation of built-in functions wherever possible.
Special techniques, for example *lazy evaluation, are necessary for partial evaluation of
*functional languages.
partial function Roughly, a *function
that holds for only a proper *subset of S. Strictly, if the subset over which it holds is R,
then
is a function. However it may be more convenient to work with S rather than with R. The
set U,
is nonempty, and f has no value (or rather has the undefined value) at points in U; f is
then said to be undefined on U and defined for all elements in the subset R of S, i.e. in
S but not in U.
Partial functions arise naturally in computing. When recursive definitions of functions
are given, the definition can sometimes loop for certain parameters. Definitions of
functions can also give rise to overflow or *exception situations. In these cases it is
convenient to talk about partial functions. Compare TOTAL FUNCTION.
partially ordered set See PARTIAL ORDERING.
partial ordering (partial order) A *relation defined between elements of some *set
and satisfying certain properties, discussed below. It is basically a convenient
generalization of the usual comparison operators, such as > or <, that are typically defined
on the integers or the real numbers. The generalization also captures the essential
properties of the set operations such as ‘is a subset of’, the alphabetic ordering of strings,
and so on. In *denotational semantics, partial orderings are used to express some
approximation relation between partially defined computational objects.
Two different but equivalent definitions of a partial ordering are possible. The first is a
generalization of the usual ≤ operation in which the relation must be a *transitive,
*antisymmetric, and *reflexive relation defined on the set S. The second definition is a
generalization of the usual < operation in which the relation must be a transitive,
*asymmetric, and *irreflexive relation defined on S. A set with a partial ordering defined
on it is called a partially ordered set or sometimes a poset.
partial recursive function A *function on the natural numbers that can be obtained
from certain initial functions by a finite number of applications of *composition,
*primitive recursion, and *minimization. In general the function may not be defined for
certain values of its argument and so is a *partial function. The initial functions used are
normally the *zero function, *successor function, and *projection functions. The partial
recursive functions can be defined in many ways and, according to the *Church– Turing
thesis, are precisely the functions on natural numbers that can be defined by algorithms.
See also PRIMITIVE RECURSIVE FUNCTION.
particle system A means of modelling objects without boundaries, such as fire, cloud,
smoke, gas, and water. An object is represented by a collection of elementary particles
whose trajectories are traced. These individual particles move in three-dimensional space
and change such attributes as colour, transparency, and size as a function of time. Accurate
modelling of the physics of the system is not attempted; instead *heuristic laws are used to
approximate the desired effect.
partition 1. The term used in some operating systems to refer to a static area of memory
for use by jobs, and also applied by association to the jobs executed in that area. 2. (of a
set) See COVERING. 3. A logical division of a *hard disk. Each partition is usually treated
as a different disk by the operating system. Partitioning information is held on the disk
itself and remains in force until changed.
partition-exchange sort Another name for quicksort.
Pascal A programming language in common though decreasing use. Pascal was designed
as a tool to assist the teaching of programming as a systematic discipline. To that end it
incorporates the *control structures of *structured programming—sequence, selection, and
repetition—and *data structures—arrays, records, files, sets, and user-defined types. It is
an austere language, with a minimum of facilities, but what is provided is so well suited to
its task that the language is in practice more powerful than its more elaborate competitors.
Pascal was relatively easy to implement on a variety of machines since the Pascal
compiler was written in Pascal. Used first as an educational tool, Pascal became a moreor-less standard language for the teaching of computer science. It spread into
microcomputing in the form of the UCSD p-System, but only achieved widespread
popularity with Turbo Pascal. In 1982 ISO Standard Pascal was defined, but modern
compilers, especially those for microcomputers, implement an extended and nonstandard
version of the language.
http://www.pascal-central.com/docs/iso7185.pdf
• The Pascal standard (1990 revision)
pass A single scan through a body of data, for example by a compiler reading the
program text or a statistical package reading its data.
passband A range of frequencies with a lower limit and an upper limit, such that all
frequencies between these limits (but not necessarily excluding other frequencies) are
passed, with little attenuation, by a filter or a channel. See also BAND-PASS FILTER,
BANDWIDTH, FILTERING.
pass instruction Another name for no-op instruction.
passive-matrix LCD See LCD.
passive optical network (PON) A network system of *optical fibres that contains no
active (switching) elements.
passive star A network topology in which the outer *nodes connect to a single central
node that does not process the message in any way but simply connects the transmission
paths between the outer nodes. The central node is unlikely to fail due to its passive
operation. It is thus unlikely that the entire network will be disabled during normal
operation. See also ACTIVE STAR, NETWORK ARCHITECTURE, STAR NETWORK.
password A unique character string held by each user, a copy of which is stored within
the system. During *login an *authentication process takes place; the password entered by
the intending user must correspond with the stored value before the user is accepted by the
system. A good password should contain at least eight apparently random characters.
Personal details, such as vehicle license numbers or relatives’ names, are too easily
guessed to be secure when used as passwords; even dictionary words are susceptible to
exhaustive search. See also IRREVERSIBLE ENCRYPTION.
paste To insert the contents of the *clipboard or the paste *buffer into a text or graphics
object at a desired point.
PATA See ATA.
patch 1. Informal A change to a program—usually to correct some error—that is
introduced in a manner that emphasizes usability and performance rather than security,
and is intended to effect only a temporary repair. Even where a program is written in some
high-level language, the patching might be carried out in machine-code terms on the
compiled version of the program. Often during testing a series of minor errors will be
corrected by patching in order to permit testing to continue without the delay of
recompilation. Subsequently the corresponding changes will all be incorporated into the
program source text. Patches may be installed manually or using patch management
software. Though meant to fix errors, poorly designed patches are often the cause of
security breaches and other problems. 2. (surface patch) A boundary piece of a surface.
Patches are descriptions of three-dimensional shapes specified as bounded equations with
criteria for joining other patches along their edges; for example, for smooth surfaces the
patch equations must be differentiable at the edge. Complex surfaces are often broken
down into patches. The whole surface is then described by the collection of patches. There
is a wide variety of techniques for defining patches, for example *Coons patches and
*Bézier patches. Patches are widely used in computer-aided design to describe curved
surfaces and complex smooth geometries.
patchboard (plugboard) A matrix of sockets that can be interconnected manually by
means of patchcords, i.e. cables with plugs attached to each end. Thus one socket can
be patched to another. Patchcords were used in some early computers and punched-card
machines to make temporary connections between devices, to program *analogue
computers, and to connect different peripheral devices to computer lines.
patchcord See PATCHBOARD.
patent A government grant to an inventor assuring him/her the exclusive right to exploit
or sell the invention for a limited period (usually 20 years). Under the 1985 Guidelines for
Examination in the European Patent Office, patent protection is available to inventive
computer programs in Europe if the invention is expressed in terms of a programmed
machine. Programs can be patented in the USA if they comply with the originality and
other requirements of the US Patent Act. Inventive hardware is patentable in Europe and
this leads to a serious flaw in the law; the same task can be performed by both software
and hardware but the former is expressly excluded from protection by a clause in the
European Patent Convention. The question of whether a program that performs the same
task as a piece of patented hardware infringes the patent in the hardware has not yet been
decided in Europe, nor has it been decided whether a PROM is a piece of software or
hardware. Many of these inventions are now given a special type of copyright protection
under new laws protecting chip masks. See also TRADE SECRETS.
path 1. A route between two vertices of a *graph, passing along edges and, in the case of
a directed *graph, with attention paid to the direction along the edges. More formally there
is a path between vertices V0 and Vk if each pair
is an edge of the graph and, in the case of a directed graph, is suitably directed.
In typical applications, the existence of paths between vertices indicates physical
connections between them or perhaps logical connections or dependencies. See also
CYCLE. 2. A sequence of instructions that may be performed in the execution of a
program. A path through a program is equivalent to a traversal of the *control-flow
diagram for that program from the start node or vertex to the end node of the graph. 3. See
ACCESS PATH.
path testing A test strategy equivalent to finding all possible *paths through the
*control-flow diagram of a program. Testing each path at least once is a typical test
strategy, but for much real software complete path *test coverage would require an
impracticably large test run/time. Path testing almost always requires more test runs than
either *branch testing or *statement testing.
pattern An *equivalence class associated with a special kind of *relation defined on
functions. Let
be a set of functions mapping elements from some domain D into some set A, which can
be regarded as an alphabet. With each function f in F is associated a weight w(f), defined
as the formal multiplication of all the images f(x) under f. In effect w(f) describes the
number of occurrences of the different images in A.
An equivalence relation can then be defined between two functions of F in such a way
that equivalent functions have equivalent weights, though the reverse is not in general
true. The patterns of F are the equivalence classes that emerge from this equivalence
relation.
The weight of a pattern is just the weight of any member of that pattern; the weight of
the equivalence class [f] containing f is just w(f). The formal sum of the weights w(f) taken
over all the equivalence classes in F gives the pattern inventory of the set F. An
important theorem due mainly to George Pólya indicates the close link between pattern
inventory and *cycle index polynomial.
These ideas are often applied in *combinatorics and *switching theory. For example, a
pattern inventory can indicate the number of essentially different wiring diagrams or logic
circuits needed to realize the different possible logic functions.
pattern inventory See PATTERN.
pattern matching The technique of comparing two patterns in order to say how similar
they are, or of comparing one pattern with a set of patterns in order to say to which
member of the set it is most similar. This usually implies that a numerical value can be
computed, as a *function of two patterns, by means of a pattern matching algorithm. The
patterns concerned may be purely logical (i.e. *data structures) or physical (e.g. one-, two, or three-dimensional images, represented as arrays). The term is commonly used where
the patterns are *expressions represented either abstractly or as *strings. When the
patterns are physical images, the term *pattern recognition is more common.
pattern recognition The process of detecting the presence of a specified pattern in a
*signal, or assigning a probability to its possible presence. For example, visual pattern
recognition involves the identification of two-dimensional patterns in a *grey-level array.
The specification of one of more patterns is done either analytically, or, more usually, by
the provision of templates, which are model patterns for comparison. Pattern recognition
employs the techniques of *digital signal processing, *image processing, and *artificial
intelligence.
payload (of a cell or packet in a network) Another name for body.
PC (personal computer) Most often used to mean an *IBM-compatible computer as
opposed to other architectures. The abbreviation is sometimes used however to refer to
any variety of personal computer, although the unabbreviated form is more common in
this context.
PCB (pcb, printed circuit board) See PRINTED CIRCUIT.
PC card See PCMCIA.
PC clone See CLONE.
PC-compatible See IBM-COMPATIBLE.
PC-DOS The unofficial name of *MS-DOS when used on IBM machines (the official
name was ‘DOS’). From 1993, when IBM took over its development, PC-DOS diverged
slightly from MS-DOS.
PCI (peripheral component interface) A standard, designed by Intel, for a *local
bus that connects peripherals to a personal computer, and published in 1993. The design is
independent of the processor, handling 32 or 64 bits at up to 66 MHz. Although
superseded by *PCI Express in 2004 it is still widely used.
PCI Express An interface for *add-in cards released by Intel in 2004. It is intended to
replace the *accelerated graphics port and *PCI standards. Each slot for add-in cards
contains up to 32 full duplex serial links, called lanes. In version 1.1 each lane is capable
of transferring 250 Mbytes per second; in version 3.0, introduced in 2010, this rate is
increased to 985 Mbytes per second.
PCL (printer control language) PCL was originally introduced by Hewlett-Packard
in its early laser printers and evolved as a de facto standard for high-quality printers. The
commands cover text, formatting, paper handling, and graphics. The language has
developed over time and is often used to define the facilities offered by a printer, as in
‘This printer supports PCL6.’
PCM Abbrev. for pulse code modulation.
PCMCIA (Personal Computer Memory Card International Association) A
body set up in 1989 whose members include hardware and chip manufacturers, software
houses, and system integrators. The PCMCIA defined two specifications for *add-in cards
of credit-card size: PC card (formerly PCMCIA card) and its successor,
ExpressCard. Cards can contain such peripherals as *hard disks, *modems, *flash
memory, or network interfaces. The association was dissolved in 2009.
PCMCIA card See PCMCIA.
PCTE (portable common tool environment) An international standard (ISO
13719) in three parts. Part 1 defines an abstract specification for a *PTI (public tool
interface) that includes access to an *object management system including file contents,
and facilities to support distribution, secure access, etc. Part 2 defines a binding to the C
programming language. Part 3 defines a binding to the Ada programming language. The
same definitions are also contained in the 3rd edition of ECMA standards 149, 158, and
162 respectively.
PCTE was originally developed by an ESPRIT project partially funded by the EEC in
the 1980s. The current standard has evolved from the original specification under the
influence of several international initiatives, and incorporates ideas from PCTE+
developed by NATO and CAIS–A developed by the US Department of Defense.
PDA 1. (personal digital assistant) A handheld computer providing personal data
such as telephone numbers and addresses, diary management, and, increasingly, email and
Internet connectivity with wired or wireless connection. Convergence with mobile
telephones to produce *smartphones has made this a very fast-changing area. 2. Abbrev.
for pushdown automaton.
PDF (Portable Document Format) The file format created by Adobe Systems
Acrobat to represent documents that is not dependent on the original application software,
hardware, and operating system which created them. A PDF file can describe documents
containing any combination of text, graphics, and images in a device and resolution
independent format. PDF documents can be a single page or many hundreds of pages and
can contain hyperlinks. The availability of free reading software makes this an attractive
format for publishing information on the Internet. PDF files are also used for exchange of
information when the format is important (e.g. legal or historical documents). They are
now also the preferred method of supplying data to commercial printing houses. A PDF
file can be produced from a PostScript file using Acrobat Distiller. Many word processing
and DTP applications can also produce PDF files directly.
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_17.pdf
• The PDF reference manual (version 1.7)
PDH (plesiochronous digital hierarchy) An interim set of standards and products
for data transmission, which allows the combination of a number of lower-speed channels
(tributaries) into a composite signal transmitted on a synchronous higher-speed bearer. In
principle, the data rate on the high-speed channel will simply be the aggregate of the data
rates on the lower-speed channels; if the data rates on these channels are the same, or are
simple multiples of some common basic rate, this aggregate rate will be a multiple of the
data rate on the tributary channels. In practice, the data rates on the tributaries will not be
exact, and to allow for this the high-speed channel must have an overall data rate slightly
greater than the sum of the data rates on the tributaries. Since the high-speed channel is
strictly synchronous, it is necessary to insert ‘stuffing’ bits, which are then subsequently
discarded. Further, at each point where data enters or leaves the high-speed channel, the
composite signal must be completely broken down into its components, data inserted or
extracted, and the composite signal re-created. This adds to the complexity and hence the
cost of the system. See also SDH.
PDL 1. Abbrev. for program design language. 2. Abbrev. for page description language.
PDN Abbrev. for public data network.
PDP series (Programmable Data Processor) A family of machines manufactured
by *Digital Equipment Corporation.
PE (phase-encoded) See TAPE FORMAT.
peak-to-average ratio The ratio of the highest value of a quantity to its average value,
used as a measure to indicate the variability of the quantity. For example, in a computer
network that connects a user’s workstation to a file server, the traffic is typically made up
of long periods during which very little traffic flows, interspersed with periods of intense
activity when the system transfers a large volume of data in a short time. A measurement
of the average data rate over a period of many minutes may show a low apparent data rate,
and give a misleading impression of the high data rate needed to provide satisfactory
response to a request for a file movement or to refresh a user’s screen. The peak-toaverage ratio indicates the extent to which the traffic consists of bursts of traffic.
Peano arithmetic An axiomatic theory, based on first-order logic, about the natural
numbers. Its axioms are first-order statements about the simple arithmetic operations of
successor n+1, addition n+m, and multiplication n.m, together with the principle of
*induction. A great variety of facts in mathematics and computer science can be reduced
to, or can be coded as, statements about natural numbers, and Peano arithmetic is a strong
enough theory to express and prove formally the majority of basic results. However,
*Gödel’s incompleteness theorems show that there are first-order statements that are true
of the natural numbers but are not provable in Peano arithmetic, or its extensions.
Although many algebras satisfy the axioms of Peano arithmetic, there is only one
*computable algebra that satisfies the axioms and that is the so-called standard model
of Peano arithmetic, namely the algebra
pebi- See BINARY PREFIXES.
peek To examine the contents of an absolute memory location from a high-level
language, usually by means of a function of this name whose argument is the address in
question. Compare POKE.
peephole optimization See OPTIMIZATION (in programming).
peer-to-peer protocol A *protocol that governs the exchange of information between
entities operating at the same level in a protocol stack. See SEVEN-LAYER REFERENCE
MODEL.
pel Another name for *pixel or picture element.
pen drive See USB DRIVE.
penetration A technique of *security evaluation.
Pentium Trademark; see INTEL.
percentile The value below which an integral percentage of observations lie: the pth
percentile is the value below which p% of observations lie. The 50th percentile is the
median and the 25th and 75th percentiles are known as quartiles.
perception An interpretation process in which raw sensory signals are converted into
meaningful symbols. Human perception is still poorly understood but inspires research
into *image understanding, *pattern recognition, and other intelligent systems that attempt
to convert complex sensory data into meaningful interpretations of objects and events in
the world. Related philosophical problems include the symbol grounding problem,
which concerns the semantic content of symbols and how they are related to sensation.
perceptron An early type of single-layer *neural network. An input array is covered by
a set of *feature detectors whose outputs are weighted, summed, and then thresholded to
give a single binary output. A perceptron learning algorithm can be used to adjust the
weights during training on examples from pattern classes so that new inputs may be
correctly classified. Mathematical analyses of perceptrons in the 1970s exposed severe
limitations and halted research on neural networks. Now, however, perceptrons have been
superseded by multilayer neural networks that do not suffer from those limitations.
perfect codes *Error-correcting codes in which the Hamming spheres surrounding the
codewords entirely fill the *Hamming space without overlap. These spheres all have
radius e, where the code can correct e errors, and their centres (codewords) are separated
from each other by a distance of (2e + 1); thus the spheres have no points (words) in
common where they touch, but their surfaces are separated by unit distance with no points
between them. Perfect codes attain the *Hamming bound exactly.
The only *binary *linear perfect codes are the *repetition codes, the *Hamming codes,
and the (23,12) *Golay code.
perfective maintenance See SOFTWARE MAINTENANCE.
perfect matching A term used in graph theory. A matching of a *graph is any subset of
its edges such that no two members of the subset are adjacent. A perfect matching is a
matching in which every *vertex of the graph is an end-point of some element of the
matching.
performance model A model created to define the significant aspects of the way in
which a proposed or actual system operates in terms of resources consumed, contention
for resources, and delays introduced by processing or physical limitations (such as speed,
bandwidth of communications, access latency, etc.). The creation of a model can provide
insight into how a proposed or actual system will or does work.
A model will often be created specifically so that it can be interpreted by a software tool
that simulates the system’s behaviour, based on the information contained in the
performance model. Such tools provide further insight into the system’s behaviour, and
can be used to identify bottlenecks or hot spots where the design is inadequate. Solutions
to the problems identified might involve provision of more physical resources, or change
in the structure of the design.
performance monitoring Measurement, by direct observation or by programmed
processes, of activity at various points in a computer system to find out where bottlenecks
and delays are taking place. Results are used for system *reconfiguration in order to
improve overall performance.
performance testing The specification for a system will usually have some
requirements for how well the system should perform certain functions, additional to a
statement of required functions. Thus while functional testing will, for example,
demonstrate that the sum and average of a set of numbers will be calculated,
performance testing will concentrate on how well the calculation is done (speed,
accuracy, range, etc.). Typically, performance testing will consist of one of more of the
following.
Stress and timing tests, for example measuring and demonstrating the ability to meet
peak service demand measured by number of users, transaction rate, volume of data, and
the maximum number of devices all operating simultaneously.
Configuration, compatibility, and recovery tests, for example using a combination of the
slowest processor, the minimal memory, the smallest disk, and the last version of the
operating system, and checking that other valid combinations of processor, memory, disk,
communications, and operating systems will interoperate and recover from faults.
Regression tests, showing that the new system will perform all the required application
functions of the system it replaces.
period The time required for a periodic waveform—i.e. a waveform recurring at fixed
intervals—to repeat itself.
periodogram In *time series analysis, a diagram showing the most important cyclical
regularity in the data. Peaks in the diagram correspond to periods of cycles that most
closely correlate with the data. Interpretation of periodograms is by spectral analysis.
peripheral Any device, including I/O devices and backing store, that is connected to a
computer. The term originated in the mainframe era when all the computing was
centralized and the input/output functions were attached around the periphery of the
installation. Since the advent of smaller cheaper computers, printers, etc., the term
peripheral is seldom used.
peripheral processor The name used in CDC systems for a special-purpose processor
used to control peripheral units.
Perl (practical extraction and report language) A *scripting language for
scanning text files, extracting information, and printing reports. Originally developed in
the UNIX environment, implementations for other platforms are now available, including
Windows.
http://perldoc.perl.org/
• Perl documentation (version 5.10.0)
permanent error (of peripheral storage) See ERROR RATE.
permanent virtual circuit (PVC) See VIRTUAL CIRCUIT.
permutation (of a *set S) A *bijection of S onto itself. When S is finite, a permutation
can be portrayed as a rearrangement of the elements of S. The number of permutations of a
set of n elements is n!
A permutation of the elements of {1,2,3} can be written
indicating that 1 is mapped into 2, 2 into 1, and 3 into 3. Alternatively the above can be
written, using a *cycle notation, as (1 2); this implies that the element 3 is unaltered but
that 1 is mapped into 2 and 2 into 1.
For collections of elements in which repeated occurrences of items may exist, a
permutation can be described as a rearrangement of elements in which each element
appears with the same frequency as before.
permutation group A *subgroup of the group that is formed from the set, Sn, of all
*permutations of n distinct elements and on which is defined the dyadic operation of
*composition of functions. The full group Sn is usually called the symmetric group
and possesses n! elements. Every finite group is isomorphic to some permutation group.
permutation matrix A square matrix in which each column contains precisely one
nonzero element, which is equal to unity. If P is an n′n permutation matrix and x is a
vector of n elements, the vector Px will be a *permutation of the elements of x.
persistence The property of data that continues to exist after a process accessing it has
finished. The term is usually used for data that is preserved when the computer is switched
off, and when the notation for accessing it is substantially the same as for other data.
Persistence shows that the existence of a data item is distinct from its accessibility, which
is determined by the *scope of its declaration. By implication, persistent data is
preserved in *backing store, and special techniques are often needed to store and access
the data values and to mark their creation and destruction.
persistent data See PERSISTENCE.
persistent programming The style of programming, with appropriate language and
run-time support, that recognizes persistent data (see PERSISTENCE). It is based on the view
that persistence is orthogonal to *data type, so that programmers should not be restricted
in the types for which persistent data may be created, and that with appropriate
*declarations no special statements should be required to handle persistent data; in
particular there should be no explicit input/output operations for such data.
A persistent programming language has constructs that define the lifetimes of
data objects (as well as their types), without prescribing how they are stored. Programs
that are written in such a language reference and use data in the same way whether or not
it is persistent. (In contrast, programming using a database or filing system requires
explicit operations that read the persistent data from backing store into main memory, and
subsequently write it out if it has been modified.)
personal computer A general-purpose single-user *microcomputer designed to be
operated by one person at a time (see also PC). Personal computers are now extremely
sophisticated machines with powerful processors, large-capacity disk storage, highresolution colour-graphics systems, high-speed network interfaces, and many other
options. In scientific, engineering, and business environments the personal computer has
superseded the *terminal connected to a time-sharing system, especially since
communication ports and network connections allow transfers of data between computers
as well as *client/server computing. The development of the personal computer is a
consequence of the continually increasing ratio of computing power to cost, coupled with
decreasing weight, size, and power consumption.
personal data Any data that relate to a living person who can be identified from those
data either directly or indirectly (i.e. by using additional information that is available to
the *data controller). See also PRIVACY.
personal digital assistant (PDA) A pocketbook-sized computer with a combined
touch-sensitive membrane covering an LCD panel as its main input and output device.
The user writes on the screen with a penlike stylus, and the objects drawn are echoed on
the screen. It is possible to interpret handwriting by means of character-recognition
techniques, to store what is written or drawn as images for later retrieval, or for the screen
to display menus and check boxes so that selections may be made with the stylus. Some
PDAs, such as the *BlackBerry, have small keyboards optimized for easy operation with
the thumbs. Applications include calendars, diaries, personal organizer functions, wireless
networking, email, and Internet access.
perspective projection A *projection where the eyepoint is a Euclidean point. The
lines along which points are projected all pass through the eyepoint.
PERT (performance evaluation and review techniques) Management
techniques for planning, scheduling, and controlling projects. Dependencies are drawn as
directed *graphs to show the logical sequence of activities that must occur before a project
can be completed. See also CRITICAL PATH METHOD.
PERT chart A method of expressing the dependence of distinct activities for project
management (see PERT). The chart is drawn as a *weighted directed *graph where each
edge represents a specific activity and its weight is the time required to complete that
activity. The activity can only be started when those edges (activities) incident to it have
been completed. The chart has one start point and one termination point.
The critical path for time to project completion is calculated together with the float,
earliest start, and latest start times on individual activities. Some PERT tools allow
different types of resource to be allocated to an activity, with limits on total resource of
each type, and for ‘hammocks’ (dummy activities) to be used to monitor project
milestones and resource usage. See also ACTIVITY NETWORK, CRITICAL PATH METHOD.
pervasive computing See UBIQUITOUS COMPUTING.
PES (programmable electronic system) A term used in certain official guidelines
and standards to describe a complete computer-based system. For example in an industrial
process-control application, the input sensors, the computer hardware and software, and
the output actuators would comprise the PES.
peta- A prefix indicating a multiple of 1015. In computing it has a value of 250
(1,125,899,906,842,624). See also BINARY PREFIXES.
Petri net A model of a concurrent system that is expressed in a specific graphical
notation and can be used to explore certain properties of the system. A Petri net consists of
a set of places, a set of transition bars, and a set of directed edges. Each transition bar
has an associated set of input places and an associated set of output places. A transition bar
is linked to each of its input places by a directed edge from the place to the bar, and to
each of its output places by a directed edge from the bar to the place.
Petri net. An example of a Petri net
States of the concurrent system are represented by the presence of tokens at places,
with a specific state being represented by a specific allocation of tokens to places. Such an
allocation is called a marking.
The example net shown in the diagram employs the conventional graphical notation.
Places are represented by the circles labelled p…t, transition bars are represented by the
lines labelled B1…B4, and the initial marking is shown by the use of dots to represent
tokens.
Transition bars represent possible changes of state in the concurrent system. A transition
bar can only fire (i.e. the change of state occur) when each of its input places holds at
least one token. When a bar fires it removes one token from each of its input places and
deposits one token at each of its output places. Thus the combination of the input and
output places for a transition bar represents both the conditions under which the change of
state can occur and the effects of that state change.
The firing of a transition bar is an indivisible event and simultaneous firing of two or
more bars is therefore not possible. When the state is such that two or more bars are
candidates to fire, each candidate must be considered individually.
By starting from an initial marking that represents an initial state of the system and
applying a straightforward procedure that generates other markings that can be reached
from this initial marking, it is possible to explore the possible states of the system and the
ways in which these states can be reached. For example, both deadlock states and
unproductive looping can be readily detected, and in general it is possible to check that the
behaviour of the system is as expected. However, while the procedure for generating
reachable markings is straightforward, attempts at full analysis are often frustrated by the
sheer number of such markings, and this can be infinite. Thus the general problem of
determining whether a given marking is reachable from a given initial state is undecidable.
With the initial marking shown in the example net, both B1 and B3 are able to fire.
Suppose that B1 fires. This removes the tokens from places p and t, and deposits a single
token at place q. Now only B2 is able to fire. (B3 is no longer able to fire because there is
no longer a token at place t.) When B2 fires, the token is removed from place q and new
tokens are deposited at places p and t, thus restoring the initial marking. Should B3 now
fire, a single token is deposited at place s, and B4 then fires, again restoring the initial
marking. (This net may be viewed as modelling a system in which two processes compete
for a shared resource. Availability of the resource is represented by the presence of a token
at place t. Relevant states of one process, holding the resource or not holding the resource,
are represented by tokens at places p and q respectively. Similarly tokens at places r and s
represent relevant states of the other process.)
Petri nets were devised in the early 1960s by C. A. Petri.
PGA 1. (programmable gate array) A form of *PLA that has products (*AND
operations), but no *sums of products (*OR operations). 2. Abbrev. for pin grid array.
PGP (pretty good privacy) A utility that allows an email user to encrypt an outgoing
mail message using a version of a public key encryption system (see CRYPTOGRAPHY).
Although a PGP encrypted message might be decoded by a user with access to very
powerful computing resources, the system offers a more than adequate level of protection
for the normal user.
phase (of a regularly recurring (periodic) quantity) The stage or state of development of
the quantity. It can be expressed, in the form of an angle, as the fraction of a cycle of the
periodic quantity that has been completed, with respect to a fixed datum point. Two
sinusoidally varying quantities of the same frequency can be in phase (reaching
corresponding phases at the same time) or out of phase. In the latter case the difference
in phase—the phase difference—is usually expressed as an angle.
phase change An optical recording technology where the process of writing changes the
area of the medium that is to represent a 1 bit from one physical state to another, e.g. from
crystalline to amorphous, rather than producing a change in its external configuration or
state of magnetization. This technology can be used either reversibly or nonreversibly, in
some cases in the same medium by adjustment of the power of the laser beam. See CDRW.
phase-change inkjet printer See INKJET PRINTER.
phase-encoded (PE) See TAPE FORMAT.
phase-locked loop (PLL) See DISK FORMAT.
phase modulation (PM) See MODULATION.
phase shift keying (PSK) A method for representing digital data with analogue signals
by changing the phase of the analogue carrier to represent the digital information (see
diagram). It is a type of *modulation.
There are two ways of detecting the phase information in a signal. Fixed-reference
PSK assigns a meaning to each phase position. The *demodulator uses a signal source of
the same frequency to compare with the incoming signal and detect its phase.
Differential PSK assigns meaning to phase changes, e.g. a phase change of 180° could
be taken to mean a 1, while no phase change means a 0. No comparison with another wave
is needed in the demodulator.
Phase shift keying. 2-phase modulation
The amount of information associated with a phase or phase change depends on the
number of discrete phases that the carrier may assume. If the carrier may assume two
phases then each phase or phase change represents a single bit. If four phases are used
then each phase or phase change represents a different combination of two bits. The
greater the number of discrete phases, the more difficult it is to generate, transmit, and
detect the analogue signal, thus the cost is higher; for this reason, *modems that require
eight or more discrete signals usually combine the phase changes with changes in
amplitude in order to make the signals more distinct.
See also DIGITAL DATA TRANSMISSION.
PHIGS (Programmer’s Hierarchical Interactive Graphics System, the
ISO/IEC 9592 standard) Many of the concepts of *GKS are present in PHIGS
(workstations, input model, attribute handling, etc.). However, PHIGS is primarily a threedimensional standard aimed at providing high-quality views of graphics objects that are
hierarchical and made up of many subparts (e.g. a vehicle). Lighting and rendering
extensions together with a number of high-level primitives are included in Part 4 of the
standard, called PHIGS PLUS. PHIGS was superseded by *OpenGL in the 1990s and is
no longer used.
phishing A form of fraud that involves masquerading as a trustworthy entity in an
electronic communication (often using forged emails or websites) in order to persuade
users to disclose sensitive information such as usernames, passwords, or credit card
details. See also SEMANTIC ATTACK.
phoneme A small element of real speech that is linguistically significant. The transitions
between phonemes are acoustically but not linguistically significant. Phonemes may be
used by means of concatenation to produce artificial speech. The particular problem with
phoneme concatenation is how to actually perform the join since fluent speech requires
fluent transitions. Diphones are the elements of speech between the centres of adjacent
phonemes; they include the transitions, and are more useful for *speech synthesis.
Phong shading A shading model that assumes light sources are points. It allows some
of the light hitting a surface to be absorbed. A parameter defines how close a particular
surface is to a perfect reflector thus modelling both mirror-like and dull surfaces. See also
SPECULAR REFLECTION.
photo printer A colour printer optimized to reproduce ‘photograph quality’ prints on
special paper. Such printers, often low cost, may incorporate a reader to accept data direct
from one or more of the small memory cards used in *digital cameras without requiring a
computer to interpret the image data.
photorealism Realistic representation in a computer-graphics image so that it looks as
though it was produced by photographing a scene.
phototransistor See OPTOELECTRONICS.
PHP (PHP: Hypertext Processor) A *scripting language first released in 1995. It is
widely used for creating *dynamic web pages (def. 1).
http://php.net/
• The PHP home page
phrase-structure grammar (PSG) A *grammar that contains rules which are capable
of both generating strings of linguistic elements and providing a constituent analysis of the
strings. In their original form, phrase-structure grammars took the form of a set of rewrite
rules, for example
(which reads rewrite S as NP (noun phrase) + VP (verb phrase). Various distinctions have
been made between different classes of phrase-structure grammar, primarily between
*context-sensitive and *context-free grammars.
physical Actual, or involving actual entities, as opposed to logical or conceptual.
physical layer of network protocol function. See SEVEN-LAYER REFERENCE MODEL.
pi benchmark A program that uses integer arithmetic to calculate π to some arbitrary
accuracy. It is used as a *benchmark to measure the time to complete calculation to a
stated accuracy or to measure the number of digits accuracy achieved per second of
execution.
pick A type of input to a graphics system that identifies a graphical output primitive or set
of primitives that have been indicated by the operator. See also LOGICAL INPUT DEVICE.
Pick An IBM operating system named after its original developer. The system has an
integrated database system, and is intended for database applications on workstations and
small systems. Pick is designed to be portable between different hardware platforms, and
has also been implemented as a subsystem under other operating systems.
pick list A list of choices that can be displayed within a *window and from which
normally only one item may be *selected. It may, for example, be a list of files that may
be opened within a directory.
pico- (symbol: p) A prefix to a unit, indicating a submultiple of a millionth of a millionth,
10−12, of that unit, as in picosecond.
PICT A graphics file format mainly used in Macintosh applications.
picture The principal means of defining *data types in *Cobol. The syntax of an
elementary data item is defined by means of a character string. Simple examples are
‘A(20)’ defining a string of 20 alphabetic characters, or ‘9(4)’ defining a string of 4 digits.
Particularly in the case of numeric items that are to be printed or displayed, the PICTURE
clause provides considerable power: it is possible, for instance, to specify the position of
the decimal point (explicit or implicit); the presence and position of the sign (+ or −) or of
currency symbols; filling out digit strings with zeros or blanks (leading, embedded, or
trailing); insertion of commas into long numbers. The MOVE verb, which is used to
assign the value of one variable to another, automatically carries out format conversion
according to the picture of the receiving item.
picture processing Another name for image processing.
PID controller A device used for continuous control of industrial plant, based on
combining proportional, integral, and derivative contributions (hence PID) from the
discrepancy between an actual value and the desired value. The PID control process is also
called 3-term control.
piecewise continuous Denoting a curve or surface divided into a number of pieces that
are continuous to a specified degree across the joins.
piecewise smooth Denoting a surface that can be divided into a number of pieces, each
of which satisfies a smoothness constraint.
PIF (program information file) A file used in the *Windows system to hold
information as to how a non-Windows application is to be run and what resources are to
be allocated to it.
pi font A font that contains symbols (e.g. mathematical symbols or musical notation)
rather than alphanumeric characters.
piggyback acknowledgments *Acknowledgments carried in a special field in regular
data messages. Thus, as long as there is data ready for both directions of a circuit, no extra
messages are needed to carry acknowledgments.
PILOT (programmed inquiry, learning, or teaching) A special-purpose
language for developing *computer-assisted learning (CAL) software.
pin (PIN, personal identification number) A number issued to a holder of a *magnetic
card, for example a credit card or bank card, that the card holder is required to keep secret.
Together with the magnetic card the pin acts as an identifier and password to access
computer-based services such as *ATMs, *EPOS, or *EFTS.
pincushion distortion A distortion that makes a displayed image appear to bulge
inward on all four sides.
ping A short message that an application sends from one system on a network to another
(or, as a verb, to send such a message), primarily to establish whether the receiver is
active, or the network linking sender and receiver is operational. A system receiving a
ping will typically respond by immediately retransmitting the incoming message back to
the original sender. (The word ping may be an acronym for packet Internet gopher or
possibly imitative in origin.)
pin grid array (PGA) A form of *integrated circuit packaging, capable of providing up
to several hundred connections to one chip. Connections to the device are made by means
of an array of pins underneath the package. The array may be formed as several parallel
rows of pins at two opposite sides of the package or around all four sides, depending on
the size and complexity of the IC.
pin header A device similar in form to a *DIP but containing no circuitry. Instead each
leg is extended vertically through the package allowing pins to be connected together in
any configuration by soldering small pieces of wire across the relevant pins. A pin header
is more flexible but clumsier than a *DIL switch. It is sometimes used for making external
connections to a *printed circuit board.
Pink Book The *coloured book that defined a former network service operating over a
CSMA/CD bearer network. See ETHERNET.
pinout A description of the electrical function of each pin on an *integrated circuit
package.
PIO Abbrev. for parallel input/output.
pipe A command-line operator available in some operating systems whereby a number of
*processes (tasks), whose names are listed sequentially, are activated concurrently so that
each process (after the first-named) accepts as its input the output from the immediately
previously named process. The operating system provides *buffering of data between the
processes, and so the user is relieved of the necessity of specifying temporary files for
receiving and delivering the data. Pipes are a notable feature of *UNIX. See also
COMMAND-LINE INTERFACE, FILTER.
pipeline processing A form of processing—analogous to a manufacturing production
line—in which the time required to pass through some functional unit (e.g. a floating point
ALU) of a computer system is longer than the intervals at which data may enter that
functional unit, i.e. the functional unit performs its process in several steps. When the first
step is completed, the results are passed to a second step that uses separate hardware; the
first-step hardware is thus free to begin processing new data. This provides fast throughput
for sequential processes, but at the expense of complicating the control unit, which must
keep account of operations that are simultaneously in progress. In the past, cost restricted
such techniques to supercomputers, which require maximum performance, and to vector
processors, which provide long orderly sequences of data as input to pipeline processors.
Pipelining is standard in modern microprocessors, providing high performances at a low
cost conferred by advances in VLSI circuit technology.
pipelining *Pipeline processing itself, or the use of pipeline processing.
PIPO (parallel in, parallel out) See also SHIFT REGISTER.
PISO (parallel in, serial out) See also SHIFT REGISTER.
pixel (pel) Derived from picture element. One of the elements in an *array that is holding
pictorial information. It contains data representing either directly or indirectly the
brightness and, where appropriate, colour of a small region of the image. See also DIGITAL
IMAGE.
pixel aspect ratio The ratio of width to height of a pixel on a display. Some devices
have rectangular pixels, making curve and line drawing more difficult.
pixelblt (pronounced pixelblit) (pixel block transfer) An operation that can rapidly
change the contents of a *pixmap and thus the shade or colour of the displayed image.
Pixelblt is similar to *bitblt but a number of bits representing a greyscale or colour are
used in the operation, rather than a single bit.
pixelization (space quantization) See QUANTIZATION. See also DISCRETE AND
CONTINUOUS SYSTEMS.
pixmap An array of elements, with many bits per element, that map one to one to the
colour or greyscale image on a *raster display. The elements may not specify the colour or
greyscale directly but may instead be indices into a lookup table that specifies the colour
or greyscale. Typically, 24 bits are used for each element to specify three 8-bit indices into
colour tables that define the RGB components of the colour for that pixel.
pizza-box A piece of equipment, such as a computer system box, whose dimensions are
roughly in the same proportions and size as the cardboard boxes used to transport pizzas,
i.e. the depth and width approximately equal and very much greater than the height. Such
an enclosure can be conveniently placed beneath a *monitor on a desk.
PKZIP See ZIP.
PL/1 See PL/I.
PL/360 The first machine-oriented high-level language (or *MOHLL), developed by
*Wirth as an implementation tool for Algol-W on the IBM System/360.
PLA (programmed logic array, programmable logic array) A read-only device that is a
generalized *combinational circuit and may include a *sequential circuit. By means of
connections on a semiconductor device, the PLA usually provides a ‘programmable’ *sum
of products function that feeds an output register, and sometimes an internal register.
When the internal register is used to provide part of the input variables, the PLA is a
sequential circuit; otherwise it is a combinational circuit.
The product terms in the function can be thought of as representing values that are to be
acted upon when they occur; thus the PLA is a form of fixed *associative memory or a
specialized *table lookup device adapted to the situation when the truth table has sparse
entries.
Since the PLA is made specific only by the interconnections, it represents a general-
purpose building block that requires changes in only one or two steps of the production
process to provide different functionality. PLAs can be programmed at the time of
manufacture; alternatively they may be programmed by the user, and are then called
field-programmable. See also PROGRAMMABLE DEVICE.
plaintext See CRYPTOGRAPHY.
planar graph A *graph that can be drawn on paper (with points representing vertices
and lines joining vertices representing edges) in such a way that edges intersect only at
vertices.
planning Given a description of a set of actions and a desired goal state, a plan is a
specified sequence of the actions that will allow an agent to move from a starting state to
achieve the goal state. Planning is a major branch of *artificial intelligence and planners
are often implemented as a *heuristic search process, the synthesis of a plan being seen as
finding a path from start to goal through a search space.
plasma display See PLASMA PANEL.
plasma panel (plasma display) A form of *display used in association with computer
systems in which light output is produced from the interaction between an electric current
and an ionized inert gas such as neon. The display consists of a matrix of individual cells,
one per pixel. A typical monochrome or greyscale display generates red or orange light.
Colour systems generate ultraviolet radiation, which excites phosphors (red, green, and
blue) on the surface of the display; the excited phosphors emit light on return to the
ground state.
Plasma panels are rugged, largely immune to external fields, and do not suffer from
*flicker, but have proved too expensive for general computer use. Fabrication of large
displays is possible. The device is essentially bistable so no special circuitry is required to
isolate individual cells from their neighbours.
platform A computer system whose hardware and software make it sufficiently different
from all other computers for it to be necessary to generate unique software versions for it.
For instance, the Apple Macintosh, PC-compatibles, and Sun SPARC-Stations are all
different platforms.
platten The roller, often made of a hard rubber-like substance, used in some impact
printers to provide a backing for the stationery. The platten may also drive the paper when
feeding between lines or forms (often known as friction drive). The platten is
sometimes provided with sprockets to drive continuous stationery or may be used with
separate paper *tractors.
platter The metallic substrate of a rigid *magnetic disk.
plausible reasoning Automatic reasoning techniques in *artificial intelligence that
involve some degree of risk or uncertainty and so cannot guarantee absolutely correct
solutions. Examples include the use of *probability methods, *abduction, and most
*machine learning techniques. Typical plausible reasoning problems, such as diagnosis,
illustrate their differences from the classic algorithmic/logical paradigm.
PL/C (PL/CT) See PL/I.
PLD (programmable logic device) A form of *PAL in which the outputs emerge
through output cells, an output cell being a *logic circuit that is programmable for a
number of characteristics. These characteristics include the choice of *positive or
*negative logic, whether the output can be used as an input, whether it is to be fed back
into the circuit, whether it is to emerge via a *latch, and whether it is to be *tri-state.
plesiochronous digital hierarchy See PDH.
plex A *multilinked structure consisting of a collection of cells of various sizes linked
together by pointers into essentially a connected directed *graph, possibly containing
cycles. See also LIST PROCESSING.
PL/I A programming language designed initially by the IBM users’ group SHARE, and
adopted by IBM as a major product. PL/I was intended to replace all pre-existing
programming languages, incorporating the best features of Cobol, Fortran, and Algol 60.
The resulting language is large and complex: it was taken up by only a few other
companies, and has had only limited acceptance among IBM users.
PL/I was adopted as a teaching language by a number of universities, notably Cornell,
who produced their own versions, PL/C and PL/CT. It was also used as a basis for the
microcomputer language *PL/M.
PLL (phase-locked loop) See DISK FORMAT.
PL/M A systems programming language for microcomputers in the Intel family. It is
based on and bears a strong resemblance to *PL/I. It is now superseded by C.
plotter An output device for translating information from a computer into pictorial or
graphical form on paper or a similar medium.
Formerly, plotters used pens to mimic human technical drawing. One of the simplest
implementations was the flatbed plotter. One or more pens were mounted on a carriage
that could be moved to precise positions on a bar that spanned the width of the medium,
i.e. the x-axis. The bar was mounted so that it could be moved precisely on tracks that lay
parallel to the lengthwise edge of the medium, i.e. the y-axis. It was thus possible to move
the pen to any point that lay within the available range of x and y coordinates. The pen
could either touch the surface as it moved, thus producing a line, or it could be lifted off
the surface as it moved. When drawing a diagonal line the computer generally had to
provide only the coordinates of the start and finish points. For larger drawings a drum
plotter was often used. The drawing method was the same, but the medium was wrapped
around part of the drum surface and was often wound onto take-up spools on either side of
the drum axis.
Such plotters are now rarely used. Standard *laser and *inkjet printers can produce the
same results more quickly, cheaply, and flexibly. Modern dedicated plotters generally use
inkjet technology and are distinguished by their ability to handle large paper sizes and to
accept input in special-purpose plotting languages.
plotter font See VECTOR FONT.
plug-and-play Denoting a way in which new devices may be attached to a system.
Each different type of device added to a system will require a *device driver. In many
cases the user attaching a new type of device must regenerate the operating system and
include the appropriate device driver. This is a very error-prone activity. In a plug-andplay system, the underlying operating system will detect the addition of a new type of
device, and will automatically enable the appropriate device driver.
Originally the term was descriptive of the early life reliability of products: a product
should work when delivered (plug it in and play).
plugboard Another name for patchboard.
plug compatible (plug-to-plug compatible) See COMPATIBILITY.
PMOS A type of *MOSFET.
PMS (processor-memory-switch) A notation consisting of a number of structural
primitives, such as memory, M, switch, S, processor, P, etc., connected to form a network
that describes the *architecture of a computer system. It allows complex computer systems
to be specified at many levels. At the lowest, register transfer, level it is used in
conjunction with *ISP.
pneumatic logic *Fluid logic in which the working medium is a gas.
PNG (portable network graphics) A file format for compressed bitmapped images,
designed by an Internet committee and increasingly used for Internet images.
http://www.w3.org/TR/2003/REC-PNG-20031110/
• The W3C PNG specification (second edition)
p-n junction See JUNCTION.
PNO Abbrev. for public network operator.
pnp See BIPOLAR TRANSISTOR.
P=NP question One of the major open questions in theoretical computer science at
present.
P is the class of formal languages that are recognizable in *polynomial time. More
precisely a language L is in P if there exists a *Turing machine program M and a
polynomial p(n) such that M recognizes L and
for all nonnegative integers n, where TM is the time complexity of M (see COMPLEXITY
MEASURE).
It is generally accepted that if a language is not in P then there is no algorithm
that recognizes it and is guaranteed to be always ‘fast’.
NP is the class of languages that are recognizable in polynomial time on a
nondeterministic *Turing machine.
Clearly
but the question of whether or not
has not been solved despite a great amount of research.
Contained in NP is a set NPC of languages that are called NP-complete. A language
L1 is in NPC if every language L2 in NP can be polynomially reduced to L1, i.e. there is
some function f such that
(a) x ∈ L1 iff f(x) ∈ L2
(b) f(x) is computable by a Turing machine in time bounded by a polynomial in the length
of x.
It can be shown that if any NP-complete language is also in P then P= NP.
A wide variety of problems occurring in computer science, mathematics, and operations
research are now known to be NP-complete. As an example the problem of determining
whether a Boolean expression in conjunctive normal form (see CONJUNCTION) can be
satisfied by a truth assignment was the first problem found to be NP-complete; this is
generally referred to as the satisfiability (or CNF satisfiability) problem. Despite
considerable effort none of these NP-complete problems have been shown to be
polynomially solvable. Thus it is widely conjectured that no NP-complete problem is
polynomially solvable and P ≠ NP.
A language is said to be NP-hard if any language in NP can be polynomially reduced
to it, even if the language itself is not in NP.
pocket sorting Another name for radix sorting.
podcast A package of multimedia files that can be downloaded from the Internet and
played on a computer or a mobile device. The first podcasts were of music tracks that
could be played on *MP3 players; the technique was subsequently generalized to include
other audio content and then additional file types, in particular images and video. New
podcasts are generally advertised by *web feeds, then downloaded automatically to
subscribers’ computers and, if appropriate, transferred to portable player. Established
broadcasting organizations are now making their television and radio output available as
podcasts.
point 1. To move the cursor on a screen until it reaches the desired position, item, etc.
See also POINTING DEVICE. 2. To indicate the storage location of an item of data. See also
POINTER. 3. The unit of measurement for font size. See also FONT.
point and click interface A *graphical user interface where an action is selected by
placing a *cursor over its depiction on the display using a *pointing device, and is then
initiated by *clicking.
pointer 1. (link) A value that indicates the storage location of an item of data. Thus when
a field of an item A in a data structure contains the address of another item B, i.e. of its
first word in memory, it contains a pointer to B; it is said to point to B. 2. Another name
for pointing device.
pointing device (pointer) Any means of passing spatial information to a computer
system. The computer is usually programmed to display the current position by means of
crosshairs or a cursor on the screen. The *mouse, *trackerball, *joystick, *data tablet,
*digitizer, *light pen, and *human finger are all examples of input devices.
point of presence See POP.
point-of-sale system (POS system, EPOS system) A system in which point-of-sale
terminals are used as input to a digital computer. A point-of-sale terminal is a
specialized cash register, credit-card recording system, or ticket dispenser that causes all
information on the transaction to be relayed to a central computer. Some point-of-sale
systems include credit validation. Better stock, cash, and credit control are maintained by
having the data entered into a computer as soon as it is available at the point of sale. Pointof-sale systems are also useful in monitoring petty theft of cash and merchandise.
point-to-point control See END-TO-END CONTROL.
point-to-point line A dedicated communication link that joins only two nodes in a
network. Compare MULTIDROP LINE.
point-to-point protocol See PPP.
Poisson distribution The basic discrete *probability distribution for data in the form
of counts of random events. If each event occurs with the same probability and the mean
frequency of events is μ, the probability that exactly r events will occur is
The Poisson distribution is discrete, taking the values r=0, 1, 2,… and it can be obtained
as a limiting case of the *binomial distribution as n tends to infinity while np is held fixed.
The mean and variance of the Poisson distribution are both equal to μ.
poke To modify the contents of an absolute memory location from a high-level language,
usually by means of a procedure of this name whose two arguments are the address in
question and the value to be deposited there. Compare PEEK.
Polish notation (prefix notation) A form of notation, invented by the Polish
mathematician Jan Lukasiewicz, in which each operator precedes its operands, e.g.
If all operators take exactly two operands, or if each operator has a specific number of
operands, then no brackets are required since the order of evaluation is always uniquely
defined; the notation can then be described as parenthesis-free. See also REVERSE
POLISH NOTATION.
polling The process by which one station on a *multidrop line (the primary station)
addresses another station (a secondary station), giving the secondary station access to the
communication channel. The secondary station is then able to send status information
and/or data to the primary. The primary station resumes control of the line and may send
data of its own or poll another station.
Polling is a form of *time division multiplexing. The precise polling strategy used
depends upon the application. In roll-call polling the primary station addresses each
secondary station in turn. Some stations may be addressed more often than others if their
response-time requirements or traffic loads are heavier. Hub polling is used to minimize
line turnaround delays on *half duplex multidrop lines. The primary station polls the
station at the opposite end of the line, which transmits any data it has and polls the next
closest station. This process is repeated until control reaches the primary station again.
Since data is flowing in one direction only, from the outermost nodes toward the primary
station, the only turnaround delays occur when the primary station wishes to transmit.
Polling is not suitable for situations where the response delay time is fairly large, as is
the case in satellite transmission systems.
polyadic operation An *operation that may apply to different numbers of operands on
different occasions.
polyalphabetic See SUBSTITUTION CIPHER.
polygon clipping Removal of part of an object outside a polygon (see CLIPPING).
Efficient algorithms exist that pipeline the sequence of edges that define the polygon to the
set of planes to be clipped against. Polygon clipping is particularly difficult because it is
necessary that closed polygons remain closed. Clipping a polygon can result in several
disjoint polygons. Typical algorithms include the *Sutherland–Hodgman and the *Weiler–
Atherton clipping algorithms.
polygon filling *Area filling applied to one or more polygons.
polyline A graphical output primitive consisting of a sequence of connected straight
lines.
polymarker A graphical output primitive consisting of a set of points marked with the
same shape.
polymorphic Denoting programming languages in which variables and routines can
hold, take, and return differently typed values at different times. See POLYMORPHISM.
polymorphism 1. A feature of *inheritance that allows a subclass object to be treated as
if it were one of its superclasses. Where the subclass and the superclass have different
implementations of a *method, that of the subclass is used. Polymorphism is a major
contributor to the power of *object-orientated languages. 2. A feature of several modern
high-level programming languages that allows arguments to procedures and functions to
vary systematically over a whole class of *data types, rather than being restricted to a
single type. A simple example would be a function to find the length of a list. The code for
such a function should be the same for lists of integers, lists of Booleans, or lists of
anything. In a language like Algol, however, the argument to such a function must have a
single type; hence to handle both lists of integers and lists of Booleans, two functions
would have to be defined. This can be avoided in languages that support polymorphic
types like ‘list of alpha’, where alpha is a type variable standing for an arbitrary type.
A polymorphic function is one that takes one or more arguments of polymorphic
types.
Polymorphism was first used in the *ML language. Its implementations in modern
languages are usually called generics (Ada, Java, C#, VB.NET) or templates (C++).
polynomial A formal power series, i.e. a sum of multiples of powers of an independent
variable known as the indeterminate (often written as x, s, or t), e.g.
or, in general,
The coefficients (ai) are elements of some algebraic system, S, having appropriate addition
and multiplication operations; the expression is then described as a polynomial over S. For
example, if the coefficients are all integers, the polynomial is said to be over the integers.
If ar ≠ 0 but ai = 0 for all i > r, then r is called the degree of the polynomial, usually
written
If ar=1, the polynomial is monic.
Arithmetic on polynomials consists primarily of addition, subtraction, and
multiplication of polynomials; in some cases division, factoring, and taking the greatest
common divisor are also important operations.
Addition and subtraction are done by adding or subtracting the coefficients of like
powers of x.
Multiplication is done by the rule
where
In coding theory, much use is made of polynomials over the *ring of integers modulo q,
for some integer q>1. Such polynomials themselves form a commutative *ring with an
identity. More particularly, coding theory employs polynomials over the *field of integers
modulo p, for some suitable prime number p. (For binary systems, p=2.) These
polynomials can be multiplied and divided; in general, they may be factorized. A
polynomial (over a field) that can be factorized is said to be reducible; otherwise it is
irreducible. When divided by another, a polynomial over a field gives a unique quotient
and remainder. Every such polynomial can be uniquely factorized into irreducible factors.
The set of polynomials (over a field), modulo a given monic irreducible polynomial
(over the same field), itself forms a field; this is called an extension field of the original
base field of coefficients (which were integers modulo p). Extension fields of this kind
are fundamental to much of coding theory.
The extension field of polynomials modulo G, over the integers modulo p, contains pg
elements, where g is the degree of G. G is called the generating polynomial of the
extension field. A polynomial that is an element of this field is said to be primitive if and
only if it does not exactly divide the polynomial xC−1 (over the field of integers modulo p)
for any c less than pg−1.
A practical problem of some importance is to find all the values of x that satisfy the
equation
where pn(x) is a polynomial equation of degree n. Such equations have n solutions,
called roots, which in general are complex. If the given coefficients ai are real the
complex roots occur in conjugate pairs. It is quite common for some of the roots to be
very sensitive to small changes in the coefficients, i.e. to have a large *condition number.
A single root α may be found by an iteration such as *Newton’s method or the *secant
method. The polynomial
has the same roots as pn except for α; it may be used to determine the other roots. The
process of calculating pn-1 is known as deflation, and is used after each root is found;
thus the polynomials used are of progressively lower degree. Deflation depends on the
roots being accurate. If an approximate root is used, the deflated polynomial will have
inaccurate coefficients, and possibly very inaccurate roots. To minimize deterioration of
the successive polynomials used, it is important to determine each root to the greatest
possible precision and, where feasible, to determine the roots in increasing order of
magnitude.
polynomial codes A family of *linear *error-correcting or *error-detecting codes
whose encoding and decoding algorithms may be conveniently expressed in terms of
*polynomials over a base field (and therefore easily implemented in terms of *shift
registers with *linear combinational logic).
polynomial equation See POLYNOMIAL.
polynomial interpolation See INTERPOLATION.
polynomially bounded algorithm See COMPLEXITY MEASURE.
polynomial number A number in a fixed-radix system. See NUMBER SYSTEM.
polynomial space A way of characterizing the *complexity of an algorithm. If the
space complexity (see COMPLEXITY MEASURE) is polynomially bounded, the algorithm is
said to be executable in polynomial space. Many problems for which no *polynomial time
algorithms have been found, nevertheless can easily be solved in an amount of space
bounded by a polynomial in the length of the input.
Formally PSPACE is defined as the class of formal languages that are recognizable in
polynomial space. Defining P and NP as the classes of languages recognizable in
polynomial time and recognizable in polynomial time on a nondeterministic Turing
machine, respectively (see P=NP QUESTION), it can be shown that P is a subset of
PSPACE and that NP is also a subset of PSPACE. It is not known, however, whether
although it is conjectured that they are different, i.e. that there exist languages in
PSPACE that are not in NP.
Many problems associated with recognizing whether a player of a certain game (like
GO) has a forced win from a given position are PSPACE-complete, which is defined
in a similar manner to NP-completeness (see P=NP QUESTION). This implies that such
languages can be recognized in polynomial time only if
Such problems can thus be considered to be even harder than NP-complete problems.
polynomial time A way of characterizing the *complexity of an algorithm or program.
If the number f(n) of elementary operations required to apply the algorithm of program to
data of size n increases with n no more rapidly than a polynomial p(n),
then the algorithm or program is said to be executable in polynomial time. Here time is
identified with steps in computation, such as invocations of primitive operations,
execution of basic instructions, state transitions, etc. See also COMPLEXITY MEASURE,
P=NP QUESTION.
polyphase merge sort A method of *merging in which the *keys are kept on more
than one backing store or file. Items are merged from the source files onto another file.
Whenever one of the source files is exhausted, it immediately becomes the destination of
the merge operations from the nonexhausted and previous-destination files. When there is
only one file left the process stops. The repeated merging is referred to as polyphase
merging.
PON Abbrev. for passive optical network.
pop See STACK.
PoP (point of presence) An access point to the Internet, either the geographical
location or, as a technical term, the equipment that supports the Internet access hardware
and software.
POP (post office protocol) A protocol that defines the communication between an
email client and a utility that can accept email on behalf of a user, holding it until such
time as the user wishes to recover the messages. Version 3 (POP3) is the standard protocol
for this on the Internet. See also IMAP.
POP-2 A programming language developed by the University of Edinburgh (UK) for
research in *artificial intelligence. POP-2 provided the facility to manipulate the linked
data structures characteristic of *Lisp, but retained a more familiar procedural structure,
and was thus more accessible to programmers raised in the Algol environment of the time.
*POP-11 is a modern version of POP-2.
POP-11 A programming language for artificial intelligence that claims to combine *Lisp
and *POP-2.
POP3 See POP.
P operation (down operation) See SEMAPHORE.
POPL (Principles of Programming Languages) Title of an annual conference
organized by the *ACM at which the results of much research in programming languages
are announced.
POPLOG A programming environment combining *POP-11 and *Prolog.
population See SAMPLING.
pop-up A web page, often containing advertisements, that appears unexpectedly when a
user is browsing.
pop-up menu A *menu that appears on the display when the user changes the state of a
*button or makes a selection from a *menu bar. The menu item is selected by pointing to
and clicking the desired entry.
port 1. (I/O port) A connection point with associated control circuitry that allows I/O
devices to be connected to the internal bus of a microprocessor. See also PARALLEL PORT,
SERIAL PORT, COMMUNICATION PORT. 2. A point through which data can enter or leave a
*network, either on the network or the *DTE (computer) interface. 3. To move software
from one type of computer system to another, making any necessary changes en route. In a
simple case little more than recompilation may be required, while in extreme cases the
software might have to be entirely rewritten.
portable 1. Another word for machine-independent. 2. A word applied to software that
can readily be transferred to other machines, although not actually *machine-independent.
3. A computer that can be simply carried from one place to another by one person. They
cannot necessarily be used in transit. Examples include *laptop computers.
portable network graphics See PNG.
portal A website that seeks to act as an attractive user-friendly access point to the
Internet. Portals typically provide services (email, instant messaging, games, online
shopping, etc.), content (news, listings of events, etc.), facilities for online shopping, and a
*search engine to search the rest of the Web.
portrait An orientation of a page in which the shorter side is at the top. Compare
LANDSCAPE.
POS (point of sale) See POINT-OF-SALE SYSTEM.
poset Short for partially ordered set. See PARTIAL ORDERING.
POS expression Short for product of sums expression.
positional system See NUMBER SYSTEM.
position-independent code Program code that can be placed anywhere in memory,
since all memory references are made relative to the *program counter. Positionindependent code can be moved at any time, unlike *relocatable code, which can be
loaded anywhere but once loaded must stay in the same position.
position tree Let α = a1a2…an denote a string, or *word, in the set of all Σ-words, Σ*,
and let # be in the alphabet Σ. then the position tree T(α) for α# is a tree whose edges are
labelled with elements of
and is constructed according to the following rules:
(a) T(α) has (n+1) leaves labelled
(see diagram);
(b) the sequence of labels on the edges of the path from the root to the leaf labeled i is the
*substring identifier for position i in α#.
Position tree. Tree for 10010 #
positive acknowledgment See ACKNOWLEDGMENT. See also BACKWARD ERROR
CORRECTION.
positive display A display where the image consists of dark symbols on a light
background (usually white). Positive displays are claimed by some authorities to cause
less eyestrain. With the advent of affordable colour displays with high refresh rates, the
term is rarely used today since the display presentation is largely under the user’s control.
See also PAPER WHITE DISPLAY.
positive logic 1. A logic system in which logic 1 is assigned to the higher voltage and
logic 0 to the lower voltage. 2. A logic system in which all the Boolean variables and
Boolean functions behave as described.
Compare NEGATIVE LOGIC.
POSIX Trademark An IEEE standard (P1003) that defines the behaviour of a set of
*supervisor calls, basing these closely on those found in *UNIX. However, POSIX is not
itself an operating system so much as a formal description of one form of operating system
of which UNIX is a specific instance. The intention is that a program written in such a
way as to use only those functions defined by the POSIX specifications will be readily
*portable between different operating systems, provided that these are all conformant to
the POSIX definitions.
http://standards.ieee.org/develop/wg/POSIX.html
• The IEEE POSIX Certification Authority
Postal, Telegraph, and Telephone Administration See PTT.
postcondition (of a statement S in some program) An *assertion that characterizes the
state of the program immediately after execution of S. The postcondition is expressed in
terms of properties of certain program variables and relationships between them. Where a
program text is annotated by attaching assertions, a postcondition is attached immediately
after the statement to which it relates. See also PRECONDITION.
postedit See POSTPROCESSOR.
posterization The redefining of an image so that the number of *grey levels or colours
is reduced. This enhances the boundaries between different parts of the image.
postfix notation Another name for reverse Polish notation.
PostgreSQL A popular *relational database management system. PostgeSQL began as
the POSTGRES project at the University of California, Berkeley, in the 1980s, and the
first version was released in 1989. The POSTGRES project ended in 1994, but the code
was released onto the Web in 1996; an *open-source version 6.0 was released as
PostgreSQL in 1997. Development has continued as an open source project, and the
current (2014) version is 9.3.
postmaster The activity at a site that undertakes the management of the electronic-mail
service for that site. The management activity includes dealing with the maintenance of
email addresses and with errors or failures in the mail services, as well as replying to
queries. Some of this work is carried out by computer programs while other aspects
demand human intervention. On a large site with many email users, the role of postmaster
will usually be a joint activity by several people to ensure continuity of service.
postmortem Analysis of the cause of some undesired system behaviour, based upon
information recorded at the time that the undesired behaviour was detected. For example,
*abnormal termination of a program might result in a record of the state of the program at
the time of termination, and this record might subsequently be used for postmortem
analysis of the reason for termination.
post office protocol See POP.
postorder traversal (endorder traversal) A tour of the nodes of a binary tree obtained
by using the following recursive algorithm: visit in postorder the left subtree of the root (if
it exists); visit in postorder the right subtree of the root (if it exists); visit the root of the
tree. Compare PREORDER TRAVERSAL, SYMMETRIC ORDER TRAVERSAL.
postprocessor A program that performs some operations on the output of another
program, typically formatting the output for some device or filtering out unwanted items.
This operation is sometimes called a postedit.
Post production system An approach to *effective computability on strings of
symbols, formulated by E. L. Post. A Post production is a string rewriting rule. A set L
of strings is said to be Post-generable if there exists a finite set of strings, called
axioms, and a finite set P of Post productions such that each string in the set can be
obtained from the axiom set by some finite derivation, where each step in the derivation is
sanctioned by an application of some production in P. It turns out that the class of Postgenerable sets on some fixed *alphabet A is exactly the class of *recursively enumerable
sets, order A.
Post’s correspondence problem A well-known algorithmically unsolvable *decision
problem. Given a finite set of ‘dominoes’ of the form shown in Fig. a, with u and v being
*strings, the question is whether or not one can form a sequence, as shown in Fig. b, such
that reading all the us in order gives the same string as reading all the vs. Fig. c shows
such a sequence, where Λ is the empty string. Even though there are only finitely many
different dominoes given, there is an infinite supply of duplicates for each one; the same
domino can thus be used more than once in the sequence. Dominoes cannot be inverted.
Depending on the dominoes given, it is sometimes obvious that the answer to the
question is ‘no’. However there is no algorithm that can discover this in all cases.
Post’s correspondence problem.
PostScript Trademark A high-level device-independent *page description language
developed by Adobe Systems Inc. It is a de facto *graphical device interface standard.
PostScript accurately defines pages of text and graphics, which can be rendered at a
variety of resolutions. Support for PostScript is often incorporated into the output device.
See also ENCAPSULATED POSTSCRIPT, PDF.
http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF
• The PostScript introductory tutorial and cookbook
http://partners.adobe.com/public/developer/en/ps/PLRM.pdf
• The PostScript language reference (3rd edition)
PostScript font A form of scalable outline font introduced by Adobe Inc. The most
common form is the Type 1 font (a Type 3 PostScript font format also exists but is
little used). PostScript fonts are, at present, the main fonts that are used in the printing
industry. The outlines are based on Bézier curves, and every weight or style of the font
needs two files. On a Windows system, there is a .pfm (printer font metrics) file
containing the metrics and a .pfb (printer font binary) file containing the outlines. Similar
files are used on the Macintosh.
Multiple-master fonts are an extension of the Type 1 format, allowing a user-defined
variation in some font property (e.g. font weight).
See also OPENTYPE FONT, TRUETYPE FONT.
POTS Colloquial acronym for plain old telephone system.
Powell’s algorithm An algorithm that minimizes a function of several variables
without calculating derivatives. The method searches to find a direction in which the
function decreases and then moves to a new point in that direction. It then searches from
this new point. The process continues until no direction can be found that will decrease the
function.
power down See POWER OFF.
power-fail recovery A method of dealing with the effects of a loss of the incoming
power supply. The system is equipped with a power-line monitor, which detects any longterm deviation in the supply-line voltage from acceptable limits, and causes a power-fail
interrupt when deviations occur. The service routine for this interrupt stores the
*process descriptors for all processes in *nonvolatile memory and then halts all activity.
When the supply-line voltage is restored, the system restarts and can reinstate all
processes from the previously stored process descriptors.
power-limited channel A physical transmission channel whose rate of throughput of
energy is limited to some value. See CHANNEL CODING THEOREM, CURRENT LIMIT, OVERVOLTAGE, SIGNAL-TO-NOISE RATIO.
power management Operation of a computer so as to minimize electric power
consumption. This is especially important in battery-powered systems, but is now to be
found in mains-powered systems. The economies are achieved by shutting down, or
reducing power to, high-consumption components after they have been idle for a short
period, and starting them up again as soon as any input activity is detected.
power method A method of finding the eigenvalues of a matrix (see EIGENVALUE
PROBLEMS)
by successively multiplying a starting vector by the matrix. Convergence
depends on the properties of the matrix and in the case of complex eigenvalues further
work is needed to find them after convergence.
power off (power down) To switch off an electrical or electronic device.
power on (power up) To switch on an electrical or electronic device.
PowerPC A *RISC microprocessor chip designed in 1991 by a partnership between
IBM, Apple, and Motorola. The processor has a 64-bit architecture. The initial 601 chip
was followed by the 603 and 620 versions. From the 740 onwards, better performance and
reliability was obtained by using copper (instead of aluminium) in the manufacturing
process. The chip appeared in Apple’s PowerMac systems until 2006 and is still used in
IBM systems using the AIX operating system. It is also widely used in embedded systems
and *games consoles.
power routing See LOGIC CIRCUIT.
power set (of a *set S) The set of all *subsets of S, typically denoted by 2S. It can be
described as
The number of elements in the power set of S is 2N, where N is the number of elements in
S.
power up See POWER ON.
ppm Abbrev. for pages per minute.
PPP (point-to-point protocol) A protocol allowing *IP (Internet Protocol) traffic to
be handled on a serial line.
pragma 1. A statement in a programming language that is intended to convey
information to a particular implementation, and can be ignored in other implementations
of the language. 2. A statement in a programming language that provides information that
may assist the compiler in translating the program, but can be ignored without affecting
the correct working of the program.
preamble sequence The set of signals preceding genuine data in a transmission. The
term is most commonly used in connection with *Ethernet (CSMA/CD) signalling, where
each packet is preceded by a sequence of alternate 1s and 0s to allow the receiving system
to synchronize its local clock with that of the transmitter.
precedence The rules determining the order in which operations are carried out, if this is
not defined unambiguously by brackets. For example, in most languages the expression
will be evaluated by doing the multiplication first, and brackets would be used to enforce
the alternative order thus:
There is no consensus about precedence of operations in language, particularly when new
operators may be introduced. A simple order used in *Pascal is as follows:
unary NOT
multiplying operators
adding operators
relational operators
Other languages may have further operators such as exponentiation and further categories
such as logic operators, whose position in the order would be defined. Operators of the
same precedence are usually applied in order from left to right, but in some languages the
order is undefined.
precedence parsing A *bottom-up parsing technique that exploits precedence relations
on the symbols of the grammar to decide when a string of symbols may be replaced, i.e.
form a handle. Two precedence parsing techniques, operator precedence and simple
precedence, are in common use.
In simple precedence three relations, <● ●> and,≐ are defined on the symbols (terminal
and nonterminal) of the *grammar. If
then, respectively, X is said to yield precedence to Y, have the same precedence as Y, or
take precedence over Y. Note that these relations are not symmetric. By inserting the
precedence relations between symbols in a sentential form and then regarding the <● and
●> symbols as matching brackets, a handle is determined as the leftmost string delimited
by <● at its left end and ●> at its right end.
Operator precedence differs from simple precedence in that the three precedence
relations are defined on just the terminal symbols of the grammar. Furthermore the
grammar must satisfy the property that nonterminals on the right-hand side of a production
must always be separated by at least one terminal.
Arithmetic expressions provided the original motivation for operator precedence since
conventionally multiplication takes precedence over addition. Simple precedence is a
generalization of operator precedence. Both methods are limited in the scope of their
application to grammars for which at most one precedence relation exists between any
ordered pair of symbols. In addition the right-hand side of productions must be unique.
precision The number of digits to which numbers are represented. For example, if p bits
are allocated to the mantissa in the representation of floating-point numbers used in a
particular computer, then in that computer floating-point numbers have p bits of precision.
In general, the precision of floating-point numbers is proportional to their value (i.e.
relative) whereas the precision of fixed-point numbers is absolute (independent of the
value).
It is important not to confuse the term precision with accuracy. For example, the
number
has eight-decimal digit precision, irrespective of what it represents. If this number
represents 22/7 then it is also accurate to eight decimal digits but if it represents the
irrational number π then it is accurate only to three decimal digits.
precondition (of a statement S in some program) An *assertion that characterizes the
state of the program immediately prior to execution of S. The precondition is expressed in
terms of properties of certain program variables and relationships between them. Where a
program text is annotated by attaching assertions, a precondition is attached immediately
before the statement to which it relates. For a consistent annotation the precondition of S
must be implied by the *postcondition of any statement whose execution can immediately
precede execution of S. See also WEAKEST PRECONDITION.
predicate A *function from some domain to a truth value. If the domain comprises n
variables
the function is called an n-place predicate. In the special case where n = 0, the predicate is
a statement. Predicates are the fundamental building blocks of the *predicate calculus.
predicate calculus (predicate logic, first-order logic) A fundamental notation for
representing and reasoning with logical statements. It extends *propositional calculus by
introducing the *quantifiers, and by allowing *predicates and *functions of any number of
variables. The syntax involves *terms, atoms, and formulas. An atom (or atomic
formula) has the form P(t1,…,tk), where P is a predicate symbol and t1,…,tk are
terms. Formulas may be built from these atoms in the following ways:
(a) any atom is a formula;
(b) formulas can be combined by the usual propositional connectives (*negation,
*conjunction, *disjunction, etc.);
(c) if F is a formula, then ∀v.F and ∃v.F are also formulas (see QUANTIFIER).
A sentence is a formula with no *free variables. An example of a sentence is
where ↔ signifies the *biconditional and G is a predicate symbol, f is a function symbol, x
and y are variables, and c is a constant symbol. The overall meaning of a sentence (true or
false) depends on the *interpretation given to the symbols occurring in it. For example, let
G be interpreted as the predicate ‘greater than’, f as the operation of multiplication, and c
as the number 1. Then the above sentence says that a number x is greater than 1 if and
only if it has the property that, for all y, xy is greater than y. This is true if the domain of
interpretation is the *natural numbers, but not if it is the integers (because of the
possibility of negative y).
Predicate calculus can claim to be a fundamental logical language since all the more
complicated logics can, in some sense, be reduced to it. A simple but practically important
extension is many-sorted predicate calculus. Here there are several sorts of
variables, and the operations and relations come from a many-sorted *signature.
Another possible extension is second-order logic, which allows predicate and
function variables, such as P in the following:
(∧ and ⇒ signify *conjunction and *conditional.) This example, given the appropriate
interpretation of a and s, expresses a principle of *induction: if P is true for zero, and true
for k+1 whenever it is true for k, then it is true for all n. Again this sentence holds for
natural numbers but not integers.
Applications of predicate calculus in computer science are commonplace and include
formal *specification, *program correctness, *logic programming, and *databases. See
also MODAL LOGIC.
predicate transformer A function that maps predicates to predicates. Specifically, the
predicate transformer for some statement S is a function that maps some predicate R into
the *weakest precondition of S with respect to R. The term was introduced by *Dijkstra in
1975 in conjunction with a calculus for the derivation of programs; this provides for
development of a program to be guided by the simultaneous development of a total
correctness proof for the program. See PROGRAM CORRECTNESS PROOF.
predictive PCM See PULSE CODE MODULATION.
predictor-corrector methods The standard approach in the implementation of
*linear multistep methods for the solution of *ordinary differential equations. Two such
formulae are used on each step, one of which is implicit (see LINEAR MULTISTEP
METHODS). An example of such a formula pair are Euler’s method (see DISCRETIZATION)
and the trapezoidal rule (see ORDINARY DIFFERENTIAL EQUATIONS). A predictor-corrector
method based on these formulae has the form
This permits the more accurate implicit formula to be used effectively, without solving an
equation for yn+1, and provides an estimate for the *local error, namely ypn+1 − yn+1. Such
estimates are used to control accuracy and *stability.
pre-emptive allocation An allocation that removes a resource from one *process and
transfers it to another. When a process requests use of a resource, the appropriate resource
controller will at some stage assign the resource to the process. A resource such as a
processor is used for a period of time, during which no other process can use the resource.
If during this period of use a second process becomes available to run, the processor
scheduler may pre-empt the processor and transfer it to the second higher-priority process.
A more important type of pre-emptive allocation arises when a nonsharable resource,
such as a tape transport, has been allocated to a process but not yet used by it. If a second
process requests a tape transport then use of the transport may be denied the first process,
and the transport pre-empted for use by the second process.
prefix (of a string α) Any string β where α is the *concatenation βγ for some string γ.
Thus in coding theory, a word is said to be a prefix of another word if the former word
matches the first symbols of the latter. See also PREFIX CODES.
prefix codes Codes in which no codeword is a *prefix of any other codeword. The idea
is usually applied to *variable-length codes. A prefix code has the property that, as soon as
all the symbols of a codeword have been received, the codeword is recognized as such.
Prefix codes are therefore said to be instantaneously decodable. (They are of
necessity *uniquely decodable.)
prefix notation Another name for Polish notation.
prefix property The property that no codeword is the *prefix of any other codeword.
See PREFIX CODES.
PREMO An ISO/IEC standard under development for the PREsentation of Multimedia
Objects.
preorder traversal A tour of the nodes of a binary tree obtained by using the following
recursive algorithm: visit the root of the tree; visit in preorder the left subtree of the root
(if it exists); visit in preorder the right subtree of the root (if it exists). Compare
POSTORDER TRAVERSAL, SYMMETRIC ORDER TRAVERSAL.
preprocessor A program that performs modifications to data in order to make it suitable
for input to another program, especially a *compiler. The modifications may be simple
changes of format, or may include *macro expansions.
presentation graphics A field of computer graphics that is limited to the production of
the line graphs, bar charts, and pie charts used as visual aids in the presentation of
quantitative information on trends and statistics.
presentation layer (of network protocol function) See SEVEN-LAYER REFERENCE
MODEL.
prestore To store, in advance, data needed by a program, or storage of such data.
preventive maintenance (routine maintenance) Maintenance performed on a regular
basis, and intended to prevent failures or to detect incipient failures. An example of the
former is routine lubrication and cleaning of devices that have moving magnetic media.
An example of the latter is a marginal check in which electrical parameters may be
varied to induce failures in marginally performing circuits. Compare REMEDIAL
MAINTENANCE.
PRF Abbrev. for pulse repetition frequency.
PRI (primary-rate ISDN) See ISDN.
primary index See INDEXED FILE.
primary key A key that uniquely identifies each row of a table in a relational database.
It may be composed of one or more columns and must not have the value *null. Tables do
not need to have primary keys, and indeed they are no more significant than other keys in
the relational database model. Rather, they are an indication to the database management
system of a good way to identify each row. Some DBMSs insist they be present for some
operations.
primary memory Another name for main memory, specifically the form used as the
medium for storing instructions and data that are currently undergoing processing by a
CPU.
prime implicant See IMPLICANT.
primitive 1. Not capable of being broken down into simpler form; nondivisible. The
term is used for example with reference to actions requested by a process via supervisor
calls, especially the use of P and V operations (see SEMAPHORE). 2. A primitive operation,
action, element, etc. See also GRAPHICS PRIMITIVE.
primitive element An element α of a *finite field F whose various powers,
will ultimately include all the nonzero elements of F. Every finite field contains such an
element.
primitive polynomial See POLYNOMIAL.
primitive recursion In the study of *effective computability, a particular way of
defining a new function in terms of other simpler ones. The functions involved are
functions over the nonnegative integers. Primitive recursion is then the process of defining
a function f of n+1 variables in the following manner:
where g and h are functions of n and n+2 variables respectively. See also PRIMITIVE
RECURSIVE FUNCTION.
primitive recursive function A *function that can be obtained from certain initial
functions by a finite number of applications of *composition and *primitive recursion.
The initial functions are normally the *zero function, *successor function, and *projection
(or generalized identity) functions, where all functions are defined on the nonnegative
integers. Primitive recursive functions are *total functions, defined in a simple way by
*induction. There is also a notion of primitive recursive set, namely one whose
*characteristic function is primitive recursive.
The arithmetic functions of addition and multiplication are examples of primitive
recursive functions. Indeed most of the functions and sets on natural numbers that we wish
to compute are primitive recursive.
The idea can be generalized: for example, a primitive recursive function on lists
satisfies a definition analogous to the one given above, with the successor function adding
an element to the front of a list.
See also RECURSIVE FUNCTION.
primitive recursive set See PRIMITIVE RECURSIVE FUNCTION.
primitive type A *data type, such as integer, real, logical, and character, that is made
available to the user by the basic hardware. More complex data structures are built up
from the primitives, usually by software.
Prim’s algorithm A method of finding the minimum-cost *spanning tree of a weighted
undirected *graph, developed by R. C. Prim (1957).
principal component analysis See MULTIVARIATE ANALYSIS.
printed circuit A physical realization of an electronic circuit design in which the
connections between the terminals of individual components are formed from copper
conductors supported by a sheet of an insulating material such as fibreglass. The
conductor pattern is normally printed and etched onto the sheet and components are then
attached to the copper ‘lands’ by hand or dip soldering. The supporting sheet plus circuit is
known as a printed circuit board (PCB).
Double-sided and multilayer PCBs are commonly produced. These consist of insulating
sheets (normally known as PCB laminate) with a circuit on each side, with
interconnections possible between the two layers.
printed circuit board See PRINTED CIRCUIT.
printer An output device that converts the coded information from the processor into a
readable or pictorial form on paper or transparent media. There are many types, varying in
method, speed, and quality of printing: there are *serial printers, *line printers, and *page
printers, and these may be *solid-font or *matrix printers. Many matrix printers, including
laser and inkjet printers, can act as *plotters. Printer technology may or may not use
mechanical impact to transfer ink (see IMPACT PRINTER, NONIMPACT PRINTER).
printer format (print format) The *format for printed output, defining the character
and line spacing and the areas of the page where printing will occur. The format aspect
that is often different for each job involves the lines on which printing is not required; this
is controlled by a vertical format unit. Modern serial and *page printers allow the host
system to control all aspects of the format by the use of control codes or *page description
languages.
printout The output of a printer. It may be a stack of fanfolded paper prior to any
bursting or trimming operations. The majority of desktop printers print onto single sheets
of paper. See also STATIONERY.
print quality The characteristics of the printed characters on a *printout that make them
acceptable for their application. These characteristics include degree of conformity with
the intended shapes of the characters, uniformity of limb width, uniformity of print
density, contrast with the paper, amount of smudging, accuracy of location of the
characters compared with their intended positions on the paper, and amount of extraneous
ink (or toner in an *electrophotographic printer). The print quality depends on the type of
*printer, its age, cleanliness, and condition, the type and amount of previous use of the
*ribbon (on impact printers), and the characteristics of the *stationery. The presence of
streaks or bands of missing print is usually an indication of the need to replace ink or toner
or the need to clean the print mechanism.
The basic print quality requirement is that all characters must be legible out of context.
In the most demanding application, the printed page must have all characters accurately
and completely printed with uniform density and high contrast, and no visible flaws. Print
quality close to this is known as letter (or correspondence) quality; it is intended to
match the quality attainable with a good typewriter. In general, slower impact printers
produce higher-quality print but the highest quality is available from *laser printers and
*inkjet printers.
Some printouts are intended for data capture via *OCR equipment; examples are debit
and payment slips and cheques. These must conform to the standards specifying font
shape (e.g. OCR B) and with the minimum print-quality standards specified for OCR.
These are international standards.
print server See SERVER.
prioritize To put into an order according to the relative urgency or importance. In a
multiprogramming environment the programs should be prioritized so that urgent jobs are
not delayed by background processing tasks. Program interrupts should be similarly
treated. See also INTERRUPT PRIORITY.
priority Relative importance or urgency. Priority is the quality of having precedence, i.e.
requiring early attention, and can be quantified by numerical value, which is used to
determine the order in which several requests for a resource are satisfied. In the situation
where several otherwise identical processes are free to run, the one with the highest
priority will be run next, hence the term priority processing. A priority interrupt
in a system will be dealt with ahead of standard interrupts that may be awaiting a
response. In data transmission a field is allocated to the holding of a code that indicates the
relative urgency of the associated message. See also INTERRUPT I/O, INTERRUPT
PRIORITY.
priority encoder See ENCODER.
priority interrupt See INTERRUPT PRIORITY, INTERRUPT I/O PRIORITY, PRIORITY.
priority processing See PRIORITY.
priority queue A linear *list where each insertion specifies a priority number as well as
the element to be inserted, and each removal or access takes the earliest of the elements
with highest priority. It is usually implemented as a *heap.
privacy Roughly speaking, the right to be left alone. The law on privacy is vague and
largely judge-made in both the USA and the UK. It is complicated by cases on *trade
secrets and has been overtaken by the computer-related version of privacy, data protection.
See DATA PROTECTION LEGISLATION.
With regard to protection against unauthorized reading of computer data, i.e. to the
privacy of data, there are two concepts.
1. Protection of data about an individual or corporate entity. Where data can be determined
to refer to a specific person, or in some cases to a specific organization, there may exist
a legal right to limit access to that data and, in many cases, associated rights to
guarantee accuracy and completeness. This form of privacy exists only for data about
an identifiable individual, and exists to protect the rights of the individual to whom the
data refers. See DATA PROTECTION LEGISLATION.
2. Protection of data owned by an individual or corporate entity. Where data is deemed to
be in some sense the property of someone (or some group) there may exist a right to
limit access to that data. This form of privacy exists for data belonging to someone, and
exists to protect the rights of the owner of the data. See TRADE SECRETS. See also
INTEGRITY, SECURITY.
private IP address One of a range of IP addresses set aside for use within private
networks by RFC1918 for IPv4 and RFC4193 for IPv6. Private addresses are not globally
unique, so must not be connected directly to the Internet. *Routers will normally never
route packet using private IP addresses over internetworks. A *proxy or *network address
translation is normally used to give computers with private addresses access to the
Internet.
private key See PUBLIC KEY ENCRYPTION.
privileged instructions Instructions that can only be issued when a computing system
is operating in one of the high, or the highest, *execution states.
probabilistic compaction (probabilistic compression) A *data compaction code in
which the *encoding (and therefore *decoding) table is constructed using a previously
formed estimate of the *probabilities of the symbols in the messages—files or data stream
—intended for future compaction (compare STATISTICAL COMPACTION).
The decoding table need not be stored or transmitted along with the compacted text,
since it need be recorded only once within the filing system, or made known only once to
the receiver of the data stream, for all future files or messages. The disadvantage,
however, of probabilistic compaction is that no one estimate of probabilities will be a
perfect fit with the statistics of any given file or message. A useful compromise is to have
a set of probability tables, each tailored to one kind of data (source programs, object
programs, plaintext, and so on); this is called generic compaction.
probabilistic reasoning Problem-solving techniques based on the use of probability
theory for weighing evidence and inferring conclusions. See BAYES’S THEOREM, BELIEF
SYSTEMS, PROBABILITY.
probability A number between 0 and 1 associated with an event (see RELATIVE
FREQUENCY)
that is one of a set of possible events: an event that is certain to occur has
probability 1. The probability of an event is the limiting value approached by the relative
frequency of the event as the number of observations is increased indefinitely.
Alternatively it is the degree of belief that the event will occur.
The concept of probability is applied to a wide range of events in different contexts.
Originally interest was in the study of games of chance, where correct knowledge of
probability values allowed profitable wagers to be made. Later the subject was studied by
insurance companies anxious to predict probable future claims on the basis of previously
observed relative frequencies. Today probability theory is the basis of statistical analysis
(see STATISTICAL METHODS).
The probability calculus is the set of rules for combining probabilities for
combinations of events, using the methods of symbolic logic applied to sets.
See also PROBABILITY DISTRIBUTIONS.
probability calculus See PROBABILITY.
probability distributions Theoretical formulas for the *probability that an
observation has a particular value, or lies within a given range of values.
Discrete probability distributions apply to observations that can take only certain
distinct values, such as the integers 0, 1, 2,… or the six named faces of a die. A
probability, p(r), is assigned to each event such that the total is unity. Important discrete
distributions are the *binomial distribution and the *Poisson distribution.
Continuous probability distributions apply to observations, such as physical
measurements, where no two observations are likely to be exactly the same. Since the
probability of observing exactly a given value is about zero, a mathematical function, the
cumulative distribution function, F(x), is used instead. This is defined as the
probability that the observation does not exceed x. F(x) increases monotonically with x
from 0 to 1, and the probability of observing any value between two limits, x1 and x2, is
This definition leads, by differential calculus, to the frequency function, f(x), which is
the limiting ratio of
as h becomes small, so that the probability of an observation between x and (x + h) is
h.f(x). The most important continuous distribution is the *normal (or Gaussian)
distribution.
Probability distributions are defined in terms of *parameters, whose values determine
the numerical values of the probabilities.
probit analysis A statistical technique used to relate the proportion of subjects
responding to the strength of an applied stimulus. The stimulus is often applied in a series
of increasing amounts in geometrical progression, and the proportion responding is
modelled by the cumulative normal frequency distribution (see PROBABILITY
DISTRIBUTIONS). The method estimates the median effective stimulus or LD50 and
the slope of the response. It is widely used in pharmacology, biology, and in testing the
safety of products.
problem definition A precise statement of some problem to be solved, with the
emphasis on providing a complete and unambiguous definition of the problem rather than
an easy introduction to it.
problem description A self-contained overview of some problem to be solved,
perhaps with accompanying information on constraints that the solution must respect,
possible approaches to the solution, etc.
problem-oriented language A programming language whose control structures and
(in particular) data structures reflect in some measure the characteristics of a class of
problems, e.g. commercial data processing or scientific computation. By contrast, the
structures of a machine-oriented language reflect the internal structure of the underlying
machine.
procedural abstraction The principle that any operation that achieves a well-defined
effect can be treated by its users as a single entity, despite the fact that the operation may
actually be achieved by some sequence of lower-level operations (see also ABSTRACTION).
Procedural abstraction has been extensively employed since the early days of computing,
and virtually all programming languages provide support for the concept (e.g. the
SUBROUTINE of Fortran, the *procedure of Algol, Pascal, Ada, the function of C,
C++, and Java).
procedural cohesion See COHESION.
procedural language An *imperative *procedure-oriented language.
procedure A section of a program that carries out some well-defined operation on data
specified by *parameters. It can be *called from anywhere in a program, and different
parameters can be provided for each call.
The term procedure is generally used in the context of high-level languages; in
assembly language the word *subroutine is more commonly employed.
procedure-oriented language A programming language that enables a program to be
specified by defining a collection of *procedures. These procedures may call each other,
and are called by the main program (which can itself be regarded as a procedure).
process 1. (task) A stream of activity. A process is defined by its code, i.e. the ordered
set of machine instructions defining the actions that the process is to take, the contents of
its *workspace, i.e. the set of data values that it can read, write, and manipulate, and its
*process descriptor, which defines the current status of any resources that are allocated to
the process. 2. To carry out the actions defined by the sequence of instructions that make
up the code of a program.
process algebra The algebraic study of abstract computing processes. Suppose that
there is a set A of basic computational actions (such as assignments, tests, sends, requests),
and that these actions can be combined to form finite and infinite processes. There are a
number of operations that, given two processes p1 and p2, can form new processes;
examples are the sequential composition p1.p2 and parallel composition p1ǁp2 of
the processes. There is a great deal of freedom to define and interpret such operations and
the processes they create, especially if the actions and processes may exist concurrently
and communicate in various ways. Methods of communication and cooperation between
processes are at the heart of process algebra. Process algebra studies semantic ideas using
mainly standard algebraic methods, including: axiomatic theories whose axioms are often
equations; equivalence relations (e.g. several kinds of bisimulation); algebraic
constructions; and computable algebras. An example of a set of axioms for process
algebra is the set ACP of J. A. Bergstra and J. W. Klop; this was developed from earlier
work on *process calculuses by R. Milner and others, and has subsequently been extended
and adapted to express the huge range of semantic phenomena exhibited in modern
concurrent communicating systems.
The motivation behind process algebra is to model computing systems using processes
and to specify the systems by equations based on appropriate operators on processes. Thus
concurrent computing systems are specified by equations and their semantics are obtained
by solving fixed-point equations. Various related semantic and logical methods are used,
including: *initial algebra semantics; *operational semantics based on transition systems;
metric space and topological methods; and *modal and *temporal logics for reasoning
about processes.
Process algebra has the potential to become a general theory of computing, relevant to
system modelling and parallel-program development. There is much research needed to
develop its foundations, tools, and applications.
process calculus The study of abstract computing processes by means of various
formal systems and calculuses. An early influential calculus was the calculus of
communicating systems (CCS) of R. Milner. This has given rise to many adaptations and
new approaches to a theory of processes. For example, it led to the systematic
development of *process algebra to which many process calculuses may be said to belong,
and it inspired an influential reformulation of the parallel language *CSP as a process
calculus by C. A. R. Hoare.
process control Use of a dedicated computer (known as a process controller) to
control a specific industrial or manufacturing process. Information (sensed) from that
process is used as a source of data; computations made upon that data determine control
signals to be sent to the process. The computations may involve some statistical properties
(such as moving average) for statistical process control.
In general there are two forms of process control: continuous and discrete.
Continuous process control is involved with the manufacturing of some form of
continuous product, primarily chemicals, an example being the automatic control of a
catalytic cracker for petroleum distillation. Although chemicals may be manufactured in
batches, this is still considered a continuous process since the variables that control the
process can be varied continuously. Discrete control is concerned with the manufacturing
of individual (discrete) items, as in the welding of two parts to form a larger assembly.
Discrete process control has strong connections with *industrial robotics. See also
COMPUTER-AIDED MANUFACTURING, COMPUTER-INTEGRATED MANUFACTURING,
NUMERICAL CONTROL.
process descriptor A set of information that defines the status of resources allocated to
a *process. When a system contains a number of processes, any of which may be active at
any one time, there will be for each process a descriptor defining the status of that process.
Within the descriptor the ready indicator shows whether the particular process is able to
proceed, or whether it must await the completion of some other activity before it can be
executed by the CPU. For processes that are unable to run, the process descriptor will
indicate the reason for which that process is suspended and will contain pointers to
relevant queues and semaphores. The process descriptor will also contain a copy of the
contents of the processor registers that are to be reinstated when the process is restarted.
When a process is running, the process descriptor will contain information (the resource
descriptor) on the resources allocated to the process and on the permissible operations
on these resources.
process model See SOFTWARE DEVELOPMENT PROCESS MODEL.
process modelling A form of modelling where the model produced is a *software or
system development process.
processor A computer, usually/often the *central processor. See also COMMUNICATION
PROCESSOR, I/O PROCESSOR, MICROPROCESSOR.
processor allocation The measure of the amount of processor resource that is available
to a *process. Normally the allocation will be expressed as a time, or as a number of
instructions to be executed.
processor status word (PSW) A word that describes fully the condition of a processor
at each instant. It indicates which classes of operations are allowed and which are
forbidden, and the status of all interrupts associated with the processor. It will also contain
the address of the instruction currently being executed. The PSW is held in a *register
known as the processor status register. See also PROGRAM STATUS WORD.
processor time (CPU time) The time for which a *process has been receiving service
from the processor. See also SYSTEM ACCOUNTING.
product group Another name for direct product.
production See GRAMMAR, SEMI-THUE SYSTEM.
production rule system (production system) A programming language in which the
programs consist of condition ⇒ action rules; these rules are known as productions
or production rules. The programs are processed by an interpreter which repeats the
following operations: all rules whose conditions are satisfied are found (rule matching),
one of them is selected (conflict resolution), and its action is called (rule firing). Such
systems are often known as rule-based systems in artificial intelligence and form the
basis of many *expert systems.
production run Execution of a program in the normal way to produce useful results.
Compare DRY RUN.
productive time See AVAILABLE TIME.
product of sums expression (POS expression) A *Boolean function expressed as a
product of sum terms, i.e. as an AND of OR terms containing uncomplemented or
complemented variables. An example is
The function is also realizable as the NOR of a group of NOR terms. See also STANDARD
PRODUCT OF SUMS, SUM OF PRODUCTS EXPRESSION.
product term A product (AND) of Boolean variables, uncomplemented or
complemented. See also SUM OF PRODUCTS EXPRESSION.
profiling Production of a histogram (or equivalent) concerning some aspect of a system.
For example, an execution profile for a program might show the proportion of time
spent in each individual procedure during a run of the program, while a statement
profile might show the distribution of the statements in a program between the different
kinds of statement provided by the language.
program A set of statements that (after translation from programming-language form
into executable form—see COMPILER) can be executed by a computer in order to produce
a desired behaviour from the computer. A procedural program gives a precise
definition of the procedure to be followed by the computer system in order to obtain the
required results. By contrast, a nonprocedural program specifies constraints that
must be satisfied by the results that are produced but does not specify the procedure by
which these results should be obtained; such a procedure must be determined by a
problem-solving shell based on the defined constraints.
program analysis See STATIC ANALYSIS.
program compatibility A measure of the degree to which programs can effectively be
used together in a common environment. Factors affecting program compatibility include
machine and operating system dependencies, and the structure of the data that are read and
written by the programs.
program control Control of a computer’s functioning by a sequence of instructions
that comes from a memory and is called the program.
program correctness proof A formal mathematical demonstration that the
*semantics of a program are consistent with some specification for that program (see
PROGRAM SPECIFICATION). There are two prerequisites to the provision of such a proof:
there must be a formal specification for the program, and there must be some formal
definition of the semantics of the programming language. Such a definition may take the
form of a set of *axioms to cover the semantics of any simple statement in the language,
and a set of *inference rules that show how the semantics of any compound statement,
including a complete program, can be inferred from the semantics of its individual
component statements (simple or compound).
For a typical sequential program written in some *imperative (procedural) language, the
program specification can conveniently be given in the form of two *assertions: an input
assertion and an output assertion. These are expressed in terms of properties of
certain program variables and relationships between them. The proof then consists of a
formal demonstration that the semantics of the program are consistent with the input and
output assertions; this demonstration is of course based upon the formal definition of the
semantics of the programming language. Interpreted operationally, the assertions
characterize program states and the proof shows that if execution of the program is
initiated in a state for which the input assertion is ‘true’ then the program will eventually
terminate in a state for which the output assertion is ‘true’.
This kind of proof is known as a proof of total correctness. Historically, however,
such a proof has often been resolved into two parts: first, a proof of partial
correctness, which shows that if the program terminates then it does so in a state for
which the output assertion is ‘true’, and second, a proof of termination, which shows
that the program will indeed terminate (normally rather than abnormally).
A common approach to the proof of partial correctness begins by attaching the input
and output assertions to the program text at the very beginning and very end respectively.
Further assertions, called intermediate assertions, are attached to the program text
both before and after every statement (simple or compound). The assertion attached
immediately before and immediately after a statement are known respectively as the
*precondition and *postcondition of that statement.
The proof of partial correctness consists of a formal demonstration that the semantics of
each statement in the program, whether simple or compound, are consistent with its
precondition and postcondition. This demonstration can begin at the level of the simple
statements and then proceed through the various levels of compound statement until
eventually it is demonstrated that the semantics of the complete program are consistent
with its precondition and postcondition, i.e. with the input assertion and the output
assertion. The semantics of an individual statement are shown to be consistent with its
precondition and postcondition by applying to the precondition and postcondition the
appropriate axiom or inference rule for that statement. This yields a theorem, called a
verification condition, that must be proved using conventional mathematics in order
to demonstrate the required consistency.
Note particularly that the overall proof of correctness is achieved not by consideration
of execution histories, but rather by treating the program as a static mathematical object to
which certain axioms and inference rules apply.
The central problem with such a proof is the devising of the intermediate assertions.
This requires a full appreciation of the design of the program and of the semantics of the
programming language. Often the key lies in finding appropriate intermediate assertions to
attach inside the various loops in the program, i.e. loop *invariants. Devising intermediate
assertions for some arbitrary program is often extremely difficult and a constructive
approach, in which program and proof are developed together, is definitely preferable.
In order to present a proof of termination it is necessary to demonstrate first that the
program does not suffer from abortive termination and second that the program does not
endlessly repeat some loop. A demonstration of the former may become very complex,
e.g. it may be necessary to demonstrate that arithmetic overflow will not occur. A
demonstration that the program will eventually exit from some loop can be based on a
*well-ordered set. For example, suppose that for some loop an expression E can be found
such that the loop can be shown to terminate immediately if the value of E is negative.
Further suppose that the value of E can be shown to decrease on each iteration around the
loop. It then follows that the loop must terminate.
Proofs of correctness do not offer a complete solution to the problems of software
reliability in practical systems. The sheer size and complexity of proofs presents many
difficulties that are only partly alleviated by *mechanical verifier systems. Issues such as
the limitations of computer arithmetic, indeterminacy, and parallelism all present
additional problems. It may be very difficult to develop a specification against which to
verify a program, and impossible to demonstrate that this specification is itself ‘correct’ in
that it properly reflects the intentions of the developers (and even more difficult to prove
that it satisfies the needs of the intended users).
Work on proofs of correctness has made a major contribution to software engineering in
that many advances in the understanding of programming languages, principles, and
methods have their origins in this work. In addition the scope for practical applications of
program proofs is growing and the formal approach to program correctness is of
increasing significance.
program counter (instruction counter, current address register) A counting
*register that normally increments in each instruction cycle to obtain the program
sequence (i.e. the sequence of instructions) from memory locations. This counter will have
its contents changed by branch instructions to obtain the next instruction from the branch
target. The program counter forms part of the *processor status word; this enables
subsequent restarting of an interrupted program.
program decomposition The breaking down of a complete program into a set of
component parts, normally called modules. The decomposition is guided by a set of design
principles or criteria that the identified modules should reflect. Since the decomposition
determines the coarse structure of the program, the activity is also referred to as highlevel or architectural design. See also MODULAR PROGRAMMING, PROGRAM DESIGN.
program design The activity of progressing from a specification of some required
program to a description of the program itself. Most phase models of the *software life
cycle recognize program design as one of the phases. The input to this phase is a
specification of what the program is required to do. During the phase the design decisions
are made as to how the program will meet these requirements, and the output of the phase
is a description of the program in some form that provides a suitable basis for subsequent
implementation.
Frequently the design phase is divided into two subphases, one of coarse
architectural design and one of detailed design. The architectural design produces
a description of the program at a gross level; it is normally given in terms of the major
components of the program and their interrelationships, the main algorithms that these
components employ, and the major data structures. The detailed design then refines the
architectural design to the stage where actual implementation can begin. See also
PROGRAM DESIGN LANGUAGE.
program design language (PDL) A language, used for expressing *program designs,
that is similar to a conventional high-level programming language but emphasizes
structure and intention rather than the ability to execute programs expressed in the
language. PDLs are often employed in conjunction with *structured programming. When
not executable they are termed *pseudolanguages.
Typically the formal syntax of a PDL would cover data definition and overall program
structure. Facilities in the latter area would include the basic control-flow constructs—
sequential, conditional, and iterative—plus those for the definition and invocation of
subroutines. These facilities would be used to define the overall framework of the
program, but individual actions within the framework would be expressed using
pseudolanguage—natural English mixed with a more formal semantically rich language.
Correspondingly, the PDL facilities for data definition may be expected to be richer than
those of a typical programming language, encompassing a broader range of basic types
and a more extensive set of data-structuring facilities. A wide variety of PDLs have been
defined; normal practice is to select one that is well-matched to the target programming
language.
program development system A software system that provides support to the
program development phase of a software project. A typical program development system
employs a simple database (or perhaps just a basic filing system) as a repository for
information, and offers *software tools for editing of program source texts, compiling,
link loading, and debugging. Usually some form of command-language interpreter is also
available; this may have been produced specifically for the program development system,
or may have been inherited from the underlying operating system. Compare SOFTWARE
ENGINEERING ENVIRONMENT.
program file A *file containing one or more programs, or program fragments, in
*source code or *object code form.
program library (software library) A collection of programs and packages that are
made available for common use within some environment; individual items need not be
related. A typical library might contain compilers, utility programs, packages for
mathematical operations, etc. Usually it is only necessary to reference the library program
to cause it to be automatically incorporated in a user’s program. See also DLL.
program listing (source listing, listing) An output produced by a *compiler or
*assembler, consisting of the source program neatly laid out and accompanied by
diagnostic information and error messages. In the case of an assembler, the listing may
also include a readable version of the object code.
programmable array logic See PAL.
programmable devices 1. Devices under the control of a *stored program obeyed by
a *fetch-execute cycle. See CENTRAL PROCESSOR, COMPUTER. 2. Integrated circuits whose
action is determined by the user either until reprogrammed (erasable programmable
devices) or for the life of the device (nonerasable programmable devices). Erasable
devices are usually implemented by the storage of static electric charges, whereas
nonerasable devices either employ *fusible links or have their structure determined at the
final masking stage of manufacture.
Static charge or fusible-link devices are called field-programmable, since they may
be programmed by the user ‘in the field’, i.e. on the customer’s premises; masked devices
are called mask-programmable, implying programmability only at the time of
manufacture. This terminology is common for *programmed logic. In the case of readonly memory the same distinction often appears as ‘programmable’ (*PROM) and, by
implication, as ‘nonprogrammable’ (*ROM).
programmable electronic system See PES.
programmable gate array See PGA.
programmable logic array See PLA.
programmable logic device See PLD.
programmable ROM See PROM.
program maintenance See SOFTWARE MAINTENANCE.
programmed I/O A way of controlling input/output activity in which the processor is
programmed to interrogate a peripheral or a number of peripherals to see if they are ready
for a data transfer. When a number of peripherals are involved the interrogation process is
called *polling. Compare INTERRUPT I/O.
programmed logic In general, *programmable devices that are more complicated
(logical) than read-only memories, thus including programmed logic arrays (see PLA),
programmed gate arrays (PGAs), programmed-array logic (PAL), and uncommitted logic
arrays (ULAs).
programmed logic array See PLA.
programmer 1. A person responsible for writing computer programs. See
APPLICATIONS PROGRAMMER, SYSTEMS PROGRAMMER. 2. See PROM PROGRAMMER.
programmer unit Another (seldom used) name for PROM programmer, and also
applied to equipment for programming other field-programmable devices (see
PROGRAMMABLE DEVICES).
programmer workbench Another name for software development environment.
programming In the broadest sense, all technical activities involved in the production
of a *program, including analysis of requirements and all stages of design and
implementation. In a much narrower sense it is the coding and testing of a program from
some given design. This narrower usage is most common in the context of commercial
programming, where a distinction is often drawn between systems analysts, who are
responsible for analysis of requirements and design, and programmers, who are
responsible for implementation and testing.
programming language A notation for the precise description of computer programs
or algorithms. Programming languages are artificial languages, in which the *syntax and
*semantics are strictly defined. Thus while they serve their purpose they do not permit the
freedom of expression that is characteristic of a natural language.
programming standards A set of rules or conventions that constrain the form of the
programs that are produced within an organization. Such rules may range in scope from
those that address the high-level design and decomposition of the program to coding
standards, which govern the use of individual constructs provided by the programming
language.
programming support environment See PSE (def. 1).
programming theory A general term for a number of interrelated and rapidly
developing subjects concerned broadly with the application of formal mathematical
methods to the study of programming concepts. Principle areas are: *semantics of
programming languages, *program specification, *program correctness, *program
transformation, and programming methodology.
program proving See PROGRAM CORRECTNESS PROOF.
program specification A precise statement of the effects that an individual program is
required to achieve. It should clearly state what the program is to do without making any
commitment as to how this is to be done. For a program that is intended to terminate, the
program specification can take the form of an input-output specification that describes the
desired mapping from the set of input values to the set of output values. For cyclic
programs, which are not designed to terminate, it is not possible to give a simple inputoutput specification; normal practice is to focus attention on the individual functions
performed by the program during its cyclic operations.
For both terminating and cyclic programs a variety of notations have been employed for
program specifications, ranging from natural language with embedded equations and
tables to formal notations such as those based upon first-order *predicate calculus.
program status word (PSW) A collection of information that encapsulates the basic
execution state of a program at any instant. It permits an interrupted process to resume
operation after the interrupt has been handled. The information is held in the program
status register, and usually contains the value of the *program counter and bits
indicating the status of various conditions in the ALU such as overflow and carry, along
with the information on supervisor privileged status. The contents of other processor
registers may also need to be preserved in memory after an interruption of a process and
recovered when the interrupted process is resumed so that the complete process state is
reestablished. See also PROCESSOR STATUS WORD.
program structure The overall form of a program, with particular emphasis on the
individual components of the program and the interrelationships between these
components. Programs are frequently referred to as either well structured or poorly
structured. With a well-structured program the division into components follows some
recognized principle such as *information hiding, and the interfaces between components
are explicit and simple. By contrast, with a poorly structured program the division into
components is largely arbitrary (or even nonexistent), and interfaces are implicit and
complex. At a finer level, a well-structured program employs appropriate data structures
and program units with a single entry point and a single exit point (see STRUCTURED
PROGRAMMING, def. 2), while a poorly structured program has arbitrary data structures
and flow of control.
program synthesis An *automatic programming technique in which programs are
generated from descriptions of input/output relationships. This is a research area in
*artificial intelligence.
program testing Checking by means of actual execution whether a program behaves in
the desired manner. The program is executed and supplied with test data, and the way in
which the program responds to this test data is analysed. Compare PROGRAM
CORRECTNESS PROOF.
program transformation The study of systematic ways of transforming a program
into another program that has some desirable property and is equivalent to the original
program (or, if not equivalent, is related to the original).
Often the aim of such transformation is to produce a more efficient program. It is
widely felt that much of the complexity of programming results from the need to produce
efficient programs, and that it is therefore desirable to begin with a simple (yet inefficient)
program and then transform it to an efficient (but complicated) one. Such transformations
may be carried out by hand, by machine, or by both.
Other aims of transformation include expressing certain language constructs in terms of
others (transformational semantics). Also, developing algorithms by transformation can
serve to verify their correctness, to elucidate their structure, and to provide better
understanding of the possible algorithms. See also REFINEMENT.
program unit A constituent part of a large program, and in some sense self-contained.
program verification Any method that will ensure that a program will do exactly what
it is supposed to do. See also PROGRAM CORRECTNESS PROOF.
program virus See VIRUS.
Prograph An object-oriented dataflow language with a purely graphical interface.
progressive encoding A method of image encoding that uses multiple scans rather
than a single scan. (A scan is a single pass through the data of one or more components in
an image.) The first scan encodes a rough approximation to the image that is recognizable
and can be transmitted quickly compared to the total transmission time of the image.
Subsequent scans refine the appearance of the image. Progressive encoding is one of the
options in the *JPEG standard.
progressive scanning A method of forming the display on a computer monitor, by
scanning the screen line-by-line. It gives higher quality than interlace scanning used in
television.
project Gutenberg A large project to capture books that are in the public domain (i.e.
not copyright) and to make them available on the Web.
projection A mapping from one coordinate space to another, possibly of a lower
dimension. It takes the points of an object onto the points of a fixed plane (the *view
plane) in such a way that each pair of points is collinear with a fixed point, the centre of
projection or eyepoint, which lies neither on the object nor the view plane. The main
types of projection are *parallel and *perspective projections.
projection function The function
that extracts the ith coordinate from an ordered ntuple (see ORDERED PAIR). More formally
See also PRIMITIVE RECURSIVE FUNCTION.
projective transformation Usually, a perspective projection.
project support environment See PSE (def. 2).
Prolog A *logic programming language, widely used in artificial intelligence. The basic
element of Prolog programs is the structure, which expresses a simple relationship
among individuals (constants or variables). Examples of structures are:
sister(mary, jane).
ancestor(adam, X).
Words that start with a lower-case letter are constants and words that start with a capital
letter are variables, so mary, jane, and adam are constants and X is a variable. Prolog
programs consist of clauses, where each is either a simple assertion or an implication. The
former consists of a single structure, while the latter takes the form:
‘A if B1 and B2 and … and Bn’,
where the conclusion A and the conditions Bn are all structures. An example of an
implication is
grandfather(X, Y) :father(X, Z), parent(Z, Y).
which means ‘X is a grandfather of Y if X is the father of Z and Z is a parent of Y’.
A Prolog program is invoked by presenting a query in the form of a conjunction of
structures, as in
friend(fred, X), father(john, X).
Execution of the program then determines (if possible) a set of values for the variables
in the query such that the truth of the query then follows from the assertions and
implications in the program. The above example tries to find all the sons of john that are
friends of fred.
Prolog was used as the basis of the Japanese *fifth generation project.
PROM (programmable read-only memory) A form of semiconductor read-only
memory, *ROM, whose contents are added by a separate process after the device has been
manufactured. This process of programming the PROM is accomplished by means of a
device known as a *PROM programmer. In general the programming process involves the
destruction of *fusible links within the PROM and is irreversible, i.e. the contents of the
memory cannot be altered. Certain PROMs, including *EPROMs, can however be
reprogrammed numerous times. See also EAPROM, EEPROM.
PROM programmer (programmer unit) An item of equipment that establishes the
correct conditions for the programming of a *PROM device and thus allows the user to
program the PROM. The programming process often requires the physical destruction of
fusible links within the PROM using relatively high voltage pulses, hence the jargon terms
PROM zapping, blowing, blasting, and burning. Such equipment may be capable
of programming a number of different types of PROM and/or *EPROM devices.
prompt A change to the contents of a computer display to indicate that input is required
from the operator. See also ACKNOWLEDGMENT, ECHOING, FEEDBACK.
proof Informally, a form of *deduction associated with a deductive logic. More formally,
when applied to a formal system F, a proof is a sequence of *well-formed formulas with
each item in the sequence being either an axiom of F or being derived from previous items
through the application of an inference rule of F.
propagation delay The time required for a change in the input to a *logic gate or
*logic circuit to produce a change in the output. It is usually very brief. It is inherent in
any gate or circuit, being caused by unavoidable delays in transistor switching and
propagation of electric signals through passive components.
proper ancestor See ANCESTOR.
proper subgraph, subgroup, subset See respectively SUBGRAPH, SUBGROUP, SUBSET.
properties The properties of an object are parameters associated with that object and
cover a wide range of items. Properties cover such diverse things as date of
creation/modification, actions to be taken when activated, protection status, etc.
proportional spacing See FONT.
propositional calculus A system of *symbolic logic, designed to study
propositions. A proposition is a statement that is true or false. There are many
alternative but equivalent definitions of propositional calculus, one of the more useful
definitions for the computer scientist being given here.
The only terms of the propositional calculus are the two symbols T and F (standing for
true and false) together with variables for logical propositions, which are denoted by small
letters p,q,r,…; these symbols are basic and indivisible and are thus called atomic
formulas.
The propositional calculus is based on the study of well-formed formulas, or wff
for short. New wff of the form
are formed from given wff A, B, and C using logical *connectives; respectively they are
called negation, disjunction, conjunction, implication, equivalence, and
conditional. If 〈atf〉 denotes the class of atomic formulas, then the class of wff
〈wff〉, can be described in *BNF notation (see fig. 1).
Proofs and theorems within the propositional calculus are conducted in a formal and
rigorous manner: certain basic axioms are assumed and certain rules of *inference are
followed. In particular these rules must deal with the various connectives.
Propositional calculus.
The rules of inference are stated using a form such as
The rule should be interpreted to mean that on the assumption that α is true, it can be
deduced that β is then true. Logicians often use the notation α|-β. In writing the rules it is
convenient to employ a notation such as
Γ is some set of wff whose truth has been established; A and B are some other wff
highlighted for the purposes of the rule; ⇒ denotes implication (to avoid confusion with
the symbol ⊃). For example, the rules for the introduction and elimination respectively of
the ∧ connective are shown in Fig. 2.
protected location A memory location that can only be accessed by an authorized user
or process. See also MEMORY PROTECTION.
protection domain A set of access privileges to protected resources. Where many
*processes coexist, each process having differing access permission to a number of
protected resources via some form of key, it may be convenient to group together a set of
such keys in order to provide a single process with access to the resources that it requires.
Access control can then be manipulated independent of the processes concerned. The
protection domain is either the set of keys, or equivalently, the set of resources to which
the keys give access.
protocol An agreement that governs the procedures used to exchange information
between cooperating entities. More specifically, a protocol is such an agreement operating
between entities that have no direct means of exchanging information, but that do so by
passing information across a local interface to so-called lower-level protocols, until the
lowest, physical, level is reached. The information is transferred to the remote location
using the lowest-level protocol, and then passes upward via the interfaces until it reaches
the corresponding level at the destination. In general, a protocol will govern the format of
messages, the generation of checking information, and the flow control, as well as actions
to be taken in the event of errors.
A set of protocols, governing the exchange of information between (physically remote)
communicating entities at a given level, and the set of interfaces governing the exchange
between (physically adjacent) protocol levels, are collectively referred to as protocol
hierarchy or a protocol stack.
See also SEVEN-LAYER REFERENCE MODEL.
protocol hierarchy See PROTOCOL.
protocol stack See PROTOCOL.
protocol translation See INTERNETWORKING.
prototype See SOFTWARE PROTOTYPING.
proxy A device that handles network traffic on behalf of another: a client will send a
request to a proxy, which will then make the same request to a server, to which the proxy
appears to be a client. The response from the server is returned to the proxy and then
passed to the original client. Proxies are often used as part of a *firewall to allow complex
protocols to be handled; they may also examine requests and responses, route requests to
different servers or filter responses in accordance with some policy.
PS/2 keyboard/mouse interface PS/2 was a type of personal computer (now
obsolete) produced by IBM in the 1980s. The interface, a mini DIN connector, survives as
the commonest connector for keyboards and mice. The pin connections are identical for
both devices and frequently the interface may be used for either device. This feature is
commonly found in laptop computers where a full-sized keyboard or mouse may be used
in place of the native one.
PSE 1. (programming support environment) A software system that provides
support for the programming aspects of software development, repair, and enhancement. A
typical system contains a central database and a set of *software tools. The central
database acts as a repository for all the information related to the programming activities.
PSEs vary in the general nature of their databases and in the coverage provided by, and
the degree of cooperative interaction of, the set of tools and the programming languages
supported. A programming support environment might be considered as a more
technologically advanced form of *program development system. 2. (project support
environment) A software system that provides support for the full life cycle of software
development and also the project control and management aspects of a software-intensive
project. The project support environment will have all the features of a programming
support environment (see def. 1) plus *software tools to support the earlier phases of
software development (see CASE) and tools associated with the management and control of
the project.
pseudocode Another name for pseudolanguage.
pseudoinstruction (pseudo-operation, directive) An element in an assembly language
that is similar to an instruction but provides control information to the assembler as
opposed to generating a particular instruction. Examples are:
generate absolute code/generate relative addresses;
start a new segment;
allocate space for constants or variables.
pseudolanguage (pseudocode) A form of representation used to provide an outline
description of the *specification for a software module. Pseudolanguages contain a
mixture of natural language expressions embedded in syntactic structures taken from
programming language (such as IF..THEN..ELSE). The formality of the definition varies
from ad hoc (e.g. defined within a project team) to being sufficiently formal to enable
automatic parsing and syntax checking (e.g. supported by a *CASE tool).
Pseudolanguages are not intended to be executed by computer; they must be interpreted by
people.
pseudonoise sequence A sequence of symbols with *pseudorandom properties
intended to simulate *noise. Most commonly *m-sequences are used.
pseudonymous record See ANONYMIZATION.
pseudo-operation Another name for pseudoinstruction.
pseudorandom Mimicking randomness. A *deterministic process, which cannot in
principle be random, may nevertheless exhibit properties of randomness. It may therefore
serve as a surrogate random process, in which case it is called pseudorandom.
pseudorandom numbers See RANDOM NUMBERS.
PSG Abbrev. for phrase-structure grammar.
PSK Abbrev. for phase shift keying.
PSL/PSA (problem statement language/problem statement analyser) A
computerized system that can be used for the development and analysis of an *expression
of requirements and to provide assistance during system design. The expression of
requirements is maintained in a database: PSL is the input language to this database while
PSA is the management system and report generator for the database.
The basic database model consists of objects that may have properties and may be
interconnected by means of relationships. PSA permits the analysis of the database and the
production of various kinds of report, e.g. on database modifications, database content,
and on unused data objects or breaks in information flow.
PSL/PSA was developed by Daniel Teichroew on the ISDOS project at the University
of Michigan. The system was implemented on a wide range of computers and was used
extensively by many organizations.
PSPACE, PSPACE-complete See POLYNOMIAL SPACE.
PSTN Abbrev. for public switched telephone network (as opposed to a leased line).
PSU Abbrev. for power supply unit.
PSW Abbrev. for processor status word, program status word.
P-switch (printer switch) A hardware switch allowing several users to share a printer.
An alternative version allows a user to select one of several printers. The P-switch may be
manually operated or automatic. As networking becomes more affordable, P-switches are
becoming less common.
PTI (public tool interface) A concept made necessary as *PSEs—project and
programming support environments—increase the degree of and demand for information
exchange and interaction between various *software tools, especially tools from different
suppliers. A common specification is required for the interface between the tools and the
*object management system. Similarly as an increasing number of tools are used within a
single development, it becomes desirable to have a common *user interface for the tools
(assisting the user to learn the interface and get the best out of the tools). Both these
interfaces may be included within a single PTI, but the current trend is to define them in
separate PTIs. The user-interface aspects are dominated by the *OSF definitions for
*wimp interfaces. The most well-developed standard for object management systems is
*PCTE. At a less sophisticated level the OSF file-store definitions can also be used. An
alternative approach is offered by *CDIF.
PTIME See POLYNOMIAL TIME.
PTO Abbrev. for public telecommunications operator.
PTT (Postal, Telegraph, and Telephone Administration) Each member
country of the *CCITT (for all practical purposes every country in the world) has a PTT,
which is that country’s representative on the CCITT. In those countries where the
provision of communications services remains as a government monopoly, the PTT will
be the agency that delivers the communications services, both internally and for
international connections. In countries where there is no longer a government monopoly,
the PTT will still be responsible for the issue of licenses and may also be one of a number
of competing suppliers of communications services.
The image of the PTTs was as suppliers of limited data communications, based on
speech-quality circuits operating at low bit rates, and in some countries this persists.
However, in response both to competition from other suppliers and to the growing
demands of the marketplace, many PTTs are now aggressive suppliers of innovative highgrade services, offering digital services with operating speeds up to several Gbps, and with
extensive interworking with other suppliers for both domestic and international traffic.
p-type semiconductor See SEMICONDUCTOR.
public data network (PDN) A data network that is accessible for use by private
individuals, or by organizations other than that operating the network. In most countries it
is necessary to be licensed to operate a PDN. See also PTT, PUBLIC NETWORK OPERATOR,
PUBLIC TELECOMMUNICATIONS OPERATOR.
public domain The status of a work, such as a program or document, where the author
has irrevocably waived any copyright in the work so that it can be freely copied and used.
In countries such as Germany and the USA statutes and government publications are
considered to be in the public domain. In the computer industry the term is normally
applied to the computer programs and data supplied to computer user groups by its active
members for circulation among the group as an aid to the operation of computers or the
removal of bugs.
public key certificate See CERTIFICATE.
public key encryption (asymmetric encryption) A type of *cryptography where one
of a pair of keys is used to encrypt a message and the other is used to decrypt it. It does
not matter which key is used to encrypt and which to decrypt: both combinations will
work; however, attempting to encrypt and decrypt with the same key will not work. The
two keys are integers that are related mathematically, but—crucially—it must not be
viable to deduce the other key if only one is known. In computational terms this means
that it must be proven that there does not exist an algorithm to calculate the second key
efficiently from the first, and that the range of possible integers must be large enough to
make a *brute force attack impractical.
In usage, a given key pair belongs to a specific person or organization. One key of the
pair, the public key, can be distributed freely; the other, the private key, must be kept
secret by the owner. The keys can then be used in one of two ways:
(1) Anybody wishing to send confidential data encrypts it with the recipient’s public key.
It can then only be decrypted by the recipient’s private key, which only the recipient
possesses.
(2) Anybody wishing to add a *digital signature to data encrypts the signature with their
private key. If the signature is valid when decrypted with the signer’s public key, a
user can be confident that the data indeed originated with the signer and has not been
altered (see also CERTIFICATE).
public key infrastructure An organizational structure that attempts to guarantee the
validity of *certificates. The usual configuration is hierarchical: certificates from a
particular *certificate authority will themselves by validated by certificates from a higherlevel authority. At the top of the hierarchy is an unsigned or self-signed root certificate;
for public use this will be from a specialist reputable CA that is globally trusted. The
alternative decentralized web of trust model relies on *self-signed certificates
accumulating endorsements from other parties, one or more of which a new user will be
prepared to accept as trustworthy.
public network operator (PNO) An organization authorized to offer network
services to other organizations, or directly to members of the public. In those countries
with a government monopoly in the provision of network services the only PNO will be
the *PTT. In those countries with a deregulated market in the provision of network
services, it is still only appropriately licensed organizations that are allowed to act as
PNOs.
public telecommunications operator (PTO) A UK agency licensed to provide data
transmission services to organizations or private individuals, where the services cross
public rights of way. Within the UK, until the mid-1980s, the only organization able to
offer such services was British Telecom (previously the GPO) and, for purely historical
reasons, the civic authorities in the city of Hull. At the time of the BT privatization,
legislation was enacted that allowed the creation of further PTOs, although for a long time
only Mercury took advantage of this. There are now a large number of organizations
taking out licenses to act as PTOs, driven in part by the installation of optical fibre
networks in metropolitan areas. See also PUBLIC NETWORK OPERATOR.
public tool interface See PTI.
puck An input device that defines a location by sensing its position on a *data tablet. A
lens can be incorporated into the puck if points are being input to give the locations of
positions on a detailed drawing.
pull When using *source code control, the process or command by which a software
developer sends the changes they have just made to a different *repository. Compare
PUSH.
pull-down menu (drop-down menu) A *menu that appears on a computer screen
when its title, often occurring in a menu bar, is selected by means of a *mouse or other
*pointing device or an appropriate sequence of keystrokes. One or more of the menu
options may then be selected in the same way, after which the menu will normally vanish.
pull-up resistor A resistor that is connected between the power-supply line and a logic
line and ensures that the line is normally pulled up to the supply potential. *Open-collector
logic devices may be connected to the logic line and each device is then capable of pulling
the line low, i.e. to ground.
pulse A transient change in voltage, current, or some other normally constant physical
parameter. This transient consists of a transition from one level to another, followed, after
a fixed time, by an opposite and often equal amplitude transition. The first edge to occur
on a pulse is the leading edge, the second transition being the trailing edge.
For rectangular pulses the transitions should in theory be stepwise, i.e. instantaneous. In
reality however they require a finite time in which to occur. For transitions from low to
high voltage, current, etc., a convenient measure of this time is the rise time, defined as
the time required for the pulse amplitude to rise from 10% to 90% of its maximum value
(see diagram). The fall time is the time interval between the 10% point and the 90%
point on the negative-going edge of the pulse.
Pulse. Rectangular voltage pulse
The time interval between the leading and trailing edge of a rectangular pulse is called
the pulse width. The pulse height is the amplitude of a pulse, usually its maximum to
minimum voltage, current, etc., ignoring any short-duration spikes or low-amplitude ripple
superimposed on the main pulse. See also RINGING.
pulse code modulation (PCM) A technique used by *codecs to convert an analogue
signal into a digital bit stream. The amplitude (usually) of the analogue signal is sampled
(8000 samples per second for voice-quality telephone lines with 4000 Hz bandwidth), and
a digital code is selected to represent the sampled value. The digital code is transmitted to
the receiving end, which uses it to generate an analogue output signal. Encoding
techniques may be used to reduce the amount of data that is transmitted between the
sender and the receiver, based on known characteristics of the analogue signal. For
example, mu-law (μ-law) encoding converts the analogue signal to a digital code
based on the logarithm of its value, rather than on a linear transformation.
Differential PCM (DPCM) transmits the difference between the current sample and the
previous sample. DPCM assumes that the difference requires fewer bits than the signal
amplitude.
Delta (Δ) PCM is a version of DPCM in which a single bit is used for each sample,
representing a signal change of plus or minus one unit. A constant signal is represented as
a series of plus or minus transitions.
Predictive PCM extrapolates from the previous few samples what the next sample
should be, and transmits the difference between the actual value and the predicted value.
See also MODULATION.
pulse generator A circuit or instrument that generates a sequence of *pulses, usually
(but not necessarily) of uniform height, width, and pulse repetition frequency.
pulse height See PULSE.
pulse repetition frequency (PRF, pulse repetition rate) (of a *pulse train) The
average number of pulses that occur per second, expressed in hertz. It is equal to the
reciprocal of the *period.
pulse shaping Alteration of the shape of a *pulse. Pulse-shaping circuits may receive
pulses that are distorted and convert them into rectangular pulses, sometimes
incorporating a *monostable circuit to set the output pulse width, although this is not
regarded as good practice. Another application of pulse shaping is in controlling the edge
speed of pulses or limiting overshoots.
pulse stretcher An electronic device that is often included in logic circuitry in order to
extend the duration of very short input pulses. This ensures that the pulses are of adequate
length, i.e. they are of the minimum duration required for reliable processing by the
circuitry. A *monostable is often used for this purpose.
pulse train A repetitive series of *pulses, separated in time by a fixed and often constant
interval. The duration of each pulse and its amplitude are also often made constant. This
type of waveform may be defined by its mark–space ratio, i.e. the ratio of pulse
duration, t1, to pulse separation, t2, and by its *pulse repetition frequency, which is given
by
pulse-triggered flip-flop See FLIP-FLOP.
pulse width See PULSE.
pumping lemmas Two theorems in formal language theory that express necessary
conditions for languages to be *regular or *context-free:
If language L is regular, there exists an integer n such that,
for any *word z in L, | z |>n,
there exist u,v,w with
such that:
If language L is context-free, there exist integers p and q such that,
for any z in L, with | z |>p,
there exist u,v,w,x,y with
such that:
The conditions are used in constructing algorithms for decision problems about regular
and context-free grammars, and in proving certain languages are not regular or are not
context-free.
punched card (punchcard) A rectangular paper card into which data could be encoded
by punching patterns of holes. The holes were then sensed by a punched card reader,
which converted the punched patterns into binary code. Punched cards were used
extensively for input, output, and file storage of data on early computer systems but are
now obsolete.
punched card reader See PUNCHED CARD.
punched tape Punched *paper tape.
pure BCD (natural BCD) See BINARY-CODED DECIMAL.
push 1. See STACK (def. 1). 2. When using *source code control, the process or
command by which a software developer sends committed changes (see COMMIT) to the
master repository. Compare PULL.
pushdown automaton (PDA) A *finite-state automaton augmented by a *stack of
symbols that are distinct from the symbols allowed in the input string. Like the finite-state
automaton, the PDA reads its input string once from left to right, with acceptance or
rejection determined by the final state. After reading a symbol, however, the PDA
performs the following actions: change state, remove top of stack, and push zero or more
symbols onto stack. The precise choice of actions depends on the input symbol just read,
the current state, and the current top of stack. Since the stack can grow unboundedly, a
PDA can have infinitely many different configurations—unlike a finite-state automaton.
A nondeterministic PDA is one that has a choice of actions for some conditions.
The languages recognized by nondeterministic PDAs are precisely the *context-free
languages. However not every context-free language is recognized by a deterministic
PDA.
pushdown stack, pushdown list Other names for STACK (def. 1).
pushup stack, pushup list Other names for queue. See also STACK (def. 2).
PVC (permanent virtual circuit) See VIRTUAL CIRCUIT.
Python A *scripting language incorporating features from C, Modula 3, and Icon.
QAM Abbrev. for quadrature amplitude modulation.
q-ary (q-valued) Having q values, where q is a positive integer not less than 2. In *logic
circuits, the treatment of q values is called *multivalued logic, or binary logic for q = 2. In
coding theory, some codes are restricted to the binary case; others can operate with
arbitrary q or with q a prime number. Throughout switching and coding theory, the binary
case is by far the most important. See also POLYNOMIAL.
q-ary logic *Digital logic employing q states. The term is sometimes used to mean
digital logic in general, but more usually has the implication that there are more than two
states, in which case the term is synonymous with *multivalued logic.
QBE Abbrev. for query by example.
QC Abbrev. for quality control.
QR factorization A form of matrix factorization widely used in *numerical linear
algebra. For A, an m × n, m ≥ n, real square matrix, the factorization takes the form
where Q is an m × m *orthogonal matrix and R is an m × n matrix whose first n rows form
an upper (or right) *triangular matrix. An important application is in solving
overdetermined linear systems of equations of the form Ax = b, m > n; b is an mcomponent column vector and x is a column vector of n unknowns. The QR factorization,
under appropriate conditions, reduces the problem to solving a simpler square upper
triangular system of the form Rx = c.
For a square matrix, m = n, a further major application is in computing the eigenvalues
and eigenvectors of A. Here a sequence of QR factorizations are carried out in an iteration
scheme that ultimately reduces A to a matrix of a particularly simple form whose
eigenvalues are the same as those of A. The eigenvalues (and if required, eigenvectors)
can now be easily computed.
quad See QUADTREE.
quad core See MULTI-CORE PROCESSOR.
quadratic spline A *spline of degree 2.
quadrature 1. A method of signal modulation involving two carrier waves with a 90°
phase difference. This allows better usage of the bandwidth of the communications link.
Quadrature is used in higher-speed modems. 2. See NUMERICAL INTEGRATION.
quadrature amplitude modulation A system of modulation used in modems and
communication channels that employs two *carriers of identical frequency but with a 90
degree phase difference between them. Each carrier can be modulated independently. If
the system allows, say, two levels for each carrier then this allows each signal element to
represent one of 8 possible symbols, thus optimizing the available bandwidth usage.
quadtree A space tree in which a square region is recursively divided into four smaller
regions, known as quads. The quads are usually squares. See also OCTREE.
qualifier register (condition-code register) A set of *indicators that record the status
or condition of the last result output from the *ALU. It forms part of the *program status
word.
qualitative reasoning An *artificial intelligence approach in which precise numerical
quantities are avoided in favour of symbolic qualitative values. Variables take values from
a quantity space, e.g. {high, low, zero}, and are processed by various qualitative calculi.
Based on intuitive ideas about human reasoning (see IMPRECISION), this formalism is
proving valuable in modelling and reasoning about problems in diagnosis, process control,
system verification, and explanation.
quality assurance See SOFTWARE QUALITY ASSURANCE.
quality control (QC) The use of sampling, inspection, and testing methods at all levels
of system production to produce defect-free hardware and software.
quantifier One of the two symbols ∀ or ∃ used in *predicate calculus. ∀ is the
universal quantifier and is read ‘for all’. ∃ is the existential quantifier and is read
‘there exists’ or ‘for some’. In either case the reference is to possible values of the variable
v that the quantifier introduces. ∀v. F means that the formula F is true for all values of v,
while ∃v. F means that F is true for at least one value of v. As an example, suppose that
P(x,y) is the predicate ‘x is less than or equal to y’. Then the following expression
says that there exists an x that is less than or equal to all y. This statement is true if values
range over the *natural numbers, since x can be taken to be 0. It becomes false however if
values are allowed to range over negative integers as well. Note also that it would be false
even for natural numbers if the predicate were ‘x is less than y’. Other notations such as
(∀v)F in place of ∀v . F are also found.
quantization The process of constructing a discrete representation of a quantity that is
usually regarded as continuous (see DISCRETE AND CONTINUOUS SYSTEMS). For example,
the measurement of the amplitude of a *signal at discrete intervals of time, when the
signal occurs over continuous time, is called time quantization, or sampling; the
measurement of the brightness of picture elements (*pixels) in a space-continuous picture
is called space quantization, or pixelization.
The term quantization without the predication of time or space usually refers to the
quantization of amplitude; the same applies to *digitization, which is nearly synonymous
with quantization.
quantization noise The effective continuous noise power, the addition of which to a
continuous signal has the same effect as the amplitude *quantization to which the signal is
subjected (see DISCRETE AND CONTINUOUS SYSTEMS). The effect of time *quantization
may also be described by the addition of noise, but in a more complex way. See also
NYQUIST’S CRITERION.
quantizer An electronic device that can convert an *analogue signal into a signal having
values that are identical to the analogue signal only at discrete instants of time. The action
is analogous to observing, i.e. *sampling, the analogue signal, approximating it by the
nearest preferred value and holding this value until the next observation time. The output
signal thus consists of a number of steps between specified levels. See also DIGITIZER.
quantum The amount of time allocated to an individual *process in a *time slicing
process-management system. See also SCHEDULING ALGORITHM.
quantum computing The use of computational methods inspired by the principles of
quantum mechanics. See feature QUANTUM COMPUTING.
QUANTUM COMPUTING
Quantum computing is the study of ways in which unusual quantum-mechanical effects
could be employed to improve the processing power of computers in solving problems.
As computer technology has developed, a notable feature has been a steady decrease in
the size of components, both for storage and processing. Ultimately, it will be possible
to use components formed of only a few atoms, or even single atoms. For instance, one
could imagine a storage system in which two bits of information were stored using two
different quantized spin states of an atomic nucleus. Alternatively, a logic gate might be
formed of a small number of atoms on the surface of a substrate. This branch of the
subject is often referred to as nanocomputing. Although these devices do involve
quantum-mechanical effects, they would not be part of a quantum computer in the sense
in which the term is now used. True quantum computing involves more unusual
phenomena characteristic of microscopic systems. Although considered earlier, the
interest of quantum computing really started in 1985 when David Deutsch published a
theoretical paper on the idea of a universal quantum computer.
Superposition and entanglement
There are certain quantum-mechanical effects that are observed for small systems
(atoms, molecules, elementary particles, etc.) and have no counterpart in macroscopic
systems described by classical mechanics. It can be shown that, in quantum mechanics,
a system such as an atom or elementary particle may have two (or more) distinct states.
For example, an atom might have two different electronic energy levels, an electron
might have two different spin states, or a photon might have two different polarizations.
It is part of the formalism of quantum mechanics that a particle, say, is able to exist in
an indeterminate superposition of the two states — i.e. it is in both states at the same
time. It is only when a measurement is made that the particle adopts one or other state (a
process known as ‘collapse of the wave function’ or ‘state vector reduction’). This
indeterminacy, in which two distinct states coexist simultaneously, is called
superposition.
Another unusual phenomenon is that of quantum entanglement. The idea
comes from a thought experiment first discussed by Einstein, Podolsky, and Rosen in
1935 and known as the ‘EPR experiment.’ Suppose two different particles are created
from a single particle and move in different directions. It is known that they must have
opposite spins (because spin is conserved) but the spins of both are taken to be
indeterminate until a measurement is made. If the spin of one particle is measured, then
its spin is fixed. But the measurement on one particle instantly fixes the spin of the
other, even though the particles may be widely separated. The two particles are
effectively part of the same system and are said to be in an ‘entangled state.’ Quantum
computing is designed to exploit such effects.
Quantum superposition. A system can exist in two superposed states constituting a
qubit (0,1). It collapses to one of two real states 0 or 1 corresponding to classical bits.
Quantum bits and registers
This superposition of two states leads to the idea of a quantum bit or qubit, i.e. a
superposed state that can store the bits 0 and 1 at the same time. A computer register
made of three physical classical physical bits can store any of eight numbers, namely
000, 001, 010, 011, 100, 101, 110, and 111, but it can obviously store only one of these
numbers at a time. A register made of three qubits actually stores all eight numbers
simultaneously. But this is not of interest as an efficient storage device; the key point
about quantum register is that if it can be made to change to perform a computation, the
processing occurs on all possible numbers in the register simultaneously. Increasing the
number of qubits in the register increases the numbers exponentially. Four qubits store
16 numbers, five store 32, six store 64, and n cubits store 2n numbers. Consequently, a
working quantum computer would have the potential for massive amounts of parallel
processing. It is as if the computer were operating simultaneously in many parallel
universes — indeed, some of the people who developed early ideas on quantum
computing had an interest in the so-called ‘many-worlds’ formalism of quantum
mechanics.
Quantum algorithms
There are a number of problems with the idea of quantum computers, an obvious one
being how to make one. Also there is a problem with the superposed states, which
collapse to classical states by interacting with the environment — a process known as
decoherence. A quantum computer would have to operate with the decoherence time,
typically nanoseconds. More fundamentally, how would it be possible to access
information? Measuring the state of a quantum register would simply collapse its wave
function and give one of the eight possible numbers as in a classical register. Various
quantum algorithms have been considered, aimed at using these quantum effects to give
usable information. Algorithms of this type exploit the fact that there can be destructive
or constructive interference between states and give results based on probabilities.
Factorization of numbers
In 1994 interest in the subject increased considerably when Peter Shor of Bell
Laboratories devised a quantum algorithm, Shor’s algorithm, that could in principle
enable a quantum computer to factorize a large number.
Factorization is important because it is the basis of the widely used RSA system of
public key cryptography. Given any two whole prime numbers, N and M, it is easy to
multiply them together to give a product P (known as a semiprime). The reverse
problem, starting with a semiprime P and finding the two unknown prime factors, N and
M, is much more difficult. It involves a large number of trial divisions. It is perfectly
possible in principle to factorize any number using a classical computer, but the problem
is that, for large numbers, even the fastest conventional computers would take
impractically long times. To date, the largest semiprime factored in this way has 200
(decimal) digits and the process took many months of computer time. Larger numbers
would need impossibly large computer runs. However, a quantum computer, with its
vastly increased parallel processing power, might lead to the breaking of public-key
cryptograms. This is why Schor’s algorithm caused such interest when it was first
published.
Practical devices
So far no-one has produced a large working quantum computer, although a considerable
amount of work has been done on physical systems that might be used to store qubits
and to work with entangled registers. These include ions held in an ion trap,
superconducting quantum devices, quantum dots in semiconductors, and nuclear
magnetic resonance.
quartile See PERCENTILE.
quasi- Seemingly; mimicking. It is a combining form used sometimes in computing in
place of pseudo-, as in quasi-random numbers or quasi-instruction.
quaternary logic See MULTIVALUED LOGIC.
query by example (QBE) 1. A screen-based form-filling user interface to a *relational
database. The user fills in visual tables with conditions and examples, and the appropriate
database query is constructed and run behind the scenes. 2. (in information retrieval) An
interface in which the user submits examples and the software performs a search based on
some measure of similarity.
query language Strictly a language for the specification of retrieval criteria against
which information is obtained from a database. The term is something of a misnomer
when, as with *SQL, a language that originated for this purpose has been extended to
include facilities for updating and for schema modification. See also QUERY PROCESSING.
query processing 1. The retrieval of information from a *database according to a set of
retrieval criteria, the database itself remaining unchanged. 2. In the context of a specific
*query language, the technique of translating the retrieval criteria specified using the
language into more primitive database-access operations, including a selection among
different methods to choose the most efficient in the particular circumstances.
queue 1. (FIFO list, pushup stack, pushup list) A linear *list where all insertions
are made at one end of the list and all removals and accesses at the other. Like a pushdown
*stack, a queue can be implemented in hardware as a specialized form of addressless
memory, and is most commonly used for speed buffering between a real-time data
input/output stream and a form of memory that requires start/stop time. 2. See QUEUE
MANAGEMENT, QUEUING THEORY.
queue management A queue is characterized by the way in which customers (i.e.
processes) join it in order to wait for service, and by the way in which customers already
in the queue are selected for servicing. Both of these activities are controlled by the
queue manager.
queuing network A network of queues (see QUEUING THEORY) used to model a system,
particularly for performance analysis.
queuing theory The study of systems in which customers, arriving at random and
requiring varying periods of service, may have to wait in order to be served. From the
number of service points and the *probability distributions of arrival times and service
times, the distribution of the length of queue and the waiting time before service may be
predicted.
Queuing theory has important applications in any system liable to congestion, where the
costs of improved service may be balanced against the costs of congestion.
quibinary code Another name for biquinary code.
quickersort An algorithm published in 1965 by R. S. Scowen using a method similar to
*quicksort. It repeatedly splits the array to be sorted into parts such that all elements of
one part are less than all elements of the other, with a third part in the middle consisting of
a single element.
quicksort (partition-exchange sort) A form of sorting by exchanging due to C. A. R.
Hoare. By comparing sortkeys from the two extremes of the file, and alternately working
up the file from the bottom until an exchange is necessary and then working down the file
from the top, the original problem can be reduced to two smaller problems. The same
process is then applied to each part, and is further repeated until the problems are trivially
small. See also HEAPSORT.
QuickTime A utility program from Apple for embedding multimedia, such as audio and
video, in a document. It is available for Windows as well as the Macintosh.
quiesce To render a device or system inactive by, for example, rejecting new requests for
work.
q-valued See Q-ARY.
race condition (race) A condition in *sequential circuits in which two or more
variables change at one time. In practice, i.e. with nonideal circuits, there is a possibility
of incorrect operation under such a condition. See also HAZARD.
racking See SCROLL.
rack mounting Where many computers are to be operated in close proximity, as with
multiple server installations, the manufacturers of such processors may offer versions of
their products, designed to be installed in standard 19′ racking. Such products frequently
support *hot swap power supplies and disks to enhance reliability.
radio button One of a set of *buttons in a *dialogue box that, when activated, allows
only one of a set of mutually exclusive options to be selected at a time (as when selecting
a radio station using a button with a pre-set frequency). For example, there may be a set of
radio buttons with the options to print a full document, the current page, or multiple pages.
Compare CHECK BOX.
radiosity A method used in computer graphics for producing photorealistic images but
originating from thermal engineers in the 1950s. The scene is divided into many small
objects and accurate modelling of diffuse interreflection between objects is calculated (see
DIFFUSE REFLECTION). This results in a large number of simultaneous equations to be
solved, so the method is not the fastest available. The energy input to the system comes
from the light sources. See also CLUSTERING.
RADIUS (Remote Access Dial-In User Service) A protocol for transmitting
authentication requests and responses and associated accounting records across an IP
network. RADIUS is frequently used by Internet Service Providers to carry login requests
from a modem or other network access device to a central user authentication database.
RADIUS is not itself an authentication protocol, but supports a wide range of different
authentication methods.
radix (base) The number of distinct digits in a fixed-radix *number system. These digits
represent the integers in the range zero to one less than the radix. The radix of a number
can be indicated by means of a subscript, as in 248 or 1012. See also BINARY SYSTEM,
HEXADECIMAL NOTATION, OCTAL NOTATION.
radix complement (true complement) For an integer represented in a fixed-radix
*number system, a number formed by adding one to the *radix-minus-one complement of
the given integer. For example, in the decimal system the ten’s complement of 0372 is
9628 (i.e. 9627 + 1); in the binary system the two’s complement of 1100 is 0100 (i.e.
0011 + 1). See also COMPLEMENT NUMBER SYSTEM.
radix exchange A form of *sorting by exchanging. Instead of comparing two sortkeys,
individual bits are compared, starting with the most significant bit. The file is then split
into two subfiles, one with keys having 0 as first bit, the other with 1 as first bit. The
process continues on the first subfile, comparing the second bits, and similarly on the
second subfile, and so on until the file is sorted.
radix-minus-one complement (diminished radix complement) For an integer
represented in a fixed-radix *number system, a number formed by replacing each digit d
in the integer by its complement, i.e. by
where R denotes the radix of the system. For example, in the decimal system the nine’s
complement of 0372 is 9627; in the binary system the one’s complement of 1100 is
0011. See also COMPLEMENT NUMBER SYSTEM, RADIX COMPLEMENT.
radix notation See RADIX POINT.
radix point A symbol, usually a dot, used to separate the integral part from the
fractional part of a number expressed in a radix notation, i.e. in the notation used in a
positional *number system.
radix sorting (digital sorting, pocket sorting) A sorting algorithm in which the file is
first sorted on the least significant digit of the sortkey, then the next least significant until
in the final pass a sort is made on the most significant digit. The algorithm is best
implemented using *linked lists. See also DIVIDE AND CONQUER SORTING.
ragged array An array where the numbers of elements in each row (or column) are not
equal: such arrays are described as row-ragged (or column-ragged). A ragged array
is usually represented using an *access vector or a vector of pointers, each pointer
referring to a row (or column) of the ragged array.
ragged right A method of laying out lines of print such that a new line is started after
the last word that fits in before the right margin, and no extra white space is inserted in the
line to make the end of the last word reach the margin exactly. See also JUSTIFY.
RAID (redundant array of independent disks (or drives)) A storage system
based on a *disk array that holds a certain amount of redundant information. The
redundant information can be used either to detect or in some cases correct errors. As with
any system, the greater the fraction of the information that is redundant, the greater the
protection against undetected errors, or the ability to recover from errors when detected.
In 1988, David A. Patterson, Garth Gibson, and Randy Katz of the University of
California at Berkeley published a paper entitled ‘A Case for Redundant Arrays of
Inexpensive Disks’, which outlined five array models or RAID levels. The levels were
named RAID 1 through 5, although no hierarchical relationship was implied. Since the
publication of the paper, a sixth RAID level has been described by the authors. In addition,
RAID level 0 is used to refer to a stripe set (see STRIPE DISK). However, the absence of
redundancy in a stripe set makes the term RAID a misnomer. The use of the word
inexpensive was because of the belief that arrays of low-cost PC drives offered a
significant decrease in storage costs when compared to SLEDs (single large expensive
disks), which at the time were used on mainframe systems.
Four RAID levels—0, 1, 3, 5—have been found to be commercially attractive;
however, each has drawbacks when applied in products. RAID product developers
frequently improve upon the data mapping and redundancy protection models outlined in
the original paper. This is achieved by combining RAID levels and\or combining RAID
data mapping with other technologies such as caching. The RAID level 0 and the Berkeley
RAID levels are as follows.
RAID 0 or Disk Striping Data is distributed uniformly in chunks across the
*member disks of the array; no redundant information is generated. If there are N disks in
the array, its *MTBF is 1/N times the MTBF of a single disk. The data transfer capacity
and I/O rate is very high for both reads and writes.
RAID 1 or Mirroring All data is duplicated across the N disks of the array so that the
*virtual disk has a capacity equal to that of one physical disk. For N > 3 this configuration
has the highest data reliability. The data transfer rate is higher than a single disk for reads
and slightly less than a single disk for writes. The I/O rate is up to twice that of a single
disk for reads and similar to a single disk for writes.
RAID 2 Each sector of data is divided into small chunks and is distributed across the
k data disks. The virtual sector size is thus k times that of a physical disk. Data is protected
by a *Hamming code; the N disks of the array comprise k data disks and m redundant
disks such that
Data reliability is comparable to RAID 3, 4, or 5 while the data transfer capacity and I/O
rate is comparable to RAID 3.
RAID 3
or Parallel Transfer Disks with Parity Each sector of data is divided into small
chunks and distributed across the N − 1 data disks. The virtual sector size is thus (N − 1)
times that of a physical disk. The redundant information is stored on a dedicated parity
disk. Data reliability is comparable to RAID 2, 4, or 5 while the data transfer capacity is
the highest of all.
RAID 4 or Independent Access Array Data is striped to chunks on the data
disks, which are very much larger than the data sectors. Redundant information is stored
on a dedicated parity disk. Data reliability is much higher than for a single disk—
comparable to RAID 2, 3, or 5. Data transfer capacity and I/O rate is similar to disk
striping for reads but significantly lower than single disk for writes.
RAID 5 or Independent Access Array with Rotating Parity Data is
distributed as in RAID 4 but to all the disks of the array. Redundant information is
interspersed with user data. Data reliability is comparable to RAID 2, 3, or 4. Data transfer
capacity and I/O rate is similar to disk striping for reads but lower than a single disk for
writes.
RAID 6 is as RAID 5 but with an additional parity disk. The additional parity is
independently computed such than any two disks in the array can simultaneously fail and
the array will still provide user data. Data reliability is the highest except for RAID 2 with
more than three member disks. Data transfer capacity and I/O rate is similar to disk
striping for reads and lower than RAID 5 for writes.
RAM (random-access memory) 1. The *main memory of a computer. It is
fabricated using semiconductor technology and allows the computer user to access (read
from) or alter (write to) individual storage locations within the device (see def. 2). 2. A
semiconductor memory device in which the basic element consists of a single cell that is
capable of storing one bit of information. Large-capacity memories are formed as twodimensional arrays of these cells. An individual cell is identified uniquely by row and
column addresses, which are derived by decoding a user-supplied address word. A typical
organization is shown in the diagram. Each cell in a RAM is thus independent of all other
cells in the array and can be accessed in any order and in the same amount of time, hence
the term *random access; data can be both read from and written to the cells in the array.
RAM is usually *volatile memory and is used for temporary storage of data or programs.
RAM. Typical organization of a RAM
RAM devices can be classified as static or dynamic. Static RAM (SRAM) is
fabricated from either bipolar or MOS components (see BIPOLAR TRANSISTOR, MOSFET);
each cell is formed by an electronic *latch whose contents remain fixed until written to or
until the power is removed. Dynamic RAM (DRAM) cells, which comprise MOS devices,
utilize the charge stored on a capacitance as a temporary store (see BUCKET); because of
leakage currents, the cell contents must be *refreshed at regular intervals. The design of
RAM chips is evolving and new standards arise frequently. The trend is for RAM to be
sold in modules rather than individual chips. See DIMM.
RAM disk (RAM drive, virtual disk) A portion of a computer’s *RAM memory made
to behave as though it were a disk. It can be written to and read from as though it were a
real disk but it is very much faster. However, it will generally have a lower capacity than a
hard disk. The contents of the RAM disk are not preserved when the computer is switched
off. RAM disks are not widely used: *disk caches that improve the performance of real
disks are a better use of RAM.
RAM drive Another name for RAM disk.
Ramp-C benchmark A *benchmark that measures the limiting capacity of a computer
system by a combination of an increasing number of transactions from a standardized mix
and an increasing number of terminals, until no more transactions or terminals can be
added. This is represented for a number of configurations of the computer until the highest
capacity is reached. A percentage (typically 70%) of the highest capacity is then taken as
the benchmark result.
random access 1. A type of memory access in which storage locations can be accessed
in any order. The term is applied primarily to the *main memory of a processor where the
*access time to any word or byte is fixed, i.e. the access time to any item of information is
independent of the address of that item and of the address of any previous item referred to.
Main memory, in modern systems, is fabricated from semiconductor *RAM or *ROM,
although mobile devices increasingly depend on NOR *flash memory.
The term random-access memory has also been used to describe memory implemented
on *magnetic disk to distinguish it from serially accessed devices such as magnetic tape.
See also RAM DISK.
2. A method of access to a *file (especially a data file): a file is said to be randomly
accessed if the sequence of transactions submitted to it does not match any sequence in
which records may be organized.
random-access file A file that is organized to support *random access. The most
common random-access methods are *hashing, *indexed sequential, and *B-tree based
methods. See also ISAM, VSAM.
random-access memory See RAM. See also RANDOM ACCESS.
random-access stored-program machine A general-purpose computer in which
the program and data are contained in (usually the same) read-write random-access
memory. See also VON NEUMANN MACHINE.
random algorithms Algorithms that are fast but instead of always giving the correct
answer give the correct answer with high probability. They have been devised because of
the difficulty (impossibility?) of finding *polynomial time algorithms for some problems
(see P=NP QUESTION).
An example is that of trying to test whether or not a number is prime. Given an integer
n there is a test that uses a ‘guess’ i, chosen at random between 1 and n, that takes
O(log2n) time to perform. If the test is successful n is known to have factors; on the other
hand if n has factors then the test will be successful for at least half of the integers in the
range 1 to n. Thus if the test fails k times it can be said that n is prime with probability 1 −
2−k.
Several other examples of problems amenable to a similar approach have now been
found. However, such examples are either already known to be solvable in polynomial
time anyway (although the random algorithms are an order of magnitude faster) or, like
prime-testing, under suspicion of so being.
random logic A term generally used to describe a relatively nonuniform digital logic
circuit. For example, a control unit will contain random logic; an ALU, having a regular
structure, will not.
random numbers Numbers that are drawn using a random *sampling technique from a
set of permissible numbers. True random numbers are difficult to obtain, and programs
using them are difficult to debug.
Attempts to produce random numbers using the arithmetic properties of a computer
result in pseudorandom numbers, since in principle the numbers generated depend
on their predecessors. However, their *frequency distribution may be assumed to
correspond to a given theoretical form, and they may be assumed to be independent of
each other. Basic pseudorandom numbers are uniformly distributed in the range (0,1), and
may be transformed to provide other distributions.
Many methods for their generation have been proposed over the years, one of the
earliest being the middle square method proposed by von Neumann: the previous
random number is squared and the middle digits extracted from the result to form the next
number in the sequence. More successful methods are based upon the linear congruential
method in which a sequence of numbers is generated using the formula
for particular choices of a, c and m.
Pseudorandom numbers are used in a number of applications: in *Monte Carlo methods
of numerical integration, to sample a large set and so gain insight into the set, and to
simulate natural phenomena such as the collision of nuclear particles.
random sampling See SAMPLING.
random variable A quantity that may take any of a prescribed set of values with
*relative frequency determined by its *probability distribution.
range 1. of a binary *relation R, a subset of S1 × S2, say. The *subset of S2 consisting of
all elements to which some element of S1 is related. If R is the relation ‘is the wife of’
defined from men to women, the range of R is the set of married women.
Since a *function is a special kind of relation, the range of
can be written as
2. See MEASURES OF VARIATION.
range image An image defined by a regular array of values that describe a surface. A
range scanner is a device that automatically generates range images either in Cartesian
or cylindrical coordinates.
rank 1. The number of linearly independent rows or columns of a matrix of numbers. 2.
(of a graph) See CONNECTED GRAPH.
rank correlation See CORRELATION.
rank correlation coefficient See NONPARAMETRIC TECHNIQUES.
RAR A file archiving and compression that works in a similar fashion to PKZIP (see
ZIP); on Windows it is known as WinRAR. Its RAR format gives high compression
ratios.
raster A predetermined pattern of scanning lines that provides substantially uniform
coverage of a display area.
raster display A display that consists of a regular grid of *pixels and is normally driven
from a *frame buffer. How the image is generated on a raster display will depend on the
display technology used, the *raster-scan display being a particular example.
raster graphics Graphics in which the information about the image is held as a bitmap.
Digitized images produced by scanning or digital photography have raster graphics.
Compare VECTOR GRAPHICS.
raster image processor See RIP.
rasterizer A special device situated between a graphics system and a raster device to
convert line drawings to a raster form.
rasterop Another name for bitblt.
raster-scan display 1. A widely used method of presenting graphical or pictorial
images in which the electron beam of a *cathode-ray tube is swept across the screen, one
row at a time and from top to bottom. As the electron beam sweeps, the beam intensity is
turned on and off dependent on information defining the picture to be created. It is similar
to the definition of a TV picture. Compare VECTOR DISPLAY. 2. A physical device
operating in this way.
rate 1. (of a code) For any (n, k) *block code or *convolutional code, the value defined
as
It is a measure of ‘efficiency’ in the sense that the more *redundancy there is in the code,
the lower the rate. On the other hand, high redundancy may bring about greater efficiency
in detecting or correcting errors. Thus the rate measures only one aspect of the overall
efficiency. 2. See DATA TRANSFER RATE.
rational language Another name for regular language.
rational number (rational) Mathematically, a number that is *fractional and is defined
as the ratio of two whole numbers: the numerator (an *integer) and the denominator
(a strictly positive integer). In a/b, a is the numerator and b the denominator. See also
RATIONAL TYPE, REAL NUMBERS.
rational type In a programming language, a range of *rational number values.
In computer representations of rational numbers, there are problems with the sizes of
the numerator (to provide the range required) and of the denominator (to retain the
precision). Consequently, *floating-point notation is often preferred even though it brings
problems of its own. Also, it is harder to provide hardware support for strict rational
operations (which never lose precision) than for floating-point (which is a limitedprecision rational notation often used for approximating *real numbers). While most
programming languages provide floating-point notation, only a few provide a rational
type.
raw data Data in the form in which it reaches a computer system from the outside
world: data that has not been vetted for correctness, nor sorted into any sequence, nor
processed in any other way.
raw error rate (of peripheral storage) See ERROR RATE.
ray casting A *rendering technique in which, for each pixel, a ray is traced from the eye
position (in image space) through the pixel to find the intersection with all the objects in
the scene. The intersection with the nearest object determines the colour of the pixel. *Ray
tracing is more complex.
Rayleigh–Ritz method See FINITE-ELEMENT METHOD.
ray tracing A *rendering technique in which a ray is cast from each pixel on the screen:
these rays are followed into the scene, and the first surface to be struck is determined.
Secondary rays may be generated to determine whether the point is in shadow, and
also to follow reflections back toward their sources. Some limit is usually placed on the
number of rays to be traced. In adaptive ray tracing the number of rays generated is
dependent on the objects and the illumination encountered by previous rays.
RBL (real-time blackhole list) One of a number of published lists of IP addresses
that should be shunned for having broken some policy supported by the maintainer of the
list. For example a number of lists contain the addresses of organizations that have sent or
been involved in the sending of unsolicited bulk email. Network operators may decide to
apply different rules to emails or other network traffic from addresses listed on RBLs
whose policy they support, either rejecting them outright or subjecting them to greater
scrutiny before transmitting them.
RBT Abbrev. for remote batch terminal.
RC circuit A simple filtering circuit employing only resistors and capacitors.
RCS A local data *source code control system developed by the *Free Software
Foundation in the early 1980s.
RDBMS Abbrev. for relational database management system.
RDF Site Summary See RSS.
reachability A concept from graph theory concerned with whether there is a *path
between two vertices in a directed *graph. Vertex V is said to be reachable from vertex
U provided that there is a path from U to V. There may be several different paths from one
vertex to another, the shortest being called a geodesic. The set of points that can be
reached from a given vertex V is called the reachable set of V.
A directed graph is unilaterally connected when, for any pair of vertices, at least
one vertex is reachable from the other.
reachability matrix Another name for adjacency matrix.
read To sense and retrieve (or interpret) data from a form of storage or input medium.
The word is often used to qualify the meaning of a noun, as in read head.
read clock See DISK FORMAT.
reader A device for holding or moving a data medium and sensing the data encoded on
it. See CARD READER, DOCUMENT READER.
read error See ERROR RATE.
read head See MAGNETIC TAPE.
read instruction A program step that causes data to be retrieved from a defined storage
location and written into a register or buffer.
read-mostly media See WRITE-ONCE.
read-only file A file that can be read or copied, but not erased or modified. The
protection is maintained by the operating system and in multiuser systems can be made to
depend upon the category of the user. A file might be writeable by its owner, read-only to
the owner’s colleagues, and inaccessible to everyone else. See also FILE PROTECTION.
read-only memory See ROM.
read-only optical media Optical storage media that cannot be written by the user but
that carry data imprinted during manufacture, usually by pressing from a master disk. See
OPTICAL STORAGE.
readout 1. Information retrieved from computer memory after processing and displayed
on a screen or copied into backing store. 2. The operation of reading data from a storage
device.
read time The period between the availability of the first and last bits of data concerned
in a single read operation. It does not include any latency or waiting time or any
regenerative action that may be associated with a destructive read operation. See also
ACCESS TIME.
read-while-write check See MAGNETIC TAPE.
read/write head A component of a *disk drive that records and retrieves data from
magnetic disks. Read\write heads are also used sometimes to record and retrieve data from
*magnetic tapes. In the case of disk drives the assembly consists of a head, sometimes
known as a slider, and a mounting arm, known as a flexure. There are two categories of
head: those used in floppy drives in which the slider is in contact with the media, and
those used in ‘rigid drives’ in which the head flies above the surface of the media. The
flying height of the latter depends upon the slider geometry, the flexure loading force, and
the rotational speed of the disk.
read/write memory A type of memory that, in normal operation, allows the user to
access (read from) or alter (write to) individual storage locations within the device. The
choice of read or write operation is normally determined by a read/write signal applied to
the device. *RAM devices are typical read/write memories. Compare ROM.
ready signal A signal from a device indicating that it can accept new commands or data.
Compare BUSY SIGNAL.
realism See PHOTOREALISM.
Really Simple Syndication See RSS.
real numbers (reals) The numbers that allow a numerical quantity to be assigned to
every point on an infinite line or continuum. Real numbers are thus used to measure and
calculate exactly the sizes of any continuous line segments or quantities. The
development of a number system that meets these requirements has proved to be a long
and complex process that reached a conclusion only in the 19th century. Establishing
theoretical foundations for mathematical developments such as the calculus have involved
sorting out subtle, conflicting, and inconsistent ideas about the reals (such as
infinitesimals). The set of reals is infinite and not countable: there does not exist a method
of making finite representations or codings of real numbers. Research on the foundations
of the continuum continues—for instance on computation with the reals and on the uses of
infinitesimals.
The real numbers, like the *natural numbers, are one of the truly fundamental data
types. Unlike the natural numbers, however, reals cannot be represented exactly in
computations. They can be approximated to any degree of accuracy by *rational numbers.
A real number can be defined in several ways, for example as the limit of a sequence of
rational numbers. A real x is represented by a sequence q(0), q(1),… of rational numbers
that approximates x in the sense that for any degree of accuracy ε there exists some natural
number n such that
A real number is a computable real number if there is an algorithm that allows us to
compute an approximation to the number to any given degree of accuracy. A real x is
computable if (a) there is an algorithm that lists a sequence q(0),q(1),… of rational
numbers that converges to x, and (b) there is an algorithm that to any natural number k
finds a natural number p(k) such that
Most of the real numbers that we know and use come from solving equations (e.g. the
algebraic numbers) and evaluating equationally defined sequences (e.g. e and Π) and are
computable. However, most real numbers are noncomputable.
The approximations to real numbers used in computers must have finite representations
or codings. In particular, there are gaps and separations between adjacent pairs of the real
numbers that are represented (see MODEL NUMBERS). The separation may be the same
between all numbers (*fixed-point) or may vary and depend on the size of the adjacent
values (*floating-point). Some programming languages ignore this difference, describing
floating-point numbers as ‘real’. Calculations with real numbers on a computer must take
account of these approximations.
real-time clock A clock that runs regardless of whether *processes that refer to the
clock are running or not. The clock may take two forms, either as a peripheral device that
can be read by a process when the process chooses, or as a source of interrupts that occur
at precisely determined intervals. A real-time clock measures *elapsed time. See also
RELATIVE-TIME CLOCK.
real-time language A programming language designed for programming systems in
which the response time of the computer to stimuli is time critical. For instance, if a
computer is controlling an elevator, then the computer must be able to respond quickly to
the movements of the cage. *Ada, *Modula, *CORAL 66, and RTL-2 are real-time
languages to various degrees.
real-time operating system (RTOS) An *operating system specifically designed to
support the implementation and deployment of a *real-time system.
real-time system Any system in which the time at which output is produced is
significant. This is usually because the input corresponds to some movement in the
physical world, and the output has to relate to that same movement. The lag from input
time to output time must be sufficiently small for acceptable timeliness. Timeliness is a
function of the total system: missile guidance requires output within a few milliseconds of
input whereas scheduling of steamships requires responses measured in days. Real-time
systems are usually considered to be those in which the response time is of order
milliseconds; interactive systems are those with response times of order seconds and batch
systems are those with response times of hours or days. Real-time systems may be
subdivided into hard and soft, depending on the severity of failure to meet a deadline for
output.
Examples of real-time systems include process control, embedded computer systems,
point-of-sale systems, and computer-aided testing.
real type (type real) A *data type comprising values that have a fractional part and
approximate to the mathematical *real numbers. They can be operated on by real-number
arithmetic operations such as addition, subtraction, multiplication, division, and square
root. Usually the representations do not include transcendental real numbers but are
limited to a subset of *rational numbers. See also FLOATING-POINT NOTATION.
reason-maintenance system See BELIEF SYSTEMS, TRUTH-MAINTENANCE SYSTEM.
reboot To *restart a computer after it has been operating for some time, usually in an
attempt to clear an error condition. See BOOTSTRAP, COLD BOOT, WARM BOOT.
recognize (accept) a formal language. See AUTOMATON, FINITE-STATE AUTOMATON.
reconfiguration The process of redefining and in some cases reconnecting the units of
a multiple-unit computer system. This procedure may be accomplished automatically,
manually, or by a combination of both. The purpose may be to provide different system
functionality or continued operation after the failure of one unit. If done automatically the
latter case would represent a *fail-soft situation. See also CONFIGURATION.
reconstitute To rebuild, generally used to denote the recovery process necessary to
restore a system to an operational state after some error. It usually involves resorting to a
backup state and running appropriate programs.
record 1. A collection of data handled together in transfers to and from peripheral
devices. Files held on backing store are frequently treated as sequences of records. The
collection of data transferred as a unit is called a physical record. In contrast, the
collection of data relating to one subject is then called a logical record. The number of
logical records in a physical record is the blocking factor. 2. A *data structure in which
there are a number of named components, called *fields, not necessarily of the same type.
It may have variants in which some of the components, known as variant fields, are
absent; the particular variant for a given value would be distinguished by a discriminant or
tag field. The record is widely recognized as one of the fundamental ways of aggregating
data (another being the *array) and many programming languages offer direct support for
data objects that take the form of records (see STRUCTURED VARIABLE). Such languages
permit operations upon an entire record object as well as upon its individual components.
3. Another term for write, used particularly when writing the value of data that may
change or disappear.
recording density See PACKING DENSITY.
record locking A method of ensuring that if one *process is altering part of the contents
of a file, other processes cannot alter that part of the file until the updating activity has
been successfully completed. The actual operation of the record-locking mechanism will
usually require cooperation between the operating system and the user applications
program. Because the lock is applied only to the record(s) that are being updated, the use
of record locking allows other processes to operate in other parts of the file, which can be
guaranteed not to be affected by the updating process. See also FILE LOCKING.
recoverable error of peripheral storage. See ERROR RATE.
recovery The process of restoring normal operation after the occurrence of a *failure.
See DATABASE RECOVERY, ERROR RECOVERY, FAILURE RECOVERY, FILE RECOVERY,
POWER-FAIL RECOVERY.
recovery data Data saved during execution of a system to enable *error recovery. The
data includes *recovery points, and information allowing all data to be restored to the
values that existed prior to the recovery point. Thus for data changed by operations
following the recovery point, the value of the data prior to this change must be saved as
recovery data at the time that the change is being made.
recovery log A file created to permit *database recovery (or *file recovery). The log
contains information about all changes made to a database or file since it was last
established as being correct and a *backup copy was last taken. The form in which
changes may be recorded in a recovery log may vary considerably, depending on the
recovery algorithms to be used. In general, a recovery log may be used in one of two
ways: (a) to redo all changes since the last backup (if the database or file has been
corrupted); (b) to undo all incorrect changes (if the source of error is in the changes). See
also LOG FILE.
recovery point Points in a computation for which the (then) current state can be
restored. See ATOMIC ACTION, BACKWARD ERROR RECOVERY, FORWARD ERROR
RECOVERY, RECOVERY DATA.
recurrence A statement describing some quantity such as f(n) (where f is some
*function and n is a positive integer) in terms of values of f(m), where m is a nonnegative
integer smaller than n; initial values such as f(0) or f(1) can be assumed to be defined. The
concept can be extended to include functions of several variables. A recurrence will then
involve defining f(m,n), say, in terms of f(m′,n′) where in some sense (m′,n′) is smaller than
(m,n); again initial values can be assumed. The numbers in the *Fibonacci series can be
defined by a recurrence.
In general, a recurrence can be considered as an equation connecting the values of the
function at a number of related points. It has the form
Assuming initial values for f(0), f(1),…, f(k−1), values for other points n can be calculated.
Equations of this type arise naturally in the *discretization of continuous problems, and
in a slightly different form, known as a *difference equation, appear repeatedly in
*combinatorics.
recursion The process of defining or expressing a function, procedure, language
construct, or the solution to a problem in terms of itself, so producing a *recursive
function, a *recursive subroutine, etc. See also PRIMITIVE RECURSION.
recursion theorem A theorem of S. C. Kleene: a recursive operator, mapping functions
to functions, has a least fixed point that is a *partial recursive function.
recursive Often another word for computable, especially when discussing *effective
computability on the set of natural numbers. *Recursive sets and *recursive functions are
thus also called computable sets and computable functions. *Recursively enumerable sets
are often described as semicomputable.
recursive descent parsing See LL PARSING, TOP-DOWN PARSING.
recursive doubling A method in which a total computation is repeatedly divided into
two separate computations of equal complexity that can be executed in parallel. Recursive
doubling is used in *parallel computers and works best when the operation on pairs of
operands is *associative.
recursive function 1. In mathematics, a *function whose usual or natural definition is
in terms of itself. 2. In a program, a function *procedure that calls itself. 3. (general
recursive function, total recursive function) In the study of *effective computability,
a *partial recursive function that happens to be *total. For some authors, however, the
terms recursive and general recursive are synonymous with partial recursive. It is useful
here to summarize the various terms used in this area:
The term partial recursive function is often used in a general sense to mean any
computable function on the natural numbers defined by a model of *computation.
However, strictly speaking, a partial recursive function is simply a function defined by
*primitive recursion and Kleene’s μ-recursion scheme (see MINIMIZATION). Not all such
functions are *total functions since the use of the μ-operator allows the possibility of
nontermination.
A *primitive recursive function, however, cannot involve the μ-operator and is hence
guaranteed to be total. The *Ackermann function is the standard example of a total
recursive function that is not primitive recursive.
recursive list (self-referent list) A *list that contains itself as a sublist element or is a
sublist element of one of its sublists.
recursively decidable problem Another term for decidable problem. See DECISION
PROBLEM.
recursively enumerable set A subset A of a set B is said to be recursively
enumerable, relative to B, if there is an effective procedure that, given an element b in B,
will output ‘yes’ if and only if b is an element of A. If b is not in A then, in general, the
procedure will never terminate. This is a weaker notion than that of a *recursive set. A set
can be recursively enumerable without being recursive. The set A is also said to be
semidecidable or semicomputable.
The set of *Ada programs that terminates (for a given input) is recursively enumerable
(with respect to the class of all Ada programs) but it is not recursive.
recursively solvable problem Another term for solvable problem. See DECISION
PROBLEM.
recursively undecidable, recursively unsolvable Other terms for undecidable,
unsolvable. See DECISION PROBLEM.
recursive real number Another name for computable real number. See REAL
NUMBERS.
recursive relation A *relation whose *characteristic function is recursive.
recursive set A subset A of a set B is said to be recursive, relative to B, if there is an
algorithm or effective procedure that, given an element b in B, will output ‘yes’ if b is an
element of A and ‘no’ if b is not an element of A. The set A is thus also said to be
decidable or computable.
Strictly speaking the sets A and B should be sets of natural numbers, and the algorithm
is a definition of the total *recursive function that is the *characteristic function of A in B.
The concept and terminology is transferred to other data sets using a *Gödel numbering.
Post’s theorem says that a set A is recursive iff A and B–A are *recursively enumerable.
recursive subroutine A *subroutine that calls itself. Such a self-referential call must
occur as one branch of a conditional statement, otherwise there would be an infinite series
of calls. As an example, a recursive subroutine to calculate factorial (n) would call itself to
calculate factorial (n − 1), unless n = 1 when the value 1 will be returned.
Red Book 1. The *coloured book that defined the job submission protocol formerly
used within the UK academic community. It is sometimes referred to as JTMP, Job
Transfer and Manipulation Protocol. 2. Part of the defining documentation for the
*ISDN standard, covering the protocol reference model for the ISDN together with
numbering and addressing and the functional descriptions of connection types. 3. A US
National Computer Security Center (NCSC) publication that discusses the security aspects
of trusted computer systems, with special emphasis on the networking implications. 4.
The proprietary format standard common to all CD disks. See CD-ROM FORMAT
STANDARDS.
reduced instruction set computer See RISC.
reducible polynomial See POLYNOMIAL.
reduct An *algebra formed by removing some of the operations, and possibly carriers, of
another algebra. Let A be an algebra of *signature Σ0 and let Σ be a subsignature of Σ0.
Then the reduct A|Σ of A with respect to Σ is the algebra formed by removing from A the
carriers, constants, and operations of A not named in Σ.
reduction machine A machine that evaluates expressions by successively reducing all
component subexpressions until only simple terms representing data values remain. For
each expression that is not a simple data value, a set of rules define what should be
substituted when that expression appears. The machine operates by matching each
subexpression of the expression currently being evaluated with its appropriate rule, and
substituting as specified by that rule. This process of expression substitution continues
until only simple data values remain, representing the value of the original expression.
All subexpressions can be matched and substituted concurrently, and thus there is the
potential for a high degree of parallelism. A major objective of reduction machines is to
exploit this parallelism.
Reduction machines represent one of the major examples of *non von Neumann
architecture, and are of considerable research interest. Traditional *imperative
programming languages are unsuited to reduction machines, so *declarative languages are
employed.
reduction system Short for abstract reduction system.
redundancy The provision of additional components in a system, over and above the
minimum set of components needed to perform the functions of the system, for purposes
of *reliability or *robustness. For example, with triple modular redundancy three
components are deployed in parallel, all performing the same function. Their outputs are
compared, and when one component produces a different result from the other two, this
item is assumed to be faulty and is ignored. Redundancy covers not only the incorporation
of duplicate or triplicate hardware for backup in case of *failure, but also the inclusion of
excess symbols in messages sent through communication systems in order to combat the
effects of noise (see ERROR-CORRECTING CODE, ERROR-DETECTING CODE).
redundancy check A check made with redundant hardware or information that can
provide an indication that certain errors have occurred. See also CYCLIC REDUNDANCY
CHECK, REDUNDANCY.
Reed–Muller codes (RM codes) A family of *binary *cyclic (2m, k) *error-correcting
*block codes.
Reed–Solomon codes (RS codes) An important and practical family of *linear *errorcorrecting *block codes, especially suited to the correction of *burst errors. They can be
regarded as a generalization of *Bose–Chaudhuri–Hocquenghem (BCH) codes, and as a
special case of *Goppa codes. RS codes can be arranged to be *cyclic.
re-engineering The reimplementation of an existing design to exploit technological
advances. The usual reason is to improve competitiveness with regard to cost and
performance while maintaining compatibility with previous versions.
re-entrant program A program whose instructions are invariant, hence it can be used
again without being reloaded. Re-entrant programs consist of logically separate code and
data segments, and two instances of such a program can share the same code.
referent 1. The subject of a *model. 2. The data item to which a pointer or indirect
address refers.
referential integrity The internal consistency of intra-record references in a database,
ensuring that if a record contains the key of, or a pointer to, another record in the database
then this second record must actually exist and cannot in isolation be deleted. In the
context of the *relational model, it means that the set of values held for a *foreign key
must always be a subset of the set of values held in the relation of which it is the key. See
DATA INTEGRITY.
referential opacity The opposite of *referential transparency.
referential transparency A property of a function signifying that evaluation of the
function with a particular set of arguments always returns the same value, whatever the
context in which evaluation takes place. In programming terms this means that the
function must not exhibit any side effects, i.e. it must not reference or change variables
defined outside the function, except for the variables passed as parameters.
refinement The process in programming whereby higher-level or abstract ideas are
progressively re-expressed in terms of lower-level or concrete ones. This can involve both
the implementation of procedures in terms of lower-level procedures, and also the
representation of abstract data in terms of more concrete data. Both kinds of refinement
can involve *specifications, with each step of refinement being shown to preserve the
specified behaviour of the procedure or data type being refined. Although both terms are
rather fluid in meaning, there is a possible distinction to be made between refinement and
*program transformation, with the latter involving the replacement of one program
fragment by an equivalent one at the same level of abstraction rather than its
representation in terms of a lower level of abstraction.
Refinement and transformation are two of the main ideas in the increasingly important
study of the systematic derivation of correct programs from specifications.
reflectance function A function that defines the spatial distribution and the wavelength
composition of the light reflected from an object’s surface.
reflectance model A mathematical model of how light is reflected from a surface based
on a *reflectance function. The basic reflectance model assumes that all surfaces are
perfect mirrors. More realistic models use reflectance functions that more accurately
represent the properties of real surfaces (see also COOK–TORRANCE MODEL, SPECULAR
REFLECTION).
reflexive closure See TRANSITIVE CLOSURE.
reflexive relation A *relation R defined on a set S and having the property that
The relation ‘is the same age as’ defined on the set of people is reflexive. Compare
IRREFLEXIVE RELATION.
refresh (regenerate) 1. To replenish the charge on the storage capacitors used in
*dynamic memory cells and other similar devices. Some devices are provided with
internal circuitry that automatically refreshes dynamic cells whenever these cells are read.
The word refresh is also used as a noun. 2. To repeat at regular intervals the display of
digital information on a *cathode-ray tube or television monitor in order that the display
can appear persistent. See also REFRESH FREQUENCY.
refresh frequency The frequency with which a display on a cathode-ray tube is
regenerated. To avoid *flicker this must be made as high as possible. See CFF.
refutation A method of reasoning used in logic to refute statements, i.e. to prove them
false.
regenerate Another term for refresh.
register A group of (usually) *bistable devices that are used to store information within a
computer system for high-speed access. A register of n bistables can store a word of length
n bits, which can represent any n bits of information. Different interpretations can be given
to the bit configuration stored in the register; for example, the configuration could
represent an instruction, a binary number, an alphanumeric character, etc. A register is
often the same size as the computer word; it may also be byte- or character-size or some
other size as required. Some registers can behave as *counters as well, or they may behave
as *shift registers. See also MEMORY HIERARCHY.
register insertion ring See RING NETWORK.
register optimization See OPTIMIZATION.
register transfer language (RTL) Any of several programming languages that allow
the declaration of *register configurations within a structure to perform a computation.
The timing of transfers between registers, to describe the behaviour, is specified by the
order in which such transfers are interpreted during the execution of the program. See also
CHDL.
regression analysis A statistical technique that is concerned with fitting relationships
between a dependent variable, y, and one or more independent variables, x1, x2,…, usually
by the method of *least squares.
A linear regression model is one in which the theoretical mean value, μi, of the
observation yi is a linear combination of independent variables,
when k x-variables are included in the model. The multiples β0, β1,… βk are parameters of
the model and are the quantities to be estimated; they are known as regression
coefficients, β0 being the intercept or constant term. A model with more than one
x-variable is known as a multiple regression model.
Nonlinear regression models express μ as a general function of the independent
variables. The general functions include curves such as exponentials and ratios of
polynomials, in which there are parameters to be estimated.
Various procedures have been devised to detect variables that make a significant
contribution to the regression equation, and to find the combination of variables that best
fits the data using as few variables as possible. *Analysis of variance is used to assess the
significance of the regression model. See also GENERALIZED LINEAR MODEL, INFLUENCE.
regression testing Following maintenance to a system, tests performed to demonstrate
that the system still performs all the functions required prior to the maintenance.
Regression testing is additional to tests made to ensure that the modifications work
satisfactorily. See also PERFORMANCE TESTING.
regula falsi Another name (Latin) for false position method.
regular expression An expression built from finite *formal languages (i.e. finite sets of
strings) using the operations of *union, *concatenation, and *Kleene star. For example,
the following two regular expressions each denote the set of all strings of alternating as
and bs:
where Λ is the empty string. A language is *regular if and only if it is representable by a
regular expression. Thus the class of regular languages is the smallest one that contains all
finite languages and is closed under concatenation, union, and star—the so-called
regular operations. These three operations correspond to ‘sequence’, ‘choice’, and
‘iteration’ in structured iterative programs.
regular grammar A *grammar in which each production has one of the forms
where b is a terminal and A,C are nonterminals. Like the right-linear and left-linear
grammars (see LINEAR GRAMMAR) regular grammars generate precisely the *regular
languages.
regular language (regular set, rational language) A language recognized by a *finitestate automaton. Of the language classes commonly studied, the class of regular languages
is the smallest and mathematically the simplest. Its importance is shown by the existence
of several alternative definitions; for some of them see LINEAR GRAMMAR, MYHILL
EQUIVALENCE, NERODE EQUIVALENCE, REGULAR EXPRESSION, REGULAR GRAMMAR, TREE
GRAMMAR.
regular operations See REGULAR EXPRESSION.
regular set Another name for regular language, since in formal language theory a
language is simply a set of strings.
reinforcement learning An approach to *machine learning in which feedback on the
desirability of an outcome is gained during interactions with a problem environment. The
feedback (or reward) signal indicates the effect of past action in terms of success, e.g. a
win/lose signal at the end of a game. This is different from supervised learning, because
the reward signal is delayed and a form of trial-and-error search is therefore involved. The
aim of this method is to discover which actions are the most suitable for different
situations and improved future interactions.
relation (defined on sets S1, S2,… Sn) A *subset R of the *Cartesian product
of the n sets S1, …, Sn. This is called an n-ary relation. When a relation R is defined on a
single set S the implication is that R is a subset of
The most common situation occurs when n= 2, i.e. R is a subset of S1 × S2. Then R is
called a binary relation on S1 to S2 or between S1 and S2. S1 is the domain of R and S2
the codomain of R. If the *ordered pair (s1,s2) belongs to the subset R, a notation such as
is usually adopted and it is then possible to talk about the relation R or ρ and to say that s1
and s2 are related.
An example of a binary relation is the usual ‘is less than’ relation defined on integers,
where the subset R consists of ordered pairs such as (4,5); it is however more natural to
write 4 < 5. Other examples include: ‘is equal to’ defined on strings, say; ‘is the square
root of’ defined on the nonnegative reals; ‘is defined in terms of’ defined on the set of
subroutines within a particular program; ‘is before in the queue’ defined on the set of jobs
awaiting execution at a particular time.
The *function is a special kind of relation. *Graphs are often used to provide a
convenient pictorial representation of a relation.
Relations play an important part in theoretical aspects of many areas of computing,
including the mathematical foundations of the subject, databases, compiling techniques,
and operating systems. See also EQUIVALENCE RELATION, PARTIAL ORDERING.
relational algebra The algebra developed by Ted *Codd for reasoning about relational
databases. See also RELATION MODEL.
relational database management system (RDBMS) A *database management
system that supports the *relational model.
relational model A *data model that views information in a database as a collection of
distinctly named tables. Each table has a specified set of named columns, each column
name (also called an attribute) being distinct within a particular table, but not
necessarily between tables. The entries within a particular column of a table must be
atomic (that is, single data items) and all of the same type. The logical *records held in a
relational database are viewed as rows in these tables. Each logical record is thus
constrained to contain only a set of elementary data items each of a prespecified type. The
model is, in consequence, also known as the flat file model.
The model, first proposed by *Codd in 1969 and used exclusively in the context of
*database management systems, takes its name from an analogy that can be drawn
between a table as described and the mathematical concept of a *relation. In this analogy
table corresponds to relation, row (in a table) to tuple (of a relation), and the column
names (of the table) to the domain ordering (in the relation). Using this analogy Codd
developed various sets of operations on which languages for the manipulation of such
tables might be based and from which the now widely used data sublanguage *SQL is
derived.
In spite of its name, which can be a source of confusion, the model makes no provision
for maintaining relationships between rows in different tables and the only constraint on
the rows within a particular table is that no two rows are identical. Each row, from the
viewpoint of the model, is thus an independent entity. It can only be related to other rows
by correspondences between contained data items, which is a matter for the user.
See also ERA MODEL, FOREIGN KEY, NORMAL FORMS.
relational operator An operator representing a comparison between two operands that
returns a truth value. The common comparisons are shown in the table, together with the
relational operators normally used in computing; ‘not equal to’ has many denotations.
Relational operator. Table of relational operators
relative addressing Usually either of two ways to expand a short specified address.
The first is self-relative addressing where the specified address is added to the
address of the instruction (generally the current contents of the program counter) that
contains the self-relative reference to produce a direct address. The second is base
addressing in which the specified address is added to the contents of a base register
containing a base address to produce a direct address. See also ADDRESSING SCHEMES.
relative complement Another name for set difference.
relative frequency The number of occurrences of a particular event, E, divided by the
total number of observed events. An event is a particular instance of a class of
observations, such as the result of the throw of dice, the recording of a man’s height, or the
survival of a patient given a particular treatment. Relative frequency should be
distinguished from *probability. For example, the probability that a fair coin when tossed
lands heads up is 0.5, whereas the relative frequency in a particular run of 100 tosses
might be 47/100 or 0.47.
The set of relative frequencies for all the events that are possible is called a *frequency
distribution. It may be displayed graphically as a *histogram.
relatively prime See GREATEST COMMON DIVISOR.
relative product Another name for composition.
relative-time clock A free-running clock that raises an interrupt at regular intervals,
often associated with the period of the incoming supply of electricity. These interrupts
allow the supervisory system to track the passage of real time, and also guarantee that if a
process does not call the supervisor explicitly, the supervisor will nevertheless be entered.
relative URL A form of *URL consisting of the file name and an *access path relative
to the path of the current document.
relay 1. In networking, a means of passing information between two or more networks,
each offering a similar network function but each using a different *protocol. In general a
relay differs from a *gateway or *bridge in offering a *store and forward service rather
than a real-time service. As an example, a mail relay may be used to pass mail messages
between networks using different mail protocols. See also CELL RELAY, FRAME RELAY.
The term relay is used in some communities as synonymous with bridge or gateway.
These three terms have meanings that vary between different communities at the same
time, and within a given community at different times. 2. An electrically controlled switch
enabling small signals to control much larger powers than would normally be possible as
well as providing isolation between circuits. Various contact arrangements, e.g. normally
open, normally closed, change-over and multiple poles, are available, as are bistable
versions.
release Transfer of a system from the development stages into wider usage, e.g. into
operational use. See also SOFTWARE LIFE CYCLE.
release candidate In a software development project, a version with all known issues
resolved that, if it passes final testing, will become the *gold master.
reliability 1. The ability of a computer system to perform its required functions for a
given period of time. It is often quoted in terms of percentage of *uptime, but may be
more usefully expressed as MTBF (mean time between failures). See also HARDWARE
RELIABILITY, REPAIR TIME. 2. (of software) See SOFTWARE RELIABILITY.
relocatable code Program code that can be loaded anywhere in memory. Typically the
code is divided into control sections and all memory addresses are expressed relative to
the start of a control section. The compiler/assembler produces a table of all such memory
references, and the *loader converts them into absolute addresses as part of the loading
process. See also POSITION-INDEPENDENT CODE.
remedial maintenance (corrective maintenance) Maintenance that is performed after
a fault, in hardware or software, has been found, in order to correct that fault. Compare
PREVENTIVE MAINTENANCE.
remote A term used to describe a process or system that uses a communications link, as
in remote job entry, remote sensing, and remote procedure call.
remote operations service element (ROSE) A standard (ISO/IEC 9072) designed
to support applications in a distributed processing environment.
remote procedure call (RPC) A procedure call in which the actual execution of the
body of the *procedure takes place on a physically distinct processor from that on which
the procedure call takes place. In general the system invoking the procedure call is
separate from the one executing it. Further the two systems and the communication
channel linking them are all liable to fail in the period between the start of the procedure
call and the final completion of execution and return of any results from the processor
executing the procedure body to that executing the procedure call.
These factors have given rise to a number of different proposals for the course of action
to be followed in the event of one or other of the systems failing; essentially to have the
procedure body executed either at least once (by *retry) or at most once. These proposals
tend to reflect the different priorities attached to the effect on the total system in the event
of part of it failing.
remote sensing The technique whereby sensors located remotely from a computer are
used to produce inputs for a digital system. These inputs are then transmitted either by
wire or radio techniques to the computer. An example is the use of digital thermometers
and humidity detectors in large buildings: the sensors transmit their readings to a central
computer that optimizes energy use by regulating heat and air conditioning. Recent
developments enable wireless sensors to connect with each other to form *wireless sensor
networks.
rendering The part of computer graphics that is concerned with getting from a threedimensional scene (possibly containing moving objects) to a picture or animated
sequence, with more or less sophistication in terms of the effect achieved.
rendezvous A method of synchronizing concurrent tasks in *Ada.
repair time The (sometimes average) time required to diagnose and repair a computer
failure, either hardware or software. In combination with MTBF (mean time between
failures) the MTTR (mean time to repair) provides a figure-of-merit for system *reliability
and/or *uptime.
repeated measures In statistical analysis of data, successive observations obtained
from the same source (such as an instrument, operator, animal, etc.). Theoretical models
must take account of the *correlations between the successive observations. In some
circumstances the changes between successive observations may be regarded as
statistically independent.
repeater In general, a device that amplifies a signal to allow it to transmit over greater
distances than might otherwise be possible. For free-space signalling systems in which the
signal is presented as a modulated carrier, the repeater may also move the signal to a
different carrier frequency.
repeat-until loop See DO-WHILE LOOP.
repertoire Short for instruction repertoire. See INSTRUCTION SET.
repetition codes A trivial family of *cyclic *perfect *error-correcting *block codes, in
which the codewords are formed merely by repeating the message words r times.
Considered as (n, k) codes (see BLOCK CODE), these codes have n = rk for some k.
repo Short for repository, especially one used for storing *source code.
report generator See GENERATOR, RPG.
repository (repo) A location in which important data, such as program code, are stored.
representation Storage and *data values used to carry information.
request for comments See RFC.
request input Input in computer graphics that is initiated by the application. The
application waits until the input is entered by the operator before resuming.
requirements analysis The analysis that is necessary for the production of an
*expression of requirements, or a *user, a *software, or a *system requirements
specification.
requirements specification See SOFTWARE REQUIREMENTS SPECIFICATION, SYSTEM
REQUIREMENTS SPECIFICATION, USER REQUIREMENTS SPECIFICATION.
requirements specification phase The phase in the *software or *system life cycle
where the *user, *software, or *system requirements specification is produced. The phase
activities include elicitation, capture, *expression, and *review of requirements.
rerun To run a program again, usually due to a machine malfunction. (The word is also
used as a noun.) Some languages allow the programmer to specify restart points: at such
points a memory image is preserved so that in the event of a rerun the program does not
need to be restarted from scratch.
resampling Use of repeated sampling from an original data set to obtain certain
statistical properties of the data. Methods such as the statistical *bootstrap, the *jackknife,
and *cross-validation come under this general heading.
rescue dump A copy of the workspace associated with a *process, taken with a view to
allowing the process to be restarted following a system failure. See also DUMP.
reserved word A word that has a specific role in the context in which it occurs, and
therefore cannot be used for other purposes. For example, in many programming
languages the words ‘IF’ ‘THEN’ ‘ELSE’ are used to organize the presentation of the
written form of statements (between ‘THEN’ and ‘ELSE’ and following ‘ELSE’) whose
execution is governed by the value of the Boolean expression between ‘IF’ and ‘THEN’.
The use of if, then, else as *identifiers is thus not permitted in these languages since they
are reserved words. See also KEYWORD.
reset To set a variable, register, counter, or complete processing system back to a
prescribed state.
resident Permanently present in main memory, as opposed to transient material that is
loaded from disk when required.
residual The difference between a data observation and its corresponding fitted value
obtained by *regression analysis. The residual mean square is the sum of squared
residuals divided by the appropriate *degrees of freedom, and is an estimate of *variance
of random variation about the fitted model. Plots of residuals against data variables may
suggest important modifications to the model. Plots of ranked residuals against percentage
points of the *normal distribution provide a check on the assumptions used in
*significance tests in regression analysis. Large residuals identify observations as
outliers, whose exclusion from the analysis will make a large difference to the
conclusions.
residual mean square See RESIDUAL.
residue arithmetic Another name for modular arithmetic.
residue check Another name for checksum.
resistor-transistor logic See RTL.
resolution 1. The amount of graphical information that can be shown on a visual
display. The resolution of a display device is usually denoted by the number of lines that
can be distinguished visually per inch.
Resolution is often confused with addressability. The addressability of a computergraphics system is defined by the number of displayable lines, or alternatively by the
number of points or pixels (picture elements) that can be displayed in the vertical and
horizontal directions. Computer graphics systems are now capable of addressing many
thousand pixels horizontally and vertically but the resolution is likely to be nearer 400
lines per inch. 2. See A/D CONVERTER, D/A CONVERTER. 3. A rule of inference in
mathematical *logic, used to deduce a new logical formula from two old ones. It has been
used extensively in the automatic derivation of mathematical theorems since it is an
efficient alternative to traditional rules of inference. See also UNIFICATION.
resource Any of the component parts of a computer system and the facilities that it
offers. All computer systems must include one or more processors, which actually
manipulate the stored information, some form of memory in which to store both
instructions for the processors and data awaiting manipulation, and input/output devices
capable of reading information from the outside world and writing results to the outside
world.
resource allocation Either the act of making a resource available to a *process, or the
amount of a particular resource that has been allocated. The context almost invariably
makes clear which meaning is intended. The amount allocated in the second form of usage
may either be a period of time if the entire resource is allocated, as with a processor, or it
may be a number of subunits in the case of a resource, such as memory, that is made up of
a large number of essentially identical subunits, of which some are allocated to the
process.
resource descriptor See PROCESS DESCRIPTOR.
response function See SEQUENTIAL MACHINE.
response time Usually the elapsed time between an action initiated by a computersystem user (or by the occurrence of some external event) and the receipt of some form of
response or feedback from the system.
restart To set running again after a temporary halt. The term (also used as a noun)
applies particularly to the situation in which a transient hardware error has caused the
entire operating system (and all the *processes running under its control) to halt. In such
cases it is often found that only processes that were actively running at the time of the
error have suffered damage. The damaged processes must be aborted, but all other
processes can be restarted since the resources allocated to them are unaltered, and their
*process descriptors are still an accurate reflection of their behaviour up to the time of the
system error.
restore To reset to an earlier value. For example, when a *process is about to be
*restarted on a processor, the contents of the working registers of the processor must be
restored to the values they last held when the process was previously running.
restriction (of a *relation R or *function f) A relation or function obtained by restricting
the domain of R or f. If ‘is the son of’ is a relation defined on all the males in a certain
country, a restriction would be this same relation defined on the males of a particular city.
retry See ERROR RECOVERY.
return See CARRIAGE RETURN, HARD RETURN.
return channel In a *duplex transmission channel, it is sometimes the case that the
main channel operates only in one direction (i.e. *simplex), but that a channel of much
lower capacity (and much lower cost) operates in the opposite direction: this is the return
channel. It is chiefly used for monitoring the main channel, and for notifying the
transmitter of errors detected by the receiver on the main channel. See also BACKWARD
ERROR CORRECTION.
return instruction An instruction used to effect the return to the regular program from
a *subroutine or an *interrupt. A return instruction must restore the *program counter to
the correct value; in the case of a return from interrupt, certain status bits must also be
restored. Compare CALL INSTRUCTION.
reusable resource A resource, such as a CPU or tape transport, that is not rendered
useless by being used. Magnetic disks or tapes can be used often indefinitely and are to be
regarded as reusable resources. Compare CONSUMABLE RESOURCE.
reusable software A software module or product designed to provide a function or
facility that other designers may require, and is capable of being easily embedded
(possibly with some *localization or *own coding) in the reusing design structure.
reversal function The *function r : L → L, where L denotes strings of characters from
some *alphabet, defined in such a way that r reverses the order of the elements in its
parameter. If & denotes *concatenation of strings, then
if s is null or a single character and
The idea can be extended to include reversing of items in a *list, of items in some
*sequence, or of items in an arbitrary one-dimensional *array. Reversal is an *involution
operation.
reverse authentication See AUTHENTICATION.
reverse bias The applied d.c. voltage that prevents or greatly reduces current flow in a
diode, transistor, etc. For example, a negligible current will flow through a diode when its
cathode is made more positive than its anode; the diode is then said to be reverse
biased. Compare FORWARD BIAS.
reverse engineering The process of taking a finished product and analysing how it is
made or how it works. For software, reverse engineering involves decompiling in order to
reproduce the original source code.
reverse Polish notation (RPN, postfix notation, suffix notation) A form of notation,
invented by the Polish mathematician Jan Lukasiewicz, in which each operator follows its
operands. Thus, for example,
If each operator has a specific number of operands (e.g. if all operators take exactly two
operands), then no brackets are required since the order of evaluation is always uniquely
defined; the notation can then be described as parenthesis-free.
The importance of RPN is that an expression in this form can be readily evaluated on a
*stack. Thus translation to RPN, followed by stack evaluation, is a simple but effective
strategy for dealing with arithmetic expressions in a programming language. See also
POLISH NOTATION.
reverse video A display attribute in which one or more characters are displayed in the
opposite contrast to the surrounding information. For example, in a display that has bright
characters on an apparently black screen the reverse video characters appear as black
characters within a bright rectangle.
reversible execution See BACKWARD ERROR RECOVERY, RECOVERY POINT.
review An important and effective method for verifying the output from a particular
phase of a *software life cycle. The phase output is scrutinized by a team of reviewers
against the documentation (*specification) available at the start of that phase and against
general review criteria for the particular phase completed. These criteria may be defined
by a particular method adopted, by the application domain of the proposed software, or by
local conventions within a development organization (or any combination of these). The
purpose of the review is to evaluate the emerging software in order to discover faults as
early as possible.
Reviews can be conducted at most life-cycle phases and at different levels of detail,
hence for example:
user requirements specification review
software requirements specification review
system design review
module design review
module coding review
module test procedure review
integration test plan review
acceptance test review
Informal reviews are usually conducted on the documented output of an individual by
fellow (technical) members of the project team. For example, in a module design review
the module author will guide the reviewers through the design, and differences between
the module specification and the design will be recorded for later analysis and reworking
of the design. Project verification and validation plans, together with the quality plan, will
give guidance on procedure, and acceptance levels for unresolved differences.
Formal technical reviews may be conducted by project staff, by independent reviewers
from other projects, or by independent third parties. They are usually planned as
milestones in verification and validation activities.
Management reviews are usually more concerned with progress monitoring, risk
assessment, plans, and scheduling.
revision control See VERSION CONTROL.
rewritable Denoting storage media, especially optical media, on which the user can
write data, and can also erase or overwrite so that new data replaces the old (compare
WRITE-ONCE). See OPTICAL STORAGE.
rewrite rule See GRAMMAR, TERM REWRITING SYSTEM.
rewriting system (rewrite system) See ABSTRACT REDUCTION SYSTEM, GRAPH
REWRITE SYSTEM, TERM REWRITING SYSTEM.
Rexx (restructured extended executor) A procedural programming language with
a simplified structure, designed to facilitate rapid prototyping, and available on a wide
variety of systems. The name derives from the fact that it was originally developed to
simplify the writing of control procedures (known as EXECs) for the IBM mainframe
operating system.
http://www.rexxla.org/
• The Rexx Language Association home page
RFC (request for comments) One of a series of numbered documents about the
Internet, published by the Internet Engineering Task Force. Most of the standards for the
Internet are defined in RFCs; the series also includes recommended good practice,
observations, and humour. See also FYI.
RFI (radio-frequency interference) Disturbance of a signal usually involving
frequencies above 100 kilohertz.
RGB colour model A *colour model that defines colour in terms of its red, green, and
blue components, known collectively as RGB components. Red, green, and blue light
are a set of primary colours: when mixed in equal proportions they produce white light
and when mixed in other proportions they produce light of a range of different colours.
The RGB model is the usual method of defining colour on a *cathode-ray tube or other
light-emitting *display device.
RGB components See RGB COLOUR MODEL.
RGB monitor A raster-scan colour *cathode-ray tube that incorporates three electron
guns (or one gun divided into three) where each gun is directed at a separate array of red,
green, or blue phosphor dots or stripes on the screen.
RGB signal Three separate display signals that are, in effect, monochrome signals
directed at just one set of the red, green, or blue phosphors on the display screen. A
composite RGB signal is one where the sync pulses are added to only one of the display
signals (usually green).
ribbon 1. The means by which an *impact printer forms the printed characters on the top
copy of printer *stationery, ink being transferred from ribbon to paper. The characteristics
of a ribbon depend mainly on the printer for which it is intended. There may however be
two or three varieties of ribbon available for one printer type, depending for example on
whether maximum utilization of the ribbon (and thus minimum ribbon cost) is important
at the expense of *print quality, or vice versa. Colour variety is available.
Ribbon materials are normally nylon fabric, in various thicknesses and thread types, or
polyester film. Fabric is soaked with ink, film is coated with ink-bearing wax. Thinner
fabrics give better print quality, usually at the expense of ribbon life. Nylon ribbons can be
continually reused until print quality is unacceptable due to ink depletion. The printer
recycles such a ribbon continuously, either by use of a continuous loop or by reversing it
at each end. With film ribbons a much greater proportion of the ink is transferred at each
strike, leading to shorter ribbon life. They can however provide much better print quality
than fabric ribbons. Degree of inking in a ribbon is a carefully controlled parameter.
*Thermal transfer printers also require a ribbon, in this case a film ribbon coated with a
thermoplastic or wax-based ink. 2. In some graphical applications, a horizontal row of
control *icons that can often be redefined to suit the user’s requirements.
ribbon cable An electric *cable in which a number of individual cables are formed into
a flat ribbon, sometimes colour-coded to facilitate identification.
Richardson extrapolation (deferred approach to the limit) See EXTRAPOLATION.
Rich Site Summary See RSS.
rich text format See RTF.
right-linear grammar See LINEAR GRAMMAR.
right shift See SHIFT.
rightsizing Informal Selecting a computer configuration appropriate to an organization’s
current and future requirements within the lifetime of a system. See also DOWNSIZING.
right subtree See BINARY TREE.
Rijndael algorithm See ADVANCED ENCRYPTION STANDARD.
ring 1. An *algebraic structure R on which there are defined two *dyadic operations,
normally denoted by + (addition) and • or juxtaposition (multiplication). With respect to
addition, R is an abelian *group,
i.e. + is *commutative and *associative. With respect to multiplication, R is a *semigroup,
i.e. • is associative. Further, multiplication is *distributive over addition.
Certain kinds of rings are of particular interest:
(a) if multiplication is commutative the ring is called a commutative ring;
(b) if 〈R, •〉 is a *monoid, the ring is called a ring with an identity;
(c) a commutative ring with an identity, and having no nonzero elements x and y with the
property that x • y = 0, is said to be an integral domain;
(d) a commutative ring with more than one element, and in which every nonzero element
has an inverse with respect to multiplication, is called a *field.
The different identity elements and inverses, when these exist, can be distinguished by
talking in terms of additive identities (or zeros), multiplicative identities (or ones),
additive inverses, and multiplicative inverses.
The concept of a ring provides an algebraic structure into which can be fitted such
diverse items as the integers, polynomials with integer coefficients, and matrices; on all
these items it is customary to define two dyadic operations. 2. Another name for circular
list, but more generally applied to any list structure where all sublists as well as the list
itself are circularly linked. 3. In network topology, a ring network is a closed-loop
network that does not require terminators. A token ring topology is physically cabled as a
star, with a logical ring maintained at the hub. When a workstation connects to the hub,
the ring is extended out to the workstation and back to the hub.
ring counter See SHIFT COUNTER.
ringing A damped oscillation that occurs in many electrical circuits when signals change
rapidly, and is due often to unwanted capacitance and inductance in devices and
connecting wires.
ring network A network constructed as a *loop of unidirectional links between network
stations (*nodes). It generally uses a bit-serial medium such as twisted pairs or coaxial
cable. A master clock may be used to tell each station when to read and write bits, or the
timing information may be encoded into the data as long as certain restrictions are met to
prevent the ring from overflowing.
Each station receives messages on its incoming link. Address and control information is
present at the beginning of the message. Based on this information and the control
procedure being used on the ring, the station must make two decisions: whether or not to
make a copy of the message in its local memory, and whether to pass the message on via
its outgoing link or delete the message from the ring. If a station determines that no
message is being received on its incoming link, then it may have the option of inserting a
message on its outgoing link.
Several different control structures have been used on ring networks:
(a) *token ring—a special bit pattern identifies control information: a station, upon
receiving the control token, may insert a message into the ring and reissue the token;
(b) slotted ring—a series of ‘slots’ are continuously transmitted around the ring: a
station detecting an unused slot may mark it ‘in use’ and fill it with a message;
(c) register insertion ring—a station loads a message into a shift register, then inserts
the register into the ring when the ring is idle or at the end of any message; the register
contents are shifted onto the ring. When the message returns to the register, the register
may be removed from the ring.
RIP (raster image processor) A device or piece of software that converts vector
images to raster images, either for display on screen or for printing. An example is a
PostScript interpreter, which converts the instructions in a PostScript file into pixels or
into dots on paper or film. See RASTERIZER.
ripple-carry adder A binary *adder in which the carry at each stage of addition must
propagate or ripple through the succeeding stages of addition in order to form the result.
See also CARRY LOOKAHEAD.
ripple counter An n-stage *counter that is formed from n cascaded *flip-flops. The
clock input to each of the individual flip-flops, with the exception of the first, is taken
from the output of the preceding one. The count thus ripples along the counter’s length
due to the *propagation delay associated with each stage of counting. See also
CASCADABLE COUNTER, SYNCHRONOUS COUNTER.
RISC (reduced instruction set computer) A computer based on a processor or
processors designed to execute a small number of simple register-based instructions
extremely fast, preferably one instruction for every cycle of the system clock. (Hence
RISC also stands for reduced instruction set complexity.) RISC processors employ
*pipelining and on-chip instruction and data *cache memory among other techniques.
Various RISC architectures have been developed by manufacturers, including HewlettPackard’s HP-PA (precision architecture), ARM RISC processors from Advanced RISC
Machines Ltd, Digital Equipment’s *Alpha AXP, Sun Microsystem’s *SPARC (scalable
processor architecture), MIPS processors from MIPS Technologies Inc., and the
*PowerPC produced by a partnership between IBM, Apple, and Motorola.
rise time (of a pulse) See PULSE.
risk A quantity derived both from the probability that a particular *hazard will occur and
the magnitude of the consequence of the undesirable effects of that hazard. The term risk
is often used informally to mean the probability of a *hazard occurring. See also
TOLERABLE RISK.
risk analysis A systematic and disciplined approach to analysing *risk—and thus
obtaining a measure of both the probability of a *hazard occurring and the undesirable
effects of that hazard.
risk assessment 1. A systematic and disciplined approach to assessing the significance
in terms of safety of the complete set of *risks that may occur with a system. 2. An
assessment in quantitative or qualitative terms of the damage that would be sustained if a
computer system were exposed to postulated *threats. A quantitative risk analysis may
ascribe a probable financial loss if each specified threat successfully exploited each
possible *vulnerability of the system.
risk evaluation The process of determining the significance of a given measure of
*risk.
risk management The collection of processes and procedures involved in analysing,
identifying, evaluating, controlling, and monitoring on an ongoing basis the *risks in a
given system.
Ritchie, Dennis, MacAlistair (1941–2011) US computer scientist. Ritchie graduated
from the Harvard in physics and applied mathematics. While working at the *Bell
Telephone Laboratories, in 1969 he and Ken *Thompson played a leading role in the
creation of the *UNIX operating system; and in 1972 Ritchie developed the *C
programming language. He continued to work for Bell Laboratories and its successors
until his retirement in 2007. In 2011 he was awarded the Japan Prize for Information and
Communications for his work on UNIX.
RJE Abbrev. for remote job entry.
RLL (run-length limited) Denoting an *NRZ code where the minimum time and
maximum time between magnetic flux transitions is carefully controlled. See DISK
FORMAT.
RM code Short for Reed–Muller code.
robotics A discipline overlapping *artificial intelligence and mechanical engineering. It
is concerned with building robots: *programmable devices consisting of mechanical
actuators and sensory organs that are linked to a computer. The mechanical structure might
involve manipulators, as in *industrial robotics, or might concern the movement of the
robot as a vehicle, as in *mobile robotics. Robotics research is used in artificial
intelligence as a framework for exploring key problems and techniques through a welldefined application.
robustness A measure of the ability of a system to recover from error conditions,
whether generated externally or internally; for example, a robust system would be tolerant
to errors in input data or to failures of internal components. Although there may be a
relationship between robustness and reliability, the two are distinct measures: a system
never called upon to recover from error conditions may be reliable without being robust; a
highly robust system that recovers and continues to operate despite numerous error
conditions may still be regarded as unreliable in that it fails to provide essential services in
a timely fashion on demand.
robust statistics Statistical methods insensitive to the effects of *outliers (which may
be mistakes or contaminated data). The methods rely on *medians rather than *means, and
use more information from the central than from the outlying observations. The ideas are
associated with *exploratory data analysis.
rogue value (terminator, sentinel) A value added at the end of a table and that can be
recognized as a termination signal by a *table lookup program.
rollback A process that restarts a running program or software system at a *checkpoint.
The word is also used as a verb to restart at a checkpoint.
roll-call polling See POLLING.
roller ball See TRACKERBALL.
roll-in roll-out A method of handling memory in a system dealing with a number of
simultaneously active *processes. When a process becomes active, all its associated
workspace and code is brought into main memory. As soon as the process is unable to
continue for any reason, typically because the user associated with the process is
providing input, the entire workspace and code of the process is copied out onto backing
store, retaining only a small buffer capable of receiving input from the user. When user
input ceases and the process is able to continue running, the workspace and code are rolled
back into main memory. When the process requires to output results to the user or is
awaiting further input from the user, it is rolled out onto backing store. See also SWAPPING.
roll stationery See STATIONERY.
ROM (read-only memory) A *nonvolatile semiconductor memory device used for
the storage of data that will never require modification: the memory contents are
permanently built into the device during its manufacture according to a specially created
pattern or mask. It is thus sometimes called mask ROM to distinguish it from
programmable ROM, i.e. *PROM. Although it is possible only to read data from the
memory locations of a ROM, the locations can be accessed in any order with equal speed.
Hence there is *random access to any of the locations in ROM. See also EAROM,
EEROM. Compare RAM.
Romberg method An *extrapolation method for *numerical integration, based on the
*trapezium rule.
ROM optical disk (ROM OD) An *optical disk carrying information that is inserted at
the time of manufacture and cannot subsequently be altered. Manufacture is usually by
pressing copies from a master; copies are therefore cheap although the master is
expensive. The predominant format is *CD-ROM.
romware Software (machine instructions) stored more-or-less permanently in a *ROM,
*PROM, *EPROM, etc.
root 1. (of a tree) The unique node in the tree with no parent. See TREE. 2. (of a
polynomial equation) See POLYNOMIAL.
root certificate See PUBLIC KEY INFRASTRUCTURE.
root directory See DIRECTORY TREE.
rooted tree See TREE.
rootkit A collection of software tools installed by an intruder on a compromised
computer. A rootkit will normally contain tools to hide evidence of the intrusion and
*backdoors to allow access or remote-control in future. Rootkits often include tools to
facilitate other types of misuse such as distributed denial of service attacks or distribution
of *spam.
ROSE Acronym for remote operations service element.
rotated dither Rotation of the dither pattern in a *halftone image to remove artefacts.
See also DITHERING.
rotation position sensor A feature of some disk drives that allows the central
processor to be made aware that a required sector is about to come under the read head of
the drive.
rough surface In computer graphics, a surface where the neighbouring *facets making
up an object are significantly different in orientation.
roundoff error The error caused by truncating numbers in a calculation, usually
necessitated because registers in a computer can only hold numbers of a fixed length, say t
binary digits. Arithmetical operations on such numbers often give results requiring more
than t digits for their representation, which must then be reduced to t digits for further
calculation. The nearest t-digit approximation may be used (rounding) or digits after the
tth may be dropped (chopping or truncation). The repeated reduction to t digits can cause
systematic buildup of error in certain types of calculation.
round robin A method of allocating CPU time in a multiuser environment. Each user is
allocated a small amount or quantum of processor time. Once a user’s quantum is
exhausted, control passes to the next user. The round robin scheduler bears many
resemblances to the *feedback queue, which can be thought of as a refinement of the
simple round robin scheduler.
route The path used to move information from one place to another. In a packet
switching network it is the list of nodes that a particular packet or class of packets is to
follow or has followed.
router A unit that supports the low-level linking of several regions of a single network.
In any network it is helpful to subdivide the network into a number of regions in which
most traffic is between pairs of nodes within that region, with only a small amount of
traffic leaving the region. A router links several regions: interregion traffic will be
forwarded to the correct region but traffic addressed to a destination in the same region as
the sender will not be forwarded. A router must be capable of interpreting the sender and
receiver addresses in the data, and must be able to determine where to forward traffic. It
must therefore be capable of interpreting the network protocol, must store tables that assist
in managing the routing activity, and will probably need to store an entire packet before
forwarding it. The router is designed so as to function at the lowest possible level within
the protocol stack, consistent with achieving correct partitioning of the network and
correct routing of traffic. Despite the complexity of the unit and the delay it introduces,
large networks almost invariably include routers. See also BRIDGE.
routine Another name for subroutine, used usually in combinations, as in input routine.
routine maintenance Another name for preventive maintenance.
routing The procedure used to determine the *route taken by a packet in a packet
switching computer network. Routing may be fixed (computed once at system starting or
session initiation) or dynamic (recomputed periodically or on a packet-by-packet basis).
Routing may be centralized or distributed (computed by different nodes independently).
routing protocol A *protocol implemented by network *routers to exchange the
information necessary to determine the best route for data transfer. They are especially
important on decentralized inter-networks, such as the Internet (see BORDER GATEWAY
PROTOCOL). Each router exchanges information with its neighbours (those routers with
which it has a direct connection) concerning itself and also the routes it can offer to other
routers it already ‘knows’ how to reach. Since each router will have a different set of
neighbours, this process allows comprehensive routing information to be disseminated
around the whole inter-network without the need for a centralized controller.
row-major order One way of mapping the elements of a two-dimensional array onto a
vector. If a two-dimensional array, A, with m rows and n columns is mapped in row-major
order onto a vector b with mn elements then
See also COLUMN-MAJOR ORDER.
row-ragged See RAGGED ARRAY.
row vector See MATRIX.
RPC Abbrev. for remote procedure call.
RPG (report program generator) A programming language used in commercial
data processing for extracting information from files. The input to an RPG consists of a
description of the file structure, a specification of the information required, and of its
layout on the page. From this information, the RPG constructs a program to read the file,
extract the desired information, and format it in the required manner. The current version
is RPG IV, also called ILE RPG.
http://www-01.ibm.com/support/knowledgecenter/api/content/nl/enus/ssw_ibm_i_61/rzasc/sc092507.pdf
• The ILE RPG Programmer’s Guide
RPN Abbrev. for reverse Polish notation.
RS232C interface A once widely used standard interface covering the electrical
connection between data communication equipment, such as a *modem, and data terminal
equipment, such as a microcomputer or computer terminal. The RS232C interface
standard was developed by the EIA (Electronic Industries Association) and is essentially
equivalent to the CCITT’s V24 interface; RS232A and RS232B were earlier superseded
versions of the specification.
In 1975 the EIA introduced two new specifications in order to upgrade system
capabilities: the RS423 interface, which closely resembles RS232C, and the RS422 and
RS485 interfaces, both of which allow higher transmission rates. RS232C operates with a
single transmitter and single receiver per channel up to about 20 metres. RS423, RS422,
and RS485 operate at up to about 1200 metres at higher speeds and support multiple
transmitters and receivers in each channel. RS422 and RS485 operate in differential mode
using *balanced cables. These interfaces are now being phased out having been largely
replaced by *USB.
RSA encryption A method of public key encryption (see CRYPTOGRAPHY) devised by
Rivest, Shamir, and Adleman. A message is encrypted by mapping it onto an integer, M
say, raising M to a (publicly known) power e and forming the remainder on division by a
(publicly known) divisor, n, to give the encrypted message S. Decryption is achieved by
similarly raising S to a (secret) power d, and again forming the remainder on division by n;
the result will be the value of M. The method relies on the choice of n as the product of
two large secret prime numbers, p and q. The values of e and d are chosen such that
Security is achieved largely by the difficulty of finding the prime factors of n.
RS code Short for Reed–Solomon code.
RS flip-flop (SR flip-flop) See FLIP-FLOP.
RSI (repetitive strain injury) A painful condition of the wrist or lower arm that can
be caused by prolonged use of badly designed or installed keyboards, though it is found in
other unrelated activities involving repetitive muscular movements over a long period of
time. RSI is not confined to the arms and can be experienced in other limbs.
RSL A *specification language for time-critical real-time systems. Statements in RSL are
machine processed to produce an abstract semantic model of the system. RSL has four
language primitives: elements, relationships, attributes, and structures. Users may define
new elements, relationships, and attributes to the set predefined in RSL.
RSS (Really Simple Syndication, RDF Site Summary, and Rich Site Summary)
A group of XML formats that implement *web feeds. Introduced in 1999, RSS
subsequently split into two incompatible families. Most RSS software recognizes both.
RTD Programme in IT See ESPRIT.
RTF (rich text format) A *file format for encoding graphics and formatted text to
permit easy transfer between different applications and operating systems. Developed by
Microsoft, RTF supports graphics, different fonts, highlighting, and paragraph and table
formatting. Most word processors will accept and generate RTF files.
http://www.microsoft.com/en-us/download/details.aspx?id=10725
• The RTF (version 1.9) specification
RTL 1. (resistor-transistor logic) An early *logic family, usually produced in
integrated-circuit form, whose principal component parts consist of integrated resistors
and *bipolar transistors. Despite its low power dissipation, RTL is now little used since it
has a relatively slow switching speed and small *fan-out. 2. Abbrev. for register transfer
language.
RTM (read the manual) The response to a question that ought never to have been
asked if the questioner had taken the trouble to read the documentation. More vehement
variants include RTBM and RTFM.
RTOS Abbrev. for real-time operating system.
R-Tree A data structure for storing and querying spatial data. Similar to *B-trees in
organization and operation, R-Trees store location information at each node in the form of
minimum bounding rectangles (MBR). At a leaf node this describes the boundaries of the
object defined in that node; at a non-leaf nodes this describe the MBR that will contain all
the MBRs of that node’s children. It does not matter if the spaces described by MBRs of
separate nodes overlap. Searches for objects within a specified area can use the MBR
information to confine the search efficiently to possible targets by excluding quickly all
objects that cannot fall within the area. R-Trees are thus useful for large databases where
the time to retrieve data from *backing store is significant.
rubber-banding Specifying a new input coordinate position by echoing a line
stretching from some defined position (often the last position) to the current one. The line
appears to stretch like a rubber band from the origin to the current position.
Ruby An interpreted *object-oriented programming language that includes features of
both *imperative and *functional languages. Created by Yukihiro Matsumoto and released
in 1995, it was influenced by such languages as *Perl, *Smalltalk, *Eiffel, *Ada, and
*Lisp. Its combination of elegance and apparent simplicity with underlying power has
gained Ruby an steadily increasing popularity, especially through the Ruby On Rails
*web application *framework.
https://www.ruby-lang.org/en/
• The Ruby programming language home page
rule-based system See PRODUCTION RULE SYSTEM.
ruled surface A surface generated by a family of straight lines. Ruled surfaces are
obtained by linear interpolation between a pair of boundary curves.
Runge–Kutta methods A widely used class of methods for the numerical solution of
*ordinary differential equations. For the initial-value problem
the general form of the m-stage method is
The derivation of suitable parameters aij, bi, and ci requires extremely lengthy algebraic
manipulations, except for small values of m.
Some early examples were developed by Runge and a systematic treatment was
initiated by Kutta about 1900. Recently, significant advances have been made in the
development of a general theory and in the derivation and implementation of efficient
methods incorporating error estimation and control.
Except for stiff equations (see ORDINARY DIFFERENTIAL EQUATIONS), explicit methods
are used. These are relatively easy to program and are efficient compared with other
methods unless evaluations of f(x,y) are expensive.
To be useful for practical problems, the methods should be implemented in a form that
allows the stepsize h to vary across the range of integration. Methods for choosing the
steps h are based on estimates of the *local error. A Runge–Kutta formula should also be
derived with a local interpolant that can be used to produce accurate approximations for
all values of x, not just at the grid-points xn. This avoids the considerable extra cost caused
by artificially restricting the stepsize when dense output is required.
run-length encoding A *lossless compression technique where a sequence of pixels
with the same value is replaced by a value and count. See also IMAGE COMPRESSION.
run-length limited encoding See DISK FORMAT, RLL.
running (active) Currently being executed, usually on a CPU. The *process descriptor
for a process that is running will contain an indication that this is the case. Clearly, once
the process becomes suspended for any reason, the ‘running’ bit in the process descriptor
will be reset.
run time The time at which a program begins to execute, in contrast to the time at which
it may have been submitted, loaded, compiled, or assembled. The amount of time—
elapsed time or processor time—used in executing a program is called the execution
time or sometimes the run time.
run-time system A collection of procedures that support a high-level language at run
time, providing functions such as storage allocation, input/output, etc.
run-time verification An automatic *program verification technique that consists of
analysing a run of the system to determine whether that run is correct (with respect to
some specification of the system). In other words, the verification is performed during the
actual execution of the system by an automatic analysis tool that monitors the program
execution. Run-time verification should be used in conjunction with either *model
checking or *testing.
Russell’s paradox A contradiction originally formulated by Bertrand Russell and
phrased in terms of *set theory. Let T be the set of all sets that are not members of
themselves, i.e.
Then it can be shown that T is a member of T if and only if T is not a member of T.
The paradox results from certain kinds of recursive definitions. It arises for example in
the following situation: the barber in a certain town shaves everyone who does not shave
himself; who shaves the barber?
S-100 bus An early backplane bus (IEEE-696) designed for microprocessor system
interconnection. It supported 8- and 16-bit data transfers and 24-bit addresses and
employed a complex set of control signals.
SA Short for structured systems analysis.
SAA (Systems Applications Architecture) IBM’s family of standard interfaces
that enable software to be written independently of hardware and operating systems.
Published in the 1980s, the only part that is still important is CUA (Common User
Access). This sought to standardize user interfaces and has influenced OS/2, Windows,
and Java GUI packages.
SaaS (Software as a Service) A delivery model for software in which the application
is held by the vendor, who undertakes to deliver functionality, on demand, to customers.
SaaS thus differs from traditional software distribution in which customers receive their
own copy of the software. This notably frees companies from developing and managing
software themselves. SaaS is generally supported by *service-oriented architecture (SOA).
SADT Trademark (structured analysis and design technique) A method for modelling
complex problems and systems, developed by Douglas Ross in the mid- 1970s. Although
SADT is a general- purpose modelling tool, it is particularly effective for requirements
definition for arbitrary systems problems and is widely used for this purpose in the
software engineering field. SADT can be viewed as having three main parts: a set of
methods that can assist an analyst in gaining an understanding of a complex system, a
graphical language that can be used to record and communicate that understanding, and
administrative guidelines that contribute to the orderly progress of the analysis and early
detection of problems.
The methods of SADT are based upon several concepts. Top-down decomposition
allows information to be dealt with at progressive levels of detail. Model-building both
assists understanding and permits communication of that understanding. Adoption of a
variety of complementary viewpoints allows all relevant aspects of a system to be
considered while limiting consideration at any time to one well-defined topic. The dual
‘things’ and ‘happenings’ aspects of any subject are used to reinforce understanding and
promote consistency. Review and iteration procedures ensure the quality of the model that
is developed.
The graphical language of SADT consists basically of boxes and arrows that are used to
construct SADT diagrams. The language is concerned only with the structured
decomposition of the subject matter, and any other language (e.g. natural language) can be
used within the boxes and to label the arrows. A single SADT diagram may model either
processes or data. A diagram that models processes, called an actigram, uses boxes to
show the individual processes and uses arrows to show dataflows between processes, any
constraints that apply, and the mechanisms for carrying out the processes. The arrows
entering and leaving a box serve to bound the context of the process, and this can then be
decomposed on further actigrams through successive levels of detail to any level required.
Similarly the corresponding data decomposition is presented in datagrams and
consideration proceeds from highly abstract data objects through successive levels of
decomposition and definition.
The administrative guidelines of SADT provide among other things for independent
review of the diagrams as they are produced and for configuration control of the emerging
model.
A nonproprietary form of SADT developed by the US Air Force is now available and is
known as IDEF.
Safari Apple’s *web browser, first released in 2003 and now standard on all *OS X and
*iOS platforms. The current (2014) version is 8.0.
safe harbor See DATA PROTECTION LEGISLATION.
safety Freedom from *risk. The term is also used in the context of safety level to provide
a quantitative measure of the level of safety.
A safe system is one that will never do anything bad. The definition of what is ‘bad’ is
application-dependent: the safety requirements for a system controlling an aircraft would
obviously be more stringent than those for, say, a stock control system. Compare
LIVENESS.
safety case The detailed arguments and reasoning that justify claims about the safety
*integrity of a given system.
safety-critical system A system in which any failure or design error has the potential
to lead to loss of life.
safety integrity See INTEGRITY.
safety plan The management activities—the set of technical procedures and processes—
as well as the people to be employed in ensuring that the requisite safety *integrity levels
of a system will be achieved.
safety-related system A *system whose malfunction, either directly or indirectly, has
the potential to lead to *safety being compromised.
sampled-data system See DISCRETE AND CONTINUOUS SYSTEMS. See also SAMPLING.
sample input Input in computer graphics where the input device continually updates the
required input value and the application samples it when it requires it. An example of the
use of sample input would be a dial that the operator rotates to define the orientation of a
molecule. The application is in a loop whereby it updates the molecule position, samples
the new dial position, and repeats the drawing of the molecule.
sampling 1. (time quantization) A process by which the value of an analogue, or
continuous, signal is ‘examined’ at discrete fixed intervals of time. The resulting
sampled value will normally be held constant until the next sampling instant, and may
be converted into a digital form using an *A/D converter for subsequent processing by a
computer.
The rate at which a given analogue signal is sampled must be a certain minimum
value, dependent upon the bandwidth of the analogue signal; this ensures that none of the
information in the analogue signal is lost. The sampling rate may also affect the stability
of an analogue system if the system is to be controlled by a computer. See also NYQUIST’S
CRITERION. 2. The act of selecting items for study in such a way that the measurements
made on the items in the sample will provide information about similar items not in the
sample. Items can be people, machines, periods of time, fields of corn, games of chance,
or whatever is being studied. Sample size is the number of items included in the sample.
If the variance of the measurement (see MEASURES OF VARIATION) is approximately
known, the variance of its mean in a sample is the population variance divided by the
sample size. This formula can then be used to indicate an appropriate sample size.
A population is a complete set of items about which information is required. It must
be defined before selecting the sample or results may be ill-defined. The sample is the
basis for inference about *probability distributions of measurements on the population.
Problems of sampling include avoidance of *bias and selection of enough samples to
ensure adequate precision.
Random sampling is the process that results in each item having the same probability
of inclusion in the sample. Items may be selected with the aid of tables of random
numbers or with mechanical devices such as cards or coins.
Systematic sampling selects items in some regular manner. It is valid when the order in
which items are encountered is irrelevant to the question under study, but can be an
unintentional source of bias.
SAN (storage area network) A subnetwork of disk storage devices that replaces the
local hard disks in network *servers. SANs provide very fast data access, but are
expensive and hence found mostly on large networks. Compare NAS.
sanitization The erasure of sensitive material from a system, especially its storage
media, e.g. by overwriting or degaussing magnetically.
SA/RT Short for structured systems analysis for real time. See HATLEY–PIRBHAI,
WARD–MELLOR.
SATA See SERIAL ATA .
satellite computer A computer that forms part of a computing system but is generally
much less capable than the mainframe. It is located at a distance from the main system and
serves auxiliary functions such as remote data entry or printing. It is now often nearly
synonymous with *terminal.
satisfiability The property exhibited by any logical expression or well-formed formula
for which it is possible to assign values to variables in such a way that the expression or
formula is true. See also PROPOSITIONAL CALCULUS, PREDICATE CALCULUS, P=NP
QUESTION.
satisfiability problem See P=NP QUESTION.
saturation 1. A psycho-physiological measurement of the degree to which a colour
appears to be free of white. 2. (of a transistor) See BIPOLAR TRANSISTOR. 3. (of an
amplifier) A state in which the signal level exceeds the dynamic range.
sawtooth waveform A periodic repetitive waveform that is constrained to lie between
a maximum and a minimum value. Between these limits the waveform alternately rises
and falls linearly with time. The slope of one of the edges of the waveform is made very
much steeper than the other, and the waveform thus appears as a repetitive series of linear
ramps. Compare TRIANGULAR WAVEFORM.
SAX (Simple API for XML) A specification for an *event-driven XML parser. SAX
parsers read XML files and raise appropriate events for each type of XML object
encountered (start of element, end of element, character-data block, etc.). Unlike DOM
parsers, SAX parsers do not create a representation of the document in RAM, which
makes them faster and less memory-hungry. It is the application’s responsibility to use the
SAX events to extract and maintain whatever information it requires. The current version
is 2.0.2 (SAX2), with Java implementation generally regarded as normative in the absence
of a formal specification.
http://www.sax.sourceforce.net/
• The SAX home page
SCA Abbrev. for synchronous concurrent algorithm.
scalability The ability for something designed to operate at one measure of size to
operate successfully at other sizes. The term is commonly used in relation to the
development of shared computer applications that are intended to be used by large
numbers of users. Of necessity, developments take place with a small number of test users.
Unless the application is carefully designed to take account of the interactions that will
arise when it is called on to service a large number of users, it may well fail to operate at
all, or to operate only with an unacceptable level of service. An application that
successfully expands its numbers of supported users is said to be scalable.
scalable See SCALABILITY.
scalable font See FONT.
scalable processor architecture See SPARC.
scalable vector graphics See SVG.
scalar A number comprising a single value (such as an *integer or *real number), as
opposed to a *complex number (containing two scalars) or a *vector (which is a scalar
only in the special case of its containing one number).
scaling The adjustment of values to be used in a computation so that they and their
resultant are within the range that can be handled by the process or equipment. The scaling
factor is reapplied to correct the result before output or—if this is not possible—it is
output as a qualifier with the result.
scan A single pass through the data of one or more components in an image.
scan-line A horizontal line of pixels across a *raster-scan display. Many algorithms
proceed scan-line by scan-line. Initially this was tied in with display performance but it is
now a common software technique to reduce dimensionality.
scanner 1. A device that can capture an image and convert it into a unique set of
electrical signals. The image scanned may be a pattern that is directly related to a code,
such as *bar codes on retailed products, or it may be a picture, page, or portion of text. See
also BAR-CODE SCANNER, DOCUMENT SCANNER, DRUM SCANNER, FLATBED SCANNER. 2.
Another name for lexical analyser.
scatter read A process in which data from a single record may be collected into (or for
the process of scatter write written into) several noncontiguous areas of memory.
SCC Abbrev. for source code control.
sccs (source code control system) A utility program, now obsolete, developed
initially to run under UNIX, that kept track of a set of versions and variants of a text file
(usually *source language). Sccs could retrieve any one of the set of versions and variants
it held, and could receive new versions or variants together with a commentary concerning
who made the change and what had changed from the previous version or variant. An
important feature of sccs was that it did not keep the full source text of each version or
variant. Instead it kept one full text and a set of differences between that version and all
the other versions and variants. Hence sccs provided a more economical means of storing
a module with many versions and variants than, for example, storing them all in separate
files. Sccs’s principles have influenced all subsequent version control systems.
scheduled maintenance Periodic *preventive maintenance.
scheduler The code responsible for controlling use of a shared *resource. Access to a
shared resource must be subject to two requirements. It is essential to ensure that any
*process about to be granted use of a resource will not itself suffer damage, and that it will
not cause damage to other processes. This can be thought of as establishing the correctness
of the scheduling. Quite separately from this, where it is feasible to allow any of several
processes to access a resource, then it is necessary to make a choice between them. This
choice will generally have a bearing on the efficiency with which system resources are
utilized, and is determined by the *scheduling algorithm.
When used without further qualification, the word scheduler refers to controlling the
use of the processors. Scheduling of jobs is usually carried out in two stages. The high-
level scheduler collects together a particular job mix that is to be executed at any one
time, according to criteria that are thought to allow the system to be optimally used. The
scheduling among these jobs on a very fine time scale is the province of the low-level
scheduler (or dispatcher), which thus allocates processors to processes.
scheduling algorithm The method used to determine which of several *processes,
each of which can safely have a *resource allocated to it, will actually be granted use of
the resource. The algorithm may take into account the priority of the user associated with
the process, the requirement to maintain high utilization of system resources, and
deadlines for the job.
For example, in a priority *time slicing system, the processes awaiting execution are
organized in several queues with the higher-priority queues having a smaller time
*quantum. Whenever a processor becomes available for scheduling, the oldest process that
is free to run in the highest-priority queue is started.
If this process runs to the end of its quantum without generating an interrupt then it will
be rescheduled into a lower-priority queue with a larger quantum. If, before the quantum
has expired, the process generates an interrupt then it will be returned either to the same
queue or possibly to a higher-priority queue with a shorter quantum. If the process is itself
interrupted by some external event that allows the rescheduling of a higher-priority
process (with a shorter quantum) then again the interrupted process is returned to the
queue from which it originated.
The net effect is that low-priority processes, with long quanta, are likely to be
interrupted by the completion of input/output transactions on behalf of higher-priority
processes, which will thus be freed for further processing.
schema 1. of a database. Short for logical schema. See also STORAGE SCHEMA, USER
VIEW. 2. See XML SCHEMA.
SCHEME A dialect of *Lisp, used particularly in teaching computer science.
Schmitt trigger A discrete or integrated circuit whose output has two stable states, i.e.
two sustainable values of output voltage, to which it is driven by the movement of its input
voltage past two well-defined trigger values. A rise in input voltage above one trigger
level causes the output to switch to one state. A fall in input voltage below the other
trigger level causes the output to switch to the other state. The difference between the
positive and negative thresholds is known as the circuits hysteresis. For the output to
change, the input must exceed the hysteresis and be of the appropriate polarity. Schmitt
trigger circuits are frequently used to clean up signals from switches and digital
transducers.
Logic signals become corrupted as they travel through a system; the switching edges
become exponentials, ringing can occur, and noise may be added. Feeding such a signal
through a Schmitt trigger restores the rising and falling edges to a fast transition between
the voltages corresponding to the 0 and 1 logic states.
Schonhage algorithm An algorithm that multiplies large numbers very rapidly, based
on the ideas of *modular arithmetic. See CHINESE REMAINDER THEOREM.
Schonhage–Strassen algorithm A development of the *Strassen algorithm that was
published in 1970 and avoids the explicit use of complex numbers. It multiplies two n-bit
numbers in steps of
Schottky TTL A relatively fast bipolar *logic family, normally produced in integratedcircuit form, whose internal configuration is similar to normal *TTL except that
Schottky transistors are used. These transistors can be considered as equivalent to a
normal *bipolar transistor with a Schottky diode connected across the base-collector
junction. The Schottky diode is a semiconductor-metal diode that has a low cut-in voltage
(*forward bias voltage drop), typically 300 millivolts, compared with 600 mV for other
common semiconductor diodes. It also has a relatively high switching speed. In Schottky
TTL the low cut-in voltage of the diode limits the base-collector voltage to about 400 mV,
which prevents the transistor falling into saturation. This results in faster switching times
for the transistors constructed in this way.
scissoring Removing the portion of an image that lies outside a specified region. See
also CLIPPING.
scope That part of a program in which a particular *declaration applies.
Scott–Ershov domain See DOMAIN.
scratchpad A type of semiconductor memory that usually has small capacity but very
fast access. It is used for temporary storage of intermediate results or other information
that is required during the course of a computation.
screen 1. The surface of a cathode-ray tube or other *display device on which
information can be displayed. 2. To select and display information in response to an
instruction or an inquiry.
screen dump A way of transferring the entire graphical or textual contents of a display
screen to a printer. Each *pixel of the display appears as a dot of suitable density on the
printer. Colour screens can be dumped to colour printers. A screenshot is a screen dump
in which the display screen pixels are recorded in a data file.
screened cable See CABLE.
screen editor See TEXT EDITOR.
screensaver A program that is initiated after a display has remained unchanged for a
definable period of time, usually a few minutes, to prevent a permanent pattern being
physically burnt into the screen. In its simplest form the program merely blanks the
screen, but screensavers have become something of a subculture and can range from
complex moving abstract shapes to colourful animated stories with many variations. It is
also possible to have a whole set of screensavers and have one chosen at random on each
occasion.
script 1. (command file) A file containing commands or other actions that could have
been entered from the keyboard. This is a useful way of replaying often-used sequences of
actions. In fact the *scripting languages usually have extra commands (not available for
direct use) such as branches, loops, and procedure calls. There are also usually optional
*parameters that allow the script to be made more general. 2. See SCRIPT THEORY.
scripting The use of a *scripting language to perform a task.
scripting language A programming language that can be used to write programs to
control an application or class of applications, typically interpreted. See also JAVASCRIPT,
PERL, PYTHON, TCL, VBSCRIPT.
script theory A representation for modelling sequential series of events. Originally
designed for *natural-language processing, scripts capture the main events and themes in
a story. A script can be seen as a stereotype and matched against other scripts or situations.
scroll To move the information displayed on a screen in a vertical or horizontal direction:
as information disappears at one edge new information becomes visible at the other edge,
or alternatively space is provided for the entry of new data. The scrolling action is
perceived as a smooth movement and modern interfaces have vertical and horizontal
scroll bars allowing scrolling under mouse control. In earlier applications (pre-1980s)
scrolling was only possible in one-line increments. This is known as racking.
scroll bar, scroll box See SLIDER BAR.
SCSI (pronounced skuzy) (small computer systems interface) A standard highspeed, parallel interface for connecting peripheral devices, such as disk storage units, to
small and medium-sized computers. Up to seven disk units and one computer can be
connected to each SCSI.
SD card (Secure Digital card) A *memory card used to add nonvolatile digital
storage to portable devices such as smartphones, tablets, and laptops. Originally developed
in 1999, SD cards now come in four different families, based on capacity and capability,
and three sizes. They are frequently used with smartphones as a way to increase data
storage, and with digital cameras as a means of storing photographs. The highest capacity
standard supports cards capable of storing 2 TB, but the largest capacity card available in
2014 stores only 512 GB (one quarter of the maximum possible).
SDH (synchronous digital hierarchy) A set of CCITT standards, and products that
implement those standards, intended to support high-speed wide area networking; the
intention is to support bit rates from the 100 Mbps range upward. The basic unit of
transmission within the SDH is the synchronous transport module, which at present
is defined up to STM-1024.
A major problem for large-scale WANs is that of allowing relatively low-speed links
(tributaries) to insert data into the high-speed bearer, or recover data from it, caused by
timing problems relating to the large difference in clock rates between the tributary and
the high-speed bearer—typically 100–1000 orders of magnitude. STM-1 uses a fixed-size
module conceptually made up of 9 rows each of 270 bytes. Modules are transmitted at 125
microsecond intervals, row by row and byte by byte, to give a total transmission rate of
155 Mbps. Within each module, specific rows are assigned to specific types of traffic. The
first 9 bytes of each row are assigned for timing and control for the contents of the other
261 bytes. The system is designed to allow tributaries to insert or extract data through a
series of units, each of which can accept (or deliver) self-timing data at relatively low
clock rates, up to about 8 Mbps, or can accept the output from (or deliver input to) such
units at speeds that are submultiples of that for the STM-1 system. The ‘hierarchy’ defines
the operations and protocols for all the units needed.
SDK (Software Development Kit) A collection of the software tools, code libraries,
documentation, etc., necessary to develop a specific type of software, commonly provided
as a single installable package. SDKs may target software development using a specific
programming language or *framework, software that runs on a specific *platform, or
software that makes use of a specific hardware device or software component.
SDL (specification and description language) A language used in
telecommunications and real-time and interactive systems.
SDLC (synchronous data link control) A data link control *protocol originally
developed by IBM, based on the use of *frames to delimit message boundaries, providing
only link-layer functions. Frames consist of an 8-bit frame delimiter (or ‘flag’), an 8-bit
address, an 8-bit control field, a variable-length user information field, a 16-bit frame
check sequence, and a final 8-bit frame delimiter. The flag consists of the special character
and is the only occasion on which six successive ones appear. *Bit stuffing is used to
ensure that where the user’s information contains five contiguous ‘l’s, the system inserts
an additional ‘0’, which is removed at the receiver.
The end-stations are designated as either a primary or a secondary station. There is only
one primary station, which initiates and terminates link activity and is responsible for error
recovery and for link sharing among multiple secondary stations. The address field has
two special values: 0, which is reserved for testing, and 255, which indicates that this is a
broadcast frame. The control field is used to carry acknowledgments that frames have
been received correctly, or that an error has occurred and that a designated frame is to be
retransmitted.
SDPM Abbrev. for software development process model.
SDRAM (synchronous dynamic RAM) A type of DRAM (see RAM) the timing of
whose functions is controlled by the system clock. This makes possible such speedenhancing techniques as *pipeline processing that rely on coordinated timings between
RAM and other components. It is currently (2014) the predominant type of RAM used in
microcomputers, in its double data-rate (DDR) form.
SEAC (Standards Eastern Automatic Computer) The first stored-program
electronic digital computer to become operational in the USA, in 1950. (Compare
MANCHESTER MARK I, EDSAC, EDVAC.) It was one of two different pioneer machines
developed by the National Bureau of Standards: SEAC was installed in Washington, and
the other, called SWAC (Standards Western Automatic Computer), in Los Angeles. Like
EDSAC and EDVAC, SEAC used mercury *delay line memory.
search 1. To locate a specified piece of information in a table or file (see SEARCHING). 2.
(find) In word processing, to locate the next occurrence of a specified piece of text. The
search string may be set to be *case-sensitive or case-insensitive, and also to find the
string as a whole word or when embedded in a word. The search string may include
*wildcards, and the scope of the search may be the entire document, the current selection
(see SELECT), or the text forward or backward from the cursor. There is usually a ‘search
again’ or ‘search next’ command that searches for the next occurrence of the string
previously defined so that multiple occurrences can be located without having to retype
the search string. 3. The locating of a specified piece of information or text.
search and insertion algorithm See SEARCHING.
search and replace (find and change) In word processing, to *search for a text string
and then replace it with another one. The process may be stopped after a single
replacement, it may replace all occurrences of the search string without asking, or it may
ask for confirmation at each potential replacement. When replacing all occurrences of the
search string in an entire document, a global search and replace, it is good practice to
ask for confirmation.
search engine A program that when initiated by a search command from a user
interface examines a body of data for items satisfying the search criteria and returns the
items or their locations to the interface. The data could be, say, a literary database or
information about very large numbers of *World Wide Web sites. Google, Alta Vista, and
Yahoo are examples of web search engines.
searching Locating information in a *table or *file by reference to a special field of each
record, called the key. The goal of the search is to discover a record (if any) with a
given key value. There are many different algorithms for searching, principally depending
on the way in which the table or file is structured.
If a record is to be inserted in the file, and it is important to ensure that keys are unique,
then a search is necessary: the insertion may take place as soon as the search has
discovered that no existing record has the new key. Such an algorithm is known as a
search and insertion algorithm.
See also BINARY SEARCH ALGORITHM, BREADTH-FIRST SEARCH, DEPTH-FIRST SEARCH,
HEURISTIC SEARCH, SEQUENTIAL SEARCH ALGORITHM, TABLE LOOKUP, TRIE SEARCH.
search tree See BINARY SEARCH TREE, MULTIWAY SEARCH TREE.
secant method An *iterative method for finding a root of the *nonlinear equation f(x) =
0. It is given by the formula
where x0 and x1 are given starting values. This formula is derived by replacing f(x) by a
straight line based on the last two iterates. Convergence is ultimately less rapid than for
*Newton’s method, but it can be overall more efficient on some problems since
derivatives are not required.
SECDED (single error correction/double error detection) An error-processing
scheme based on work by R. W. Hamming (1950). If a single bit of a data word passed in
the computer is altered, the single error is automatically corrected. If two bits are altered,
the double error is detected but not corrected. If more than two bits are altered, the results
are ambiguous.
secondary index See INDEXED FILE.
secondary memory Another name for backing store.
secondary ray See RAY TRACING.
second generation of computers. Machines whose designs were started after 1955
(approximately) and are characterized by both vacuum tube (valve) and discrete transistor
logic. They used magnetic core main memory. By this time a wider range of input/output
equipment was beginning to be available, with higher-performance magnetic tape and the
first forms of online storage (magnetic drums and early magnetic disks). Models of such
online storage devices include magnetic drums in the UNIVAC LARC and 1105, and early
disks in the IBM 1401–1410. During the second generation, initial efforts at *automatic
programming produced B0, Commercial Translator, FACT, Fortran, and Mathmatic as
programming languages, these in turn influencing the development of the *third
generation languages—Cobol and later versions of Fortran. See also ATLAS.
Second Life An Internet-based *virtual world. Users explore and develop this world and
interact with each other via *avatars. Launched in 2003 by Linden Research, Inc., it
attracted significant media attention in the late 2000s.
second normal form See NORMAL FORMS.
second-order logic See PREDICATE CALCULUS.
sector A subdivision of a track on a magnetic disk that represents the smallest portion of
data that can be modified by overwriting. Each sector has a unique address, which
contains the location of the track and the sector number. In order to read an address or data
the drive decoding electronics must be synchronized to the data stream. To achieve this a
special pattern, the preamble, is written. Following the preamble comes the *address
mark or data mark as appropriate.
A disk may be soft-sectored or hard-sectored. In soft-sectoring, the size and
position of the sectors is determined by the control electronics and software: disk drives
generate an index signal once per revolution of the disk, and when this is received from
the drive unit all the sectors of a track are written in one continuous operation. On a hardsectored disk, the start of each sector is related to a sector signal generated by the disk
drive and is positively related to the position of the disk. Hard-sectoring can achieve
higher packing of sectors since it is not necessary to have large intersector gaps to
accommodate speed variations.
Secure Digital Card See SD card.
security Prevention of or protection against (a) access to information by unauthorized
recipients or (b) intentional but unauthorized destruction or alteration of that information.
Security may guard against both unintentional as well as deliberate attempts to access
sensitive information, in various combinations according to circumstances. The concepts
of security, integrity, and privacy are interlinked. See INTEGRITY.
security accreditation Formal authorization that a particular computer installation or
network can be used operationally in recognition that all features of the *security policy
have been implemented.
security assurance A measure of the confidence that (a) a system complies with its
*security policy, or (b) a feature of a system complies with its security requirement.
Assurance may be increased by the use of rigorous design techniques and/or by *security
evaluation.
security certification A statement by a recognized authority that a *security evaluation
has been undertaken competently and in accordance with appropriate regulations.
security classification A classification of the sensitivity of information, e.g. ‘secret’ or
‘medical records to be inspected only by doctors’.
security clearance A categorization associated with a subject, e.g. a user, to describe
the *security classification of information to which he or she is entitled to have access.
security evaluation The examination of a system to determine its degree of
compliance with a stated *security model, *security standard, or specification. The
evaluation may be conducted (a) by analysing the detailed design, especially of the
software, often using *verification and validation, (b) by observing the functional
behaviour of the system, or (c) by attempting to penetrate the system using techniques
available to an ‘attacker’.
The US National Computer Security Center published Department of Defense Trusted
Computer System Evaluation Criteria, generally known as the ‘Orange Book.’ This has
commonly been used to evaluate commercially available systems. Subsequently
Information Technology Security Evaluation Criteria (ITSEC) has been published by the
European Union. Both have now been superseded by *Common Criteria
security kernel A *trusted process that mediates all information flows within a system
in accordance with a specified *security model. See also KERNEL.
security label A representation of the *security classification directly associated with
the information to which it relates, e.g. as part of a transmitted protocol.
security model A formal statement of the intrinsic security features to be provided by a
system. The statement usually includes a detailed specification, often in mathematical
notation, of the allowed and prohibited relationships between subjects and objects
according to their respective *security clearance and *security classifications. It may
furthermore specify the events that must be recorded in the *audit trail.
security policy A statement of the measures, especially operational, to be taken in order
to defend a system against the postulated *threats. The policy may specify the *security
processing mode together with the *security model and their relationship with physical
and personnel security controls. For example, the security policy will usually specify the
way in which *passwords will be allocated and the arrangements for audit, etc.
security processing mode A description of the *security clearances of the entire set of
users of a system in relation to the classification of all the information to be stored or
processed by the system. See DEDICATED MODE, MULTILEVEL SECURITY.
security standard 1. A statement of the extent of evaluation necessary before a
particular security feature can be considered for *security certification as *trusted. 2. A set
of security features to be provided by a system before it can be deemed to be suitable for
use in a particular *security processing mode, or in accordance with a generalized
*security policy.
seeding (error seeding, bug seeding) The deliberate addition of errors to a program.
Normally the errors seeded are semantic rather than syntactic, and are usually selected and
located in a way that is representative of the normal distribution of error type and
positioning. For example, a variable name spelling could be altered, or a branching
statement condition changed from ‘less than’ to ‘less than or equal’. The program is then
subjected to test and the errors revealed in the test are analysed into seeded and nonseeded
forms. A test or series of tests should successfully reveal all the seeded faults: the
technique has been used as a means of checking the effectiveness (and efficiency) of
various test strategies.
It is however difficult to be certain that the seeded errors are truly representative both of
the occurrence and the effect of real errors. It is particularly difficult to seed nontrivial
errors.
seek time The time taken for a particular track on a storage disk or drum to be located.
The average seek time is defined as the sum of all single track seek times plus the sum of
two track seek times and so on…, divided by the sum of all possible seeks. Typical
average seek times for disks are in the range 4–12 milliseconds. See also ACCESS TIME,
LATENCY.
segment 1. Originally, a clearly identifiable set of data, or code, that was moved between
backing store and main memory under the control of the user. Later the term was applied
to a set of data, still clearly visible to the user, that was managed by the operating system
as part of the *virtual memory system. A segment differs from a *page in that its size is
not fixed, and the user has a measure of direct control over its management. 2. Part of a
program. The word is usually used in the context of storage allocation, as in code segment,
data segment. 3. A region of near-uniform intensity in a *grey-level image that represents
a distinct entity. Segmentation is the *image processing stage that locates and divides
up an image into segments. 4. of an Ethernet. A part of an Ethernet that consists of a
single length of cable, usually coaxial cable. There are strict limits on the total length of
cable that can be used. See also ETHERNET, THICK WIRE.
select 1. To initiate an action or enable a data path. 2. To choose one of several possible
control paths at a particular point in a program. The selection operation is usually made
by a *case statement, though if there are only two alternatives an *if then else statement
can be used. 3. To mark out a section of a document before performing an operation on it,
such as *copy, *move, or *cut, or before changing its attributes, such as *font, colour,
margins, or line spacing. The selection process can be done using the keyboard or by
dragging the cursor with a pointing device such as a mouse (see CLICK). The marked text
is known as the selection. 4. To indicate an item in a menu, menu bar, button bar, etc.,
with the selection cursor before initiating an action.
selector 1. A device that can switch a signal path or initiate some other action on receipt
of a predetermined signal. The actioning signal can be on the path to be switched or from
a separate path. 2. Short for selector channel. See CHANNEL.
selector channel See CHANNEL.
self-adapting process (self-learning process) An *adaptive process that can be
‘trained’ on representative data to provide a best model for that data and that can
‘recognize’ similar data. See also ARTIFICIAL INTELLIGENCE.
self-checking code An *error-correcting or *error-detecting code.
self-compiling compiler A compiler that is written in the language it compiles. Such a
compiler makes it relatively easy to transfer a language to another machine, since the
compiler can be compiled on a machine on which it has already been implemented.
self-defining A term applied to a programming language, implying that the compiler for
the language can be written in the language. See also SELF-COMPILING COMPILER.
self-documenting program A program whose function and working can be obtained
from a reading of the program text, without additional documentation. Structured design,
the use of a high-level language, careful choice of identifiers, and judicious use of
comments all contribute to this end.
self-dual See DUALITY.
self-extending A term applied to a programming language, denoting the ability to add
new features to the language by writing programs in that language.
self-learning process Another term for self-adapting process.
self-organizing system A computing system that is capable of developing information
and structure out of sets of natural data that are presented to it. See also ARTIFICIAL
INTELLIGENCE.
self-referent list Another name for recursive list.
self-relative addressing See RELATIVE ADDRESSING.
self-signed certificate A *certificate that is issued signed by the person or organization
whose public key-identity pairing it describes. Recipients thus have no independent
guarantee that such certificates are genuine.
semantic analysis See STATIC ANALYSIS, SYMBOLIC EXECUTION.
semantic attack (masquerade) A type of cyberattack that involves altering electronic
information so that the recipient is deceived into behaving in a way that they otherwise
would not. Typically, the malicious information is forged to look very similar to a familiar
or trusted source. A very popular form of semantic attack is semantic URL attack, in
which an attacker forges a URL that looks similar to that of an official website and then
uses it in a *spam email. The link may then simply redirect the user to some unexpected
website, or trigger the execution of a malicious code. *Phishing and *social engineering
scams are examples of semantic attack.
semantic error A programming error that arises from a misunderstanding of the
meaning or effect of some construct in a programming language. See also ERROR
DIAGNOSTICS, SYNTAX ERROR.
semantic network See ASSOCIATIVE NETWORK.
semantics That part of the definition of a language concerned with specifying the
meaning or effect of a text that is constructed according to the *syntax rules of the
language. See also AXIOMATIC SEMANTICS, DENOTATIONAL SEMANTICS, INTERPRETATION,
OPERATIONAL SEMANTICS.
semaphore A special-purpose *data type introduced by E. W. Dijkstra (1965). Apart
from creation, initialization, and annihilation, there are only two operations on a
semaphore: wait (P operation or down operation) and signal (V operation or up
operation). The letters P and V derive from the Dutch words used in the original
description.
A semaphore has an integer value that cannot become negative. The signal operation
increases the value by one, and in general indicates that a resource has become free. The
wait operation decreases the value by one when that can be done without the value going
negative, and in general indicates that a free resource is about to start being used. This
therefore provides a means of controlling access to *critical resources by cooperating
sequential processes.
semicomputable algebra See COMPUTABLE ALGEBRA.
semicomputable set See RECURSIVELY ENUMERABLE SET.
semiconductor A material, such as silicon or germanium, whose electrical conductivity
increases with temperature and is intermediate between metals and insulators. In pure
semiconductors this effect is due to the thermal generation of equal numbers of negative
charge carriers (electrons) and positive charge carriers (holes). These materials are called
intrinsic or i-type semiconductors.
The introduction of specific types of impurity atoms into a pure semiconductor can
significantly increase its conductivity: donor impurities, which belong to group 5 of
the periodic table, greatly increase the number of conduction electrons and produce an ntype semiconductor; acceptor impurities, which belong to group 3, greatly
increase the number of holes and produce a p-type semiconductor. These materials
are called extrinsic semiconductors. The conductivity of an extrinsic semiconductor
depends on the type and the amount (or doping level) of impurity present.
Semiconductors of different conductivity—n-type, p-type, highly doped n- and p-type,
i-type—can be brought together to form a variety of *junctions, which are the basis of
semiconductor devices used as electronic components. The term semiconductor is
frequently applied to the devices themselves.
semiconductor memory (solid-state memory) Any of various types of cheap
memory device, normally produced in *integrated circuit form, that are used for storing
binary data patterns in digital electronic circuits. They consist internally of arrays of
*latches constructed of semiconductor devices such as *bipolar transistors or *MOSFETs.
The memory *capacity of a single chip is increasing by a factor of four every few years.
See also DIMM.
semicustom A technique used for the design of *integrated circuits that is based on the
use of fully characterized libraries of circuit elements produced by the manufacturer of the
device. The designer is therefore not concerned with low-level details of semiconductor
material electrical properties, and can instead concentrate on the functional behaviour of
the design. Most *ASIC circuit designs (for instance gate arrays) are produced by this
method. See also FULL CUSTOM.
semidecidable See DECISION PROBLEM.
semidecidable set See RECURSIVELY ENUMERABLE SET.
semidecision procedure See DECISION PROBLEM.
semigroup A very simple *algebraic structure comprising a *set S on which there is
defined an *associative operation denoted by ° (compare GROUP). The operator ° is
assumed to take operands from the set and produce results that are also in S. When the set
S is finite a semigroup can be described by giving the *Cayley table of the operation °;
otherwise it can be described by giving a rule for °.
Examples of semigroups include: strings with the operation of *concatenation (joining
together); the set of n×n matrices together with the operation of multiplication; the set of
transformations of a set and the operation of composing functions; the integers and the
operation of choosing the maximum (or minimum) of two elements. The set of integers
together with subtraction does not constitute a semigroup.
Semigroups play a major role in the theory of *sequential machines and *formal
languages. If M is a sequential machine then any input string induces a function over the
state-set of M. The set of all such induced functions forms a semigroup of the
machine under function *composition (see MYHILL EQUIVALENCE, NERODE
EQUIVALENCE). Semigroups are also used in certain aspects of computer arithmetic. See
also FREE SEMIGROUP, MONOID, TRANSFORMATION SEMIGROUP.
semiring A *set S (containing a 0 and a 1) on which there are defined two *dyadic
operations that are denoted by + and • and that obey certain properties: the set S, regarded
as a set with a zero on which the operation + is defined, is a *monoid; the set S, regarded
as a set with a unit on which • is defined, is a monoid; the operation + is *commutative;
the operation • is *distributive over +. A semiring is said to be unitary if the operation •
possesses a unit. A semiring is commutative if the operation • is commutative.
The set of polynomials in x whose coefficients are nonnegative integers constitutes an
example of a semiring (which is not a ring), the two operations being addition and
multiplication. Other uses of semirings occur in *fuzzy logic. See also CLOSED SEMIRING,
RING.
semi-Thue system An important concept in formal language theory that underlies the
notion of a *grammar. It was defined and investigated by Axel Thue from about 1904. A
semi-Thue system over the alphabet Σ is a finite set of ordered pairs of Σ-words:
Each pair 〈li,ri〉 is a rule, referred to as a production, with left-hand side li and
right-hand side ri; it is usually written
Let u and v be Σ-words, and l → r be a production, then the word ulv is said to directly
derive the word urv; this is written
So w directly derives w′ if w′ is the result of applying a production to some substring of w.
if
then w1 is said to derive wn; this is written
So w derives w′ if w′ is obtained from w by a sequence of direct derivations.
As one example, let Σ be {a,b} and let the productions be
then aabba derives baaab by the sequence
It is clear that w derives any permutation of w.
As a second example, with productions
w derives Λ (the empty word) if and only if w has the same number of as as bs.
The question of whether w derives w′ is algorithmically undecidable.
sense To determine the condition or content of a signal or storage location. When used in
reference to a storage location the word has the same meaning as ‘read’.
sensitivity analysis Investigation of the degree to which the behaviour of a system is
affected by a change in the value of some (explicit or implicit) parameter or variable, or by
a combination of changes. For example, a simple analysis might determine how the
performance of a system is impacted by changing the number and sizes of the storage
buffers that are allocated to that system.
sensor Another name for transducer.
sensor-data fusion The idea that data from multiple sensors should be combined so as
to remove or reduce noise and uncertainty and increase confidence in the result.
Redundancy, majority voting, and probability methods can be used for sets of simple
sensors of the same modality, but major research issues are involved where the sensors are
complex, as in vision, or operate across different modalities. See also DATA FUSION.
sentence See PREDICATE CALCULUS.
sentence symbol (start symbol) See GRAMMAR.
sentential form See GRAMMAR.
sentinel A datum that indicates some important state, usually in the context of input or
output. For example, an end-of-data sentinel means all the data has been read. See also
FLAG, ROGUE VALUE.
separator A symbol that separates statements in a programming language, e.g. the
semicolon in Algol-type languages.
SEQUEL A database *query language, precursor of *SQL.
sequence 1. A *function whose domain is the set of positive integers (or sometimes the
set of nonnegative integers). The image set can thus be listed s1,s2,… where si is the value
of the function given argument i. A finite sequence (or list) is a function whose domain
is
and hence whose image set can be listed
2. The listing of the image set of a sequence. Hence it is another name for *string.
sequence control register A part of the *control unit that causes the steps of the fetch
and execute processes to occur in the correct sequence/timing. See also PROGRAM
COUNTER.
sequence generator A digital logic circuit whose purpose is to produce a prescribed
sequence of outputs. Each output will be one of a number of symbols or of binary or *qary *logic levels. The sequence may be of indefinite length or of predetermined fixed
length. A binary *counter is a special type of sequence generator. Sequence generators are
useful in a wide variety of coding and control applications.
sequencer 1. In computer music, either a computer program or hardware that allows a
composer to arrange a sequence or sequences of musical notes. These may then be
replayed as continuous loops or on receipt of some trigger event. Often the anchor note for
the sequence may be input by means of a conventional *MIDI keyboard. Early sequencers
were monophonic hardware solutions, often custom-built. Many modern computer
programs for music composition can be viewed as sequencers, but it is the ability to loop,
be triggered, and to alter the anchor note that gives the composer the ability to use
sequencer technology in live performance. 2. A logic circuit that produces outputs that are
intended to provide coordination stimuli for other logic circuits. The exact timing and
sequence of these control outputs is dependent on the sequencer circuitry and may depend
on a set of input control signals provided by external devices.
sequencing 1. The procedure by which ordered units of data (octets or messages) are
numbered, transmitted over a communications network (which may rearrange their order),
and reassembled into the original order at their destination. 2. Proceeding through a
program in its ordinary order, normally from sequential memory locations. See also LOOP.
sequency The number of positive-going zero crossings (and therefore half the total
number of zero crossings) that the amplitude of a *signal makes per unit time, or, in the
case of a spatial signal (a picture), per unit of distance. The term is used mainly with
regard to signals capable of taking only one positive and one negative value of amplitude,
especially the simple case of +1 unit and −1 unit. Although the amplitude is usually
discrete, the time (or space) coordinate may be regarded as discrete or continuous,
depending on the application and the mathematical methods to be employed.
The term was originally applied to *Walsh functions. In the case of Walsh functions, or
any similar functions which are periodic but in which there are several zero crossings per
period at unequal intervals, the number of zero crossings per period is called the
normalized sequency.
Many concepts such as *bandwidth, and processes such as *filtering, which were
originally defined in terms of *frequency, can equally well be defined in terms of
sequency. The sequency formulation is often handled more simply and more rapidly by
discrete devices such as computers.
See also DISCRETE AND CONTINUOUS SYSTEMS.
sequential (serial) Involving the occurrence of two or more events or activities such that
one must finish before the next begins. If one event or activity immediately follows
another then they are said to be consecutive.
sequential access A method of access to a file, especially a data file: a file is said to be
sequentially accessed if the sequence of transactions presented to it matches a sequence in
which *records are organized.
sequential algorithm In general, any algorithm executed sequentially, but,
specifically, one for decoding a *convolutional code.
sequential circuit (sequential machine) A *logic circuit whose outputs at a specified
time are a function of the inputs at that time, and also at a finite number of preceding
times. In practice, any physically realizable sequential circuit will have a finite transit
time, or delay, between the inputs changing and the outputs changing (one or more of
these inputs may be clock signals); the intention of the term sequential is to include not
only *combinational circuits but also (explicitly) *memory elements such as flip-flops.
Analysis and synthesis of sequential circuits is facilitated by *state diagrams.
sequential cohesion See COHESION.
sequential composition See PROCESS ALGEBRA.
sequential encoding A method of image encoding that uses a single scan through the
data, as compared to *progressive encoding, which uses multiple scans. Sequential
encoding is one of the options in the *JPEG standard.
sequential file A file organized to support *sequential access.
sequential function Let I and O be alphabets. A function
(see WORD) is sequential if it is the response function of a *sequential machine.
sequential machine 1. A *finite-state automaton with output (in some contexts
including machines with infinite state set). Thus there is a function f from the *Cartesian
product I × Q to the product Q × O, with Q a set of states and I, O finite sets of input and
output symbols respectively. Suppose, for example,
then, if the machine is in state q0 and reads a, it moves to state q1 and outputs x, and so on.
Assuming the starting state to be q0, it can be seen for example that the input string
abbbc is mapped to the output string xyyyz. This mapping from the set of all input
strings to the set of all output strings, i.e. I* to O*, is called the response function of
the machine. The function f comprises a state-transition function fQ from I × Q to Q
and an output function fO from I × Q to O.
What is described here is sometimes called a Mealy machine to distinguish it from
the more restricted Moore machines. In a Moore machine, the symbol output at each
stage depends only on the current state, and not on the input symbol read. The example
above is therefore not a Moore machine since
whereas
Any Moore machine can be converted to an equivalent Mealy machine by adding more
states.
A generalized sequential machine is an extension of the notion of sequential
machine: a string of symbols is output at each stage rather than a single symbol. Thus
there is a function from I × Q to Q × O*. See also GSM MAPPING. 2. Another name for
sequential circuit.
sequential quadratic programming A widely used and successful approach to
solving constrained *optimization problems, that is
where F(x) is a given objective function of n real variables, subject to the t nonlinear
constraints on the variables,
Inequality constraints are also possible. A solution of this problem is also a stationary
point (a point at which all the partial derivatives vanish) of the related function of x and λ,
A quadratic approximation to this function is now constructed that along with linearized
constraints forms a quadratic programming problem – i.e., the minimization of a function
quadratic in the variables, subject to linear constraints. The solution of the original
optimization problem, say x*, is now obtained from an initial estimate and solving a
sequence of updated quadratic programs; the solutions of these provide improved
approximations, which under certain conditions converge to x*.
sequential search algorithm The most simple *searching algorithm in which the
keys are searched sequentially from the top of the file until a match is found.
sequential transducer A nondeterministic version of a generalized *sequential
machine.
serial 1. Involving the sequential transfer or processing of the individual parts of a
whole, such as the bits of a character. Compare PARALLEL. 2. Another word for
sequential.
serial access A method of access to data in which blocks are read from the storage
medium in the physical order in which they occur, until the required item is reached.
serial adder A binary *adder that is capable of forming sum and carry outputs for
addend and augend words of greater than one bit in length. The individual bits of the
addend and augend, starting with the least significant bit, are presented in sequence,
together with a carry, to the adder, which then forms sum and carry outputs. The carry
must then be stored so that it can be used with the next most significant pair of input bits.
A serial adder affords a saving in component count when compared with a *parallel adder,
but is inevitably slower.
serial arithmetic Operation upon one bit or digit of a number at a time.
serial ATA A serial version of the parallel ATA interface widely used for hard disk
attachment. Serial ATA supports data transfer rates up to 300 Mbytes/s and enhancements
up to 600 Mbytes/s are planned. Cables are much smaller than the flat ribbon cables used
conventionally and can be up to two metres long. Serial ATA is compatible with existing
IDE standards by emulation.
serial in parallel out (SIPO) A term used to describe a class of digital device that can
accept serial sequential n-bit data streams and convert them into parallel n-bit data words.
These devices often consist of an n-bit *shift register that is serial loaded with n bits of
data from the input stream under the control of an external clock (see diagram). The n-bit
data word can then be read in parallel form from the shift register. Compare PARALLEL IN
SERIAL OUT.
serial input/output (SIO) A method of communicating data between devices, typically
a computer and its peripherals, the individual data bits being sent sequentially. Serial
communication may be asynchronous, where the data characters include start and stop
bits to delimit the data, or synchronous, where such additional bits are omitted and the
delimiting of the data depends purely on timing. Asynchronous serial communication is
more flexible whereas synchronous serial communication makes better use of the
available bandwidth. Asynchronous methods are generally used with dial-up modems or
for general connection of simple serial peripherals. Synchronous methods are usually to be
found where *leased lines or proprietary interfaces are used.
Formerly SIO was a relatively slow mode, but advances in silicon technology mean that
very fast SIO (hundreds of megabits per second) now make SIO preferable to parallel
interfaces. See USB, FIREWIRE.
serial in serial out (SISO) A term used to describe a *shift register that, by
implication, cannot be loaded in parallel and cannot be read in parallel: data can only enter
or leave the device serially.
serial interface A connection point through which information is transferred one digital
bit at a time. The rate may be high, e.g. 1 gigabyte per second as in Ethernet, or as slow as
110 bits per second via an RS232C interface. The term is sometimes applied to interfaces
such as the RS232C and RS422 in which the data is transferred serially via one path, but
some control signals can be transferred simultaneously via parallel paths. Compare
PARALLEL INTERFACE, SERIAL-PARALLEL.
serial-parallel A combination of serial and parallel processing; for example, binary
decimal coded (BDC) numbers are often processed as 4 bits in parallel, and successive 4bit units are processed serially.
serial port An input/output socket on a computer or other device that is used for *serial
input/output, often making use of the *RS232C standard. The physical port may have a
25- or 9-pin subminiature D connector or an RJ45 connector (which looks like a telephone
connector). From the software, a serial port is usually treated as a *device rather than a
file. Compare PARALLEL PORT.
serial printer A printer that prints one character at a time in the sequence in which they
appear in the line of text. The sequence may be taken from left to right, or it may be in
alternate directions for alternate lines thus avoiding an unproductive carriage-return
movement. All serial printers have an arrangement in which a print head moves parallel to
the paper and along the line to be printed. Note that the term serial printer refers to the
method of printing and not to the connection, which may be serial or parallel.
serial process A *process in which stages in the process are executed in a strictly serial
manner, one stage completing before the next starts, and with only one stage active at any
one instant.
serial programming See SINGLE THREADING.
serial transfer Transmission of information as sequential units. For example, if two
computers connected by a single wire wish to communicate an 8-bit unit of information,
the sending computer would transmit each of the eight bits in sequence over the wire,
while the receiving computer would reassemble the sequential bits into the original 8-bit
units. Compare PARALLEL TRANSFER.
serpentine recording A method of recording on magnetic tape (usually in cartridge
form) where each track is recorded separately and alternate tracks are recorded in opposite
directions, so that it is not necessary to rewind the tape after recording each track.
server A system on a network that provides a service to other systems connected to the
network. The term was originally restricted to the case where both the server and the
systems it served were on the same local area network, and where the server was likely to
be expensive in comparison with the systems it served. The term is now used much more
generally, applying to systems where the server and the system to which it provides a
service (the client) may be linked by a metropolitan area network or wide area network,
and where the server may be much less costly than the client. See also CLIENT/SERVER,
COMPUTE SERVER, FILE SERVER.
server farm A collection of networked processors providing large-scale computing
services. These typically consist of thousands of relatively cheap processors collected
together in racks and connected with cabling. Their usual applications include web search
engines, *cloud computing, and *supercomputing. The main performance issues have to
do with cooling, power consumption, and reliability, rather than with the speed of the
individual processor units.
server-side Denoting an activity that occurs on a *server rather than a *client. The term
usually occurs to clarify the actual position when the activity could happen in either
location: for example, server-side *scripting.
service bit A bit in an X25 *packet that indicates whether the packet is formatted to
contain primarily data or control information.
service engineering Any maintenance, *preventive or *remedial.
service level agreement (SLA) An agreement between the supplier of a service and
the users of that service that sets out the levels of service that will be offered, preferably in
quantitative terms, and the obligations on the user of the service. A typical agreement for a
computing service or network service will set out the expected levels of service measured
in terms of one or more of the following: availability, fault reporting, recovery from
breakdowns, traffic levels, throughput, response times, training and advisory services, and
similar measures of the service quality as seen by the end-user. The agreement will also
set out user costs and charges, the provision of access to premises for service contractors,
and standards of training to be achieved by users. The agreement may form part of a legal
contract, yet is equally likely to be found within a single large organization where one unit
within the organization offers services to other units, but where a legally enforceable
contract would not be appropriate.
service-oriented architecture (SOA) A design principle for the deployment of
software that focuses on the operational capabilities that the software provides, rather than
on the software itself. This notably allows for applications that realize services on behalf
of others (see SAAS). In service-oriented architecture, services may actually and most often
be based on different platforms. The paradigm for SOA is called service orientation.
session 1. A recording on a CD (CD-R or CD-RW) that is made at one particular time.
Generally, multisession recording is possible; i.e. files can be copied in one session and
then, more files copied in a later session, etc. 2. Information about connected parties in a
networked transaction or information interchange, maintained for the duration of the
communication activity. On the World Wide Web sessions play a key role in maintaining
state, given the stateless nature of the *HTTP protocol.
session layer (of network protocol function) See SEVEN-LAYER REFERENCE MODEL.
set 1. A collection of distinct objects of any sort. The objects in the set are called its
members or elements. An element can occur at most once in a set and order or
arrangement is unimportant. If x is a member of the set S it is customary to write
If x is not a member of S this can be expressed as
and is equivalent to
i.e. ∈ and ∉ can be regarded as operators. When any element in set S is also in set T, and
vice versa, the two sets are said to be identical or equal.
A finite set has a fixed finite number of members and a notation such as
is possible; the members are separated by commas and here are just the names of various
programming languages. When the number of elements is not finite, the set is said to be
infinite and explicit enumeration of the elements is not then possible.
Infinite and finite sets can be described using a *predicate or statement such as p(x) that
involves x and is either true or false, thus
This is read as ‘the set of all elements x for which p(x) is true’, the elements being
characterized by the common property p. Examples of sets described in this way are
(letting R be the set of real numbers):
There is an implicit assumption here that there is some algorithm for deciding whether
p(x) is true or false in any particular case.
The idea of a set is fundamental to mathematics. It forms the basis for all ideas
involving *functions, *relations, and indeed any kind of *algebraic structure. Authors
differ considerably in the way they define sets. A mathematical logician will distinguish
carefully between classes and sets, basically to ensure that paradoxes such as *Russell’s
paradox cannot occur in sets. However, the informal definition is adequate for most
purposes. See also OPERATIONS ON SETS. 2. Any data structure representing a set of
elements. One example is a *characteristic vector. 3. To cause the condition or state of a
switch, signal, or storage location to change to the positive condition.
set algebra The *algebra that consists of the *set of *subsets of some *universal set U
together with the associated operations of *union, *intersection, and *complement. The
set of subsets associated with set algebra is sometimes described as the *power set of U.
set difference The *dyadic operation between two sets S and T, say, resulting in the set
S − T consisting of those elements that are in S but not in T. Formally
Set difference is a generalization of the idea of the *complement of a set and as such is
sometimes called the relative complement of T with respect to S. The symmetric
difference between two sets S and T is the *union of S − T and T − S.
set-up time The period of time during which binary data must be present or ‘set up’ at
the input to a digital device before the device enters or samples the data. It is commonly
specified for memory devices.
seven-layer reference model The standard model for communications *protocols that
is formally approved by the International Standards Organization acting in concert with
the *CCITT. The ISO approach identifies the functionality required in terms of seven
separate layers, as summarized in the table; the two systems that are to communicate each
support an implementation of these seven layers. The layers are conceptually organized
with the ‘lowest’ layer representing the physical link between the two systems, and with
successive ‘higher’ layers progressively being concerned less with the details of the
network traffic, and more with the details of the end-user applications that wish to
communicate. Each local implementation of these layers is often referred to as a
protocol stack. Each layer can communicate only with the layers immediately above
and below it in the stack. The set of permissible messages and responses in this local
‘vertical’ communication is defined by the corresponding *interface. The lowest, physical
layer, communicates downward with the physical link, and information passes via the link
to the corresponding lowest layer in the remote system. The highest layer communicates
upward with the local end-user application.
By passing a message down through the lower layers at the transmitting end, across the
link, and up through the layers at the receiving end, each layer can communicate with the
corresponding layer in the remote system. The set of permissible messages and responses
in this remote, ‘horizontal’ communication is defined by the corresponding protocol. The
entire system is therefore defined by the information that can pass vertically via the
interface between adjacent layers in a given stack, and horizontally between
corresponding layers in the two remote stacks.
The primary objective of the seven-layer model is to provide a flexible means of
describing the behaviour of communications systems, capable of dealing with all existing
and future technologies, rather than to provide a specific set of protocols and interfaces.
The process of reaching international agreements that meet the conflicting requirements of
different groups of end-users, accommodate the interests of competing commercial
suppliers, and define technically sound products is slow, often taking several years to
reach a final set of recommendations. When agreement on proposals has been achieved,
the development of commercially viable products conforming to the proposals is again
time-consuming. It is then necessary to test the products for conformance, to demonstrate
successful interworking between products from different suppliers, and to resolve
discrepancies where systems that each separately appear to conform with the proposals do
not interwork correctly.
Inevitably during this time, individual users or suppliers will have made their own
systems, and in this sense the international standards will always lag behind the ad hoc or
proprietary systems. Despite this, the model has itself been used as the basis for networks
themselves (X25 for packet networks, ISO 8802.3 for CSMA/CD, ISO 8802.7 for slotted
rings, ISO 8802.5 for token rings, ISO 8802.4 for token bus, and X75 for internetwork
communication), and for some applications such as email (X400), directory services
(X500), and manufacturing automation.
Seven-layer reference model. ISO/OSI model
S-gate Another name for ternary threshold gate.
SGML (standard generalized mark-up language) An international standard
*metalanguage (ISO 8859) used for defining the syntax of textual *mark-up languages.
This enables both sender and receiver of the text to identify its structure (e.g. title, author,
header, paragraph, etc.). See also DTD, HTML, XML.
shading model See LIGHTING MODEL.
shadow buffer A shadow-testing acceleration scheme where each point light source is
surrounded by a direction cube, which contains a list of the objects visible through each
cell. The direction of an illumination ray is first looked up in the light buffer associated
with that light source as a means of fast shadow testing.
shadow-mask cathode-ray tube A type of *cathode-ray tube that has a perforated
mask between the electron guns and the phosphor-coated surface to ensure that each
electron gun can only hit phosphor spots of the appropriate colour.
Shannon diagram (of a *communication system) A diagram illustrating *Shannon’s
model of such a system, embodying the source, encoder, channel, noise source, decoder,
and destination of information.
Shannon–Fano coding (Fano coding) See SOURCE CODING.
Shannon–Hartley law See CHANNEL CODING THEOREM.
Shannon’s model (of a *communication system) A widely accepted model, set down
by Claude Elwood Shannon in 1948, that has an information source sending a
message to an information destination via a medium or mechanism called the
channel. According to Shannon, ‘the fundamental problem of communication is that of
reproducing at one point either exactly or approximately a message selected at another
point’.
In general, the channel will distort the message and add *noise to it. In order to avoid
the distortion, and to reduce the effect of the noise to any desired degree, an *encoder is
placed between the source and the channel, and a *decoder is placed between the channel
and the destination. Now, the source sends the transmitted message, which is encoded
as the transmitted signal; this is sent through the channel. It emerges as the received
signal, which is decoded to give the received message; this arrives at the destination.
The channel is considered to have a noise source that inputs ‘information’ in addition
to that in the transmitted signal. The aim of the encoder and decoder is to make the
received message resemble, as closely as required, the transmitted message, in spite of the
‘information’ from the noise source.
See also CHANNEL CODING THEOREM, SOURCE CODING THEOREM.
Shannon’s theorems See CHANNEL CODING THEOREM, SOURCE CODING THEOREM.
shape blending See BLENDING.
share See NETWORK SHARE.
shared logic system A term sometimes used to refer to a system where several
terminals share a CPU simultaneously.
shared memory The use of the same portion of memory by two distinct *processes, or
the memory so shared. Shared memory is used for interprocess communication and for
purposes, such as common subroutines, that lead to compactness of memory. See also
MULTIPORT MEMORY, CONCURRENCY.
shareware Software freely distributed with the expectation that anyone wishing to use it
on a long-term basis will send a fee to the author. The method of payment and magnitude
of the license fee normally forms part of the accompanying documentation. The incentive
to register the software may be the promise of future versions, documentation, or
extensions to the software.
SHE Abbrev. for safety, health, and ergonomics.
sheet feeder A device that may be attached to a printer allowing individual sheets of
paper to be fed into the printer without operator action. This device is often available as an
add-on feature with impact printers, but is usually incorporated into the mechanism with
modern nonimpact printers.
shell A program that provides the *user interface of an *operating system and is often
considered to be part of it. The main inner part of the operating system, the *kernel, is thus
enclosed by the shell, as in a nut. Some operating systems have a choice of shells.
shell script See JOB-CONTROL LANGUAGE, JOB FILE.
Shell’s method (diminishing increment sort) A sorting algorithm proposed by Donald
Shell in 1959 and published as shellsort. It is a variant of *straight insertion sort that
allows records to take long leaps rather than move one position at a time. It does this by
sorting each group G(i)j of records a distance hi apart within the file. (The G(i)j are
*disjoint and together contain all the information in the file.) This is repeated for a
decreasing sequence of values hi, and consequently increasing number of groups G(i)j,
finally ending with hi = 1.
shellsort See SHELL’S METHOD.
shielded twisted pair (STP) See TWISTED PAIR.
shift 1. To change the interpretation of characters. The term is commonly used to mean a
change from lower to upper case. 2. Any complete set of characters obtainable without
shifting. Hence change shift is a synonym for shift (def. 1). 3. The movement of a bit
pattern in a bit string. A left shift of m (<n) bits will move the bit pattern in a string
leftward, giving
Similarly, a right shift of m bits converts
The bits that are introduced (shown here as question marks) and the use of the bits that are
shifted off the end of the string depend on the kind of shift: arithmetic, logical, or
circular. In an arithmetic shift the bit strings are regarded as representations of binary
integers; if the leading m bits that are lost are all zero, a left shift of m bits is equivalent to
multiplication by 2m and a right shift can be interpreted as integer division by 2m. In
logical shifts the bits introduced are all zero. In circular shifts the bits shifted off at one
end are introduced at the other.
shift character Any character used in a stream of characters to change *shift, i.e. to
change the interpretation of the characters. Compare ESCAPE CHARACTER.
shift counter A *synchronous counter that consists of clocked *flip-flops arranged as a
*shift register. Data is propagated from left to right (or from right to left) between the flipflops by the application of a clock or count pulse. Counting is achieved by setting the
contents of the shift register to logic 0 (or logic 1) and loading the leftmost (rightmost)
flip-flop with a logic 1 (logic 0). An m-bit counter, which has m flip-flops, will then
require m clock pulses to shift this 1 (or 0) to the rightmost (leftmost) flip-flop. The
position in the register of the 1 (or 0) thus acts as a count of the number of pulses received
since application of the load.
The counter may be made to count continuously by arranging that the output of the
rightmost (leftmost) flip-flop sets the input of the leftmost (rightmost) flip-flop. The
counter is then known as a ring counter.
shift instruction An instruction specifying that the contents of a shiftable register
(occasionally concatenated registers) are to be shifted either to the left or to the right a
specified number of register positions.
*Shifts can be circular or they can be open at both ends. In the latter case there is
usually a specification of what happens to bits being shifted out of the register (often they
are discarded) and what bits are to be shifted into the register (most often 0s).
shift keying See FREQUENCY SHIFT KEYING, MODULATION, PHASE SHIFT KEYING.
shift lock A mode of keyboard operation whereby the characters produced by a keyboard
are all constrained to those produced when the shift key is pressed. See also CAPS LOCK.
shift-reduce parsing Another name for bottom-up parsing.
shift register A *register that has the ability to transfer information in a lateral direction.
It is an n-stage clocked device whose output consists of an n-bit parallel data word (see
diagram). Application of a single clock cycle to the device causes the output word to be
shifted by one bit position from right to left (or from left to right). The leftmost (or
rightmost) bit is lost from the ‘end’ of the register while the rightmost (or leftmost) bit
position is loaded from a serial input terminal. The device may also be capable of being
loaded with parallel n-bit data words, these then being shifted out of the device in serial
form. See also SERIAL IN PARALLEL OUT, PARALLEL IN SERIAL OUT, PARALLEL IN
PARALLEL OUT, SERIAL IN SERIAL OUT.
Shift registers with parallel outputs, and with combinational logic fed from those
outputs (see COMBINATIONAL CIRCUIT), are of great importance in *digital signal
processing, and in the encoding and decoding of *error-correcting and *error-detecting
codes. Such registers may be implemented in hardware or in software, and may be binary
or *q-ary. (Hardware implementation is usually convenient only for binary and sometimes
ternary logic.) See FEEDBACK REGISTER, FEED-FORWARD REGISTER, GOOD–DE BRUIJN
DIAGRAM.
Shift register. An n-bit shift register
Shlaer–Mellor An object-oriented development method invented by Sally Shlaer and
Stephen Mellor.
shooting method An iterative method for the solution of boundary-value problems in
*ordinary differential equations. Consider the problem
Let y(x;t) denote the solution of this differential equation from initial conditions
This solves the above problem if F(t) = 0 where
The equation F(t) = 0 is solved iteratively, usually by some variant of *Newton’s method.
Each iteration therefore requires the numerical integration of an initial-value problem.
The method is applicable to all types of boundary-value problems, whatever the form of
the boundary conditions. Apart from the problem of obtaining good estimates to start the
iteration, difficulties can arise due to severe *error propagation in the integration of the
initial-value problem. A useful improvement is to guess the missing conditions at both
ends of the range, matching the two solutions so defined at an interior point. In difficult
cases estimates and matching can be used at several interior points to reduce error
propagation; this is known as the parallel-shooting method.
shortest-path algorithm An algorithm that is designed essentially to find a path of
minimum length between two specified vertices of a *connected *weighted graph. A good
algorithm for this problem was given by E. W. Dijkstra in 1959 (see DIJKSTRA’S
ALGORITHM).
shrink-wrap license In the computer industry the terms of the software license are
usually printed clearly on a sticky seal or are readable on the box, which is covered with a
‘shrink-wrap’ film. Within the box are the disks and manuals and there is usually a notice
that says that if you need to return the software the packages must be unopened with the
shrink-wrap intact and that software with broken seals will not be refunded. The
contention is that, once you have broken the seal or stripped off the shrink-wrap, you have
entered into a license agreement upon the terms stated in the license. Legally this is very
doubtful under English law although there are amendments to the laws of certain US states
that make this an enforceable contract under their local laws.
shrink-wrapped product A software product sold as a commercial readily available
item. The name is meant to indicate that the buyer obtains a complete package with no
possibility of influencing the requirements for or the design of the product. These products
are usually sold in large numbers, often by mail order or high-street retailers, and come
complete with software, installation instructions, and user manuals.
sibling Either of two nodes in a *tree that are both *children of the same parent.
side effect An effect of a *program unit that is not apparent from its parameters, for
example altering a nonlocal variable or performing input/output.
sieve benchmark A program that calculates the prime numbers within a specified range
in order to obtain a *benchmark timing to complete execution. It is easy to use and is often
employed to tune the optimization algorithms in compilers; however its coverage of
language features is limited to arrays, simple variable types, looping, and comparison.
sifting technique Another name for straight insertion sort.
sig Short for signature (def. 2).
sigma algebra (Σ-algebra) See SIGNATURE.
sigma language (Σ-language) See FORMAL LANGUAGE.
sigma tree (sigma term, Σ-tree, Σ-term) See TERM, TREE LANGUAGE.
sigma word (Σ-word) See WORD.
sign A means used to distinguish between positive and negative numbers. In a computer
there are a number of ways of representing the sign of a number, each of which makes use
of a single bit called the sign bit. The most obvious way of representing positive and
negative integers in computer words is by means of the signed-magnitude (or signand-magnitude) representation. Here, the leftmost bit in a word is used to denote
the sign (0 for + and 1 for −) and the remaining bits in the word are used to represent the
magnitude of the integer. It is more usual, however, for a computer to use the two’s
complement representation of integers. See COMPLEMENT NUMBER SYSTEM, RADIX
COMPLEMENT.
signal 1. A form of data that is usually envisaged as a sequence of values of a scalar
quantity—the amplitude—recorded (i.e. measured, tabulated, or plotted) against time.
The amplitude is most often, but by no means always, an electric potential. For example, if
the signal is a sine wave with a mean value of zero (symmetrical about zero volts), then
the amplitude is the value of the peak voltage. See also DISCRETE AND CONTINUOUS
SYSTEMS, SPACE DOMAIN.
2. Any path transmitting some data or function. 3. To convey
data or control information from one point to another.
signal conditioning *Filtering a continuous signal.
signal operation See SEMAPHORE.
signal processing The processing of *signals by means of hardwired or programmable
devices, the signals being regarded as continuous or discrete and being approximated by
analogue or digital devices accordingly (see DISCRETE AND CONTINUOUS SYSTEMS).
*Filtering and *image processing are examples of signal processing. See also DIGITAL
SIGNAL PROCESSING.
signal-to-noise ratio The ratio of the *signal power to the *noise power in a physical
transmission channel; it is often measured in decibels (dB). The definition is best applied
to statistically well-behaved noise such as *white Gaussian noise. A more useful
definition, frequently employed when small signals are needed, is signal-plus-noise to
noise ratio. This has the benefit of being easy to measure. With large signals and lownoise circuits the two definitions are virtually identical. See also CHANNEL CODING
THEOREM.
signature 1. A collection of symbols intended to be associated with *sets and with
*functions on and elements from the sets. Signatures provide names for the carrier sets,
operations, and constants of *algebras. They are central in the precise treatment of the
syntax of many computer science concepts, including (a) *abstract data types, (b)
*algebraic specifications, and (c) classes, *modules, and *objects. Typically, headers of
modules are signatures. The specification of an Ada *package is in effect a signature.
In its simplest form a signature is a set Σ of symbols with, for each Σ ∈ Σ, a natural
number ρ(σ) called the *arity of Σ. A Σ-algebra consists of a set A (called the carrier of
the algebra) together with, for each σ ∈ Σ, an n-argument function over A, where n = ρ(σ).
As an example, suppose
Then one Σ-algebra results from taking the set of all integers as carrier, and associating the
number 0 with ‘zero’, 1 with ‘one’, addition with ‘plus’, and multiplication with ‘times’.
As indicated by ρ, addition and multiplication are 2-argument functions while zero and
one, being constants, expect no arguments and their arity is 0.
It is important to realize that the above example describes only one possible Σ-algebra.
For example, the carrier could be the real numbers; or, perversely multiplication could be
associated with ‘plus’ and addition with ‘times’; equally sets could be considered instead
of numbers, associating, say, *union and *intersection with ‘plus’ and ‘times’. The point is
that an algebra can involve arbitrary sets and arbitrary functions: any choice is as much an
algebra as any other and it need not reflect in any obvious way the names chosen for the
symbols in the signature. Indeed the whole point of signatures is to make a distinction
between the names and symbols and their possible interpretations.
In computer science the more complex notion of many-sorted signature is used.
This allows algebras to have many carriers. A signature now, in addition to function
symbols, includes a set of sorts. These are symbols that, in an algebra, are associated
with carrier sets. Instead of a natural number, ρ(σ) is a sequence of sorts indicating which
sets the arguments come from, together with an additional sort giving the set in which the
result lies.
Signatures are often displayed as shown in the diagram. Here real numbers and
Booleans are equipped with their usual operations. 2. That part of an email message in
which the originator states his or her identity and claims authenticity. 3. A bit pattern
believed to be specific to a particular program and used to identify virus programs or
unlicensed copies of proprietary software. 4. See SIGNATURE ANALYSIS.
Signature. A signature for real numbers
signature analysis A method of determining the location and/or nature of a fault in a
digital system by input of test sequences and inspection of the resulting output sequences
(signatures). The theory is that of *sequential circuits. See also CONVOLUTION, SEQUENCE
GENERATOR.
signature scanning The most common technique of specific *virus detection in which
code is scanned for the signatures of any of a set of known viruses. See SIGNATURE (def.3).
sign bit See SIGN DIGIT.
sign digit (signed field) A single digit used to indicate the algebraic sign of a number. If
the binary system is being used, the sign digit is called a sign bit. See also FLOATINGPOINT NOTATION, SIGN.
signed Containing a *sign: a signed whole-number representation is one whose *bit
pattern is interpreted as an *integer type (whose value may be positive, negative, or zero).
Numbers of *rational type and in *floating-point notation are almost always signed.
signed field Another name for sign digit.
signed-magnitude representation See SIGN.
significance test A statistical procedure whereby a quantity computed from data
samples is compared with theoretical values of standard *probability distributions.
Formally it is a comparison between a null-hypothesis, H0 (for example that there is no
difference between the means of two *populations), and an alternative hypothesis,
H1, (that a real difference exists). If H0 is assumed to be true, the probability distribution
of the test statistic can be computed or tabulated. If the test statistic exceeds the critical
value corresponding to a probability level of α per cent, the null-hypothesis is rejected at
the α per cent significance level. The most commonly used levels of significance are 5%,
1%, and 0.1%. Care must be taken to specify exactly what alternative hypothesis is being
tested. Tests involving both tails of the probability distribution are known as two-tailed
tests; those involving only one tail are one-tailed tests. See also ANALYSIS OF
VARIANCE, CHI-SQUARED DISTRIBUTION, GOODNESS-OF-FIT TEST, MULTIPLE-RANGE
TESTS, STUDENT’S T DISTRIBUTION.
significand (fractional part) See FLOATING-POINT NOTATION.
sign off Another term for log off.
sign on Another term for log in.
SIL devices (single in-line devices) *Integrated circuit devices in which the terminal
pins lie in a single line, typically of 0.1 inch pitch. This is in contrast for instance to the
layout used for many ICs where the pins lie on two parallel lines—so-called dual in-line
(*DIL) devices.
silicon chip See CHIP.
silicon disk Another name for RAM disk.
Silicon Valley A name used for a part of west California, south of San Francisco, that
contains a large number of computer and software companies.
SIMD processor Short for single instruction (stream), multiple data (stream) processor.
See CONCURRENCY.
similar trees Trees that have the same structure or shape. More formally, two trees are
similar if they both comprise exactly one node or, if not, the corresponding subtrees of the
two roots are equal in number and are pairwise similar. For ordered trees, the pairwise
correspondence is that given by the ordering imposed upon the subtrees of the two trees.
SIMM (single in-line memory module) A memory IC (*integrated circuit) whose
pin-out corresponds to the *SIL format. Because the pins lie along one edge of the device
package, it can be mounted on a PCB in a perpendicular plane, minimizing the board area
occupied and maximizing the packing density. See also MEMORY CARD.
Simple API for XML See SAX.
Simple Object Access Protocol The original meaning of *SOAP. The acronym was
dropped in 2003 when SOAP version 1.2 was released; ‘SOAP’ no longer stands for
anything.
simple parity check (simple parity code) See CYCLIC REDUNDANCY CHECK.
simplex 1. Denoting or involving a connection between two endpoints, either physical or
logical, that can carry data in only one direction with no possibility of data flow in the
opposite direction. See also DUPLEX, HALF DUPLEX. 2. A finite graph of k points (the
vertices), or a geometric figure, in which every vertex is connected to every other vertex
(e.g. a triangle or tetrahedron).
simplex codes A family of *linear *error-correcting or *error-detecting *block codes,
easily implemented as *polynomial codes (by means of *shift registers). Considered as (n,
k) codes (see BLOCK CODE), they have codeword length
Binary simplex codes have a minimum *Hamming distance equal to 2k-1. They can be
regarded as *Reed–Muller codes shortened by one digit, and are identical with the *msequences of length 2k − 1, together with the *zero word. They are so called because their
codewords form a *simplex in *Hamming space.
simplex method See LINEAR PROGRAMMING.
Simpson’s rule The approximation
where h = xi+1 − xi. It is used in *numerical integration.
Simula A programming language based on Algol 60, with extensions to make it suitable
for writing *simulation programs. The major innovation in Simula was the concept of the
class, which was a precursor of the *abstract data type.
simulated annealing A powerful enhancement for *hill climbing search in which there
is a small probability that random moves will be allowed in directions different from the
preferred up-hill direction. This permits occasional moves to occur which can allow the
hill climber to escape from local maxima. Initially large moves are allowed but a ‘cooling’
regime continuously lowers the probability of random directions during the search and
thus the solution tends to settle on the best local maximum.
simulation Imitation of the behaviour of some existing or intended system, or some
aspect of that behaviour. Examples of areas where simulation is used include
communication network design, where simulation can be used to explore overall
behaviour, traffic patterns, trunk capacity, etc., and weather forecasting, where simulation
can be used to predict likely developments in the weather pattern. More generally,
simulation is widely used as a design aid for both small and large systems, and is also used
extensively in the training of people such as airline pilots or military commanders. It is a
major application of digital computers and is the major application of analogue computers.
From an implementation viewpoint, a simulation is usually classified as being either
discrete event or continuous. For a discrete event simulation it must be possible to
view all significant changes to the state of the system as distinct events that occur at
specific points in time; the simulation then achieves the desired behaviour by modelling a
sequence of such events, treating each individually. By contrast, a continuous
simulation views changes as occurring gradually over a period of time and tracks the
progress of these gradual changes. Clearly the choice between these two in any particular
case is determined by the nature of the system to be simulated and the purposes that the
simulation is intended to achieve.
Although the distinction between simulation and emulation is not always clear, an
emulation is normally ‘realistic’ in the sense that it could be used as a direct replacement
for all or part of the system that is emulated. In comparison, a simulation may provide no
more than an abstract model of some aspect of a system.
simulation language A programming language that is specialized to the
implementation of simulation programs. Such languages are usually classified as either
discrete event simulation languages or continuous simulation languages. See SIMULATION.
simulator Any system that performs a *simulation. It is normally a system dedicated for
some period to performing a specific simulation, as distinct from, say, the case where a
simulation program is executed as a normal job on some general-purpose computer.
Simulators often employ either special-purpose hardware or hardware components from
the system that is simulated.
simultaneous equations A set of equations that together define an unknown set of
values or functions. The term is normally applied to *linear algebraic equations.
single-address instruction An instruction that makes explicit reference to only one
operand location; the source of any required second operand is implied. See also
ACCUMULATOR, ADDRESSING SCHEMES, INSTRUCTION FORMAT.
single-assignment languages A class of programming languages. These languages
have the appearance of traditional *imperative languages in that they incorporate the
*assignment statement and typical control flow constructs such as if statements and loops.
They impose the limitation, however, that no variable may be assigned a value more than
once. (Special provision must be made for assignment statements within loops.) This
limitation significantly alters the nature of the assignment statement, which can then be
viewed as statically associating a name with a value rather than as a dynamic destructive
operation. This static nature allows the normal ordering restrictions of imperative
languages to be relaxed, and assignment statements can be executed as soon as the
expression on the right-hand side can be evaluated. Because of this property, singleassignment languages are closely associated with dataflow computing (see DATAFLOW
MACHINE).
single attach See FIBRE DISTRIBUTED DATA INTERFACE.
single in-line devices See SIL DEVICES.
single instruction, multiple data (SIMD) See CONCURRENCY.
single-step operation Proceeding through the execution of a program either by single
instructions or by single steps (clock times) within an instruction. This method is used
during program and/or hardware debugging.
single threading A property of a body of code that activates more than one processor,
but does so in such a way that at any one time no more than one processor is active. This
results in what is termed serial programming. For example, code that initiates
peripheral transfers may be so written that while a transfer is in progress the processor will
not be active, and vice versa. See also MULTITHREADING, THREADING.
singly linked list (one-way linked list) A *linked list in which each item contains a
single link to its successor. By following links it is possible to access the entire structure
from the first item.
singular matrix A square matrix, A, of numbers whose *determinant is zero. A is
singular if and only if it is not invertible (see INVERSE MATRIX).
sinking technique Another name for straight insertion sort.
SIO Abbrev. for serial input/output.
SIPO (serial in, parallel out) See also SHIFT REGISTER.
SISD processor Short for single instruction (stream), single data (stream) processor.
See CONCURRENCY.
SISO (serial in, serial out) See also SHIFT REGISTER.
site licence The practice of granting an extended licence to a business to allow it to
make and use a number of copies of a particular computer program at a particular location
or site. This has been a popular way of getting a large company to standardize on
particular software packages. The software house thereafter obtains its regular income
from support and upgrade fees rather than individual licences on a per workstation basis.
site network A network constrained to the boundaries of a single site. For many
purposes the term is synonymous with *local area network.
situation semantics An approach to natural-language *semantics built upon the
ontological framework of situation theory (Barwise and Perry 1983). The theory is built
on the notion of situations, which are parts of the world—either concrete or abstract—
that the speaker or listener individuates or discriminates. Situation semantics attempts to
capture the meaning of an utterance by constructing formal relations between the
utterance situation (the situation that the actual utterance is made in), the discourse
situation, the wider embedding situation (consisting of elements of the world in which
the discourse takes place), and resource situations (for example, situations in another
time and place referred to by the utterance).
SI units The system of units of measurement adopted internationally for scientific and
technical use under the Système International d’Unités. There are seven
fundamental units—the metre, second, kilogram, ampere, kelvin, candela, and mole—of
seven dimensionally independent physical quantities. Other units are derived algebraically
from these base units without the use of numerical factors, or are dimensionless (like the
radian). The symbols for all units are standardized, as are the prefixes (and their symbols)
that represent decimal multiples (e.g. nano-, micro-, milli-, kilo-, mega-, giga-) of the
units.
sizing 1. Preparing an estimate of the likely size of a program or software system. This
estimate may subsequently be used, for example, to determine the amount of memory
required on a computer system that is to execute the program. 2. See DOWNSIZING,
RIGHTSIZING.
skeletal strokes A way of defining complex drawings based on a path and a deformable
picture. The picture is deformed to generate the required drawing relative to the path. It
provides a richer brush and stroke metaphor for *paint programs.
skew (in a *sequential circuit) The arrival of a signal at two or more places at
significantly different times, when it should have arrived at more nearly the same time.
Skew is said to be present when the difference in arrival times is great enough to cause or
threaten malfunction of the circuit; this difference (usually measured in nanoseconds) is
called the amount of skew. Most commonly, concern is expressed about clock skew,
which is the skew in *clock signals (for which the phenomenon has usually the most
serious consequences). Skew may be caused by component malfunction, or bad physical
construction, but most often by bad logic design of the circuit. See also RACE CONDITION.
skewed tree (unbalanced tree) Any tree that is not *balanced.
skew-symmetric matrix A square matrix, A, such that
for all aij in A.
SLA Abbrev. for service level agreement.
slave machine (direct-coupled machine) A large processor used to handle large jobs in
a *master-slave system.
sleep A facility available on modern microcomputers where the machine is made inactive
while preserving screen layout, program states, etc. The machine is not turned off
(compare HIBERNATE), but its power consumption is reduced. It can quickly be returned to
an active state and users can pick up work where they left off. Users might be required to
enter their password before they can access the restored system.
slice (of an array) 1. The array of lower dimension that is obtained by fixing one or more
of the indexes of the original array. For example, if A is a 3×4 two-dimensional array then
the slice A[2,] denotes the one-dimensional row vector comprising the second row of A
while A[,3] denotes the column vector comprising the third column. 2. (trim) The array
that is obtained from a larger array of dimension n by restricting the range of an index. For
example, if A is a 3×4 two-dimensional array then the 2×4 two-dimensional array
comprising the first two rows only of A is a slice of A.
slice architecture See BIT-SLICE ARCHITECTURE.
slider bar A control object that belongs to a *window in a *graphical user interface
(GUI). It normally consists of a long thin rectangle with a square marked off at each end
containing an outward-pointing arrow; within the rectangle is marked a small box that can
be moved along the rectangle by *clicking on the arrows or inside the rectangle, or by
*dragging the small box. A numerical value corresponding to the box’s position within the
rectangle is available to the program and can be used in various ways. If it is used to move
text up and down behind the window then the slider bar is known as a scroll bar, and the
interior box is the scroll box. The appearance and mode of operation of the slider bar
varies slightly with each GUI.
SLOC (source lines of code) A *metric that is a count of the number of lines of
source-language statements of a software module, package, or complete software system.
There is no defined standard for determining which lines should be counted. Most
organizations will exclude blank lines and include lines containing executable statements,
but differ on whether to include comment lines and data-definition lines. Many software
cost-estimation approaches are based on estimating the number of SLOC in a proposed
project (see COCOMO).
slot reader See CARD READER.
slotted ring See RING NETWORK.
Smalltalk Trademark An *object-oriented language, an *object-oriented programming
development environment, and a library of *objects. Smalltalk was the first language to
bring together all the features that characterize an *object-oriented programming system.
The language was developed at the Xerox Palo Alto Research Center, went through many
versions during the 1970s (Smalltalk-74, Smalltalk-76, Smalltalk-78), and finally matured
as Smalltalk-80. This was the first version to be made publicly available. However,
although extremely influential on other languages, development techniques, and user
interfaces, Smalltalk itself has never been widely used.
smart card A plastic card similar to a credit card but having memory and a
microprocessor (or specialized logic) embedded in it.
Smart cards are defined by ISO 7816 Parts 1–6 and comprise a plastic card of size 85.6
× 53.98mm with a standard pattern of electrical contacts on the surface. It may also
incorporate a magnetic stripe. A smart card can carry large amounts of personal and other
information, which can be updated by a suitable reader. Data encryption is routinely
incorporated for security. Credit cards incorporate smart card technology. However,
because of their ability to store personal financial data, health records, benefit
entitlements, and criminal records there is considerable controversy surrounding the
expansion of smart cards’ use in everyday affairs. Their possible use as personal ID cards,
in particular, is a matter of political concern.
smart machine Informal; see MECHATRONICS.
smartphone A mobile phone with computing features over and above the ability to
make and take calls, and send or receive SMS messages. The extra features generally
include data storage, *Bluetooth, GPS, location-aware applications, and touch-screen user
interfaces. Many current smartphones are essentially compact personal computers, with
high-end phones having quad-core processors running at clock speeds above 2.5 GHz and
accessing about 2 GB of *RAM at speeds up to 800 MHz, with 16 GB of data storage
built in.
smart terminal Informal name for intelligent terminal.
SMD (surface mount device) An integrated circuit or discrete component designed
to be soldered direct to a printed circuit board.
smiley See EMOTICON.
SML Abbrev. for standard ML.
smoothing A means by which a table of values f(x0), f(x1),…, f(xm) at the distinct points
x1, x2,…, xm, can be approximated (represented) by a function, say
where ϕi(x), i = 1,2,…,n, are chosen, and the coefficients ci, i = 1,2,…,n, are to be
determined. Typically m > n. The objective is to choose a fit that reduces the effect of
random errors in the data combined with producing a curve that is smooth (no rapid
changes or oscillations) between the data points. This is generally referred to as
smoothing. The smoothing is often achieved by using low-degree polynomials (with
suitable ϕi(x) and the coefficients ci are frequently determined by the least-squares
criterion (see APPROXIMATION THEORY). Compare INTERPOLATION.
smooth shading A class of shading methods that give a continuous appearance over
functions and structures. The fairness, or overall smoothness, of curves and surfaces is of
particular interest. Definitions of smoothness may be based on extreme or average
quantities (e.g. curvature) or on subjective assessment. They may also be linked to fluiddynamics considerations.
SMP (symmetric multiprocessing) A form of supercomputing based on *RISC
technology. Compared with traditional supercomputers, SMP systems are relatively easy
to program, inexpensive, and can be used for a greater range of applications. They are
scalable systems.
SMTP (simple mail transfer protocol) A *protocol used to control the transfer of
email messages between systems on the Internet.
smurf A type of *distributed denial of service attack created by sending one or more
packets with forged source addresses to the broadcast address of a network. If the local
router forwards these packets then every machine on the network may send a response to
the computer whose address was forged: each forged packet may generate 254 or more
replies, overloading the victim computer.
SNA (Systems Network Architecture) A *network architecture developed by IBM
for use with large mainframe computers.
snapshot dump A *dump that shows the state of a program at some particular point in
its execution. It is usually obtained during testing or debugging and indicates the point in
the program that has been reached and the values of some subset of the program variables.
sniffer program A program written to monitor all messages flowing on a network, with
the intention of capturing legitimate usernames and passwords or for the illicit
identification of other confidential information.
SNMP (simple network management protocol) A *protocol used to allow the
transmission of *network management information across a network, between a network
management centre and the devices that constitute the active *switches within the
network. The active devices must therefore be able to act as addressable entities on the
network. See also MANAGED DEVICE.
SNOBOL A programming language designed primarily for the manipulation of textual
data. It incorporates powerful pattern-matching and string-searching operators. The
current version, SNOBOL IV, also includes facilities for processing other kinds of data,
and is in fact a general-purpose language with a special capability in text manipulation.
snowflake Informal A network made up of nodes that can each support a number of enduser devices, with the nodes themselves connected in an arbitrary configuration. A number
of Ethernet hubs each supporting end-user systems connected by twisted pairs, with the
hubs interconnected by coaxial cable or optical fibre, might be described as a snowflake.
SO (small outline) An alternative package for *integrated circuits offering a higher
packing density on *printed circuit boards. VSO (very small outline) packages offer even
higher packing densities.
SOA Abbrev. for service-oriented architecture.
SOAP A protocol for exchanging structured and typed information between networked
computers, especially in *web services over the Internet. SOAP messages are formatted in
*XML and generally use *HTTP as their transport protocol; the most common type is the
*remote procedure call. See also SIMPLE OBJECT ACCESS PROTOCOL.
http://www.w3.org/2000/xp/Group/
• The W3C’s XML Protocol Working Group page
social engineering The process of gaining access to a computer or network by
deception, particularly by persuading its users to reveal a password, install a *Trojan horse
program, or perform some other insecure action. For example, a user may receive a call
from supposed IT staff asking him or her to perform an insecure action under some
pretext.
social media Websites that offer social networking services. Social media platforms
became very popular in the 2000s and now have billions of users worldwide. Registered
members of these sites are able to designate other members as ‘friends’, thus creating
social networks based on shared interests, etc. The sites offer services that allow friends to
communicate easily, for example *chat rooms, *blogs, instant messaging, and uploading
and sharing of images and videos. They also encourage users to post an online profile of
themselves, which other users can access, as a means of making new friends. The easy
availability of such information and the difficulty of establishing its veracity have caused
security and privacy concerns to be raised about social networking websites, especially
because many users are young people. See FACEBOOK, LINKEDIN, MYSPACE, TWITTER.
See also USER-GENERATED CONTENT.
soft copy A nondurable form of data output, such as text or graphical information on a
VDU or the output from an audio response unit.
soft fill (tint fill) The act or process of changing the colour of an area, taking into
account the initial background colour.
soft font A *font that is not permanently resident in a printer or VDU but is downloaded
from the host.
soft keyboard A keyboard in which the function or code to be generated by each key
can be allocated and changed by program control. Terminals for applications such as
industrial data collection or point-of-sale applications frequently have keyboards in which
some keys—usually the numeric and certain essential functions—are hardwired and the
others are soft keys. The soft keys may have a meaning that is allocated to them at the
time of initial installation and remains unchanged, or they may have their meaning
changed during the course of a single transaction.
soft object See BLOBBY MODEL, METABALLS.
soft return See HARD RETURN.
soft-sectored disk See SECTOR.
soft shadow A shadow produced by a light source that is larger than a single point. The
resulting umbra and penumbra of the shadow can either be modelled accurately or
suggested by various approximations.
software A generic term for those components of a computer system that are intangible
rather than physical. It is most commonly used to refer to the programs executed by a
computer system as distinct from the physical hardware of that computer system, and to
encompass both symbolic and executable forms for such programs. A distinction can be
drawn between *systems software, which is an essential accompaniment to the hardware
in order to provide an effective overall computer system (and is therefore normally
supplied by the manufacturer), and *applications software specific to the particular role
performed by the computer within a given organization.
Software as a Service See SAAS.
software best practice A collection of guidelines describing the best way to design
software, particularly on a large scale. Guidelines range from high-level strategy (e.g.
choice of overall development process) down to low-level procedures and steps (e.g.
testing patterns). See also CMM, ESSI.
Software Capability Maturity Model See CAPABILITY MATURITY MODEL.
software component specification A precise statement of the effects that the
software component of a system is required to achieve. When developing a system,
production of the *software requirements specification is typically followed by a period of
preliminary investigation and high-level design. It is then possible to identify any
necessary hardware components of the system and to produce the software component
specification for the software component.
A software component specification should be detailed, focusing on what the software
is to do rather than how this is to be done. The traditional use of natural language for this
purpose is being superseded by use of more formal notations.
software development environment (programmer workbench) The set of
*software tools collected together (sometimes using a common database or user interface)
for use by a software developer, or team of developers, when developing software.
Software Development Kit See SDK.
software development process model (SDPM) A model that indicates a set of
software processes—manual or automated—to be used in a software development project.
The model should indicate the interdependencies that exist between the development
processes including the products generated by each process, and the information
(including products generated by other processes) required by each process.
software engineering The entire range of activities used to design and develop
software, with some connotation of ‘good practice’. Topics encompassed include user
requirements elicitation, software requirements definition, architectural and detailed
design (see PROGRAM DESIGN), *program specification, program development using some
recognized approach such as *structured programming, systematic *testing techniques,
*program correctness proofs, *software quality assurance, software project management,
documentation, performance and timing analysis, and the development and use of
*software engineering environments. Further, software engineering is generally expected
to address the practical problems of software development, including those encountered
with large or complex systems. Thus, while there is some emphasis on formal methods,
pragmatic techniques are employed where necessary. In its entirety, software engineering
addresses all aspects of the development and support of reliable and efficient programs for
the entire range of computer applications.
software engineering environment A software system that provides support for the
development, repair, and enhancement of software, and for the management and control of
these activities. A typical system contains a central database and a set of *software tools.
The central database acts as a repository for all information related to a project throughout
the lifetime of that project. The software tools offer support for the various activities, both
technical and managerial, that must be performed on the project.
Different environments vary in the general nature of their databases and in the coverage
provided by the set of tools. In particular, some encourage (or even enforce) one specific
software engineering methodology, while others provide only general support and
therefore allow any of a variety of methodologies to be adopted. All environments,
however, reflect concern for the entire *software life cycle (rather than just the program
development phase) and offer support for project management (rather than just technical
activities). These two features normally differentiate a software engineering environment
from a *program development system. See also PSE (def. 1).
Software Engineering Institute An organization founded by the US government in
1983 to develop the discipline of software engineering and to increase industrial
awareness of it. The institute is part of Carnegie Mellon University, Pittsburgh; it is
financed partly by the US government and partly by private industry. Its best-known
development is the *Capability Maturity Model.
http://www.sei.cmu.edu/
• The Software Engineering Institute home page
software environment 1. The set of facilities, such as operating system, windows
management, database, etc., that is available to a program when it is being executed by a
processor. 2. See SOFTWARE DEVELOPMENT ENVIRONMENT.
software fault injection A testing technique applied at code level. Unlike error
*seeding and other testing techniques, fault injection is about assessing software
behaviour rather than software correctness: the aim is to determine how well or badly a
piece of software will behave under a variety of anomalous events. The great difficulty of
software fault injection lies in the determination of an acceptable collection of so-called
anomalous events.
software house A company whose primary business is to produce software or assist in
the production of software. Software houses may offer a range of services, including
hiring out of suitably qualified personnel to work within a client’s team, consultancy, and
a complete system design and development service.
software library Another name for program library.
software life cycle The complete lifetime of a software system from initial conception
through to final obsolescence. The term is most commonly used in contexts where
programs are expected to have a fairly long useful life, rather than in situations such as
experimental programming where programs tend to be run a few times and then discarded.
Traditionally the life cycle has been modelled as a number of successive phases, typically:
user requirements
system requirements
software requirements
overall design
detailed design
component production
component testing
integration and system testing
acceptance testing and release
operation and maintenance
Such a breakdown tends to obscure several important aspects of software production,
notably the inevitable need for iteration around the various life-cycle activities in order to
correct errors, modify decisions that prove to have been misguided, or reflect changes in
the overall requirements for the system. It is also somewhat confusing to treat operation
and maintenance as just another life-cycle phase since during this period it may be
necessary to repeat any or all of the activities required for initial development of the
system. There has therefore been a gradual movement toward more sophisticated models
of the software life cycle. These provide explicit recognition of iteration, and often treat
the activities of the operation and maintenance period simply as iterations occurring after
rather than before release of the system for operational use. See also SPIRAL MODEL, VMODEL, WATERFALL MODEL.
software maintenance The process of modifying a software system or component.
There are three classes.
Perfective maintenance incorporates changes demanded by the user; these may, for
example, be due to changes in requirements or legislation, or be for embedded
applications in response to changes in the surrounding system. Adaptive maintenance
incorporates changes made necessary by modifications in the software or hardware
(operational) environment of the program, including changes in the maintenance
environment. Corrective maintenance is the successful repair of faults discovered in
the software.
Maintenance for software always involves a change in the software. This may be
effected at the coding level, or may require significant changes in design. *Regression
testing of the software follows maintenance as part of a reverification and revalidation
activity. Software maintenance is a prodigious source of new software faults, so good
quality control through software engineering is essential.
software metric See METRIC.
software monitor See MONITOR (defs. 2 and 3).
software package Another name for application package.
software piracy Unauthorized copying and resale of software for commercial purposes
in breach of *intellectual property rights.
software process 1. See SOFTWARE DEVELOPMENT PROCESS MODEL. 2. See PROCESS.
software prototyping Development of a preliminary version of a software system in
order to allow certain aspects of that system to be investigated. Often the primary purpose
of a prototype is to obtain feedback from the intended users; the requirements
specification for the system can then be updated to reflect this feedback, and so increase
confidence in the final system. Additionally (or alternatively) a prototype can be used to
investigate particular problem areas, or certain implications of alternative design or
implementation decisions.
The intention with a prototype is normally to obtain the required information as rapidly
as possible and with the minimum investment of resources, and it is therefore common to
concentrate on certain aspects of the intended system and completely ignore others. A
prototype may for example be developed with no concern for its efficiency or
performance, and certain functions of the final system may be entirely omitted. It must
however be realistic in those aspects specifically under investigation.
software publisher An imprecise term used to describe a company that acts toward
software authors in the same way as a publisher of books acts toward the authors of books.
It may thus commission software from authors or receive unsolicited contributions. It may
then market these in a variety of ways and pay royalties to the authors.
software quality assurance (SQA) The process of ensuring that a software system
and its associated documentation are in all respects of sufficient quality for their purpose.
While a quality assurance team may be involved in all stages of a development project,
there is typically a recognized quality assurance activity following completion of
development and prior to release of the system for operational use.
The checks performed by the quality assurance team (which should be independent of
the development team) vary between organizations and also depend on the nature and
purpose of the software system. However they typically include functional testing of the
software, checks that *programming standards have been respected, that the program
documentation is complete and of an adequate standard, and that the user documentation
for the system is of the desired quality. The team would also probably explore the
reliability of the software system, and attempt to ensure that the software system and its
associated documentation are so organized as to promote system maintainability.
software reliability A measure of the extent to which a software system can be
expected to deliver usable services when those services are demanded. Software reliability
differs considerably from program ‘correctness’ (see PROGRAM CORRECTNESS PROOF).
Correctness is the static property that a program is consistent with its specification, while
reliability is related to the dynamic demands that are made upon the system and the ability
to produce a satisfactory response to those demands.
A program that is ‘correct’ may be regarded as unreliable if, for example, the
specification against which the program is shown to be correct does not capture all of the
users’ expectations of the program. Conversely, a program that is not completely correct
may be regarded as reliable if the errors are insignificant, occur infrequently at noncritical
times, or can simply be avoided by the users.
software requirements specification A document that defines what a program or
software system is required to do and the constraints under which this required
functionality must be provided. These constraints are often referred to as nonfunctional
requirements; they may affect the way in which the software is developed (e.g. for safetycritical or security-critical software) or may impose physical limits on the space, size, and
performance of the software to be developed. A software requirements specification will
usually be based upon an abstract model, which leaves open the design and
implementation decisions; this model is developed using a recognized requirementsanalysis method and is possibly supported by the use of a *CASE tool.
software technology A general term covering the development methods, programming
languages, and tools to support them that may be used in the development of software.
software tool A program that is employed in the development, repair, or enhancement
of other programs or of hardware. Traditionally a set of software tools addressed only the
essential needs during program development: a typical set might consist of a *text editor,
*compiler, *link loader, and some form of *debug tool. Such a set concentrates solely on
the program production phase and is that normally provided by a *program development
system.
It is now recognized that software tools can assist in all activities of all phases of the
*software life cycle, including management and quality-assurance activities. Thus a
comprehensive set would address such issues as requirements specification, design,
validation, configuration control, and project management. Such tools would frequently
form part of an integrated *software engineering environment.
solid colour In computer graphics, an area of colour with the same value.
solid-font printer Any type of *impact printer in which the complete shape of each
character of the repertoire is engraved or moulded onto a font carrier. The font carrier may
be one of a number of forms including a moulded wheel, as in a *daisywheel printer, or an
etched band of metal, as in a *band printer. Compare MATRIX PRINTER.
solid inkjet printer Another name for phase-change inkjet printer. See INKJET
PRINTER.
solid models Three-dimensional structures that are valid models of solids irrespective of
how this is to be ensured.
solid-state device An electronic component fabricated principally or entirely from solid
material, usually semiconducting, and depending for its operation on the movement of
charge carriers.
solid-state memory Another name for semiconductor memory.
solid texture An approach to *texturing the surface of an object by defining a *spacefilling curve function that is only evaluated at the surface of the object. This avoids the
conformance problems of *texture mapping but results in a more limited range of textures.
It is effective at simulating substances, such as marble, in which a grain actually occurs
throughout and is unrelated to the shape of the object.
solvable problem See DECISION PROBLEM.
SONET (synchronous optical network) A network standard designed by
collaboration between the members of the CCITT and the vendors of WAN products, and
intended primarily for the transport of *ATM over long distances. The SONET standard is
defined for operation over *optical fibres at a minimum bit rate of 51.84 Mbps (OC-1 in
North America) or 155.52 Mbps (SDH-1 in Europe). Both standards allow for speeds up
to 159 Gbps.
SOP expression Short for sum of products expression.
sort generator See GENERATOR.
sorting Rearranging information into ascending or descending order by means of
*sortkeys. Sorting may be useful in three ways: to identify and count all items with the
same identification, to compare two files, and to assist in searching, as used in a
*dictionary. An internal sorting method keeps the information within the computer’s
high-speed RAM; an external sorting method uses backing store. There are a wide
variety of methods.
sortkey (key) The information, associated with a record of information, that is to be
compared in a *sorting process. It follows that the sortkeys must be capable of being
ordered, i.e. two keys k1 and k2 are such that
sort merge See MERGE EXCHANGE SORT.
sound card (audio card) A plug-in module that adds sound input and output capabilities
to a computer; it is a type of *add-in card. Some systems have the module as part of their
original design. The sound card takes digitized audio signals from the processor and
converts them into an analogue audio signal used to drive headphones or as input to an
audio amplifier or active speakers. The majority of sound cards are PC compatible. The
input and output resolution of the *D/A converters on these are typically 16, 24, or 32 bit.
The input and output sample rates available may vary from 8 kHz through the CD rate of
44.1 kHz up to 192 KHz. Some have built-in amplifiers and mixing capabilities. Most
sound cards have some form of digital synthesizer while the higher-end systems use
*digital signal processing technology and can perform *wave-table synthesis from
samples of real instruments loaded onto either *RAM or *ROM. See also MULTIMEDIA.
soundex code A method of encoding words that sound alike. An application is surnames
that are spelled differently but pronounced virtually the same. All names with similar
sounds are given the same *key, while some secondary algorithm is used to match the
names. A soundex code for a name is in the form addd where a is the initial character of
the name and ddd are three digits derived from the remaining consonants. For example,
‘Johnson’ becomes J523 while ‘Johnstone’ is J525.
soundness theorem A theorem about a logical system L and a semantics S for the
formulas of L stating that if a formula is provable in the logic L then it is valid in the
semantics S. A soundness theorem confirms that the logic is actually expressing and
deriving properties that are valid according to the semantics. See also COMPLETENESS
THEOREM.
source alphabet (source set) See CODE.
source code The form of a program that is input to a *compiler or *translator for
conversion into equivalent object code. See also CODE.
source code control (SCC) A form of *version control tailored for program code. A
number of schemes have been developed to support this idea, all built around the key
concept of a code *repository. There are three main approaches to how such a repository
is used: the first (local data) approach assumes that the code is kept on a single machine,
in a directory to which all the relevant programmers have access (see RCS, SCCS); the
second (client–server) approach assumes that a master copy of the code resides on one
machine and that programmers typically take a copy (*pull) onto their own machine, make
local changes (*commit), and then send these changes back (*push) to the owner of the
master, who ensures that consistent updates (merge) are carried out to make the changes
available to everyone (see CVS, SVN); the third (distributed) approach does not assume
the existence of a single master repository, but instead allows everyone to make (clone)
and modify their own copy, and to exchange updates freely with others (see DCVS, GIT,
MERCURIAL). Typically, a source code control system will record each change as a *patch
or *diff.
source coding (source compression coding) The use of *variable-length codes in order
to reduce the number of symbols in a message to the minimum necessary to represent the
information in the message, or at least to go some way toward this, for a given size of
alphabet. In source coding the particular *code to be used is chosen to match the source
(i.e. the relative probabilities of the symbols in the source alphabet) rather than any
channel through which the message may ultimately be passed.
The main problem in source coding is to ensure that the most probable source symbols
are represented by the shortest *codewords, and the less probable by longer codewords as
necessary, the weighted average codeword length being minimized within the bounds of
*Kraft’s inequality. The most widely used methods for ensuring this are Huffman
coding and Shannon–Fano coding; the former is more efficient for a given
*extension of the source but the latter is computationally simpler. In either case, a large
extension of the source may be necessary to approach the limiting compression factor
given by the *source coding theorem.
See also SHANNON’S MODEL. Compare CHANNEL CODING.
source coding theorem In *communication theory, the statement that the output of
any information source having *entropy H units per symbol can be encoded into an
alphabet having N symbols in such a way that the source symbols are represented by
codewords having a weighted average length not less than
(where the base of the logarithm is consistent with the entropy units). Also, that this limit
can be approached arbitrarily closely, for any source, by suitable choice of a *variablelength code and the use of a sufficiently long *extension of the source (see SOURCE
CODING).
The theorem was first expounded and proved by Claude Elwood Shannon in 1948.
source compression coding Another name for source coding.
source compression factor The ratio of message lengths before and after *source
coding (which is generally intended to make messages shorter). See also SOURCE CODING
THEOREM.
source language The language in which the input to a *compiler or *translator is
written.
source-level compatibility *Compatibility that exists when a program may be
executed on two or more different computer systems by moving the *source code and
recompiling it on each system without any changes. See also BINARY-LEVEL
COMPATIBILITY.
source lines of code See SLOC.
source listing Another name for program listing.
source program The original high-level-language program submitted to a *compiler.
source route bridge (SRB) A form of *routing used to allow connection to be
established between pairs of nodes on different *token rings. A node wishing to establish a
connection issues a special explorer *packet that is broadcast to all nodes on all rings until
it is recognized by the specified destination node. The specified node then returns a
specific reply packet that returns to the original node, acquiring routing information as it
does so, and thus presenting the source node with a complete route between the two nodes.
This technique presents a *dynamic choice of route at the time of establishing the
connection, but all subsequent traffic must follow the path determined at that time.
source set Another name for source alphabet. See CODE.
spaceball A graphical input device that is based on a fixed spherical ball. It inputs six
different values defined by the orientation of the ball and the pressure together with the
direction that is applied to it. It allows complex objects to be positioned and rotated in
three-dimensional space using the single input device. Internally a spaceball is normally
made from a set of strain-gauges.
space character A nonprinting character that causes the active position to be moved
one position to the right. The space character occupies a position in memory. Compare
BLANK CHARACTER.
space complexity See COMPLEXITY MEASURE, POLYNOMIAL SPACE.
space-division switch Any switching mechanism that is based on the through
connection of a set of input lines selectively to a set of output lines. Space-division
switches are implemented either by electromechanical or electronic means. Prior to the
advent of time-division switching, all telephone and telegraph switching machines were
implemented using a variety of space-division switching techniques, particularly Strowger
(step-by-step) switches and crossbar switches.
space domain A seldom used term used to refer to a situation in which the amplitude of
a *signal varies with position (usually in two dimensions, as in a picture) rather than with
time. See also FILTERING, TIME DOMAIN.
space-filling curve A curve of infinite length that encloses a finite area. The curve is
nowhere differentiable and between any two points of the area there is a curve of infinite
length. Most space-filling curves exhibit a degree of self-similarity.
space quantization (pixelization) See QUANTIZATION. See also DISCRETE AND
CONTINUOUS SYSTEMS.
spacetime A formulation of three-dimensional space and time as a four-dimensional
space. In computer graphics spacetime is used, for example, in constraining object
positions in space and time in a consistent way.
spam Informal To send an unsolicited email message in an indiscriminate way (or, as a
noun, the actual mail message). Formerly a low-level problem, tens of billions of spam
emails are currently (2008) sent daily. The purpose of such emails varies, with advertising
and fraud being common. Email addresses are gathered from websites and other Internet
sources, as well as from users’ lists of contacts by *malware that infects their machines.
These address lists are used by software that can send out huge quantities of spam
automatically; only a minute proportion need generate a financial return to make the
operation profitable. Software that identifies spam and separates it from genuine email
messages is now an essential part of all email clients. (The word ‘spam’ derives from a
Monty Python sketch concerned with excessive offerings of cooked spam.)
spanning subgraph See SUBGRAPH.
spanning tree A *subgraph of a *connected graph G; this subgraph is a *tree and
includes all the nodes of G. A minimum-cost spanning tree is a weighted spanning tree,
formed from a *weighted graph, such that the real numbers assigned to each edge, when
summed, total not greater than the corresponding sum for any other weighted spanning
tree.
SPARC 1. Trademark (scalable processor architecture) *Sun Microsystems Inc.’s *RISC
architecture intended for multiple implementations with differing cost- performance
requirements for workstations, compute servers, etc. The SPARC processor design is
based on the early fundamental RISC processor design at the University of California,
Berkeley. The architecture provides a 24-register window into a larger register set as local
space for a procedure, plus an additional 8 global registers. The 24-register window is
moved by 16-register positions on procedure call leaving an 8-register overlap with the
window of the calling procedure. This technique normally avoids the reuse of a
procedure’s register set and hence the need to preserve register contents prior to procedure
call; the overlap provides efficient parameter passing between calling and called
procedures. If the depth of procedure nesting exceeds the number of register windows,
then the oldest window is preserved in memory prior to procedure entry and its reuse; it
must be recovered from memory before a return is made to this oldest procedure. The
number of overlapping windows comprising the register set will determine the frequency
of the need to preserve and recover register windows from memory. The number is a costperformance design decision; eight is typical. Originally a 32-bit architecture, SPARC
version 9 was the first 64-bit revision. 2. An *RISC microprocessor chip introduced in
1987 by *Sun Microsystems Inc., now part of *Oracle. Originally 32-bit, the processor
now has a 64-bit architecture and is widely employed in hardware for UNIX-based
operating systems, including the Sun Solaris operating system. The latest version is the
SPARC T5.
sparse matrix A matrix usually arising in the context of *linear algebraic equations of
the form Ax = b in which A is of large order and has a high proportion of zero elements
(greater than, say, 90%). Special techniques are available that exploit the large number of
zeros and reduce considerably the computational effort when compared to a general full
matrix. Examples of such methods are variants of Gaussian elimination (see LINEAR
ALGEBRAIC EQUATIONS) and *iteration methods. Large sparse systems can arise in the
numerical solution of *ordinary and *partial differential equations. See also NUMERICAL
LINEAR ALGEBRA.
spatial coherence The extent to which a property exhibits a similar value over some
spatial region. Spatial coherence is exploited in some illumination calculations in which a
scene is broken down into discrete cells that can each be treated as a single entity. The
scene is spatially coherent over each cell. The proximity of objects is usually in terms of
their positions in object space.
spatial reasoning Techniques in *artificial intelligence that attempt to emulate human
reasoning during navigation and other spatial tasks. Current research involves enhanced
forms of *logic and *qualitative reasoning. Spatial reasoning has applications in
*computer-aided design, *robotics, and other forms of engineering application, as well as
in *cognitive science where models of spatial skills help to explain human performance.
special character See CHARACTER SET.
specialization/generalization A particular form of association between entities found
in object-oriented approaches to design, programming, etc. The association is used to
indicate a hierarchy of *objects such that objects lower in the hierarchy inherit properties
from those higher in the hierarchy. Thus objects lower in the hierarchy are more
specialized, whereas objects higher in the hierarchy are more generalized.
specification A formal description of a system, or a component or module of a system,
intended as a basis for further development. The expression of the specification may be in
text in a natural language (e.g. English), in a *specification language, which may be a
formal mathematical language, and by the use of specification stages of a methodology
that includes a *diagrammatic technique. Characteristics of a good specification are that it
should be unambiguous, complete, verifiable, consistent, modifiable, traceable, and usable
after development.
specification language A language that is used in expressing a *specification. It has a
formally defined syntax and semantics, and its design is based on a mathematical method
for modelling or defining systems (e.g. set theory, equations and initial algebras, predicate
logic). Examples include *SADT, *RSL, *VDM, *OBJ, and *Z.
spectral analysis See TIME SERIES.
specular reflection Reflection from a glossy surface. Many real surfaces are not matt
but reflect light, i.e. are glossy; the surfaces of billiard balls, apples, and china are glossy
while mirrors are an extreme case, being perfect specular reflectors. If the surface is not a
perfect mirror, the reflected light will occur in a cone centred around the perfect reflection
direction. The amount of light reflected will be some fraction of the incident light. The
result is a *highlight that has the colour of the light source rather than of the object. An
empirical formula suggested by Bui-Tuong Phong in 1975 is often used in *computer
graphics to define specular reflection. Compare DIFFUSE REFLECTION.
speech compression Any technique to compress speech in order to use less bandwidth
when transmitting. Various standardized techniques are used in Europe and the US, most
of which employ *lossy compression.
GSM 06.10 is used by many European wireless telephones. It uses residual pulse
excitation/long-term prediction (RPE/LTP) coding and compresses 160 frames of 13-bit
samples into 260 bits. A sample rate of 8 kHz is used. It is being replaced by the
Enhanced Full Rate and Adaptive Multi-Rate standards, which provide better
speech quality. MELP is the US Department of Defense’s mixed excitation linear
prediction voice coder; it is also used by NATO.
speech-generation device A means for producing spoken messages in response to
signals from a data processing or control system. The selection of messages is produced
by assembling speech sounds from a set of fundamentals that may be artificial in origin or
may have been extracted by processing human speech.
speech recognition The process of recognizing elements of speech by analysis of the
acoustic signal. Many systems may be trained to a particular operator’s voice and can
build up dictionaries/vocabularies to enable faster and more accurate recognition.
Typically speech recognition is a many-stage process, starting with the digital
*sampling of the acoustic signal followed by some form of spectral analysis, such as linear
predictive coding (LPC), cochlear modelling, etc. The next stage is to recognize the
elements of speech—*phonemes, groups of phonemes, and words; many systems employ
hidden Markov model (HMM) algorithms, dynamic time warping (DTW), or neural
networks (NN) for the recognition phase. In addition most systems utilize some
knowledge of the language.
See also VOICE INPUT DEVICE.
speech synthesis The production of artificial speech for output by a *D/A converter.
The input is typically a file of text. The synthesis may be performed either by hardware or
software, the *Klatt synthesizer being an example. The methodology employed to produce
the speech signal may be by concatenation of prerecorded words or of elements of real
speech (such as *phonemes), or by pure synthesis driven by data derived from a complex
analysis of the input text.
The quality of the speech produced depends greatly on the techniques employed at both
the lexical analysis phase and the synthesis phase. The particular problem with phoneme
concatenation is how to actually perform the join since fluent speech requires fluent
transitions. Other commonly used elements of speech are demisyllables, syllables, words,
and word systems. As the units become longer, so the quality increases, but then so does
the storage requirement and the processing overhead.
speech understanding The processing of speech that involves the mapping of the
acoustic signal, usually derived from some form of *speech recognition system, to some
form of abstract meaning of the speech. See also NATURAL-LANGUAGE UNDERSTANDING.
speed of a computer. A rather vaguely defined term that is often used to indicate the
relative processing power of a given computer system, since the power of a computer is
largely governed by the ability of the central processing unit to execute instructions
rapidly. The CPU’s speed is itself dependent on numerous factors such as word length,
instruction set, technology of implementation, and memory access times.
speedup theorem A theorem in complexity theory that, like the *gap theorem, can be
expressed in terms of abstract complexity measures (see BLUM’S AXIOMS) but will be
more understandable in the context of time.
Given any total *recursive function r(n), there exists a recursive language L such that
for any Turing machine M recognizing L, say within time bound S(n), there exists another
Turing machine M′ that also recognizes L but within a time bound S′(n) that satisfies
for all but a finite number of values of n. Thus for this language there can be no fastest
program.
spelling checker (spell checker) A program, often a component of a word processing
system, that will check any or all of the words in a document against a set of dictionaries;
this set consists of a base dictionary and optional extra dictionaries specific to the subject
of the document or created by the user. On finding a word not known to it the spelling
checker may suggest alternative spellings and ask if the word is to be added to the
dictionary. Spelling checkers cannot of course detect errors that are themselves valid
words, while their attempts to find alternatives to proper names can be distinctly amusing.
sphere-packing bound Another name for Hamming bound.
spider (crawler, web crawler) An automatic program that searches the Internet, finding
new websites and producing an index of addresses and content for use in a *search engine.
spidering See WEB CRAWLER.
spiral model A *software life-cycle model devised by Barry Boehm that encompasses a
management strategy, a life-cycle development model, and *risk assessment. The model
takes its name from the spiral representation. Beginning at the centre of the spiral, where
there is limited detailed knowledge of requirements and small costs, successive refinement
of the software is shown as a traverse around the spiral, with a corresponding
accumulation of costs as the length of the spiral increases. Interaction between phases is
not shown directly since the model assumes a sequence of successive refinements coupled
to decisions that project risks associated with the next refinement are acceptable. Each
360° rotation around the centre of the spiral passes through four stages: planning, seeking
alternatives, evaluation of alternatives and risks, and (in the lower right quadrant)
activities equivalent to the phases represented in *waterfall or *V-models.
spline In its simplest form a spline function (of degree n), s(x), is a piecewise polynomial
on [x1,xN] that is (n– 1) times continuously differentiable, i.e.
These polynomial ‘pieces’ are all matched up at points (called knots):
in the interior of the range, so that the resulting function s(x) is smooth. The idea can be
extended to functions of more than one variable. Cubic splines—spline curves of
degree 3—provide a useful means of approximating data to moderate accuracy. Splines
are often the underlying approximations used in *variational methods. See also B-SPLINE.
split One of the basic actions applicable to a set S on whose elements a *total ordering ≤
is defined; when applied in the form
where a is a member of S, S is partitioned into two *disjoint sets S1 and S2: all the
elements in S1 are less than or equal to a and all those in S2 are greater than a. See also
OPERATIONS ON SETS.
split screen A display screen in which the top and bottom areas (or left and right areas
with a vertical split) of the screen face may be treated as separate screens for the purpose
of data manipulation. The split is usually into two parts, not necessarily equal, but there
may be more. One part may be used for entering data from the attached keyboard while
the other part displays instructions or prompts. The entered data may be manipulated by
*scrolling or erasing without affecting the other part of the screen. See also WINDOW.
spoofing A deliberate attempt to cause a user or resource to perform an incorrect action,
generally by exploiting poor *authentication measures in order to masquerade as someone
else. See also SEMANTIC ATTACK, THREAT.
spool 1. The reel or former on which magnetic tape or printer ribbon is wound. 2. To
transfer data intended for a peripheral device (which may be a communication channel)
into an intermediate store, either so that it can be transferred to the peripheral at a more
convenient time or so that sections of data generated separately can be transferred to the
peripheral in bulk. Spooling is therefore a method of handling virtual input and output
devices in a *multiprogramming system.
For simplicity consider the case of output. Normally a program wishing to output to a
page printer will claim a printer, use it to produce its results, and then release the printer.
In a multiprogramming environment this is a potent source of delay since the speed at
which a printer operates is typically slow compared with the speed of the process driving
the printer; it would therefore be necessary to provide a number of printers approximately
equal to the number of processes active in the system.
Spooling is commonly used to overcome this problem. Output destined for a printer is
diverted onto backing store. A *process wishing to use a printer will be allocated an area
of backing store, into which the results destined for the printer are written, and a *server
process, which acts as a virtual printer and transfers information destined for the printer
into the backing store area. When the process has no more data to send to the printer, it
will inform the server process, which will terminate the information written into backing
store. Subsequently a system utility will be used to copy the contents of the backing store
for this process onto the printer. Similar arrangements can be established for dealing with
the input to processes.
spread See MEASURES OF VARIATION.
spreadsheet A program that manipulates tables consisting of rows and columns of cells,
and displays them on a screen; the cells contain numerical information and formulas, or
text. Each cell has a unique row and column identifier, but different spreadsheets use
different conventions so the top left-hand cell may be A1, 1A, or 1,1. The value in a
numerical cell is either typed in or is calculated from a formula in the cell; this formula
can involve other cells. Each time the value of a cell is changed by typing in a new value
from the keyboard, the value of all other cells whose values depend on this one are
recalculated. The ability of the cells to store text is used to annotate the table with column
headings, titles, etc.
The spreadsheet is particularly suited to the personal computer since it requires the fast
and flexible display handling that is a feature of such systems. The common characteristic
of all spreadsheets is the way the display screen of the computer acts as a *window onto
the matrix of cells; if there are more rows and columns than will fit on the screen, then the
spreadsheet can be scrolled horizontally or vertically to bring into view previously hidden
rows or columns. To change a value it is only necessary to move the cursor into the
required cell displayed on the screen and type in the new value.
Spreadsheets can be used for storing and amending accounts, ‘what if?’ financial
projections, and many other applications involving tables of numbers with interdependent
rows and columns. A spreadsheet is often a component of an *integrated office system.
*Excel is the most widely used spreadsheet application. See also MULTIDIMENSIONAL
SPREADSHEET.
spread spectrum signalling A form of *modulation in which the frequency of the
*carrier for the modulated signal is switched rapidly between a number of predetermined
possible frequencies. This has several advantages over signalling using a fixed allocation
of frequencies. Its use may allow a number of transmitters to share the same range of
frequencies. Successive frequencies may be determined in a way known only to the
transmitter and the receiver, making it very difficult for an eavesdropper to detect the
resulting signal.
sprite A user-definable pattern of *pixels that can be moved about as an entity on a
display screen by program commands. For example, the screen cursor in a windows
system that takes on different appearances in different situations is a sprite.
spyware Software that sends unauthorized details of a computer’s data or of its use (for
example, a log of all keystrokes) to a third party, usually over the Internet. Spyware is
often concealed in downloaded web pages and installs itself surreptitiously, either by
exploiting security weaknesses or by tricking the user into giving consent, and is difficult
to remove. It is a type of *malware.
SQA Abbrev. for software quality assurance.
SQL (Formerly known as SEQUEL, acronym for Structured English
Query Language) The de facto standard languagefor database access and update for
*relational *database management systems. See feature SQL.
SQL
SQL (structured query language) is the de facto standard language for interrogating and
managing relational databases. Originally developed by IBM in 1974, it was
standardized by ANSI in 1986 and subsequently by ISO. The latest comprehensive
version is SQL 2003, with some parts being modified in 2006. SQL is employed in a
large number of database management systems, including SQL Server, mySQL,
postgreSQL, and Oracle.
Basic operations
SQL is built upon four types of operation (called queries in SQL terminology):
■ Select, which retrieves records from the database;
■ Insert, which adds new records to the database;
■ Update, which amends existing records in the database;
■ Delete, which removes records from the database.
Selecting data
The select operation is the most important one used in SQL, used to obtain different
sorts of information. Consider a database that has a table called ‘data’ containing
information about employment. The rows are the records in the database and the
columns are the fields. In this example the fields are ‘name,’ ‘occupation,’ ‘salary,’ and
‘city.’ A simple select query is:
This query retrieves all fields (‘*’) from all rows in the table called ‘data’: that is, it
retrieves the whole table. The fields to be retrieved can be limited:
This query retrieves just the ‘name’ and the ‘salary’ columns for all records. It is also
possible to use conditional queries limiting the information obtained for both records
and fields, for example:
This query retrieves only those rows where the field called ‘occupation’ contains the
value ‘dentist’; and, from those rows, it retrieves only the fields ‘name’ and ‘salary.’
Summarizing data
Data from multiple rows can be summarized (aggregated, in SQL terminology) and
calculations can be performed on numerical data:
This query retrieves all records and divides them into groups according to the value
of the field ‘occupation.’ It calculates the mean value of the ‘salary’ field for all rows in
each group and returns one row for each group containing two fields: the grouping field,
‘occupation’; and the calculated mean salary of the group. In other words, it produces a
list of occupations and the average salary for each occupation. A further restriction to
workers in a particular city can be applied using a ‘where’ clause:
Multiple tables
The real power of SQL lies in the ‘from’ clause, which can retrieve data from several
tables:
This query assumes that the tables ‘data’ and ‘cities’ both have a column called ‘city’
that can act as a cross-reference (a foreign key, in SQL terminology). It first combines
—joins, in SQL terminology—these two tables to construct a pseudotable. In this, one
row is generated for every possible combination of rows from the two tables where the
values of the ‘city’ fields are equal; each such row contains all fields from both tables.
This pseudotable is then used to perform the aggregation in a similar fashion to the
example given above.
Changing data
Insert queries
Insert queries work in either of two ways. Rows can be selected from one table or joined
set of tables and inserted into another:
This query adds the results of the example given above to the table
‘summaryIllinois.’ Alternatively, insert queries can add one row of arbitrary values to a
table:
This query adds one row to the table ‘data,’ with the three fields named receiving the
given values.
Update queries
Update queries use values generated by SQL expressions to alter the values of specified
fields in specified rows in a specified table:
This query updates the ‘data’ table to reflect a 10% salary increase for all dentists in
Illinois.
Delete queries
Delete queries work in a similar way to update queries:
This query deletes all rows from the ‘data’ table relating to doctors in New York.
Note
This outline of SQL has only scratched the surface of the language. The SQL standard is
many hundreds of pages long and there are also several standard extensions to increase
functionality (e.g. the use of Java within SQL). Moreover individual commercial
database developers usually have their own versions of SQL.
SQL injection See CODE INJECTION.
SQL Server Trademark A *relational database management system from Microsoft. It
originated in Sybase SQL Server, which was ported to IBM-compatible computers in 1989
by Sybase, Microsoft, and Ashton-Tate. Joint development by Microsoft and Sybase
continued until 1994. Since then their products have diverged, with Microsoft developing
for *Windows while the Sybase version—renamed Adaptive Enterprise Server—is
predominantly used on UNIX. SQL Server is now one of Microsoft’s flagship products.
square matrix A matrix in which the number of rows is equal to the number of
columns. An n×n matrix is sometimes called a matrix of order n.
square wave A *pulse train in which all the pulses are of equal width, the mark-space
ratio is unity, and the frequency is constant. The diagram shows how such a signal, when
displayed on an oscilloscope, may appear.
Square wave.
SRAM (static RAM) See RAM.
SRB Abbrev. for source route bridge.
SR flip-flop Another name for RS flip-flop. See FLIP-FLOP.
SSADM (structured systems analysis and design method) The standard UK
government analysis and design methodology, originated by CCTA; it is the subject of
British Standard BS 7738. The latest version (1995) is SSADM 4+.
SSADM covers the data (information), processing (function), and events (logical) views
of a system. The methodology has six phases covering analysis, requirements
specification, logical design, and physical design of data and processes down to the
program specification. Notations provided are for entity life history diagrams, dataflow
diagrams, and process outline specifications. Tools support is available. SSADM is also
compatible with the PROMPT II project management methodology.
SSI (small-scale integration) Integration of generally fewer than 100 transistors on a
single chip. See also INTEGRATED CIRCUIT.
SSU (session support utility) An extension of the basic ANSI communication
protocols providing for dual screen operation. SSU was developed by Digital Equipment
Corporation and widely emulated by other vendors.
stability A multidiscipline term with a variety of (related) meanings. In *numerical
analysis it is used with what appears to be a bewildering array of possible prefixes. There
are, however, two important basic usages.
Given a well-defined numerical procedure it is important that roundoff errors do not
seriously influence the accuracy of the results. This is referred to as numerical
stability and depends on the *error propagation properties of the procedure.
*Discretization methods for the solution of integral and differential equations are based
on a subdivision of the region in which the solution is required. Stability here means that
perturbations in the data (initial or boundary conditions) have a bounded effect on the
solution obtained (ignoring roundoff error) for a given subdivision. The existence of a
uniform bound on this effect over all sufficiently fine subdivisions is a necessary condition
for the convergence of the method as the subdivision is refined.
In the solution of *ordinary differential equations much of the stability theory has been
developed in the study of stiff systems of equations. Of great importance to this
development was the concept of A-stability introduced by Dahlquist in 1963. A method
is A-stable if it produces bounded solutions for the test problem
for all stepsizes. The trapezoidal rule (see ORDINARY DIFFERENTIAL EQUATIONS) is an
example of an A-stable method. Much of the later theory has investigated similar
properties for more general test problems.
stable sorting algorithm A sorting algorithm that preserves the relative ordering of
records with equal sortkeys.
stack (pushdown stack, pushdown list, LIFO list) 1. A linear *list where all accesses,
insertions, and removals are made at one end of the list, called the top. This implies
access on a last in first out (LIFO) basis: the most recently inserted item on the list is the
first to be removed. The operations push and pop refer respectively to the insertion and
removal of items at the top of the stack. Stacks occur frequently in computing and in
particular are closely associated with *recursion. 2. Loosely, a linear *list where accesses,
insertions, and removals are made at one end or both ends of the list. This includes a
pushdown stack, described above. When the earliest inserted item on the linear list is the
first to be removed (first in first out, FIFO), it is a pushup stack, more properly known
as a *queue. When insertions and deletions may be made at both ends, it is a double-ended
queue, or *deque.
A stack may be implemented in hardware as a specialized kind of addressless memory,
with a control mechanism to implement any of the insertion/removal regimes. See also
STACK PROCESSING.
stack algorithm In general, any algorithm that employs a *stack, but, specifically, one
for decoding a *convolutional code.
stack architecture An architecture in which *stack processing is used.
stack frame In a *block-structured language, storage required by a block (procedure) is
allocated on entry to the block and is de-allocated at the exit from the block. Since blocks
are nested, storage can be allocated on a last in first out basis on a *stack, and the area of
the stack containing data for a particular block is called the stack frame for the block.
stack manipulation Another name for stack processing.
stack processing (stack manipulation) Use of a pushdown *stack or *LIFO
implemented in hardware as a data memory. This permits the use of *zero-address
instructions where both operand sources and result destinations are implicitly the top
locations of the stack, thus making programs more compact. Stack mechanisms are also
used to provide a way of keeping track of multiple interrupts in which the stack serves as a
way of ‘nesting’ the interrupts so that those of lesser priority are pushed down so that
those of higher priority can be attended to.
staircase waveform A waveform that is generally constrained to lie between maximum
and minimum voltage values. Between these extremes the waveform can only take on
discrete and constant values of voltage for fixed periods of time. The waveform thus
consists of a number of small step changes in voltage level, hence the term staircase. The
height of each step will normally be made constant but may be variable, as may the period
of time over which the waveform resides at a given voltage level.
stand-alone Denoting hardware or software that is capable of performing its function
without being connected to any other component.
standard 1. A publicly available definition of a hardware or software component,
resulting from international, national, or industrial agreement. 2. A product, usually
hardware, that conforms to such a definition.
standard deviation See MEASURES OF VARIATION.
standard error See MEASURES OF VARIATION.
standard function A *function provided as part of a programming language, in
particular to evaluate the standard mathematical functions (sin, cos, exp, etc.). The term is
sometimes used more generally as a synonym for library program (see PROGRAM
LIBRARY).
standard interface A point of interconnection between two systems or parts of a
system, e.g. that between a processor and a peripheral, at which all the physical, electrical,
and logical parameters are in accordance with predetermined values and are collectively
used in other instances. An interface may be classed as standard on the basis of
manufacturer, industry, or international usage. When introduced in the 1970s the concept
of a standard interface was a significant step forward since until then nearly every
device had its own unique interface. The term is seldom used these days since virtually all
interfaces used now conform to one standard or another.
standardization 1. The establishment of an international, national, or industrial
agreement concerning the specification or production of components—electrical,
electronic, or software—or equipment in general, or of procedures for the use or testing of
equipment or software. 2. The act of committing an organization to use specific standards
to meet particular needs whenever they arise within the organization. Typically an
organization might standardize upon use of a specific compiler for some language, some
specific application package, or a particular database management system.
standard ML (SML) A *functional programming language derived from *ML. Unlike
other functional languages, standard ML also supports some aspects of the procedural
programming style, in particular for input and output. In consequence it is a generalpurpose programming language.
standard product of sums One of the two canonical (i.e. standard or normal) forms
of a *Boolean function, useful in comparing and simplifying functions. This form contains
one *standard sum term, or maxterm, for each ‘zero’ (false) entry in the *truth table for the
expression. This form can be represented as the AND (product) of a group of ORs (the
sum terms) of Boolean variables, uncomplemented or complemented. It can also be shown
to be the NOR of a group of NORs of the identical variables. Compare STANDARD SUM OF
PRODUCTS.
standard product term (minterm) A product (AND) of n Boolean variables,
uncomplemented or complemented but not repeated, in a function of n variables. With n
variables, 2n different standard product terms are possible. The complement of any
standard product term is a *standard sum term, or maxterm.
standard sum of products One of the two canonical (i.e. standard or normal) forms
of a *Boolean function, useful in comparing and simplifying functions. This form contains
one *standard product term, or minterm, for each ‘one’ (true) entry in the *truth table for
the expression. This form can be represented as the OR (sum) of a group of ANDs (the
product terms) of Boolean variables, uncomplemented or complemented. It can also be
shown to be the NAND of a group of NANDs of the identical variables. Compare
STANDARD PRODUCT OF SUMS.
standard sum term (maxterm) A sum (OR) of n Boolean variables, uncomplemented
or complemented but not repeated, in a function of n variables. With n variables, 2n
different standard sum terms are possible. The complement of any standard sum term is a
*standard product term, or minterm.
standby time Another name for idle time. See AVAILABLE TIME.
STAR One of the early *vector processors, manufactured by CDC and unique on several
grounds: it is one of the large machines built by CDC that was not designed by Seymour
Cray (the architect was Jim Thornton); it was noted for having very wide words that can
be processed in parallel; it was the first machine marketed that was aimed at very rapid
processing of vectors.
star closure See KLEENE STAR.
star-height The maximum depth to which the *Kleene star operator is nested in a given
*regular expression. The star-height of a *regular language L is the smallest star-height of
any regular expression for L. There is no known algorithm for determining the star-height
of a regular language. It is however known that there are regular languages of arbitrary
star-height.
If complement and intersection are allowed, the class of generalized regular
expressions is obtained. For these it is not known if there are languages of star-height
greater than one.
star network A simple network topology with all links connecting directly to a single
central *node. Star networks work well when traffic consists of multiple secondary nodes
communicating with a single primary node, e.g. computer terminals connected to a timesharing host.
The main disadvantages of a star network are:
(a) central switch failure disrupts the entire network;
(b) circuit failures between the central switch and the terminals result in loss of user
communication (no alternate paths);
(c) the cost of having every user directly connected to the central site may be very high for
geographically distant (dispersed) nodes;
(d) total communication capacity is often limited by the speed of the central switch.
The main advantage of a star network is that the design of the end terminals may be very
simple. See also NETWORK ARCHITECTURE.
start symbol (sentence symbol) See GRAMMAR.
start time Another name for acceleration time.
startup The initialization of a computer system when switched on or restarted after some
error has occurred. See BOOTSTRAP.
starvation 1. Informal A situation occurring when the rate at which a *process can
proceed is sharply reduced by its inability to gain access to a particular resource. 2. A
situation arising in a *Petri net when the time between successive entries to a state can
become indefinitely long.
statecharts A development of *state-transition diagrams that introduces hierarchical
states and concurrent states. In a statechart a concurrent state can indicate that a modelled
item must be in several parallel states simultaneously. This is useful where an object can
have several independent behaviours while in a given operating mode. For example, an
aircraft in flight will simultaneously have a navigation state (e.g. manual control or
autopilot control) and this will be independent of which radio is being used to
communicate with air-traffic controllers (and at which frequency).
state diagram 1. A graphical version of a *state table. 2. See STATE-TRANSITION
DIAGRAM.
statement The unit from which a high-level language program is constructed: a program
is a sequence of statements. It is analogous to an *instruction at the machine-code level.
See also DECLARATION.
statement label See LABEL.
statement testing A test strategy in which each statement of a program is executed at
least once. It is equivalent to finding a *path (or set of paths) through the *control-flow
graph that contains all the nodes of the graph. It is a weaker testing strategy than *path
testing or *branch testing because it (usually) requires the least number of test cases.
state space A method of problem representation used in *search and in *machine
learning. The N independent variables in a problem description can be imagined as axes of
an N-dimensional hyperspace. Problems can then be viewed as the task of finding a path
from a given start state to some desirable goal state.
state table 1. A table describing the behaviour of a *sequential circuit as a function of
stable internal conditions—states—and input variables. For each combination of these, the
next state of the circuit is specified together with any output variables. 2. See FINITESTATE AUTOMATON.
state-transition diagram (STD) A diagram that indicates the possible states of a
*finite-state automaton and the allowable transitions between such states. There are
several different dialects of STDs. Each one depicts the states, transitions, and event(s)
that can cause each transition. STDs may also indicate conditions that control whether a
legal transition is allowable, or actions that are undertaken either during a transition or on
entry to a new state. Because an STD defines a finite-state automaton, the object being
modelled may be only in one state at a time. STDs can be used to define the control
structure of a software module, or to define the modes of operation of large systems. See
also STATECHARTS.
state-transition function See FINITE-STATE AUTOMATON.
state variable A (generally) binary variable describing the state of each memory
element within a *sequential circuit.
static Not changing, incapable of being changed, or unable to take place during some
period of time, usually while a system or device is in operation or a program is running.
Compare DYNAMIC.
static allocation An allocation that cannot be changed while a process is running.
static analysis Analysis of a program that does not require the program to be executed,
as in dynamic *testing. A *software tool is used to check syntax and to construct one or
more of
a *control-flow graph
a *dataflow graph
an information flow graph.
Information flow analysis identifies the relationships between outputs and the input
variables, and a semantic analysis provides formulas for these relationships.
Comparing the results of semantic analysis with a formal *program specification is used to
reveal inconsistencies between specification and implementation.
Early work (1975–6) led to analysers (DAVE, AUDIT, FACES) for single languages
such as Fortran. Later work led to analysers for C (e.g. LINT, 1978). There are now
analysis tools (e.g. MALPAS, SPADE) that are multilanguage and have facilities for
comparing specification and code.
static data structure A data structure whose organizational characteristics are
invariant throughout its lifetime. Such structures are well supported by high-level
languages and familiar examples are *arrays and *records. The prime features of static
structures are
(a) none of the structural information need be stored explicitly within the elements—it is
often held in a distinct logical/physical header;
(b) the elements of an allocated structure are physically contiguous, held in a single
segment of memory;
(c) all descriptive information, other than the physical location of the allocated structure, is
determined by the structure definition;
(d) relationships between elements do not change during the lifetime of the structure.
Relaxation of these features leads to the concept of a *dynamic data structure.
static dump A dump, usually of the workspace of a *process, taken at a time when the
process can be guaranteed to be inactive, such as at the end of a job step.
static RAM (SRAM) See RAM.
static web page A *web page whose content and presentation are the same every time it
is sent to the client and do not change while the page is displayed in the client’s browser.
Such pages are pure *HTML and do not use any *scripting technologies. Compare
DYNAMIC WEB PAGE.
station (in a communication network) Another name for node.
stationery The paper used in *printers. It is one type of *data medium and is available in
a number of forms.
Continuous stationery consists of an unbroken length of paper that has transverse
perforations dividing the length into identical sheets. The perforations allow the paper to
be provided in fanfold form and to be easily separated into shorter lengths or single sheets
after printing a job. There are sprocket holes at ½″ pitch, ¼″ from both edges, by which
the stationery is driven accurately through a printer by a *tractor or pin-wheel mechanism.
Continuous stationery may be up to 20″ wide and may have additional transverse or
longitudinal perforations to enable the sheets to be separated into smaller forms.
Roll stationery is provided in roll form for applications where ease of filing the
*printout is not important. It is commonly friction-fed through the printer, but some rolls
have sprocket holes as on continuous stationery. Printers that use roll stationery usually
have a tear-off facility. Rolls may be typically 2″–3″ wide as used on *point of sale
terminals, or 8″–10″ as used on other printers.
Single-sheet stationery consists of a pack of identical separate sheets that may be fed
manually into a printer, or may be loaded as a pack into a printer attachment—a cutsheet feed—designed to feed them automatically one sheet at a time.
Single-part stationery has only one layer of paper passing through the printer.
Multipart stationery consists of two or more layers of paper crimped together to pass
through the printer so that multiple simultaneous copies of printout can be obtained on an
*impact printer. The papers may be interleaved with carbon to form the copies, or NCR
(no carbon required) paper may be used. NCR paper has a coated surface that under
pressure releases ink locally. Multipart stationery can be in continuous, roll, or singlesheet form.
Label stationery consists of a suitable backing in continuous single-part form on which
are mounted self-adhesive labels. These are used to print addresses, for example, the
labels being subsequently removed from the backing and applied to envelopes.
Stationery is provided in a number of special forms, e.g. carrier stationery, which
has custom-designed forms or envelopes mounted onto a backing, which in turn may be
single-sheet or continuous form. Stationery can also be preprinted according to the
needs of the user.
Stationery specifications consist of two main parts. There is the specification of the
paper, which states the characteristics required of the paper in order to withstand the
stresses of the types of printer for which it is intended and to give the required printing
performance; such characteristics include strength, thickness, porosity, smoothness,
density, and material content. A coating may also have to be defined for use with certain
printer types, e.g. *thermal printers. There is also the specification of the conversion
requirements, which state what form the finished stationery must take, including
dimensions, preprinting, and any special requirements. Stationery is subject to
international standards.
statistical analysis See STATISTICAL METHODS.
statistical compaction (statistical compression) A *data compaction code in which
the *encoding (and therefore *decoding) table is formed from the statistics of the
particular file (or data stream) being compacted. This may happen either incrementally,
or, if feasible, during a preliminary pass over the input data. The decoding table must be
stored or transmitted along with (i.e. following or interspersed within) the compacted text,
so that the message can be decompacted when required (compare PROBABILISTIC
COMPACTION).
In the incremental case, if the gathering of statistics (and formation of the table) is
recommenced (wholly or partly) whenever the performance falls below some limit, then
the code is said to be adaptive.
statistical methods Methods of collecting, summarizing, analysing, and interpreting
variable numerical data. Statistical methods can be contrasted with *deterministic
methods, which are appropriate where observations are exactly reproducible or are
assumed to be so. While statistical methods are widely used in the life sciences, in
economics, and in agricultural science, they also have an important role in the physical
sciences in the study of measurement errors, of random phenomena such as radioactivity
or meteorological events, and in obtaining approximate results where deterministic
solutions are hard to apply.
Data collection involves deciding what to observe in order to obtain information
relevant to the questions whose answers are required, and then making the observations.
*Sampling involves choice of a sufficient number of observations representing an
appropriate population. Experiments with variable outcomes should be conducted
according to principles of *experimental design.
Data summarization is the calculation of appropriate *statistics (def. 2) and the display
of such information in the form of tables, graphs, or charts. Data may also be adjusted to
make different samples more comparable, using ratios, compensating factors, etc.
Statistical analysis relates observed statistical data to theoretical models, such as
*probability distributions or models used in *regression analysis. By estimating
*parameters in the proposed model and testing hypotheses about rival models, one can
assess the value of the information collected and the extent to which the information can
be applied to similar situations. Statistical prediction is the application of the model
thought to be most appropriate, using the estimated values of the parameters.
More recently, less formal methods of looking at data have been proposed, including
*exploratory data analysis.
statistical multiplexing A technique of *time division multiplexing of a number of
subchannels onto a common wider-bandwidth channel, where the total *bandwidth
required by the individual subchannels exceeds the bandwidth of the multiplex channel.
Since the maximum rate required by any one channel is seldom used, due to breaks in
transmission, this technique is possible through judicious use of buffering. In this system
bandwidth is not allocated permanently to each subchannel but only as required.
statistical prediction See STATISTICAL METHODS.
statistics 1. Numerical data relating to sets of individuals, objects, or phenomena. It is
also the science of collecting, summarizing, and interpreting such data. 2. Quantities
derived from data in order to summarize the properties of a sample. For example, the
mean of a sample is a statistic that is a *measure of location, while the standard deviation
is a *measure of variation.
status (of a process) See PROCESS DESCRIPTOR.
status bar (status line) In many kinds of display, including text and *graphical user
interfaces, a line of usually textual information about current status. A word-processor
status bar may tell the user what line and page is currently in use, if typeover or insert
mode is in force, and which font is currently selected, while a database status bar might
have the current record number and field name and whether the display may be edited.
status register See PROCESSOR STATUS WORD, PROGRAM STATUS WORD.
status signal A *busy signal or *ready signal.
STD Abbrev. for state-transition diagram.
Steffensen iteration A method that combines the functional iteration scheme xn +1
= G(xn) with *Aitken’s Δ2 process to solve the equation x = G(x).
STEP The international standard, ISO 10303: Standard for the Exchange of Product
Model Data, covering all aspects of product life cycle in all industries. It is a neutral way
of representing product data throughout its life, independent of any particular computeraided system. STEP includes a textual *conceptual schema language, EXPRESS, which
is based on the *ERA (entity-relationship-attribute) model.
stepped index fibre See FIBRE OPTICS.
stepsize See FINITE-DIFFERENCE METHOD.
stepwise refinement An approach to software development in which an initial highly
abstract representation of some required program is gradually refined through a sequence
of intermediate representations to yield a final program in some chosen programming
language. The initial representation employs notations and abstractions that are
appropriate for the problem being addressed. Subsequent development then proceeds in a
sequence of small steps. Each step refines some aspect of the representation produced by
the previous step, thus yielding the next representation in the sequence. Typically a single
step involves simultaneous refinement of both data structures and operations, and is small
enough to be performed with some confidence that the result is correct. Refinement
proceeds until the final representation in the sequence is expressed entirely in the chosen
programming language. The approach is normally associated with N. *Wirth, designer of
the *Pascal and *Modula languages. Compare STRUCTURED PROGRAMMING.
stiff equations See ORDINARY DIFFERENTIAL EQUATIONS.
STM (synchronous transfer module) See SDH.
stochastic matrix A matrix, much used for example in simulation, modelling, and
communication theory, in which every row is a probability distribution, i.e. every element
lies between 0 and 1, and the sum of the elements of each row is unity. A doubly
stochastic matrix is a stochastic matrix whose transpose is a stochastic matrix.
stochastic model See STOCHASTIC PROCESS.
stochastic process A set of *random variables whose values vary with time (or
sometimes in space). Examples include populations affected by births and deaths, the
length of a queue (see QUEUING THEORY), or the amount of water in a reservoir.
Stochastic models are models in which random variation is of major importance, in
contrast to *deterministic models. Stochastic processes give theoretical explanations for
many *probability distributions, and underlie the analysis of *time series data.
storage (memory, store) A device or medium that can retain data for subsequent
retrieval. See STORAGE DEVICE. See also MEMORY.
storage allocation 1. The amount of storage allocated to a *process. 2. The act of
allocating storage to a *process. In a multiprogramming system it is necessary to control
the use of storage to ensure that processes do not interfere with one another’s workspace,
except where they do so intentionally in order to cooperate. This represents one instance
of the resource control activities within the system.
storage area network See SAN.
storage device A device that can receive data and retain it for subsequent retrieval. Such
devices cover a wide range of capacities and speeds of access. The semiconductor devices
used as the *main memory for the processor may take only a few nanoseconds to retrieve
data but the cost of storing each bit is very high by comparison with the devices used as
*backing store, which may take milliseconds or even many seconds to retrieve data. See
also MEMORY HIERARCHY, MEMORY MANAGEMENT.
storage element See MEMORY ELEMENT.
storage hierarchy See MEMORY HIERARCHY.
storage location See LOCATION.
storage pool Those areas of storage that are not allocated to *processes and are used by
the storage allocation system as the source from which to meet requests. When a process
releases storage it will be returned to the pool for subsequent reallocation.
storage protection The mechanisms, both hardware and software, ensuring that
*processes access storage in a controlled manner. For storage in the high-speed levels of
the *memory hierarchy, protection is implemented by hardware in order to maintain
speed; for slower devices the protection may be entirely by software. In all cases, the
intention is to ensure that the type of access made by a process to the storage is in
accordance with that indicated when the storage was allocated to the process. For
example, in a system with paged memory management a process may be granted access to
an area of memory, but only for the purpose of executing the code in that page. Attempts
to read from the page or to write to it would be prohibited by the (hardware) protection
mechanism.
storage schema (internal schema) A specification of how the data relationships and
rules specified in the *logical schema of a database will be mapped to the physical storage
level in terms of the available constructs, such as aggregation into records, clustering on
pages, indexing, and page sizing and caching for transfer between secondary and primary
storage. Storage schema facilities vary widely between different DBMS.
storage structure The mapping from a *data structure to its implementation (which
may be another data structure). Thus a date may be represented as a vector of three
integers (with six permutations to choose from), directly as a string of characters, or, in
more recent high-level languages, as a record with three selectors—day, month, and year.
A good choice of storage structure permits an easy and efficient implementation of a given
data structure.
storage tube A vacuum tube that can receive and retain information. The data can be
erased and new data entered as required. The data may be graphical and visible on the face
of the tube or it may be retrieved as an electric signal. Storage tubes are now obsolete. See
also ELECTROSTATIC STORAGE DEVICE.
store 1. Another name for storage, or memory, used especially in the UK. 2. To enter or
retain information for subsequent retrieval.
store and forward A method in which information is passed from node to node in a
communication network, pausing in each node until sufficient resources (bandwidth,
buffer pools, etc.) are available for the next leg of the journey—called a hop. In computer
networks the information being passed may be *messages, *packets, or *cells (small
fixed-structure packets), and may be self-contained with regard to the store-and-forward
network (*datagrams), or may depend upon the maintenance of state information (*flow
control, *routing paths, etc.) from previous messages or packets. A store-and-forward
network is based upon the tradeoff between the cost of memory and computational
resources in the store-and-forward nodes, and the cost of the transmission lines between
the nodes. See also MESSAGE SWITCHING, PACKET SWITCHING.
stored procedure A *procedure stored as part of a database in a *relational database
management system. Stored procedures can be supplied with the DBMS or written by
users in its command language (usually a dialect of *SQL). They are a means both of
extending the underlying command language and of encapsulating frequent operations on
individual databases.
stored program A *program that is stored in the *memory of a computer. The
execution of the program then requires the use of a *control unit—to read instructions
from the memory at appropriate times and arrange to carry them out.
The memory used to store the program may be the same as or different from memory
used to store the data. There are advantages in using the same (read-write) memory,
allowing programs to be modified, but there may be advantages in limiting opportunities
for program modification, either by using physically read-only memory or by restricting
access to the part of the memory containing programs.
The concept of program and data sharing the same memory is fundamental to what is
usually referred to as a *von Neumann machine or a von Neumann architecture. Although
there is some disagreement as to whether the stored-program concept was originated by
John von Neumann or by the team of John W. Mauchly and J. Presper Eckert, the first
documentation was written by von Neumann in 1945 in his proposal for the *EDVAC.
Details of the world’s first working stored program computer commissioned at Manchester
University, U.K., by F. C. Williams and T. Kilburn, were published in 1948 (see
MANCHESTER MARK I).
storyboard An outline specification of an animated film or a report.
STP (shielded twisted pair) See TWISTED PAIR.
straight insertion sort (sifting technique, sinking technique) A sorting algorithm
that looks at each sortkey in turn, and on the basis of this places the record corresponding
to the sortkey correctly with respect to the previous sortkeys.
straight selection sort A sorting algorithm based upon finding successively the record
with the largest sortkey and putting it in the correct position, then the record with the next
largest key, etc.
Strassen algorithm An algorithm developed in 1968 by V. Strassen to multiply large
numbers. It uses the properties of *Fourier transforms. See also SCHONHAGE–STRASSEN
ALGORITHM.
stream 1. A flow of data characterized by relatively long duration and constant rate.
When the rate is known ahead of time then communication resources may be reserved for
the stream. For example, stream traffic may be carried using low-overhead synchronous
*time division multiplexing (TDM), while other traffic on the same channel is carried by
higher-overhead asynchronous TDM. This is particularly important in satellite
transmission systems, where overhead differences between synchronous and asynchronous
traffic are very great. It is also important in applications, such as packet speech, that
require a low variation in *network delay. 2. A finite or infinite sequence of elements of a
nonempty set A indexed by time. If T is a set of time instants, or clock cycles, then the
stream can be represented by a function
where a(t) is the element in the stream at time t in T. Usually, in modelling computing
systems, the elements of A are data or instructions, and time is assumed to be discrete, in
which case T = {0,1,2, …}.
stream cipher A *cipher in which a relatively small quantity of data is encrypted (or
decrypted) at each iteration of the algorithm—perhaps just one character or byte—but in
which the algorithm contains memory that retains message-dependent information
between iterations.
streamer Informal name for streaming tape transport.
streaming 1. The process of providing a steady flow of audio or video data so that an
Internet user is able to access it as it is transmitted. 2. A mode of operation of a tape
transport, introduced in 1978 by IBM, in which the length of *magnetic tape passing the
head while stopping and restarting exceeds the length of the interblock gap. After a stop,
therefore, the tape has to be repositioned (i.e. backed up) in order to be in the correct
position for the next start. The alternative to streaming mode is start/stop mode.
Streaming allows a tape transport with only moderate acceleration to handle tape at a
considerably higher speed than it could in start/stop mode. However, the average data rate
is only improved if substantial quantities of data (typically tens to thousands of kilobytes)
are transferred between stops, because of the considerable repositioning time (typically
0.1–2 seconds). The most common application is disk *backup.
Streaming also allows the interblock gap to be very short, increasing the amount of data
that can be stored on a given length of tape; this is not compatible with the currently used
international format standards for open-reel tape, but most cartridge-tape standards define
a short or zero interblock gap.
streaming tape transport A tape transport capable of operating in *streaming mode,
and of automatically repositioning the magnetic tape when it stops. Some versions are also
capable of operating in start/stop mode at a lower tape speed (or with extended interblock
gaps).
Streaming tape transports can use simpler, and hence cheaper and more reliable,
mechanisms than those designed for start/stop mode at similar tape speeds. In particular,
they usually operate without the *capstan and tape *buffers of conventional tape
transports, tape motion and tension being controlled entirely from the reels. Most cartridge
tape transports operate only in the streaming mode.
streams interface In *object-oriented programming, a means of transferring different
objects to and from backing store without having to detail the data structure of the object.
The streams interface uses methods that form part of the object itself.
stream transformer A function that maps *streams to streams. If [T → A] is the set of
all streams of elements of set A indexed by time T then, for example, a stream transformer
that maps a pair of streams into one stream is a function of the form
Stream transformers are often defined in the equivalent but logically simpler form
where G(a,t) = F(a)(t) for stream a and time t, i.e. G(a,t) is the element on the output
stream F(a) at time t.
Stretch A monster computer chartered by the US Government and built in the late 1950s
by IBM as its IBM 7030; it was designed to ‘stretch the technique of computer building to
its limits’. It had a pipelined instruction unit with address lookahead, and a 64-bit word
length with double precision arithmetic if required. Addressing was down to the bit over a
two-million word memory. It was capable of variable word length working and, in fact,
almost anything that could be expected of hardware. A limited number of 7030s were built
for atomic energy and similar research establishments.
strictness A term applied to functions. A function that always requires the value of one
of its arguments is said to be strict in that argument. See also LAZY EVALUATION.
stride See DOPE VECTOR.
strikeout A method of leaving a deleted section of printed or displayed text visible but
clearly marked with a horizontal line through it.
string 1. A *flexible one-dimensional array, i.e. a flexible vector, of symbols where the
lower bound of the vector is fixed at unity but the upper bound, i.e. the string length, may
vary. 2. A type of input to a graphics system consisting of a sequence of characters. The
usual input device is a keyboard. See also LOGICAL INPUT DEVICE. 3. Any onedimensional array of characters. In formal language theory a string is often referred to as a
*word. See also SEQUENCE.
string manipulation The action of the fundamental operations on strings, including
their creation, *concatenation, the extraction of *string segments, *string matching, their
comparison, discovering their length, replacing *substrings by other strings, storage, and
input/output.
string matching Searching within a string for a given substring.
string segment A *substring of a character string that can usually only be replaced by
an array of the same size.
stripe disk A real or *virtual disk drive that forms part of a stripe set. A stripe set is
so-named because user data is interleaved over two or more *member disks. A stripe set
forms a single virtual disk drive whose capacity is approximately the sum of its real or
virtual members. See also RAID, MIRROR DISK.
strobe A pulse used to sample the occurrence of an event in time, at a specified point in
relation to the event.
stroke A type of input to a graphics system consisting of a sequence of positions,
possibly with other information. See also LOGICAL INPUT DEVICE.
stroke textures A paradigm where the path of a pen and its pressure is used to define
both the tone and texture of an image.
strongly terminating (strongly normalizing) See ABSTRACT REDUCTION SYSTEM.
strong mobility See MOBILE CODE LANGUAGES.
strong typing A feature of some programming languages that requires the type of each
data item to be declared, precludes the application of operators to inappropriate data types,
and prevents the interaction of incompatible types.
Stroustrup, Bjarne (1950– ) Danish computer scientist. Stroustrup graduated from the
University of Aarhus in mathematics and computer science (1975) and received a
doctorate in computer science from Cambridge University (1979). From 1979, while
working at the *Bell Telephone Laboratories, he developed the *C++ programming
language. He continued to work for Bell Laboratories until 2002, when he became a
professor at Texas A&M University. He is now a director of technology for Morgan
Stanley.
structural induction The principle of *induction defined as follows. Let S be a set on
which the *partial ordering ≤ is defined and which contains no infinite decreasing
sequences (where decreasing is defined by the ordering relation). If P is some *predicate
and if the following two conditions hold:
(a) let a be a smallest element of S, i.e. there is no x in S such that x ≤ a, then P(a) is true;
(b) for each element s in S, if P(x) is true for each x in S with x ≤ s, and from this it follows
that P(s) is true,
then P(s) is true for all s in S. Structural induction tends to be used in proving properties of
recursive programs.
structure 1. (of a program) See PROGRAM STRUCTURE. 2. The relationship between
parts of a compound data object. 3. See CONTROL STRUCTURE, DATA STRUCTURE,
STORAGE STRUCTURE.
structured analysis Short for structured systems analysis.
structured coding See STRUCTURED PROGRAMMING (def. 2).
structured English A form of process logic representation, similar to
*pseudolanguage, used in *structured systems analysis.
structured programming 1. A method of program development that makes extensive
use of *abstraction in order to factorize the problem and give increased confidence that the
resulting program is correct. Given the specification of a required program, the first step is
to envisage some ‘ideal’ machine on which to implement that program. This ideal machine
should offer both an appropriate set of *data structures and an appropriate set of
operations on those data structures. The required program is then defined as a program for
the specified ideal machine.
By this means the original problem has been reduced to one of implementing the
specified ideal machine, and this problem is itself tackled in the same way. A second ideal
machine is envisaged, this machine being ideal for implementing the data structures and
operations of the first machine, and programs are produced to effect the implementation.
This process continues until eventually a level is reached at which the specified data
structures and operations of the ideal machine can conveniently be implemented directly
in the chosen programming language. Thus the eventual program is based upon ‘levels of
abstract machine’, where the top-level machine is ideally suited to the specific application
and the lowest-level machine directly executes the chosen programming language. The
development process is not, however, simply one of ‘subroutinization’, since both
operations and data structures are refined simultaneously at each level.
The overall method of structured programming, which is largely due to E. W. *Dijkstra,
is heavily influenced by a concern for *program *correctness. The intention is that at any
level the implementation machine should be so well suited to the problem at hand that the
programs for that machine will be small and simple. It should therefore be possible at each
level to provide a convincing rigorous argument that the programs are correct. 2.
(structured coding) An approach to *coding in which only three constructs are
employed for governing the flow of control through the program. These three constructs
allow for sequential, conditional, and iterative control flow. Arbitrary transfer of control
(i.e. the *GOTO statement) is expressly forbidden. As a direct result, for each compound
statement within the program there is precisely one entry point and one exit point, and
reasoning about the program is thereby made easier.
structured systems analysis A specific technique for *systems analysis that covers
all activities from initial understanding of the problem through to specification and highlevel design of the software system. The technique embodies four main concepts:
dataflow diagrams, a data dictionary, data store structuring, and process
logic representations.
The *dataflow diagrams show the various processing elements in the system, and the
dataflows between these processing elements and the major stores of data within the
system. The processing elements are described in nonprocedural terms, typically using
natural language, and a processing element from one diagram may be decomposed onto
further diagrams to show greater levels of detail. A *data dictionary is used to record all
the various data items in the system, the constraints upon these data items, and the
processing elements by which they are accessed. As the decomposition proceeds so both
the data stores and the actions of the processing elements are defined in more detail. The
data store structuring techniques are based upon the *relational model of data and show
how each data store is accessed and organized. The algorithms employed by the
processing elements are defined by use of process logic representations, typically
*program design languages, *decision tables, or ‘structured’ natural language.
Two similar versions of structured systems analysis were developed separately by Gane
and Sarson and by De Marco. The technique is intended primarily for use in traditional
*DP system development.
structured variable A variable in a programming language that is a composite object,
being made up of components that are either simple data items or are themselves
structured objects; these components are identified by *names. In many programming
languages, especially Pascal, the word record is used for a structured variable; in C the
term struct is used.
stub 1. A substitute component that is employed temporarily in a program so that
progress can be made, e.g. with compilation or testing, prior to the genuine component
becoming available. To illustrate, if it is required to test the remainder of a program before
a particular procedure has been developed, the procedure could be replaced by a stub.
Dependent upon circumstances, it might be possible for this stub always to return the same
result, return values from a table, return an approximate result, consult someone, etc. 2.
See DECISION TABLE.
Student’s t distribution An important *probability distribution used instead of the
*normal distribution when the standard deviation is estimated from data. Discovered by
W. S. Gosset (‘Student’) in 1908, the t distribution gives wider *confidence intervals than
the *normal distribution because of the uncertainty in the estimate of the standard
deviation (see MEASURES OF VARIATION). The probability values depend on an integer f,
the number of *degrees of freedom, which is the number associated with the estimate of
the standard deviation. Tables of the t distribution are widely available, but algorithms for
direct computation are relatively lengthy.
The most common applications are:
(a) testing differences between *means of two samples;
(b) testing differences from zero of estimated parameters in *regression analysis and
*experimental design;
(c) evaluation of *confidence intervals for means and other estimated quantities.
StuffIt Trademark A program for compressing and decompressing files. Originally a
Macintosh program, it is also available for Windows and Linux.
STX A *control character indicating start of text.
subdirectory A *directory that is itself pointed to by an entry in a directory. The entries
in a subdirectory may point either to further directories or to files. See also ACCESS PATH.
subgraph A portion of a *graph G obtained by either eliminating edges from G and/or
eliminating some vertices and their associated edges. Formally a subgraph of a graph G
with vertices V and edges E is a graph G′ with vertices V′ and edges E′ in which V′ is a
subset of V and E′ is a subset of E (edges in E′ joining vertices in V′).
If V′ is a proper *subset of V or E′ is a proper subset of E then G′ is a proper
subgraph of G. If all the vertices of G are present in the subgraph G′ then G′ is a
spanning subgraph of G. See also SPANNING TREE.
subgroup A subset T of a *group G on which the dyadic operation ° is defined; T
contains the identity, e, of G, the inverse x−1 for any x in T, and the quantity x° y for any x
and y in T. For any group G the set consisting of e alone is a subgroup; so also is the group
G itself. All other subgroups are proper subgroups of G.
sublist See LIST.
submatrix of a given matrix, A. Any matrix derived from A by deleting one or more of
its columns and/or one or more of its rows. See also TRIM.
submenu A menu that appears as a result of the selection of a menu item. Menu items
that cause further menus to appear rather than cause an immediate action to be performed
are often indicated by ellipsis, by a right-pointing arrow, or by some other device, as in
SAVE…or SEARCH.
subnet Short for communication subnetwork.
subnet mask A specification of which part of an IP address (see TCP/IP) represents the
network identity. It is a 32-bit bitmap where ‘1’ means that bit position is part of the
network identity and ‘0’ that it is part of the host address. This bitmap always take the
form of a single block of ‘1’s (the network identity part) followed by a single block of ‘0’s
(the host address part). It is important that *routers can distinguish efficiently between
those packets originating on its network whose destination is on the same network and
those that that require routing over an inter-network. This operation requires isolating the
network identity part of the IPA address, and an *AND operation with the subnet mask is a
very efficient way to do this. For convenience, subnet masks are usually represented either
as the decimal form of four 8-bit numbers or as an integer representing the network
identity. Thus, 255.255.255.0 and /24 both indicate a 24-bit network identity and an 8-bit
host address.
subnotebook A computer that is smaller than a *laptop but larger than a *palmtop or
*personal digital assistant. Unlike palmtops, subnotebooks have full (albeit small)
keyboards, fixed disks, and other features of ‘full’ personal computers.
sub-Nyquist sampling See NYQUIST’S CRITERION.
subprogram Part of a program that may be executed by a *call from elsewhere. The
term covers *subroutines, *procedures, and *functions.
subrecursive hierarchy See HIERARCHY OF FUNCTIONS.
subroutine A piece of code that is obeyed ‘out of line’, i.e. control is transferred to the
subroutine, and on its completion control reverts to the instruction following the *call.
(The instruction code of the CPU usually provides subroutine jump and return
instructions to facilitate this operation.) A subroutine saves space since it occurs only once
in the program, though it may be called from many different places in the program. It also
facilitates the construction of large programs since subroutines can be formed into libraries
for general use. (The same concept appears in high-level languages as the *procedure.)
In the early days of programming, what is now called a subroutine was known as a
closed subroutine. This was in contrast with the open subroutine, which was a
piece of code that appeared in several places in a program, and was substituted ‘in line’ by
the assembler for each call appearing in the program. The open subroutine was just a
convenient shorthand for the programmer: the same facility is now known as a *macro.
subschema (of a database) Another name for user view.
subscript A means of referring to particular elements in an ordered collection of
elements. For example, if R denotes such a collection of names then the ith name in the
collection may be referenced by Ri (i.e. R subscript i). This printed form is the origin of
the term but it is also used when the ‘subscript’ is written on the same line, usually in
parentheses or brackets:
See also ARRAY, INDEX.
subsemigroup A *subset T of a *semigroup S, where T is *closed under the dyadic
operation ° defined on S. Let x be an arbitrary element of S. Then the set consisting of
i.e. all powers of x, is a subsemigroup of S.
subsequence 1. A *function whose domain is a subset of the positive integers and hence
whose image set can be listed:
2. The listing of the image set of a subsequence. Hence a subsequence of a string a1a2…an
is any listing of the form
See also SEQUENCE.
subset (of a *set S) A set T whose members are all members of S; this is usually
expressed as
A subset T is a proper subset of S if there is some element in S that is not in T; this is
expressed as
substitution 1. A particular kind of mapping on *formal languages. Let Σ1 and Σ2 be
alphabets. For each symbol a in Σ1 let s(a) be a Σ2-language. The function s is a
substitution. A *homomorphism occurs where each s(a) is a single word. s is Λ-free if no
s(a) contains the empty word.
The function s can be extended to map Σ1-words to Σ2-languages:
i.e. the *concatenation of the languages s(a1),…,s(an). s can then be further extended to
map Σ1-languages to Σ2-languages:
s(L) is called the substitution image of L under s. 2. See SUBSTITUTION CIPHER.
substitution cipher A *cipher, or a component of a more complicated cipher, that
involves the symbol at each place in the plaintext being (effectively) looked up in a table,
and replaced by the substitute symbol found there. Since a cipher must be invertible (for
*decryption), the table must contain a *permutation of the alphabet (compare
TRANSPOSITION CIPHER).
The size of the table can be increased (to strengthen the cipher) by using an *extension
of the plaintext source. If the table remains constant for the entire plaintext, the
substitution is monalphabetic; if it changes with each advance of one symbol position
in the plaintext, possibly repeating a fixed schedule, it is polyalphabetic.
substring of a string of symbols, a1a2…an. Any string of symbols of the form
The *empty string is regarded as a substring of any string.
substring identifier Let α = a1a2…an denote a string in Σ* and let # ∉ Σ. The
substring identifier for position i in α# is the shortest substring in α# starting at position i
that identifies position i uniquely. The existence of such a substring is guaranteed since
will always identify position i uniquely. See also POSITION TREE.
subsurface scattering *Diffuse reflection caused by light entering a material, being
absorbed, scattered, and eventually exiting the material.
subtractor An electronic *logic circuit for calculating the difference between two binary
numbers, the minuend and the number to be subtracted, the subtrahend (see table). A full
subtractor performs this calculation with three inputs: minuend bit, subtrahend bit, and
borrow bit. It produces two outputs: the difference and the borrow. Full subtractors thus
allow for the inclusion of borrows generated by previous stages of subtraction when
forming their output signals, and can be cascaded to form n-bit subtractors. Alternatively
the subtract operation can be performed using two half subtractors, which are simpler
since they contain only two inputs and produce two outputs.
Neither of these devices is commonly encountered since modulo-two subtraction is
more conveniently accomplished using two’s complement arithmetic and binary *adders.
Subtractor. Modulo-two subtraction
subtree See TREE.
subtype A relationship between *data types. Type T1 is a subtype of type T2 if the set of
all possible values of T1 is a *subset of the set of all possible values of T2. A subtype is
obtained by constraining the set of possible values of the data type. The same operations
can be applied to subtype as to type; this may demand the introduction of extra rules or
checks to ensure that operations deliver results within the subtype.
subversion See SVN.
successive approximation Another name for iteration.
successive over-relaxation See ITERATIVE METHODS.
successor function 1. The *function SUCC that occurs in programming languages
such as Ada or Pascal and produces the next element of an enumeration type. Typically
2. The *function
where N is the nonnegative integers. S plays a crucial role in recursive function theory,
particularly in the definition of *primitive recursive functions.
suffix of a string α. Any string β where α is the *concatenation γβ for some string γ.
Compare PREFIX.
suffix notation Another name for reverse Polish notation.
suite 1. A set of programs or modules that is designed as a whole to meet some specified
overall requirement, each program or module meeting some part of that requirement. 2. A
collection of PC applications (spreadsheet, word processor, database, etc.) that are
designed to work together.
sumcheck See CHECKSUM.
sum of products expression (SOP expression) A *Boolean function expressed as a
sum of product terms, i.e. as an OR of AND terms containing uncomplemented or
complemented variables. An example is
The function is also realizable as the NAND of a group of NAND terms. See also
STANDARD SUM OF PRODUCTS, PRODUCT OF SUMS EXPRESSION.
sum term A sum (OR) of Boolean variables, uncomplemented or complemented. See
also PRODUCT OF SUMS EXPRESSION.
Sun Microsystems Inc. A former US manufacturer of high-performance
*workstations and servers, running operating systems based on UNIX. Founded in 1982,
Sun grew spectacularly and became one of the major suppliers of non-PC computers. It
was an important member of the Open Group and was largely responsible for the
development of *Java.
supercomputer A class of very powerful computers that have extremely fast
processors, currently capable (2014) of performing tens of petaflops, i.e. 1015 floatingpoint operations per second (see FLOPS); all are now created from large numbers of
standard microprocessor chips operating in parallel, with core numbers counted in the
millions (see also MPP, SMP). Large main-memory capacity and long word lengths are
the other main characteristics. Supercomputers are used, for example, in meteorology,
engineering, nuclear physics, and astronomy. Several hundred are in operation worldwide
at present. Principal developers are the Chinese National University of Defence
Technology, *Cray Research, Dell, IBM, and Fujitsu.
superconducting memory A memory made up of components whose function
depends on the phenomenon of superconductivity. See also JUNCTION AND JOSEPHSON
JUNCTION AND JOSEPHSON TECHNOLOGY.
superconducting technology A logic construction technique depending on the
phenomenon of superconductivity. See also JOSEPHSON TECHNOLOGY.
superconductivity The physical phenomenon that causes some materials to have zero
electrical resistance when held at very low temperatures. Superconductivity is of interest
to computer engineers since it points to the possibility of great computing power with little
or no heat generation. This is especially so since the recent demonstration of
superconductivity in certain complex metallic oxides at relatively high temperatures.
SuperJANET The high-speed successor to the UK Joint Academic Network
(*JANET). Its last version, the sixth (SuperJANET6), was launched in 2013 to provide a
backbone capacity of 2 Tbps.
super-Nyquist sampling See NYQUIST’S CRITERION.
supersampling The *sampling of an image at a higher resolution than the display
followed by an averaging down to the true pixel level. The averaged values contain more
information about the true image than if the sampling had been performed at display
resolution. This technique is used to reduce *aliasing effects in images.
superscalar An architectural approach for high-performance computation where a
number of instructions are simultaneously accessed from memory and, where *data
dependency constraints allow, are issued for simultaneous execution by multiple
independent pipelines, thus giving an enhanced instruction execution rate. RISC
processors employing multiple-issue superscalar pipelines are currently available.
Optimized compilation is needed to minimize data dependencies between consecutive
instructions in order to maximize multiple-issue opportunities and hence performance. See
also VLIW.
supertwisted nematic display See LCD.
SuperVGA See SVGA.
supervisor (monitor, executive) The permanently resident part of a large operating
system, dealing most directly with the physical components of the system as distinct from
the virtual resources handled by most *processes. Within the supervisor different parts
handle different physical components (see KERNEL, MEMORY MANAGEMENT, I/O
SUPERVISOR).
The term has also been used as another name for the entire operating system.
supervisor call (SVC) See INTERRUPT.
supervisor state (executive state) See EXECUTION STATES.
support programs Programs that do not make a direct contribution to performing the
primary function of a computer system but rather serve to assist in the operation of the
system. A typical example is a program that serves to archive the contents of a filing
system. See also SOFTWARE TOOL.
suppress To prevent the output or sensing of selected data or signals. See also ZERO
SUPPRESSION.
surface-accessibility shading The *rendering of a surface that takes account of such
effects as dust collecting, oxidation, polishing, etc., which depend on how accessible parts
of the surface are.
surface-colour map The combination of illumination with texture map to give the
colour of points on a surface.
surface-mount technology A form of circuit packaging (*integrated circuit or
*discrete component) where connections between the device and the mounting substrate
are made purely on the surface. No drilled holes are needed to mount these components,
the physical connection being achieved by re-flow soldering, normally by means of an
infrared heat source. Extremely high packing densities are achievable. This, combined
with automatic placement and soldering, yield very cost-effective products. See also SMD.
surface patch See PATCH.
surface reconstruction The combining of multiple views of an object to give a better
definition of the object than provided by any one view.
surface reflection The reflection of an environment by an object.
surface subdivision Division of patched surfaces into smaller *patches usually in order
to make enough shape freedom available to meet given fairness constraints.
surfing Informal Dipping into the information available from the services on a large
network, especially the Internet, with no definite objective in mind. Surfing is closely
allied to *browsing.
surjection (onto function) A *function whose *range and codomain coincide. If
is a surjection then for each y in the codomain Y there is some x in X with the property that
A function that is not surjective is sometimes said to be into.
suspended process See PROCESS DESCRIPTOR.
Sutherland–Hodgman clipping algorithm A *polygon clipping algorithm in
which the fundamental idea is to clip the original polygon and each resulting intermediate
polygon against each edge of the clipping region in succession. The algorithm allows any
planar or nonplanar polygon to be clipped to a convex clipping volume.
SVC (supervisor call) See INTERRUPT.
SVG (scalable vector graphics) A form of *XML used to describe an image. The
image is specified by lines of XML code defining paths, shapes, fills, colours, etc. Text
can be included with instructions as to font, size, weight, style, and other effects. SVG
were promoted by W3C as a format for images on the Web. The format has a number of
advantages. The files are small (compared with a bitmap image) and the images are
scalable (i.e. they can be expanded without loss of resolution). Moreover, scripts (e.g.
JavaScript) can be embedded in the XML to create special effects (e.g. animation or
colour change in response to the cursor). In addition, the files are searchable (e.g. it is
possible to search for place names on a map). Support for SVG in current (2008) web
browsers is variable and generally incomplete.
http://www.w3.org/TR/SVG11/
• The W3C SVG specification (version 1.1)
SVGA (SuperVGA) A colour *graphics adapter that was originally the upgrade of the
original pixel *VGA (video graphics array) standard. It generated 800 × 600 pixels with
16 colours. However, the term quickly lost this precise meaning, and many subsequent
graphics adapters with far higher resolutions and colour depths have been described as
‘SVGA’.
SVN (Subversion) A client–server *source code control system (SCC) developed by
Apache in 2000. It is currently (2014) one of the most used SCC systems.
swapping A method of handling main memory by writing information to backing store
during periods when it is not in use, and reading it back when required. See also MEMORY
HIERARCHY, PAGING, ROLL-IN ROLL-OUT.
sweeping Moving a geometric element along a given path so as to form a new element
as its locus; for example, a circle sweeping along a straight line creates a cylinder. The
dimensionality of the resulting sweep surface is often higher than that of the generator,
even though they are both embedded in the same space.
sweep surface A surface defined by *sweeping.
SWIFT See ELECTRONIC FUNDS TRANSFER SYSTEM.
swipe reader Informal term for slot reader. See CARD READER.
switch 1. Usually an electronic or electromechanical device that is used to connect or
disconnect an electric current to an electric circuit (see also OPTICAL SWITCH). An
electronic switch can present either an effective open circuit or closed circuit depending
on the status of an applied ‘select’ signal. These switches are often used to provide
isolation between low- and high-voltage switching circuits or to allow remote control of
electric systems.
The word is also used as a verb, followed by a suitable preposition. 2. A type of branch
with a choice of many places to which control may be passed. The destination of the
branch is determined by the value of some variable or expression. Most high-level
languages have a means of doing this: Algol 60 has switch variables; Fortran has
computed GOTOs; and several other languages, such as C, C++, Java, Pascal, and Ada,
have case statements. 3. To undergo or cause to undergo *switching.
switching Any of various communication techniques that provide point-to-point
transmission between dynamically changing data sources and sinks. See also CIRCUIT
SWITCHING, MESSAGE SWITCHING, PACKET SWITCHING.
switching algebra A term that is virtually synonymous with *Boolean algebra when
applied to the analysis and synthesis of *logic (switching) circuits.
switching circuit Another (largely obsolete) name for logic circuit. Before the
availability of low-cost electronic components, logic circuits were commonly
implemented using relays and other switching devices. An AND function was
implemented using a series connection of two switches; an OR function used a parallel
combination of two switches.
switching speed (toggling speed) A measure of the rate at which a given electronic
logic device is capable of changing the logic state of its output in response to changes at
its input. It is a function of the delay encountered within the device, which in turn is a
function of the device technology.
switching theory The theory of and manipulative methods for *switching algebra. It
includes *Boolean algebra and *state table or *state diagram methods of description, as
well as *minimization methods.
switching waveform A waveform or signal that is capable of exhibiting one of two
possible distinct states, often corresponding to logic 1 and logic 0, and that may be used to
change the status of an active switching element between two distinct conditions such as
on and off or open and closed.
Sybase Trademark; see DATABASE MANAGEMENT SYSTEM, SQL SERVER.
Sylvester matrices See HADAMARD MATRICES.
symbol 1. One of a set of distinct elements in the alphabet of a *formal language. See
also SIGNATURE, WORD. 2. An *identifier in a program.
symbolic addressing An addressing scheme whereby reference to an address is made
by some convenient symbol that (preferably) has some relationship to the meaning of the
data expected to be located at that address. It serves as an aid to the programmer. The
symbolic address is replaced by some form of computable/computed address during the
operation of an assembler or compiler.
symbolic execution A form of semantic analysis/proof of a program in which symbols
are used as input variables. The program is viewed as having an input state determined by
the input data and the initial state of the program. For each line of the program a test is
made to see if the state has changed. Each state change is recorded. A logical path through
the program is converted into an ordered set of state changes. The final state for each path
should be an output state or program termination. The program is proved correct if each
sequence of inputs generates only the required output states.
The technique has been automated, but the size of program that can be handled is
limited and manual assistance may be needed to handle loops correctly and efficiently. See
also PROGRAM CORRECTNESS PROOF, STATIC ANALYSIS.
symbolic logic The treatment of *formal logic involving the setting up of a formalized
language. The *propositional calculus and *predicate calculus are two of the more
common areas of interest.
symbol manipulation The manipulation of characters rather than numbers, as occurs
in symbolic mathematics, text preparation, and finite-state automata simulation.
symbol table A list, kept by a language *translator, of *identifiers in the source program
and their properties. Before the translator processes any of the source program, the symbol
table contains a list of predeclared identifiers; for example, the value of π or the largest
integer that a system can hold might be associated with particular names by the translator.
As translation proceeds, the translator will insert and remove symbols from the table as
necessary. The properties of entries in the symbol table vary with both language and
implementation.
symmetric difference See SET DIFFERENCE.
symmetric function A *function f(x1,x2,…xn) whose value is unaltered by any
*permutation of its n variables. Such functions arise repeatedly in *switching theory.
symmetric group See PERMUTATION GROUP.
symmetric list Another name for doubly linked list.
symmetric matrix A square matrix A such that aij = aji for all aij in A. Thus a
symmetric matrix is equal to its *transpose.
symmetric order traversal (inorder traversal) A tour of the nodes of a binary tree
obtained by using the following recursive algorithm: visit in symmetric order the left
subtree of the root (if it exists); visit the root of the tree; visit in symmetric order the right
subtree of the root (if it exists). Compare POSTORDER TRAVERSAL, PREORDER TRAVERSAL.
symmetric relation A *relation R defined on a set S and having the property that
where x and y are arbitrary elements of S. The relation ‘is equal to’ defined on the integers
is symmetric. See also ANTISYMMETRIC RELATION, ASYMMETRIC RELATION.
symmetry group A *group consisting of all those *functions that transform a rigid
plane figure into itself; the *dyadic operation on the elements of the group is that of
*composition of functions. The larger and more complex a symmetry group the greater the
symmetry associated with the underlying geometric figure.
synchronization A relationship between *processes such that one process cannot
proceed beyond a particular point until another process has reached a particular point. For
example, when one process is writing data in a buffer to be read by another process, the
two processes must be synchronized so that the reading process does not attempt to read
the buffer beyond the point at which the writing process has written data in the buffer.
Synchronization can be achieved by using a *semaphore.
synchronizer A storage device with a wide range of operating speeds that is used in an
intermediate capacity when transferring data between devices that cannot operate at the
same rate.
synchronous Involving or requiring a form of computer control operation in which
sequential events take place at fixed times, usually determined by a *clock signal of fixed
frequency. This requires predetermination of the length of time required by each class/set
of events; it requires no acknowledgment that preceding events have been completed.
Compare ASYNCHRONOUS.
synchronous bus A bus used to interconnect devices that comprise a computer system
where the timing of transactions between devices is under the control of a synchronizing
clock signal. A device connected to a synchronous bus must guarantee to respond to a
command within a period set by the frequency of the clock signal or a transmission error
will occur. Such buses are usually employed in closely controlled processor backplane
environments where device characteristics and interdevice signal delays are known.
synchronous circuit An electronic logic circuit in which logic operations are
performed under the control of and hence in synchronism with an externally generated
clock signal.
synchronous concurrent algorithm (SCA) An algorithm that consists of a network
of processors computing and communicating in parallel and synchronized by means of a
global clock, or possibly a family of clocks. The algorithm operates continually in discrete
time, processing infinite *streams of input data; its behaviour can be represented by a
*stream transformer. SCAs are *deterministic, and can be considered as special types of
timed deterministic *dataflow algorithms. Hardware systems, such as systolic arrays or
microprocessors, are made from SCAs. Other examples of SCAs include certain neural
networks, cellular automata, spatially extended discrete-time dynamical systems, and
finite-element algorithms. Through the concept of an SCA, a wide variety of deterministic
parallel algorithms can be given a common mathematical theory and programming
methodology. The theory is based on the use of *equational specifications and *abstract
computability theory, and the programming tools on imperative languages using
*concurrent assignments.
synchronous counter A *counter consisting of an interconnected series of *flip-flops
in which all the flip-flop outputs change state at the same instant, normally on application
of a pulse at the counter input. These counters have advantages in speed over
asynchronous *ripple counters, in which the output must propagate along the chain of flipflops after the application of a pulse at the count input. See also CASCADABLE COUNTER,
SHIFT COUNTER.
synchronous digital hierarchy See SDH.
synchronous optical network See SONET.
synchronous TDM See TIME DIVISION MULTIPLEXING.
synchronous transmission A method of data transmission in which the time interval
between individual bits is accurately determined by some form of *clock signal. The clock
signal may either be generated locally at both the transmitter and the receiver, with a
separate channel that provides a means of maintaining accurate synchronization between
the two clocks, or the actual data signal may be encoded by the transmitter in such a way
that a clock signal can be recovered from it at the receiver. Synchronous transmission has
the advantage that it is not necessary to insert start and stop indications between
successive bytes, and is normally used for higher data rates. See also ASYNCHRONOUS
TRANSMISSION.
syndrome In coding theory, a symbol vector (ordered set of symbols) generated at an
intermediate stage of the decoding algorithm for an *error-correcting code. The syndrome
depends only on the error pattern and not on the transmitted codeword. A further stage of
the decoding algorithm will use the syndrome to correct the errors in the received
message. The details of how the syndrome is found and how it is used, and indeed whether
all the errors can be corrected, will depend on the particular error-correcting code that is
being employed. If no errors occurred, the syndrome will usually be the *zero word.
syntactic error See SYNTAX ERROR.
syntactic monoid (of a formal language L) The *semigroup of the *minimal machine
for L.
syntax (syntax rules) The rules defining the legal sequences of symbolic elements in a
language. The syntax rules define the form of the various constructs in the language, but
say nothing about the meaning of these constructs. Examples of constructs are:
expressions, procedures, and programs (in the case of programming languages) and terms,
well-formed formulas, and sentences (in the case of logical languages). See also BNF
EXTENDED BNF, PARSING.
syntax analysis Another name for parsing.
syntax analyser (parser) See PARSING.
syntax diagram A diagrammatic representation of the *syntax rules of a programming
language; a pictorial equivalent of *BNF.
syntax error A programming error in which the grammatical rules of the language are
broken. Syntax errors can be detected by the compiler, unlike *semantic errors, which do
not become apparent until run-time. See also ERROR DIAGNOSTICS.
syntax tree Another name for parse tree.
synthetic camera A type of *rendering technique that seeks to replicate the
characteristics—especially the distortions (e.g. out of focus, aberration)—of a real camera
or the human eye, rather than the perfectly sharp achromatic pictures usually produced by
computer graphics.
system Anything we choose to regard (a) as a whole and (b) as comprising a set of
related components. More formally a system S = (C, R), where C is the set of its
components and R is the set of relationships (or interfaces) that combine them into a
coherent whole. In computing the word is freely used to refer to all kinds of combinations
of hardware, software, data and other information, procedures, and human activities. An
airline reservation system, for instance, comprises all those things, distributed and
connected worldwide. At the other end of the spectrum, an *operating system just
comprises software components. See also ENGINEERING OF COMPUTER-BASED SYSTEMS,
SYSTEMS ENGINEERING.
system accounting Recording the use of system *resources. On a *multiprogramming
system the apportioning of the use of system resources among the active *processes can
only be done by the system. For resources such as processors, which are allocated in their
entirety to an individual process for a large number of short intervals of time, the
appropriate measure is found by recording the real time at the start and finish of each
interval to give the length of each interval; accumulating these through the life of the
process yields the processor time. for resources such as memory, in which a number of
subunits is allocated to the process (which will subsequently return them to the *resource
allocation mechanism), the usually accepted measure is to determine the elapsed time for
which the subunits are allocated to the process and to charge a ‘rent’ for each subunit. For
nonreusable resources the normal practice is to charge on a unit-cost basis for the amounts
used.
In a bureau, which relies for its revenue on real money charges made to clients, the
implementation of the accounting system is a nontrivial problem, especially in regard to
decisions concerning spoilt work, or delays experienced by one client because of other
clients’ activities.
system administrator Someone who administers a multiuser computer system,
performing tasks like setting up new *user accounts and updating *software.
systematic code An (n, k) *block code in which every codeword can be separated into
k information symbols and (n—k) check symbols. The information symbols are
identical with those of the source message before encoding. Thus the process of encoding
a systematic code involves the insertion of (n—k) check symbols into (i.e. among, before,
or, most usually, after) the information symbols. The insertion positions must be the same
for all the codewords in the code. Every *linear code can be arranged to be systematic.
system box See DESKTOP.
system building tools A suite of programs and utilities designed to simplify the
development and maintenance of a large system. Most system building tools allow the
user to specify the components that need to be brought together to generate a version of
the system, and maintain information that shows how the content of any one component
relies on other components. The tools also keep track of any alteration to any components.
If, following alterations to system components, a new version of the system is generated,
the tools will ensure that the latest version of each component is used and that the newly
generated version is internally consistent.
system bus Any *bus used to connect together system components such as processors,
memory systems, disk controllers, etc. See also VME BUS.
system crash See CRASH.
system definition The document(s) giving the most authoritative available description
of some existing or envisaged system. The term is usually used as a synonym for *system
requirements specification.
system design The activity of proceeding from an identified set of requirements for a
system to a design that meets those requirements. A distinction is sometimes drawn
between high-level or architectural design, which is concerned with the main
components of the system and their roles and interrelationships, and detailed design,
which is concerned with the internal structure and operation of individual components.
The term system design is sometimes used to cover just the high-level design activity. See
also REVIEW, SYSTEM REQUIREMENTS SPECIFICATION.
system development See SYSTEM LIFE CYCLE.
system dictionary See DATA DICTIONARY.
system generation The construction of a version of an operating system. Any large
system is almost invariably constructed from a number of separate modules of code, each
dealing with specific aspects of the system or with specific types of device. Where it is
known that a facility or device will not be supported, it is possible to omit the
corresponding modules and to generate a version of the system that contains only modules
that are known to be required. This is achieved during system generation.
systemic grammar A *grammar in which a set of categories and levels are used to
account for the formal aspects of language. The three levels are FORM (grammar and
lexis), SUBSTANCE (phonic and graphic material), and CONTENT (semantics). The four
fundamental categories are UNIT (e.g. a sentence), STRUCTURE (the syntagmatic
arrangement of patterns), CLASS, and SYSTEM.
system life cycle The phases of development through which a computer-based system
passes. Life cycle phases have been defined in very many different ways and in varying
degrees of detail. Most definitions, however, recognize broad phases such as initial
conception, requirements definition, outline design, detailed design, programming, testing,
implementation, maintenance, and modification. Some include additional activities such
as manual procedures design and staff training.
Most life cycle definitions arose as a result of analysis of the tasks of system
development, with the objective of making those tasks more amenable to traditional
techniques of management planning and control. In some cases, elaborate planning and
control systems have been designed on the basis of the life cycle analysis, with highly
formalized documentation and clearly defined managerial decision points.
system requirements specification A detailed statement of the effects that a system
is required to achieve. A good specification gives a complete statement of what the system
is to do, without making any commitment as to how the system is to do it: it constrains
only the externally observable behaviour and omits any design or implementation bias.
A system requirements specification is normally produced in response to a *user
requirements specification or other *expression of requirements, and is then used as the
basis for *system design. The system requirements specification typically differs from the
expression of requirements in both scope and precision: the latter may cover both the
envisaged system and the environment in which it will operate, but may leave many broad
concepts unrefined. Traditionally, system requirements specifications took the form of
natural-language documents. However, both the need for precision and problems with the
increasing size of specification documents have led to the development of more formal
notations. These are capable of being mathematically manipulated so as to show that the
system as designed and implemented actually meets the specification. This may be
especially important in connection with *safety-critical systems.
A system requirements specification may also be used in contract negotiations during
and after the purchase of the system, which must meet the specifications that the
contractor has agreed to accept. This is especially important where the purchaser sets out
the requirements in terms of a range of functions and performance levels that the
contractor commits to supplying and meeting, rather than as an inventory of components
(hardware and software) that the contractor undertakes to supply.
systems analysis The analysis of the role of a proposed system and the identification of
a set of requirements that the system should meet, and thus the starting point for *system
design. The term is most commonly used in the context of commercial programming,
where those involved in software development are often classed as either systems analysts
or programmers. The systems analysts are responsible for identifying a set of requirements
(i.e. systems analysis) and producing a design. The design is then passed to the
programmers, who are responsible for actual implementation of the system.
system security An (operating) system is responsible for controlling access to system
resources, which will include sensitive data. The system must therefore include a certain
amount of protection for such data, and must in turn control access to those parts of the
system that administer this protection. System security is concerned with all aspects of
these arrangements.
systems engineering A form of engineering that addresses systems at a high level of
abstraction prior to determining the particular engineering disciplines that will be
appropriate in satisfying the system’s requirements. This is a very wide topic, ranging
much wider than computer-based systems; it includes, for example, the study of social
systems, economic systems, and ecological systems. See also ENGINEERING OF
COMPUTER-BASED SYSTEMS.
systems house A term used rather loosely to describe a company that designs and
produces complete bespoke systems, containing both hardware and software. While some
of the components will be bought in, the use of the term implies that the company has a
serious capability in both hardware and software.
systems integrator A term that is similar to *systems house but implies less emphasis
on bespoke systems and more emphasis on putting together existing components.
system software See SYSTEMS SOFTWARE.
system specification See SYSTEM REQUIREMENTS SPECIFICATION.
systems programmer A person who specializes in systems programming and lowlevel *software, such as *operating systems, *compilers, *communication systems, and
*database management systems. Compare APPLICATIONS PROGRAMMER.
systems programming Work carried out by *systems programmers, i.e. the
production of systems software.
systems software (system software) The totality of software required to produce a
system acceptable to end users. See also SYSTEMS PROGRAMMING.
systems theory The study of *systems in themselves, usually to find characteristics
common to all systems or to classes of systems. Systems theorists may be most concerned
with the development of theory for its own sake (most often called general systems
theory), or they may be more concerned with the applications of systems ideas within
particular disciplines or problem areas in order to solve problems that are not amenable to
traditional ‘reductionist’ approaches. Systems theory has been called the study of
organized complexity.
There have been a number of attempts to categorize systems. Perhaps the simplest and
most useful is by P. Checkland, who proposes four categories: natural systems, designed
physical systems, designed abstract systems, and human activity systems. He also
proposes four concepts that are central to systems thinking:
the notion of whole entities which have properties as entities (emergent properties …); the
idea that the entities are themselves parts of larger similar entities, while possibly
containing smaller similar entities within themselves (hierarchy …); the idea that such
entities are characterized by processes which maintain the entity and its activity in being
(control …); and the idea that, whatever other processes are necessary in the entity, there
will certainly be processes in which information is communicated from one part to
another, at the very minimum this being entailed in the idea ‘control’.
system tables The data that collectively defines the status of all *resources and all
*processes within the system. Although such data may be represented as tables, it may be
more conveniently represented internally as linked lists with pointers back to associated
semaphore variables in some cases.
system testing See TESTING.
System V A version of *UNIX.
systolic array An extension of the *pipelining approach to processor design where a
number of processing elements, usually arranged as a one- or two-dimensional array, form
a compound processing unit capable of high throughput. The configuration may be
programmable to be optimal for a specific computing requirement and available memory
or I/O bandwidth. Such arrays communicate with memory or I/O only at their boundaries.
Data is ‘pulsed’ from the memory into processor(s) at an array boundary and then pulses
through the array, undergoing processing by each element, until it exits at another
boundary and is returned to memory. Each element of the array can contribute to the
overall processing required and hence a high data throughput is achievable. The name
derives from the systolic (pumping) action of the heart.
T 1. Symbol for tera-. 2. A dialect of Lisp, similar to *SCHEME.
tab 1. Short for (a) tabulate, i.e. to lay out data; (b) tabulation character, a control
character used when laying out data to control the movement of a print or display
mechanism. Most keyboards have a tab key, which may initiate the tabulation function or
may be used for other control purposes. 2. A feature of many graphical interfaces where
the user may select one of several optional screens by *clicking on the tab. The term
derives from card-indexes where a small extension of the card allows easy identification
of the required card.
table A collection of *records. Each record may store information associated with a key
by which specific records are found, or the records may be arranged in an *array so that
the index is the key. In commercial applications the word table is often used as a synonym
for matrix or array.
table-driven algorithm An algorithm that uses *table lookup.
table lookup (TLU) A fast method of transforming one set of data values into another.
The target data are stored in the form of a *table. In order to perform the transformation, a
source datum is used to index into or search the table of target data. The resulting target
datum is the result of the table lookup. See also HASHING.
tablet 1. (tablet computer) A portable personal computer that is operated using a
*touchscreen interface rather than a mouse and keyboard. Tablets generally provide an onscreen keyboard for typing, although some hybrid models also have a physical keyboard.
A typical tablet is about half the size of a *laptop computer. The first successful tablet was
Apple’s *iPad, launched in 2010; it remains the market leader. 2. Short for data tablet.
tabular documentation A method to assist with the *documentation of computing
systems using tables. For millennia tables have been used to store and display large
quantities of information. It is possible to develop the conception and theory of tables
beyond the usual idea of a *table with the needs of displaying formal information about
software and hardware.
tag 1. To mark in some distinctive fashion any node in a data structure that has been
traversed. Using this technique precautions can be taken against revisiting nodes, e.g. in a
circular list. 2. (tag field) A field that is used to discriminate between variants of the
same type. 3. A set of characters used to delineate certain types of text in a markup
language. For example, in *HTML bold text would normally be indicated by using the
tags <b> and </b>, as in ‘this word is <b>bold</b>’.
tagged architecture A computer architecture in which extra data bits are attached to
each word to denote the *data type, the function of the word, or both. Tagged architecture
can represent a powerful form of *memory protection, and has formed a foundation for
certain secure computer systems based on *hardware security.
tagged image file format See TIFF.
tail (of a list) 1. The last item in a *list. 2. The list remaining when the *head has been
removed.
tape Either *magnetic tape or *optical tape; *paper tape is now obsolete.
tape backup system (TBS) The software, tape drives, and media that form a system to
back up information held usually on disks. Backups are performed according to a number
of more or less complex regular schemes to ensure maximum possibility of restoration in
case of a breakdown of the primary data store. See also DUMP.
tape-bounded Turing machine See MULTITAPE TURING MACHINE.
tape cartridge Short for magnetic tape cartridge (generally).
tape deck Another name for tape transport. See MAGNETIC TAPE.
tape drive Another name for tape transport. See MAGNETIC TAPE.
tape format The format of information recorded on magnetic tape, allowing a system to
recognize, control, and verify the data. Tape format is defined at two levels.
The high-level format defines the data as it is presented to the magnetic tape
subsystem by the host computer. This data stream consists of user data and *labels,
divided into sections (usually corresponding to files) by *tape marks. The tape subsystem
need not distinguish between user data and labels, but it recognizes tape marks. The data
at this level may be divided into *blocks, usually of equal length—typically a few
kilobytes. This is done for physical convenience and has no logical significance. In some
tape subsystems the data is continuous at this level, and division into blocks is done within
the subsystem.
The low-level format defines what is actually recorded, as a pattern of reversals of
magnetism, on the tape. The subsystem divides the data into blocks if this is not already
done, and adds its own control information to each block and also at each end of the tape
and each file mark. All formats include a degree of redundancy so that errors can be
detected, and usually corrected, without reference to the host computer. In many formats
an interblock gap (an area with no reversals of magnetization, typically half an inch
long) is inserted between blocks so that the tape can, if necessary, be stopped and restarted
between one block and the next (but see streaming). Where different formats are permitted
on the same type of reel or cartridge, each format may include an identity burst or
other means at the beginning of the tape to allow the subsystem to recognize the format.
Open-reel tape has been widely used for data interchange, so there are only a few
accepted formats; all use ½ inch tape with nine tracks recorded in parallel. NRZ
(nonreturn to zero) has a density of 800 bits per inch (bpi) which, with typical block
lengths, allows about 20 megabytes of user data on a standard 2400 foot tape; it was
introduced in the 1950s and is now virtually obsolete. PE (phase encoded), introduced in
the 1960s, doubles this density and capacity. GCR (group code recording), introduced in
the 1970s, uses a format in which data is recoded to give more powerful error correction,
and packs 6250 data bits to the inch or typically 140 megabytes on a 2400 foot tape. All
these formats are covered by ISO standards.
*Cartridge tape was introduced after open-reel tape; it is used more for backup than for
interchange, so standards are less essential. There is therefore a much wider range of
formats. Some are defined as ISO standards, but others remain proprietary. Capacities
extend to tens of gigabytes per cartridge.
tape header A *header label written at the beginning of a volume of magnetic tape. See
also LABEL.
tape label See LABEL.
tape library 1. An area in which reels of magnetic tape are stored when not actually in
use on a tape transport. Each reel is normally stored in a protective case and is visibly
labelled, in addition to any *label that may be recorded on the tape. 2. An *automated tape
library.
tape mark A signal recorded on magnetic tape that does not represent data but is used to
delimit sections of data—usually individual files, hence the alternative term file mark.
The tape mark is written at the direction of the host system but its form is determined by
the magnetic tape subsystem in accordance with the standard for the relevant *tape format.
Most formats allow the tape mark to be recorded as a separate *block, but in formats that
provide for the insertion of block headers by the subsystem it is usual for the tape mark to
take the form of a flag in one of these headers.
If the subsystem encounters a tape mark during a read operation, the host system is
informed. In most magnetic tape subsystems there is a skip to tape mark (or tapemark search) command that causes the tape to be run to the next tape mark without
transferring any data to the host; sometimes there is also a multiple-skip command
containing a parameter n, which causes the tape to skip to the nth tape mark. Skip
operations are sometimes performed at a higher speed than that used for reading.
It is conventional to write a double tape mark after the last file in a volume.
tape marker See BOT MARKER, EOT MARKER.
tape transport (tape drive, tape unit, tape deck) A peripheral device that moves
magnetic tape past sensing and recording heads. See MAGNETIC TAPE.
tape unit Another name for tape transport. See MAGNETIC TAPE.
tar A contraction of tape archive. A UNIX command that can make a number of files into
a single archive file (with the extension ‘.tar’) or can extract files from an archive of this
type. The data in a tar file is not compressed.
Targa (TGA) An uncompressed *image file format for 24 bit colour images, defined by
Truevision Inc., that can easily be decoded. It has a random-access version. Colour is
specified by three independent colour tables for red, green, and blue.
target alphabet See CODE.
target computer See HOST COMPUTER.
task 1. Another name for process. 2. Another name for job.
When each job consists of only one process, the above difference is not significant. The
concurrent execution of a number of tasks is referred to as multitasking. See also
PARALLEL PROCESSING.
tautology A law of logic, in the form of a proposition, that describes a universal truth; no
matter what values are assigned to the variables in the proposition the result is always true.
An example from the *propositional calculus is
where ∨ and ∧ are the or and and operators and P′ is the negation of P. In the *truth
table for a tautology the final result column contains only the value true. If the final
column contains only the value false, then a contradiction has been identified.
TB (Tb) Symbols for terabyte. See BYTE, TERA.
TBS Abbrev. for tape backup system.
Tbyte (terabyte) See BYTE, TERA.
T-carrier A digital communications line for voice and Internet transmission, using
pulse-code modulation and time-division multiplexing.
Tcl (Tool command language) An *extensible *scripting language that can be
embedded in applications that are written in C.
TCP See TCP/IP.
TCP/IP Trademark (Transmission Control Protocol/Internet Protocol) The obligatory
standard to be used by any system connecting to the *Internet. The two *protocols were
originally developed on the DARPA net. They were devised to optimize the performance
of networks that are based on unreliable data-transmission systems operating at relatively
low data rates.
The Internet Protocol, IP, is the lower of the two protocols. It provides a
*connectionless *datagram service, and a managed address structure for data transmission.
In IP version 4 (IPv4), the dominant version on the Internet, an IP address is a 32-bit
number. The interpretation of these bits was formerly rigid and divided IP addresses into
four classes, A to D (see table). The first bits defined the class of the address; the next
group of bits defined the identity of the subnetwork attached to the Internet; the final
group defined the address of the host system within the subnetwork. Class A addresses
were for large subnetworks with many hosts, and classes B and C were for progressively
smaller networks with progressively fewer hosts; class D addresses were used for
*multicasting. This system has been superseded since 1993 by *Classless Inter-Domain
Routing.
The explosive growth of the Internet has resulted in the IPv4 32-bit address space
becoming restrictive. IP version 6 (IPv6) seeks to remedy this by using 128-bit IP
addresses, with 64 bits being used for both the network identity and the host address. IPv6
is gradually being adopted on the Internet and it is estimated that it will overtake IPv4
usage by 2018. IP allows a long datagram to be fragmented into numbered *packets,
which can then be transmitted and reassembled in their correct sequence at the destination
system. It is intended to be used in conjunction with the Transmission Control Protocol,
TCP.
TCP provides error-free delivery of arbitrarily long messages, known as segments,
with the data being released to the host system in the same order as the original
transmission. It achieves this by a ‘sliding window’ mechanism. As data are transmitted,
they are accompanied by a *checksum; at the receiving end the checksum is verified and
an acknowledgment is returned to the transmitter, which indicates the position of the last
data to be successfully received. The transmitter will not send data beyond a certain point,
determined by the size of the window, i.e. the gap between the last data to be sent and the
last data for which an acknowledgment has been received. If the checksum fails at any
point, the transmitter will retransmit data from the point immediately following the latest
acknowledgment of correct receipt.
TCP/IP. Summary of Internet address classes
http://tools.ietf.org/html/rfc793
• The TCP (version 4) specification
http://tools.ietf.org/html/rfc791
• The IP (version 4) specification
http://tools.ietf.org/html/rfc2460
• The IP (version 6) specification
t distribution See STUDENT’S T DISTRIBUTION.
TDM Abbrev. for time division multiplexing.
TDR Abbrev. for time domain reflectometer.
TDS (tabular data stream) A data format *protocol that refers to messages between
an *SQL client and an SQL server.
tear-off menu A *pull-down menu that can be moved from the place where it was first
displayed to another part of the screen that may be more convenient, and from where any
of its options may be selected at a later time.
tebi- See BINARY PREFIXES.
telebanking Remote access to banking services using computers and
telecommunication.
telecommuting Another name for teleworking.
teleconferencing A computer-based system enabling users to participate in an activity,
such as the management of a complex project, despite being separated in space and/or
time. Users will typically be provided with access to a computer terminal, which will
allow them to communicate with other members of their team, often but not necessarily
simultaneously. Data communication lines are used to transmit the conference information
between participants. The system is controlled by a ‘manager’ whose function is to
organize the participants and allow them access to the conference and to transmit their
inputs to other members.
Some teleconferencing systems enable conference participants to ‘see’ each other (see
VIDEOCONFERENCING), but other systems use very simple terminals and can only
communicate using the written word. A conference log will be maintained by the system
to keep a record of all activity in the conference, and can be displayed for reference by the
participants.
teleprinter See TELETYPEWRITER.
teleshopping Remote access to shops, stores, etc., using computers and
telecommunication.
telesoftware Software distributed from supplier to customer by *downloading.
teletext A system for one-way broadcast transmission of information, primarily in text
form but with primitive graphics capability, using spare television channel capacity and
adapted domestic TV receivers. The growth in Internet access and the rollout of digital
television are leading to the phasing out of teletext services. Compare VIDEOTEX.
teletypewriter (typewriter terminal, teleprinter) An obsolete device similar to an
electric typewriter but with a signal interface by means of which it could communicate
with a computer: it could receive messages for printing or could send messages generated
on its keyboard.
teleworking (telecommuting) Working (usually with information) remote from the
office, using computers and telecommunication.
TELNET (teletype network) The protocol developed for the *ARPANET to allow
users on one host computer to connect to the time-sharing resources of another host. The
TELNET protocol specifies a standard terminal type, the network virtual terminal (NVT),
including its character set (a modified form of ASCII) and standard control sequences for
terminal functions such as ‘move to the next line’. Standard control sequences are also
defined for host functions such as ‘interrupt process’. It is the responsibility of the
programs at each end of the TELNET connection to perform a suitable mapping between
the NVT’s character set and control functions, and the conventions of the local system.
Many of the parameters of the NVT can be modified through option negotiation, in which
both ends of the TELNET connection must agree to a proposed change before it can take
place.
The name TELNET is also used for similar protocols in networks other than the
ARPANET.
template 1. A pattern that specifies a structure—i.e. a relationship between parts of a
compound data object—from which instances may be made. The term is a convenient
means of differentiating the structure specification from the declaration of individual
instances of the structure. 2. See POLYMORPHISM.
temporal cohesion See COHESION.
temporal logic A *modal logic in which the modal operators express notions of time
such as ‘always’, ‘sometimes’, ‘strong next’, ‘weak next’, ‘next-time’, ‘last-time’,
‘interval chop’, ‘since’, ‘until’, and ‘while’. The logical study of reasoning about time has
provided new insights and practical techniques for handling time in computations.
ten’s complement See RADIX COMPLEMENT.
ter See CCITT.
tera- (symbol: T) A prefix indicating a multiple of one million million, 1012, as in
terahertz and teravolt. When the binary number system is involved in a structure or
process (as in semiconductor RAM or ROM), the prefix indicates a multiple of 240, i.e.
as in terabyte or terabit. The context usually clarifies which meaning is intended. See also
BINARY PREFIXES.
term An expression formed from symbols for functions, constants, and variables. An
example is
Terms are defined recursively as follows: a term is either a variable symbol, a constant
symbol, or else has the form ϕ(τ1,…,τk), where ϕ is a function symbol and each of τ1,…,τk
is itself a term. The example above thus has the overall form f(τ1,τ2): in this case ϕ = f and
k = 2. Another constraint is that different occurrences of the same symbol ϕ cannot occur
with different values of k, i.e. each ϕ must have a fixed arity (number of arguments).
Thus
would not be a term since the first f has arity 2 while the second has arity 3; neither would
since the first h has arity 1 while the second has arity 0.
Terms are often built using *signatures. A Σ-term is a term in which each constant and
function symbol used is in a signature Σ, and has the arity associated with it by Σ and, if Σ
is a many-sorted *signature, all the sorts match properly. A Σ-term is also called a term
over signature Σ. Often a Σ-term is allowed to contain variables (of arity 0) in addition
to symbols in Σ. Terms containing variables are called open terms; terms containing
only symbols of the signature are called closed or ground terms. Terms can also be
viewed as *trees (see TREE LANGUAGE). Terms (whether as expressions or as trees) are
important in the construction of virtually all syntactic concepts. Terms as defined here are
sometimes called first-order terms, to distinguish them from the higher-order
terms (such as those involved in *lambda calculus). See also EQUATION, INITIAL
ALGEBRA, PREDICATE CALCULUS.
term algebra See INITIAL ALGEBRA.
terminal 1. A data input and/or output device that is connected to a controlling processor
to which it is subservient and usually remote. There is a very wide range of terminal types.
The *VDU is frequently used as a terminal by which a user can input queries or
instructions and receive instructions. The information may be in the form of text or it may
be mainly graphical. Terminals designed for a particular environment and business activity
come under a general heading of *application terminals. If the terminal has a built-in
capability to store and manipulate data it is classed as an *intelligent terminal; without this
capability terminals are classed as dumb. 2. (terminal symbol) See GRAMMAR.
terminal controller A device capable of controlling the transfer of data, in both
directions, between a *server and a number of terminals. In this context terminal usually
means a graphics device of rather limited flexibility.
terminal node Another name for leaf node.
terminal server A system capable of supporting the data-processing requirements of
terminals. In this context terminal usually means a graphics device of rather limited
flexibility. See SERVER, ENTERPRISE SERVER.
terminal symbol See GRAMMAR.
termination 1. The end of execution of a *process. A process that reaches a successful
conclusion terminates normally by issuing a suitable supervisor call to the operating
system. See also ABNORMAL TERMINATION. 2. (of an Ethernet) The device attached to the
end of an *Ethernet segment that suppresses any reflection from the end of the cable. The
terminator is a simple resistor, whose resistance is equal to the characteristic impedance of
the cable to which it is attached, standardized as being 50 ohms. The termination totally
absorbs any incoming signal, and eliminates reflections back into the segment. See also
BUS TERMINATOR.
termination, proof of See PROGRAM CORRECTNESS PROOF.
terminator 1. A symbol that marks the end of a statement in a programming language
(frequently a semicolon). 2. Another name for rogue value.
term language Another name for tree language.
term rewriting system (TRS) A formal system for manipulating *terms over a
*signature by means of rules. A set R of rules (each a rewrite rule) creates an *abstract
reduction system →R on the algebra T(Σ,X) of all terms over signature Σ and variables X.
Usually, the rules are a set E of *equations that determine a reduction system →E using
rewrites based on equational logic.
Let E be a set of equations such that, for each t=t′ ∈ E, the left-hand side t is not a
variable. The pair (Σ,E) is called an equational TRS. The equations of E are used in
derivations of terms where the reduction t →E t′ requires substitutions to be made in some
equation e ∈ E and the left-hand side of e is replaced by the right-hand side of e in t to
obtain t′.
The first set of properties of a term rewriting system (Σ,E) is now obtained from the
properties of abstract reduction systems. The following are examples.
(1) The term rewriting system (Σ,E) is complete if the reduction system →R on T(Σ) is
Church-Rosser and strongly terminating.
(2) Let ≡E be the smallest congruence containing →E and T(Σ,E) be the factor algebra
T(Σ)|≡E. Then T(Σ,E) is the initial algebra of Alg(Σ,E). If (Σ,E) is a finite equational
TRS specification that is complete, then T(Σ,E) is a *computable algebra.
See also ORTHOGONAL TERM REWRITING SYSTEM.
ternary logic See MULTIVALUED LOGIC.
ternary selector gate (T-gate) A *combinational ternary logic gate that is important as
a building block in the synthesis of ternary logic circuits (see MULTIVALUED LOGIC). A Tgate has four inputs
and one output {t}, all of which can take values represented by elements of the set {0,1,2}.
The function of the T-gate is given by t = as. It thus acts as a ternary selector, the choice
from
being selected by the value taken by the s input.
ternary threshold gate (S-gate) A *combinational ternary logic gate that is important
as a building block in the synthesis of ternary logic circuits (see MULTIVALUED LOGIC). An
S-gate may have any number of inputs {ai} and one output {s}, all of which can take
values represented by elements of the set {0,1,2}. The function of the S-gate is given by
The reason for the name S-gate is because the French for threshold is seuil. The S-gate
should not be confused with the *ternary selector gate (T-gate). More complicated
versions of the S-gate have been defined in various ways. See also THRESHOLD ELEMENT.
tessellation (tiling) A complete covering of the Euclidean plane by nonoverlapping
regions.
test and set A single indivisible instruction that is capable of testing the value of the
contents of a register and altering them. The instruction is used to implement more
powerful indivisible operations (such as *lock, *unlock, or *semaphore operations) when
the process executing the operation is capable of being interrupted and where the servicing
of the interrupt may cause another process to be restarted.
test bed Any system whose primary purpose is to provide a framework within which
other systems can be tested. Test beds are usually tailored to a specific programming
language and implementation technique, and often to a specific application. Typically a
test bed provides some means of simulating the environment of the system under test, of
test-data generation and presentation, and of recording test results.
test case In software *testing, a script that specifies the test data, execution conditions
(*preconditions and *postconditions), and the precise results that will show that some
performance requirement is being met. A collection of test cases is known as a test suite.
test coverage An estimate of the thoroughness of *testing of a program, usually
measured as the proportion of the total actually tested by one or more of *path testing,
*branch testing, *statement testing.
test data See TESTING.
test-data generator Any means for the automatic or semiautomatic production of data
for use in the *testing of some system. Typically both valid and invalid input data for the
system under test will be generated in order to test responses to both valid and erroneous
inputs. Some generators effectively produce a pseudorandom data stream, recognizing
only constraints on the formats of the data. More advanced generators might attempt to
produce data that will give good test coverage.
testing (dynamic testing) Any activity that checks by means of actual execution whether
a system or component behaves in the desired manner. This is achieved by one or more
test runs in which the system is supplied with input data, known under these
circumstances as test data, and the system’s responses are recorded for analysis.
Tests can be categorized according to the conditions under which they are performed
and the purposes they serve. Module testing (or unit testing) is performed on
individual components in isolation. At the time that components are brought together to
form complete subsystems or systems, integration testing is performed in order to
check that the components operate together correctly. Integration testing typically pays
particular attention to the interfaces between components. By contrast, system testing
normally treats the complete system as a ‘black box’ and investigates its behaviour
without concern for individual components or internal interfaces. Acceptance testing
is normally under the control of the procurers of the system, and is designed to ensure that
the system is suitable for operational use.
See also BETA TEST, BLACK-BOX TESTING, BRANCH TESTING, GLASS-BOX TESTING,
PATH TESTING, PERFORMANCE TESTING, REGRESSION TESTING, STATEMENT TESTING.
Compare STATIC ANALYSIS.
test oracle See ORACLE-BASED TESTING.
test run See TESTING.
test suite See TEST CASE.
TeX (strictly TEX) (pronounced tek: the letters are Greek) A computer typesetting
system designed by Donald E. *Knuth that aims to produce results as good as ‘hot metal’
setting when using a modern raster-image laser typesetter. Knuth was particularly
concerned to produce high-quality setting of mathematical material, but TeX is equally
suited to textual material. The system includes many innovative techniques, particularly its
algorithm for breaking paragraphs into lines in an optimal manner. The source code for
TeX is in the public domain, and as a result it is widely used in academic institutions
throughout the world.
The input language of TeX provides a very low-level control over the placing of marks
on the printed page, and it is generally used via an intermediary macro language. The
‘Plain TeX’ macros provided as part of the system are still at quite a low level, and many
users employ higher-level packages such as AMS-TeX and *LaTeX.
The output from TeX is in a device-independent form, and separate drivers are required
to convert this into the appropriate code for a particular printer. While output normally
goes to a laser printer or phototypesetter, it is possible to write a driver for a dot-matrix
printer operating in graphics mode. Knuth designed a whole new family of typefaces
called Computer Modern Roman to go with TeX using his *METAFONT system, but
these do not reproduce well at low resolutions; many users therefore prefer to use
*PostScript fonts, using a conversion program to translate the device-independent output
from TeX into PostScript or PDF code.
Texas Instruments A large US electronics corporation. Founded in 1930 to produce
equipment for geophysical investigations, it went on to produce many important
innovations in the electronics field.
text box A box into which the user may key text in a graphical user interface.
text editor A program used specifically for entry and modification of data that is in a
textual format. Such data may be a program written in a high-level language, a report or
book written in a natural language, or numerical input for, say, a statistical program.
Text editors form an essential part of the user interface of all interactive systems. They
may be line-oriented, where the text is considered to be a series of lines separated by
end-of-line markers, character-oriented, where the text is considered to be a stream of
characters with any end-of-line or page markers counting as characters, or screen
editors. With screen editors, the display screen forms a movable *window into the text,
within which the cursor may be positioned at points where insertions, deletions, and other
editing functions are to be performed.
There is a considerable overlap in function between text editors and *word processing
systems.
text formatter See FORMATTER.
text mode (character mode) A way of using a computer display such that the basic unit
is the character cell—the space taken up by a single character. The only images that
can be displayed are those that can be built from character-sized blocks; surprisingly
complex images can however be built in text mode. A display device can be operated in a
number of different text modes. The coarsest is probably the 40 characters by 24 lines
used in some *teletext systems, while some text modes have 132 characters per line. Each
character has attributes such as colour, boldface type, blink, underline, or reverse video.
Compare GRAPHICS MODE.
text processing All forms of text manipulation including word processing.
text-to-speech (TTS) The method of converting digitized text to a speech waveform.
See also SPEECH SYNTHESIS.
texture mapping (decal) A method of changing the surface representation of an object
to give the impression that the surface is patterned in a defined way without explicitly
modelling it as part of the surface geometry. It allows complex surface rendering without
the enormous computation needed if the geometric surface was defined and then rendered.
The texture may determine or modify any surface characteristic, including colour,
reflectivity, transparency, or even surface normals.
texture placement The deformations to be applied to a texture before it is applied to
the geometry of an object.
texturing The simulation of uneven surfaces and unevenly coloured surfaces, both
regular and irregular, such as those of bricks or stone. This is usually done by techniques
that do not require modification of the underlying model.
TFEL Acronym for thin-film electroluminescent display.
T flip-flop A clocked *flip-flop whose output ‘toggles’, i.e. changes to the
complementary logic state, on every active transition of the clock signal (see CLOCK). The
device acts as a divide-by-two *counter since two active transitions of the clock signal
generate one active transition of the output. It can be considered as being equivalent to a
*JK flip-flop whose J and K inputs are held at logic 1.
Tflops (TFLOPS, teraflops) A million million floating-point operations per second. See
FLOPS.
TFT Abbrev. for thin-film transistor.
TGA See TARGA.
T-gate Another name for ternary selector gate.
The Open Group An industry association dedicated to ‘boundaryless information
flow.’ In practice this means the development and promulgation of open (i.e.
nonproprietary) standards and the certification of products as complying with them. It also
controls the *UNIX trademark. Its principal members are Capgemini, *EDS, *HewlettPackard, *IBM, NEC, Philips, and *Sun Microsystems Inc.; total membership exceeds
250.
http://www.opengroup.org/
• The Open Group home page
theorem proving The formal method of providing a proof in *symbolic logic. It uses
deductive *inference. Each step in the proof will (a) introduce a premise or axiom; (b)
provide a statement that is a natural consequence of previously established results using
only legitimate rules of inference.
Such formal proofs are often long and tedious. Sophisticated programs known as
theorem provers can be used to automate much of the process. See also MECHANICAL
VERIFIER.
theory In logic, a set of sentences that are true under a particular interpretation.
theory of types See HIERARCHY OF FUNCTIONS.
thermal inkjet A type of *inkjet printer.
thermal printer A type of printer in which the image is produced by localized heating
of paper that has a very thin thermosensitive coating containing two separate and
colourless components. When heated the colour former melts and combines with the
previously colourless dyestuff to make a visible mark. Various colours are possible but
blue and black are the most common. Blue toning paper allows higher print speeds but the
image fades with time and is not compatible with some photocopiers. Black toning paper
requires higher temperatures and pressure at the print head—thus causing greater wear—
but fades less quickly and has a longer shelf life. Thermal printers are mainly used in
*point-of-sale systems and similar applications. See also ELECTROTHERMAL PRINTER,
THERMAL TRANSFER PRINTER.
thermal transfer printer A printer in which thermoplastic ink is transferred to paper
from a donor roll or thin backing material by localized heating. This type of printer,
introduced in 1982, is very quiet in operation, produces a good contrast image, and is
mechanically simple in design. The print head is similar to that used in the earlier
*thermal printers that use sensitized paper, but the heating elements are usually smaller
and thus allow the formation of a better character shape.
Thermal transfer printers are capable of producing very good colour images but the cost
has largely caused them to be replaced by colour *inkjet or *laser printers. They are now
used for such specialized applications as barcode or plastic labels.
thesaurus A feature of word processing systems whereby synonyms and antonyms may
be displayed on screen and incorporated into the text. *Full text retrieval systems may
have thesaurus searching as an option whereby terms similar in meaning to those
sought will also be located. A thesaurus can be used to define a set of allowed terms for
use as keywords during the entry of data into text retrieval systems.
thick Ethernet Standard *thick wire cabling used for Ethernet network connections.
thick wire One of the two forms of standard *coaxial cable specified for use as the
physical medium for *Ethernet (or CSMA/CD) network connections; the other form is
thin wire. The original CSMA/CD standard specified a coaxial cable with an overall
diameter of about 10 mm; this allowed data to be presented as a baseband signal at 10
Mbps, with a range of 500 yards, and is referred to as thick wire or 10base5 cable. A
subsequent standard specified a coaxial cable with an overall diameter of about 5 mm; this
allowed data to be presented as a baseband signal again at 10 Mbps, but with a reduced
range of 200 yards, and is referred to as thin wire or 10base2 cable. The outer layer of
insulator in thick Ethernet cabling is usually made of a yellow plastic while in thin
Ethernet cabling it is usually made of black plastic, and the two cables are sometimes
referred to as yellow and black Ethernet respectively.
thin client A workstation on a network that does not have a local hard disk, but is able to
download applications and data from a central server. In networked client/server systems it
may be convenient to centralize data storage and software distribution. The workstations
may have considerable processing power and be able to run complex software without
invoking local disk access.
thin Ethernet See 10 BASE 2.
thin-film electroluminescent display (TFEL) An *electroluminescent display that
has an active matrix associated with it using thin-film transistor technology to ensure no
sneak currents cause neighbouring pixels to be partially illuminated.
thin-film transistor (TFT) A transistor fabricated from an extremely thin film of
amorphous (noncrystalline) silicon, or sometimes from a more responsive material. TFT
technology is employed, for example, in active-matrix *LCDs where the thin-film
circuitry is deposited on a glass substrate in the screen and is used to control individual
pixels. Monitors based on this technology have largely replaced *cathode-ray tube
monitors in recent years.
thin wire See THICK WIRE.
third generation of computers. Machines whose design was initiated after 1960
(approximately). Probably the most significant criterion of difference between *second
generation and third generations lies in the concept of computer *architecture. Generally,
second generation machines were limited to what the engineers could put together and
make work. Advances in electronic technology—the development of *integrated circuits
and the like—made it possible for designers to design an architecture to suit the
requirements of the tasks envisaged for the machines and the programmers who were
going to work them. With the development of the experimental machines—the IBM
*Stretch and the Manchester University *Atlas—the concept of computer architecture
became a reality. Comprehensive *operating systems became, more or less, part of the
machines. *Multiprogramming was facilitated and much of the task of control of the
memory and I/O and other resources became vested in the operating system or the
machine itself.
third normal form See NORMAL FORMS.
third-party maintenance See TPM.
Thompson, Ken (Kenneth Lane Thompson) (1943– ) US computer scientist.
Thompson graduated from the University of California, Berkeley, in electrical engineering
and computer science. While working at the *Bell Telephone Laboratories, in 1969 he and
Dennis *Ritchie played a leading role in the creation of the *UNIX operating system.
Thompson retired from Bell Laboratories in 2000 and since 2006 has worked for *Google
as a Distinguished Engineer.
thrashing A phenomenon that may arise in *paging or other forms of *virtual memory
system. If the page-turning rate for a paging system becomes high, usually because the
amount of real memory available for holding pages is small compared with the total
*working set of all the *processes currently active, then each process will find itself in a
situation in which, on attempting to reference a page, the appropriate page is not in
memory. In trying to find space to hold the required page, the system is likely to move out
onto backing store a page that will very shortly be required by some other process. As a
consequence the paging rate rises to very high levels, the fraction of CPU cycles absorbed
in managing page-turning overheads becomes very high, processes become blocked as
they wait for page transfers to complete, and system throughput falls sharply.
One method by which thrashing may be alleviated is by an increase in the bandwidth
between main memory and backing store, i.e. by providing sufficient interchange capacity
to allow the thrashing to take place without inducing unduly long waits for page transfers.
A more effective cure is to reduce the ratio between the total working-set size and the
amount of space available for holding the active pages, thus increasing the hit rate on
pages in memory, either by reducing the size of the working set or by increasing the
amount of memory on the system.
threaded list A list in which additional linkage structures, called threads, have been
added to provide for traversals in special orders. This permits bounded workspace, i.e.
read-only traversals along the direction provided by the threads. It does presuppose that
the list and any sublists are not recursive and further that no sublist is shared.
threading 1. A programming technique used in some code generators in which the
‘code’ consists of a sequence of entry points of routines. The threaded code is interpreted
by executing an unconditional branch to the destination indicated by a word of the code;
on completion the routine thus activated terminates by again executing an unconditional
branch to the entry point indicated by the next code word. See also MULTITHREADING,
SINGLE THREADING. 2. A *concurrent programming technique used where an operating
system *process permits concurrent threads of execution, i.e. sequences of actions that
share the process context and can be scheduled by the operating system.
threat Any action intended to breach the *security of information stored in a system by
(a) gaining unauthorized access to that information usually without alerting the authorized
user, (b) *denial of service to the authorized user, (c) *spoofing, which aims to confuse by
introducing false information, usually as to the identity of the user. Some threats are with
premeditated malicious intent but others are opportunistic or occur during a *crash. See
also VULNERABILITY.
three-address instruction See INSTRUCTION FORMAT. See also MULTIPLE-ADDRESS
MACHINE.
three-dimensional array See ARRAY.
three-state output Another name for tri-state output.
three-term control (3-term control) See PID CONTROLLER.
threshold element (threshold gate) A *logic element whose output is determined by
comparing a weighted sum of inputs with a predetermined/prescribed threshold value. If
the threshold is exceeded, the output is a logic 1; if not, the output is logic 0. If the number
of inputs is odd, if the weights are all equal, and the threshold is equal to half of the
number of inputs, then the threshold element behaves as a *majority element.
A system of threshold elements is described by or as threshold logic. See also
TERNARY THRESHOLD GATE.
throughput A figure-of-merit for a computer system in which some description of
operating rate such as instructions per minute, jobs per day, etc., is used. It is a measure of
how much work gets done in a given time interval. See also BANDWIDTH, LATENCY.
Thue-system A *semi-Thue system in which, for each production l → r, the reverse
production r → l is also present (as in the first example under semi-Thue system). Clearly
then
thumb drive See USB DRIVE.
thumbnail A small (lower resolution) reproduction of an image or page, used as a link
to the image or page in a website or electronic document. Thumbnails are used particularly
for cataloguing photographs.
Thunderbolt A connector produced collaboratively by Intel and Apple in 2011 to
connect peripheral devices to computers. It uses the Mini *Display Port (MDP) connector
and combines it with the *PCI Express standard.
thunk 1. A software mechanism that allows use of both 16-bit and 32-bit *DLLs in an
operating system. 2. An expression paired with an environment giving values to its
variables, as used in programming languages that support *call by name.
Tianhe-2 In 2014, the world’s fastest *supercomputer; it is situated at the National Super
Computer Centre in China and was manufactured by the National University of Defence
Technology. The first supercomputer to have more than 1 million cores (3 120 000 Intel
Xeon E-5 processors), it can reach a theoretical peak speed of 54 902 *teraflops, has 1024
TB of memory, and consumes nearly 18 MW of power. Its closest rival at the time of
writing is the Titan Cray XK7, with 560 640 cores.
TIFF (tagged image file format) An *image file format developed by a set of
companies chaired by Aldus. The specification is now controlled by Adobe Systems Inc. It
is widely used in the desktop publishing industry for representing colour or grey-scale
pictures.
tile To arrange open *windows on a display such that no window overlaps any other
window. Conversely when the windows are arranged in an echelon one on top of the other
such that each one reveals a little of the one beneath it, they are said to be cascaded.
tiling See TESSELLATION.
tiling structure See ITERATED FUNCTION SYSTEM.
time-bounded Turing machine See MULTITAPE TURING MACHINE.
time complexity See COMPLEXITY MEASURE, P=NP QUESTION.
time division multiplexing (TDM) A method of sharing a transmission channel
among multiple sources by allocating specific time slots to each source. Both synchronous
and asynchronous TDM is used.
Synchronous TDM does not require identity bits to be included in a message since the
receiving device knows which device is transmitting at all times. The two main methods
used in synchronous TDM to identify when a device’s time slot occurs are *polling and
*clocking. Polling requires a central device to interrogate each sending device when its
time slot occurs. Clocking requires each device to have a synchronized clock and a
prearranged sending sequence known to all devices. Polling and clocking waste time slots
if a device has no data to send. More refined methods require devices to reserve their time
slots ahead of time or allow devices to use time slots of other devices if they were unused
on the previous cycle.
Asynchronous TDM allows devices to send data as it is ready, without a prearranged
ordering. Data must carry with it the identity of the sending device. Since devices may
send data at the same time, collisions may occur, making the messages unreadable. Many
networks that utilize asynchronous TDM use *CSMA/CD (carrier sense multiple access
with collision detection) to sense when messages have collided and must be retransmitted.
TDM is used in *baseband networking, and may also be used on channels of a
*broadband networking system.
See also FREQUENCY DIVISION MULTIPLEXING, MULTIPLEXING.
time division switch An all-electronic switching system based on *time division
multiplexing (TDM) principles: an input digitized signal from a source is connected to an
output trunk by assigning a group of bits from the input data stream to a time slot in a
high-speed TDM output data stream. Time-division switches are commonly also used as
tandem switches where time slots from an input TDM trunk are selectively connected to
time slots in an output TDM trunk.
time domain A term used to refer to a situation in which the amplitude of a *signal
varies with time. A signal would be viewed in the time domain by using an oscilloscope.
See also SPACE DOMAIN.
time domain reflectometer (TDR) A system used in the characterization of cables
(or PCB tracks) employed as transmission lines. A very short pulse (≅100 picoseconds) is
launched into the cable at one end and the reflections of it are measured to obtain the
position and impedance of any discontinuities along the length of the cable. The pulse
length/edge speed are chosen to suit the type of cable and expected attenuation. Pulses as
short as 100 picoseconds are used for short transmission lines carrying fast signals.
time-of-day clock A digital device that provides time-of-day information. It is typically
used as a means of scheduling control applications or data collection activities.
timeout A condition that occurs when a process which is waiting for either an external
event or the expiry of a preset time interval reaches the end of the time interval before the
external event is detected. For example, if the process has sent a message and no
acknowledgment has been detected at the end of the preset time period, then the process
may take appropriate action, such as retransmitting the message.
The word is also used as a verb.
time quantization (sampling) See DISCRETE AND CONTINUOUS SYSTEMS,
QUANTIZATION.
timer clock A timing device that can generate a *timeout signal after a fixed period of
time. These devices are often made programmable, i.e. presetable, so that various timing
durations can be obtained. In addition the timeout signal may be generated continuously,
i.e. after every timing period, or on a one-shot basis.
time series A set of observations ordered in time and usually equally spaced; each
observation may be related in some way to its predecessors. Time-series problems arise in
economics, commerce, industry, meteorology, demography, or any fields in which the
same measurements are regularly recorded.
Time-series analysis is based on models of the variability of observations in a time
series, by postulating trends, cyclic effects, and short-term relationships, with a view to
understanding the causes of variation and to improving forecasting (see also
PERIODOGRAM).
Autoregression is the use of *regression analysis to relate observations to their
predecessors. Moving-average methods use the means of neighbouring observations
to reveal underlying trends. Autoregression and moving averages are combined in
ARMA (or Box-Jenkins) forecasting techniques.
Cyclic influences may be of known period (months in a year or days in a week) and
data may be seasonally adjusted on the basis of long-term means. Cyclic influences of
unknown period may be studied by spectral analysis.
Analogous techniques may be used for data regularly ordered in space rather than time.
time sharing A technique, first advocated by Christopher Strachey, for sharing the time
of a computer among several jobs, switching between them so rapidly that each job
appears to have the computer to itself. See also MULTIACCESS SYSTEM.
time slicing Process scheduling in which a *process is allowed to run for a predefined
period of time, now called a *quantum, before rescheduling. See also SCHEDULING
ALGORITHM.
timestamp The time and date of an operation or event when automatically added to a
screen display, log file, or output file of a computer procedure. It is a valuable aid to the
tracking down of errors and can be used as part of an auditing process. The time and date
are derived from the computer’s internal *real-time clock.
timing analysis The use of structural information of a program and a knowledge of the
processor instruction or module execution times to synthesize the temporal behaviour of a
software system. For sequential systems this is a simple analysis. For highly concurrent
systems the use of simulation techniques or queuing models may be necessary, and system
performance/time response becomes stochastic rather than deterministic. See also
PERFORMANCE TESTING.
timing diagram A graphical description of the operation of a *sequential circuit; the
state(s) of all the relevant variables (inputs, internal memory, and outputs) are shown as
functions along the time dimension.
tint fill See SOFT FILL.
TIP (terminal interface processor) A specially configured IMP that was the
ARPANET equivalent of a *PAD.
tip node Another name for leaf node.
Tk A toolkit of windowing functions added to *Tcl that simplifies the production of X
Window system interfaces to applications.
T2L See TTL.
TLB Abbrev. for translation look-aside buffer.
TLU Abbrev. for table lookup.
TM Abbrev. for Turing machine.
toggle 1. Anything that can be set to one of two states. It usually conveys meaning, as in
‘printer on/printer off’, or at a lower level ‘direct address/indirect address’, or perhaps in a
word-processing system ‘bold on/bold off’. 2. To change the state of a toggle.
toggling speed Another name for switching speed.
token 1. One of the meaningful units (names, constants, reserved words, etc.) in the input
to a compiler. The *lexical analyser breaks up the input, which is a stream of characters,
into a sequence of tokens. 2. A unique sequence of bits granting send permission on a
network. See TOKEN BUS, TOKEN RING. 3. See PETRI NET. 4. (security token) A device
that, employed together with something that a user knows (e.g. a password), will enable
authorized access to a computer system or network. The device may be physical, in which
case it is a hard token (e.g. a *smart card); or it may be logical, in which case it is a
soft token.
token bus A form of network (usually a *local area network) in which access to the
transmission medium is controlled by a *token. The network stations (nodes) are
interconnected by a *bus, i.e. signals are placed on the transmission medium by one
station and can be read by all the other stations. If the signal is a token, indicating that the
station that was last transmitting has now finished, the token is passed from station to
station in a strict sequence. In a *token ring this sequence is determined by the order in
which stations are physically connected to the transmission medium. A station wishing to
transmit will start to do so by removing the token from the bus and replacing it with the
data to be transmitted; when transmission is complete, the transmitting station will
reinitiate the token passing process.
A token bus system has the advantage that the priority of stations can be redefined by
redefining the order in which stations are permitted to acquire the token.
token ring A *ring network architecture configured on the basis that each station (node)
on the ring awaits the arrival of a *token from the adjacent upstream node, indicating that
it is allowed to send information toward the downstream node. The network is configured
in a manner that ensures that only a single token is present on the ring at one time. When a
sending node intercepts the token, it first sends its message to the downstream node
followed by the token, which is then passed to each succeeding node until it is again
intercepted by a node with a message awaiting transmission. Token rings are defined by
ISO standard 8802.5. Popular in the 1980s, they have since lost out in the marketplace to
*Ethernet.
tolerable risk A level of *risk deemed acceptable by society in order that some
particular benefit or functionality can be obtained, but in the knowledge that the risk has
been evaluated and is being managed.
toner Powdered ink used in laser printers.
toner cartridge A replaceable cartridge containing toner powder and often the photosensitive drum on which a laser printer generates the image to be printed. When the toner
is exhausted, the cartridge is replaced by the user. See also FUSER, LASER PRINTER.
tool See SOFTWARE TOOL.
toolbar A collection of icons (usually grouped in a row or column) that perform certain
functions in an applications program. Often an application will have several possible
toolbars (e.g. an editing toolbar or a graphics toolbar), which can be displayed or hidden
by the user.
toolbox A set of *software tools, probably from several vendors, not necessarily as
closely related or providing as full coverage of the *software life cycle as a toolkit. The
set of tools in a toolkit is usually from a single vendor. See also CASE, PSE, SOFTWARE
ENGINEERING ENVIRONMENT.
toolkit See TOOLBOX.
top-down development An approach to program development in which progress is
made by defining required elements in terms of more basic elements, beginning with the
required program and ending when the implementation language is reached. At every
stage during top-down development each of the undefined elements from the previous
stage is defined. In order to do this, an appropriate collection of more basic elements is
introduced, and the undefined elements are defined in terms of these more basic elements
(‘more basic’ meaning that the element is closer to the level that can be directly expressed
in the implementation language). These more basic elements will in turn be defined at the
next stage in terms of still more basic elements, and so on until at some stage the elements
can be defined directly in the implementation language.
In practice, ‘pure’ top-down development is not possible; the choice of more basic
elements at each stage must always be guided by an awareness of the facilities of the
implementation language, and even then it will often be discovered at a later stage that
some earlier choice was inappropriate, leading to a need for iteration. Compare BOTTOMUP DEVELOPMENT.
top-down parsing A strategy for *parsing sentences of *context-free grammars that
attempts to construct a *parse tree from the top down. The term includes techniques that
may or may not involve backtracking.
Beginning with a parse tree consisting of just the start symbol of the *grammar, a topdown parser attempts to expand those leaf nodes labelled by nonterminals from left to
right using the productions of the grammar. As leaves labelled by terminals are created
they are matched against the input string. Should the match fail, new alternatives for the
interior nodes are tried in a systematic way until the entire input string has been matched
or no more alternatives are possible. A top-down parser without backtracking uses the
information contained in the portion of the input string not yet matched to decide once and
for all which alternatives to choose. The *LL parsing technique is the most powerful
example of the top-down strategy.
Top-down parsing is often implemented as a set of recursive procedures, one for each
nonterminal in the grammar, and is then called recursive descent parsing.
topological sort A sorting process over which a partial ordering is defined, i.e. ordering
is given over pairs of items but not between all of them. An example is given by a
dictionary. If a word v is defined in terms of word w, this is denoted by w < v. Then a
topological sort of the dictionary implies an ordering of the terms so that there will be no
forward references.
topology 1. The study of those properties of *sets that are shared by all images
(homeomorphic images) of the sets under certain mappings that might be described as
deformations. Topology is sometimes described as geometry done on a rubber sheet; this
sheet can be pulled or stretched into different shapes. Topological properties are unaltered
by distortions of this kind. Topological properties can be attributed to *graphs,
*grammars, and even *programs themselves. 2. (interconnection topology) See
NETWORK ARCHITECTURE.
Torvalds, Linus Benedict (1969– ) Finnish software developer. In 1991, while a
student at the University of Helsinki, he began work, as a hobby, on what later became the
*kernel of the *Linux operating system. Although Linux quickly became an *open-source
project, Torvalds gave his name to the system (unwittingly) and remains the final authority
on what alterations are made to its kernel. He currently (2014) works for the Linux
Foundation.
total correctness, proof of See PROGRAM CORRECTNESS PROOF.
total function A *function
whose value is defined for all elements x in the set S; thus for each x, f(x) produces some
value in T. Compare PARTIAL FUNCTION.
totally ordered structure Another name for linear structure.
total ordering A *partial ordering with the added property that there is always order
between any two elements. The usual ‘less than’ ordering between integers is a total
ordering. The relation ‘is a subset of’ defined on the *algebra of sets is not.
total recursive function See RECURSIVE FUNCTION.
totem-pole output The output stage of a TTL gate that acts as a power amplifier. See
also TTL.
touchpad See TOUCH-SENSITIVE DEVICE.
touchscreen An input device that responds to the touch of a stylus, which may be a
finger, so that the stylus position on the screen may be estimated. It is thus a touchsensitive *locator. The stylus could be used, say, to make selections from a number of
displayed options. A typical *tablet or *smartphone touchscreen is based on detecting and
locating changes in screen capacitance caused by the contact of one or more of a user’s
fingers.
touch-sensitive device A flat rectangular device that responds to the touch of, say, a
finger by transmitting the coordinates of the touched point to a computer. The touch-
sensitive area may be the screen itself, in which case it is called a *touchscreen.
Alternatively it may be integral with the keyboard or a separate unit that can be placed on
a desk: movement of the finger across the so-called touchpad can cause the cursor to
move around the screen.
tournament A directed *graph in which there is precisely one directed edge between
any pair of vertices.
tournament method A method of finding a specific element in some set (e.g. largest
of a set of numbers), so called because it involves pairing elements and comparing them to
find which one goes through to the next stage, leaving just one element at the end that has
not lost.
tower A piece of equipment, such as a computer system box, whose dimensions are such
that height > depth > width. A large tower might be free-standing on the floor, while a
smaller one might be a deskside unit and the smallest ones stand on the desktop. See also
MIDI-TOWER.
Towers of Hanoi An ancient problem supposedly devised by a Vietnamese emperor to
help with the selection of an advisor. It may be stated as follows. Three poles (labelled A,
B, and C) stand vertically on the ground. Pole A holds a set of circular disks all of
differing radii; from the ground up these disks are positioned in decreasing order of radius
size. The problem is to move the disks to pole C by means of a series of moves, each
involving the transfer of a disk from one pole to another, with the constraint that at any
time all disks on any one pole are situated in decreasing order of radius when viewed from
the ground up. This problem has a solution that has a particularly appealing recursive
solution.
TPM (third-party maintenance) Any maintenance carried out by an organization
that is neither the supplier nor the owner of equipment. An advantage of TPM is that
systems consisting of items from different suppliers can be maintained from a single point.
However, expertise and access to spares and manuals may not be as good as when the
originator of the equipment does the work.
TP monitor (transaction processing monitor) See TRANSACTION PROCESSING.
trace program A program that monitors the execution of some software system and
provides information on the dynamic behaviour of that system in the form of a trace, i.e.
a report of the sequence of actions carried out. Typically a trace program will offer several
options as to the kind of trace produced. For example, there may be options to produce a
statement-by-statement trace, or to trace just those statements that alter the flow of control,
or to trace changes to the value of a specific variable.
track The path followed by the *head over the surface of a recording medium (usually
magnetic or optical). The tracks on magnetic disks are circular and concentric. On optical
disks they may be similar but are more often turns of a continuous spiral path. Most
magnetic tapes carry several tracks running the length of the tape; these may be written or
read simultaneously (parallel recording) or, for other tape formats, one at a time (serial
recording, or *serpentine recording if alternate tracks are recorded in opposite directions).
In *helical scan recording the tracks run diagonally across the axis of the tape.
On *CD-ROM optical disk, the word track is also used (as it is on compact audio disk)
to define an item of the contents, of variable length, which may occupy many turns of the
spiral path.
tracker See MOD.
trackerball (trackball, roller ball) A *pointing device that consists of a ball supported
on bearings so that it is free to rotate in any direction but is restrained within a socket so
that less than half of its surface is exposed. In use, the ball is rotated by the operator’s
fingers and sensors on two of the support bearings generate trains of pulses related to the
rotation of the ball about two axes at right angles. In the late 1970s such devices were
expensive and were only used in applications such as air traffic control; by the mid-1980s
they had reduced significantly in price and become popular for personal computer
applications. *Laptop and *notebook computers often incorporated trackerballs into their
keyboards. Their use has declined with the advent of touchpads and other input devices
that are less sensitive to ingress of dirt.
tractor A device for moving continuous *stationery through a printer and maintaining
good registration relative to the page boundaries. The technique by which this is achieved
is known as tractor feed. The tractors are used in pairs and consist of loops of light
chain or bands on which are mounted pegs (also known as pintles or sprockets) that
engage with holes that have been punched along both edges of the stationery. In highspeed printers there may be pairs of tractors above and below the print line but in lowerspeed devices there is usually only one pair and friction is relied upon to keep the paper
tensioned. In printers for transaction documents the tractors are arranged immediately
below the print line so that the document may be torn off close to the last line of print.
trade secret Something that a person or company wishes to keep secret to maintain the
health of their business. In principle, almost any apparatus, formula, or compilation of
information that is of some value in conducting a business can qualify as a trade secret. In
the UK, trade secrets are protected by the law of confidentiality. To keep trade secrets
protected, a company must assert that the information is confidential and ensure that
anyone told about it signs a non-disclosure agreement. If they then tell anyone about it,
this is a breach of confidence and legal action can be taken against them. Note, however,
that there is no legal protection against someone independently developing the same
information or *reverse engineering it. There is no time limit on how long something may
be a trade secret. In this respect, trade secrecy is quite different from *patent and
*copyright.
traffic A measure of the quantity of data or other messages taking place between points
of a communication network.
traffic control A term sometimes used in reference to the control of input and output. It
covers both the hardware (channels and interrupts) and software (resource allocation and
process synchronization) necessary to achieve the orderly and correct movement of data in
a multiprogramming system.
trailer label A *sentinel that occurs at the end of data organized in sequential form, e.g.
on magnetic tape. Trailer labels typically include summary statistics of the data, e.g. the
total number of records in the file.
trailer record A record that follows a group of related records and contains data
relevant to those records. For example, a trailer record may appear at the end of a file and
contain a total of monetary fields held on that file, which may be used as a security check.
trailing edge (of a pulse) See PULSE.
train printer An obsolete type of *impact *line printer in which the type font was
etched or engraved upon metal slugs that were pushed around a guide track. It was
introduced by IBM in 1965 to supersede the *chain printer. The track guided the slugs
around a loop, one section of which ran parallel to the line to be printed. Speeds of up to
3000 lpm were achieved.
Train printers dominated the high-speed printer market up to 1982, when the *band
printer offered superior performance at lower cost and nonimpact printers with superior
print quality and versatility became financially viable.
transaction An input message to a system that, because of the nature of the real-world
event or activity it reflects, requires to be regarded as a single unit of work and must either
be processed completely or rejected. Where the processing of a transaction involves
several changes to be made to a database, and for some reason the activity is interrupted
and not completed, then any changes made to that point must be reversed (backed out) and
a DBMS must provide facilities to ensure this happens. When the processing of a
transaction has been completed satisfactorily the changes to the database are committed,
i.e. made permanent See ACID.
transaction file (movement file) A file, especially a *data file, containing transaction
records, prior to the updating of a *master file. Transaction files are only used in *batch
processing systems. Once updating has been carried out, the transaction file may be kept
in order to permit subsequent recovery of the master file (see FILE RECOVERY) or for
auditing purposes but is otherwise redundant.
transaction processing A method of organizing a data-processing system in which
*transactions are processed to completion as they arise. A transaction processing
monitor (TP monitor) is a software system that facilitates the handling of transactions
in such circumstances. Compare BATCH PROCESSING.
Transact-SQL (T-SQL) The variety of *SQL used on Microsoft’s *SQL Server and
Sybase’s Adaptive Enterprise Server. Although the two implementations are very similar,
due to the products’ common origin, they have diverged in recent years.
transceiver A device that can both transmit and receive signals on a communication
medium. Many communication devices, including *modems, *codecs, and *terminals, are
transceivers.
transducer 1. (sensor) Any device that converts energy in the form of sound, light,
pressure, etc., into an equivalent electrical signal, or vice versa. For example, a
semiconductor laser converts electrical energy into light, and a piezoelectric device
converts mechanical stress into electrical energy (and vice versa). 2. In formal language
theory, any *automaton that produces output.
transfer rate See DATA TRANSFER RATE.
transformation 1. Another name for function, used especially in geometry. 2. (of
programs) See PROGRAM TRANSFORMATION. 3. (of statistics data) A change of scale used
to improve the validity of statistical analyses. For data in which small values have smaller
*variance than large values a logarithmic or square-root transformation is often
recommended. For data in the form of proportions, a transformation from the scale (0,1) to
an infinite scale is advisable before performing *analysis of variance or *regression
analysis. Several transformations exist for proportions, such as the *logistic or log-oddsratio that is used in the analysis of *generalized linear models. Appropriate
transformations may be suggested by studying *residuals in a regression analysis.
transformational grammar A grammar that makes essential use of transformation
rules to convert the *deep structures of sentences into their surface structures. See also
GENERATIVE GRAMMAR.
transformational semantics See PROGRAM TRANSFORMATION.
transformation matrix An m×n matrix of numbers used to map vectors with n
elements onto vectors with m elements.
transformation monoid See TRANSFORMATION SEMIGROUP.
transformation semigroup A *semigroup consisting of a collection C of
transformations of a *set S into itself (see FUNCTION), the *dyadic operation ∘ being the
*composition of functions; it is essential that the set C should be *closed with respect to
composition, i.e. if c1 and c2 are in C then so is c1 ∘ c2.
If the identity transformation (see IDENTITY FUNCTION) is included in the
transformation semigroup, a transformation monoid results. Every monoid is
isomorphic to a transformation monoid.
transform domain See FILTERING.
transient error An error that occurs once or at unpredictable intervals. See also ERROR
RATE.
transistor A semiconductor device having, in general, three terminals that are attached
to electrode regions within the device. Current flowing between two of these electrodes is
made to vary in response to voltage or current variations imposed on the third electrode.
The device is capable of current or voltage amplification depending on the particular
circuit implementation employed. It can also be used as a switch by driving it between its
maximum and minimum of current flow.
The transistor was invented in 1948 by Shockley, Brattain, and Bardeen at Bell
Telephone Labs. As performance and manufacturing techniques improved, the transistor
enabled a huge growth in computer technology.
See also BIPOLAR TRANSISTOR, FIELD-EFFECT TRANSISTOR, MOSFET.
transistor-transistor logic See TTL.
transitive closure (of a *transitive *binary relation R) A relation R* defined as follows:
if there exists a sequence
such that n > 0 and
It follows from the transitivity property that
and that R is a subset of R*.
Reflexive closure is similar to transitive closure but includes the possibility that n = 0.
Transitive and reflexive closures play important roles in parsing and compiling techniques
and in finding paths in graphs.
transitive relation A *relation R defined on a set S and having the property that, for all
x, y, and z in S,
The relations ‘is less than’ defined on integers, and ‘is subset of’ defined on sets are
transitive.
translation (protocol translation) See INTERNETWORKING.
translation look-aside buffer (TLB) A specific component of some implementations
of a *cache, especially in conjunction with paged memory management (see PAGING). A
cache is a high-speed memory, occupying a position in the *memory hierarchy between
the high-speed registers of a processor and the main random-access memory (RAM) of the
system. The cache holds copies of small areas of the RAM, each area being labelled with
both the physical address of the area of RAM of which it is a copy and with the address by
which it is known to the process owning it. The process form of the address, which
typically contains segment and page information, is translated to the corresponding
physical address by the hardware of the address management system; a TLB is an
*associative memory that indicates whether this address corresponds to one held in the
cache, and so can be accessed by using the cache, or whether it is necessary to fetch the
corresponding area of memory from RAM into the cache.
translation table (look-up table) A table of information stored within a processor or a
peripheral that is used to convert encoded information into another form of code with the
same meaning.
translator A program that converts a program written in one language to the equivalent
program in another language. A *compiler is a specific example of a translator: it takes a
program written in a high-level language such as Fortran or C++ and converts it into
machine code or assembly language.
translator writing system A set of *software tools that are designed to aid the
production of new language translators. A *compiler-compiler is an example of one such
tool.
transmission channel See CHANNEL.
Transmission Control Protocol See TCP/IP.
transmission control unit See COMMUNICATION PROCESSOR.
transmission line 1. Any physical medium that conveys information between remote
points. It may, for example, be a telephone line, a coaxial cable, a waveguide, or an optical
fibre. See also MULTIPLEXING. 2. Specifically, a transmission system where the length of
the medium in terms of the propagation time from source to destination is comparable to
the *rise time of pulses transmitted. To minimize pulse distortion the transmission line
should be terminated in its characteristic impedance.
transmission rate The speed at which information may be transferred from a device or
via a circuit. The unit used is usually related to the amount of information transferred per
cycle, e.g. characters per second or bits per second. With data transmission circuits the
*baud rate is sometimes used.
transparency In computer graphics the simulation of transparency includes both
unrealistic but cheap techniques in which only the surface of the ‘transparent’ object
modifies the colour of the light, and more complex methods in which the distance
travelled through the transparent object is accounted for and refractions and so on may be
modelled. More advanced techniques include the modelling of internal scattering, which
gives a more realistic impression of translucency.
transparent 1. Denoting a property or a component of a computer system that provides
some facilities without restrictions or interference arising from the way it is implemented.
For example, if a machine with 32-bit wide words has a 16-bit wide ALU yet performs
correct 32-bit arithmetic, then the ALU size is transparent in such use. 2. Denoting or
using a transmission path that passes a signal, or some particular feature of a signal,
without restricting or changing it. Note that nontransparent systems would not allow
particular signals to be transmitted as data, reserving them for special purposes. See also
DATA TRANSPARENCY.
transport 1. A mechanism for transporting an information storage medium past an
access station. The word is most frequently used to refer to either a document or a tape
transport. 2. A service provided by a (local or wide area) communication network, or the
architectural layer or interface with this service.
transportable See PORTABLE.
transport layer (of network protocol function) See SEVEN-LAYER REFERENCE MODEL.
transpose (of an m×n matrix A) The n×m matrix, symbol AT, given by interchanging
rows and columns. Thus the i,jth element of AT is equal to the j,ith element of A.
transposition cipher A *cipher, or a component of a more complicated cipher, that
involves the symbol at each place in the plaintext being moved to a newly decided (and
often different) place, i.e. within each block of plaintext the positional indices of the
symbol places are changed according to some plan. Since a cipher must be invertible (for
*decryption), the plan must be a *permutation of the range of positional indices. Compare
SUBSTITUTION CIPHER.
transputer A microcomputer, devised and manufactured by the UK company INMOS
(now part of STMicroelectronics) in the 1980s, designed to facilitate interprocess and
interprocessor communication. The transputer comprised a 32-bit *RISC processor with
fast on-chip static *RAM, process scheduling in hardware with a submicrosecond context
switch, external memory controller, and high-speed serial links. Although very advanced
for its time, the transputer was rendered obsolete by the increasing power of mainstream
microprocessors. See also OCCAM.
trap A system state similar to that caused by an *interrupt but synchronous to the system
rather than asynchronous as in the case of an interrupt. There are a variety of conditions
that can cause a trap to occur. Examples of such conditions include the attempted
execution of an illegal instruction, or an attempt to access another user’s resources in a
system that supports multiuser protection. The attempted operation is detected by the
hardware and control is transferred to a different part of the system, usually in the
operating system, which can then decide on what action to take.
trapezium rule The approximation
used as the basis for an *extrapolation method in *numerical integration.
trapezoidal rule See ORDINARY DIFFERENTIAL EQUATIONS.
travelling salesman problem (TSP) A well-known *graph searching problem. In
practical terms the problem can be thought of as that of a salesman who wishes to perform
a circular tour of certain cities, calling at each city once only and travelling the minimum
total distance possible. In more abstract terms, it is the problem of finding a minimumweight *Hamiltonian cycle in a *weighted graph. The problem is known to be NPcomplete (see P=NP QUESTION).
traversal A *path through a *graph in which every vertex is visited at least once.
Traversals are usually discussed in connection with special kinds of graphs, namely *trees.
Examples include *preorder traversal, *postorder traversal, and *symmetric order (or
inorder) traversal. When parse trees for arithmetic expressions are traversed, these tree
traversals lead to prefix (*Polish) notation, postfix (*reverse Polish) notation, and *infix
notation respectively.
tree 1. Most commonly, short for rooted tree, i.e. a finite set of one or more *nodes
such that firstly there is a single designated node called the root and secondly the
remaining nodes are partitioned into n≥0 *disjoint sets, T1, T2,…, Tn, where each of these
sets is itself a tree. The sets T1, T2,…, Tn are called subtrees of the root. If the order of
these subtrees is significant, the tree is called an ordered tree, otherwise it is sometimes
called an unordered tree.
A tree corresponds to a *graph with the root node matching a vertex connected by
(directed) arcs to the vertices, which match the root nodes of each of its subtrees. An
alternative definition of a (directed) tree can thus be given in terms from graph theory: a
tree is a directed *acyclic graph such that firstly there is a unique vertex, which no arcs
enter, called the root, secondly every other vertex has exactly one arc entering it, and
thirdly there is a unique path from the root to any vertex. The diagram shows different
representations of a tree. 2. Any *connected acyclic graph. 3. Any data structure
representing a tree (def. 1 or 2). For example, a rooted tree can be represented as a pointer
to the representation of the root node. A representation of a node would contain pointers to
the subtrees of the node as well as the data associated with the node itself. Because the
number of subtrees of a node may vary, it is common practice to use a *binary-tree
representation.
Tree. Sample tree represented as a Venn diagram (top) and as a directed graph
The terminology associated with trees is either of a botanic nature, as with *forest,
*leaf, root, or is genealogical, as with *ancestor, *descendant, *child, *parent, *sibling.
See also BINARY TREE.
tree automaton A generalization of the notion of a *finite-state automaton, applying to
trees rather than strings (see TREE LANGUAGE). There are two versions. A top-down
machine begins at the root of the tree; having read the symbol at a node it changes state
accordingly and splits into n machines to process separately the n descendants. A
bottom-up machine begins with several separate activations of itself—one at each leaf
node of the tree. Whenever all the subtrees of a particular node have been processed, the
machines that have processed them are replaced by a single one at that node. Its state is
determined by the symbol at the node and the final states of the descendant machines.
tree grammar A generalization of the notion of *grammar, applying to trees (often
called terms in this context) rather than strings (see TREE LANGUAGE). A regular tree
grammar is the corresponding generalization of the notion of *regular grammar.
Productions have the form
where A is a nonterminal and t a term, e.g.
These productions generate the regular tree language shown in the diagram. Note that
the frontiers of these trees are the strings shown below each tree in the diagram. A set of
strings is *context-free if and only if it is the set of frontiers of the trees in a regular tree
language.
Tree grammar. Language generated by a tree grammar
The notion of *context-free grammar can be similarly generalized. This time
nonterminals can themselves be function symbols having an arbitrary number of
arguments, e.g.
This means, for example, that F(a,b) could be rewritten to
and then to
and then to
tree language (term language) In *formal language theory, a generalization of the
notion of language, applying to trees (often called terms in this context) rather than
strings. Alphabets are extended to give each symbol an arity, the arity of each symbol
dictating the number of subterms, or descendants in the tree, that it has.
For example, let Σ be the alphabet {f,g,a,b} and give arities 2,1,0,0 to f,g,a,b
respectively. Then examples of Σ-trees and their equivalent representations as Σ-terms (or
well-formed expressions over Σ) are shown in the diagram. A Σ-language is now
any set of Σ-terms. See also TREE AUTOMATON, TREE GRAMMAR.
Tree language. Examples of å-trees and å-terms
treelike network See NETWORK ARCHITECTURE.
tree search Any method of searching a body of data structured as a tree. See BREADTHFIRST SEARCH, DEPTH-FIRST SEARCH.
tree selection sort A refinement of *straight selection sort that makes use of the
information gained in the first step to save on the subsequent number of comparisons
required. It was proposed in 1956 by E. H. Friend and modified by K. E. Iverson in 1962.
See also HEAPSORT.
tree walking *Traversal of a tree.
trial function See FINITE-ELEMENT METHOD.
triangle inequality See INEQUALITY.
triangular matrix A square matrix in which every element lying to one side of the
main diagonal is equal to zero. Thus for a lower triangular matrix, L,
and for an upper triangular matrix, U,
if, in addition,
then L or U is said to be strictly lower or strictly upper triangular respectively.
The inverse of a lower (or an upper) triangular matrix, if it exists, is easy to calculate and
is itself lower (or upper) triangular.
triangular patch A *patch that is a triangle. See also TRIANGULATION.
triangular waveform A periodic repetitive waveform that takes on its peak positive
and negative excursions at fixed points in time. Between these peaks the waveform
alternately rises and falls linearly with time. The rates of rise and fall determine the
repetition rate or frequency of the waveform and in general are made equal. Compare
SAWTOOTH WAVEFORM.
triangulation A collection of triangles such that any pair of triangles intersect at most at
one common vertex or along a common edge, whose union describes a surface in space.
tridiagonal matrix A band matrix A in which
trie search A searching algorithm that examines data stored in a trie (name derived
from information re trieval). A trie is essentially an n-ary tree with nodes that are n-place
vectors, the components of which correspond to digits or characters.
trigger To initiate the operation of an electric circuit or device. Thus a signal supplied to
the trigger input of a circuit may cause the circuit’s output signal to be synchronized to
this input.
trim (of an array) The array obtained by constraining the subscripts to lie in some
specified subrange. For example, the trim of a vector
obtained by constraining the index i so that 3 ≤ i ≤ 7 is the vector
See also SLICE.
triple precision The use of three times the usual number of bits to represent a number.
It is seldom required. See also DOUBLE PRECISION.
tri-state output (three-state output) An electronic output stage consisting of a logic
gate, commonly an inverter or buffer, that exhibits three possible *logic states, namely
logic 1, logic 0, and an inactive (high-impedance or open-circuit) state. The inactive state
allows the device outputs to be combined with other similar outputs in a busing structure
such that only one device is active on the bus at any one time.
tristimulus values Three values defining a colour in a specific trichromatic *colour
model.
trivial graph A *graph with just one vertex.
Trojan horse (trojan) An apparently innocent program designed to circumvent the
security features of a system. The usual method of introducing a Trojan horse is by
donating a program, or part of a program, to a user of the system whose security is to be
breached. The donated code will ostensibly perform a useful function; the recipient will be
unaware that the code has other effects, such as writing a copy of his or her username and
password into a file whose existence is known only to the donor, and from which the
donor will subsequently collect whatever data has been written.
Trojan horses can be particularly effective when offered to systems staff who can run
code in highly privileged modes. Two remedies are effective: no code should be run unless
its provenance is absolutely certain; no code should be run with a higher level of privilege
than is absolutely essential. See also VIRUS.
Tron (the real-time operating-system nucleus) A project commenced in 1984 at
Tokyo University to create a framework for the design of microprocessor systems for
*workstations, *personal computers, and industrial embedded applications. The project
has developed Tron architectures on silicon, now manufactured by several Japanese
companies, and three operating systems: BTron, CTron, and ITron.
BTron is a business-oriented operating system for personal computers with English,
Japanese, and other character set capabilities. CTron is a (network) communicationsoriented operating system. ITron is a real-time operating system, designed to give rapid
response to external events and intended for applications ranging from ATMs (automatic
teller machines) to aircraft landing systems. ITron is now widely used in many electronic
devices. In 2010 the TRON project was taken over by the T-Engine Forum, which
continues its work on open-source real-time operating-system kernels.
http://www.t-engine.org/tron-project
• The Tron Project home page
trouble shooting The logical, systematic search for the source of a particular problem
associated with a project or system. This activity is exceptional rather than part of the
planned life of the project or system.
TRS Abbrev. for term rewriting system.
TrueColor Another name for RGB colour model. The term is used especially to contrast
it with more restrictive colour models.
true complement Another name for radix complement.
TrueType font (TTF) A form of scalable outline font originally developed by Apple,
and now used extensively on almost all personal computers. TrueType fonts have outlines
based on quadratic B-splines, and a single file contains all the information necessary to
print and display the font on the screen and to produce bold and italic versions. See also
OPENTYPE FONT, POSTSCRIPT FONT.
truncation See ROUNDOFF ERROR.
truncation error The error incurred in cutting short an infinite process after finitely
many terms or iterations, or by not proceeding to the limit. It represents one of the main
sources of error in *numerical methods for the algorithmic solution of continuous
problems. Its analysis and methods for its estimation and control are central problems in
*numerical analysis. In the numerical solution of differential equations it is closely related
to the concept of *discretization error.
trunk Another (US) name for bus.
trunk circuit An interconnecting transmission channel between a switching machine in
one location and a switching machine in an adjacent node.
trusted Having, involving, or denoting a security feature that is necessary to uphold a
*security policy. Such features, when granted *security certification, may be considered
‘trustworthy’.
truth-maintenance system (reason-maintenance system) A collection of techniques
in *artificial intelligence that records dependencies between assertions in a logical
database. Given a query and a database, a truth-maintenance system will return a set of
statements, called an explanation, that supports the query; hence the query statement
can be derived from the statements in the explanation. Applications are found in diagnosis,
where a complete model of the working system is used to reason from symptoms to
causes; an explanation, generated by a fault query, defines the steps from symptoms to
cause. This is different from *heuristic *rule-based systems and *probabilistic systems,
which mainly use reasoning rules that relate cause to symptom.
truth table 1. A tabular description of a *combinational circuit (such as an *AND gate,
*OR gate, *NAND gate), listing all possible states of the input variables together with a
statement of the output variable(s) for each of those possible states. 2. A tabular
description of a *logic operation (such as *AND, *OR, *NAND), listing all possible
combinations of the truth values—i.e. true (T) or false (F)—of the operands together with
the truth value of the outcome for each of the possible combinations.
TSP Abbrev. for travelling salesman problem.
T-SQL See TRANSACT-SQL.
TTF Abbrev. for TrueType font.
TTL (transistor-transistor logic) A widely used family of logic circuits that is
produced in integrated-circuit form and whose principal switching components are
*bipolar transistors. It is available in low power and high switching speed versions (see
SCHOTTKY TTL), in addition to the standard form.
The diagram shows the equivalent circuit of a TTL two-input *NAND gate. The basic
circuit uses a multiemitter bipolar transistor, Q1, which is easily fabricated in integrated-
circuit form. Each base-emitter junction of Q1 effectively acts as a *diode, in a similar
manner to a *DTL input stage. Thus if all inputs are at a high voltage (logic 1), all input
‘diodes’ are reverse biased; the collector voltage of Q1 rises to Vcc, turning on Q2 (which
acts as a phase splitter). The emitter voltage of Q2 rises while its collector voltage falls,
turning Q3 on and Q4 off. The output thus falls to logic 0, i.e. zero volts.
If any one of the Q1 inputs is returned to logic 0, 0 volts, then Q1 is turned hard on,
turning off Q2 whose collector voltage rises; this turns on Q4. No current is available via
Q2 for Q3’s base, and so Q3 turns off. The output thus increases to +5 volts, i.e. logic 1.
Diode D1 is included to establish the correct bias conditions for Q4. The output stage,
consisting of Q3, D1, Q4, and R, acts as a power amplifier and is often termed a totempole output. The output stage has the property of providing a low-impedance drive for
both positive and negative signals. It provides a good *fan-out but cannot be connected to
other TLL outputs as can *open-collector outputs.
TTL is the most commonly used technology for SSI and MSI devices due to its low
cost, high speed, and ready availability.
TTL. NAND gate
TTS Abbrev. for text-to-speech.
TTY (Teletype) See TELETYPEWRITER.
T-type flip-flop See T FLIP-FLOP.
tunnelling The embedding of a data packet for one network protocol within a different
protocol. The enclosing protocol is always a special-purpose tunnelling protocol that
understands its contents. Tunnelling can be used, for example, to encrypt packets or to
transport them over networks with which they are in some way incompatible. It is an
important technique in the implementation of *VPNs.
tuple See N-TUPLE, RELATIONAL MODEL.
Turing, Alan (Mathison) (1912–54) British mathematician, a father of computer
science. A fellow of King’s College, Cambridge from 1935, in 1936 he wrote his seminal
paper ‘On Computable Numbers’ (1936), which introduced the *Turing Machine as an aid
to a precise definition of the concept of the *algorithm. During World War II Turing
worked at the British government’s code-breaking centre at Bletchley Park. He was
instrumental in breaking the German Enigma codes, designing an electromechanical
machine to assist this process. After the war he worked at the National Physical
Laboratory, where he designed (1945–6) the *ACE, an early stored-program computer.
His paper ‘Computing Machinery and Intelligence’ (1950), which introduced the *Turing
test, remains a foundation of *artificial intelligence. In 1952 Turing was convicted
following a homosexual affair (then illegal in Britain) and submitted to ‘treatment’ for his
homosexuality. He died of cyanide poisoning, officially by suicide, although the exact
circumstances remain unclear. In 2013, following an Internet campaign, he was granted a
posthumous pardon.
Turing computability See TURING MACHINE.
Turing machine (TM) An imaginary computing machine defined as a mathematical
abstraction by Alan *Turing to make precise the notion of an effective procedure (i.e. an
algorithm). There are many equivalent ways of dealing with this problem; among the first
was Turing’s abstract machine, published in 1936.
A Turing machine is an *automaton that includes a linear tape that is potentially infinite
(in both directions), divided into boxes or cells, and read by a read-head that scans one cell
at a time. Symbols written on the tape are drawn from a finite alphabet:
The control or processing unit of the machine can assume one of a finite number of
distinct internal states:
The ‘program’ for a given machine is assumed to be made up from a finite set of
instructions that are quintuples of the form
The first symbol indicates that the machine is in state qi while the second indicates that the
head is reading sj on the tape. In this state the machine will replace sj by sk and if X=R the
head will move to the right; if X=L it will move to the left and if X=N it will remain where
it is. To complete the sequence initiated by this triple the machine will go into state qj.
The machine calculates functions on the natural numbers as follows: a function f,
is (Turing) computable if for each x in Nk, when some representation of x in Nk is
placed on the tape (with the machine in the initial state of q0 say), the machine halts with a
representation of f(x) on the tape. See also EFFECTIVE COMPUTABILITY.
It is customary in the study of abstract computation models to make a distinction
between deterministic and nondeterministic algorithms. In a deterministic Turing
machine the overall course of the computation is completely determined by the Turing
machine (program), the starting state, and the initial tape-inputs; in a nondeterministic
Turing machine there are several possibilities at each stage of the computation: it can
execute one out of possibly several machine instructions. The class of problems solvable
by deterministic Turing machines in *polynomial time is the class P; the class of problems
solvable by nondeterministic Turing machines in polynomial time is the class NP. See also
P=NP QUESTION.
Turing’s thesis The hypothesis, analysed by Alan *Turing in 1936, that any function on
strings or the natural numbers that can be computed by an algorithm can be computed by a
*Turing machine. See also CHURCH–TURING THESIS.
Turing test A test proposed by the mathematician and *artificial intelligence pioneer
Alan *Turing to decide whether an intelligent system has reached a level of competence
comparable to that of human beings. The essential idea is to communicate with an
unknown entity—by means of a keyboard and/or screen—and decide, on the basis of
answers to questions, whether the responding agent is another person or a computer
system. Many artificial-intelligence programs can pass the Turing test if restricted to a
very severely limited domain, but asking general questions about the wider world of
human experience soon exposes their shortcomings. Several variations of the test exist and
it is still a topic of philosophical debate.
turnaround time (turnround time) 1. The time that elapses between the submission
of a job to a computing facility and the return of results. 2. (n data communications) The
time taken to reverse the direction of transmission on a channel.
turnkey operation The delivery and installation of a complete computer system plus
application programs so that the system can be placed into immediate operational use.
turtle graphics A method for translating information from a computer into pictures or
patterns. The original drawing device was a simple pen-plotter known as a turtle, a
motorized carriage carrying one or more pens and connected to its controller and power
source by a flexible cable. The drive wheels of the carriage could be precisely controlled
to steer it in any direction across a floor or other flat surface covered in paper or similar
material; the pens could be raised and lowered by control signals.
The action of the turtle can now be simulated by graphics on the display of a small
computer: the screen turtle usually has the form of a triangular arrow that may or may
not produce a line as it is made to move across the screen. See also LOGO.
TWAIN A standard for interfacing between a scanner or digital camera and a graphics
program. TWAIN drivers are available with most such devices.
tweening A technique used in computer animation for automatically producing extra
frames between the original frames in order to give a smoother effect.
twisted pair A form of *cable used to carry electric signals. An electric circuit must
always contain an outward and a return path. For high-frequency signals, the outward and
return paths consist of conducting wires that must be kept close together so that the
outward current in one conductor is balanced by the corresponding inward current in the
other, thus reducing the amount of energy lost by radiation. This is achieved in twistedpair cabling by twisting the two wires together. The resulting pair of wires may either be
placed inside an outer conducting screen to give a shielded twisted pair (STP), or left
uncovered as an unshielded twisted pair (UTP); the screen of an STP provides additional
isolation from external sources of electric interference, and is usually formed from an
interwoven fine wire mesh. Many pairs can be further twisted together.
Much of the cabling installed within buildings to provide *local loops for speech and
low-speed data traffic is in the form of twisted pairs. There is emphasis on providing
equipment capable of signalling in the gigabit range over distances of up to 100 metres
over these cabling installations.
Twitter A very popular online *microblogging service; the maximum size of the
messages that can be posted, referred to as tweets, is 140 characters. Originally
developed as a short messaging service in 2006, it has expanded into a global web-based
system for spreading news and opinion. As such it has benefited greatly from the
emergence of the *smartphone. Currently (2014) it has some 500 million users.
https://twitter.com/
• The Twitter website
two-address instruction See INSTRUCTION FORMAT. See also MULTIPLE-ADDRESS
MACHINE.
two-dimensional array Another name for matrix. See also ARRAY.
two-level grammars (VW-grammars, van Wijngaarden grammars) A
generalization of *context-free grammars that enables non-context-free aspects of a
language to be specified. They were developed by A. van Wijngaarden and used in the
formal definition of Algol 68. The productions of a two-level grammar are split into two
parts: those in the first part are called hyperrules and act as templates for context-free
productions; those in the second part are called metaproductions. The metaproductions
are context-free productions and they define the set of nonterminals to be used in the
hyperrules. The power of two-level grammars comes from the fact that the hyperrules can
be templates for an infinite set of productions. It is in this way that they are used to define
non-context-free aspects of a language.
two-level memory A memory system with two memories of different capacities and
speeds. See MEMORY HIERARCHY, MULTILEVEL MEMORY.
two-norm (Euclidean norm) See APPROXIMATION THEORY.
two-plus-one address See INSTRUCTION FORMAT.
two’s complement See RADIX COMPLEMENT.
two-way linked list Another name for doubly linked list.
two-way merge An algorithm that merges two ordered files into one single sorted file.
It may be viewed as a generalization of sorting by insertion, and was proposed by John
von Neumann in 1945.
type Short for data type, used especially in combination, as in logical type (or type
logical) and integer type (or type integer).
type 0, 1, 2, 3 language (type 0, 1, 2, 3 grammar) See CHOMSKY HIERARCHY.
Type 1 font See POSTSCRIPT FONT.
Type 3 font See POSTSCRIPT FONT.
typeahead A feature of keyboard use such that when the user hits the keys faster than
the computer can process them the computer stores up the key presses and eventually
catches up without losing any. The unprocessed characters are stored in the typeahead
buffer.
type-insensitive code A program for the numerical solution of *ordinary differential
equations that attempts to be efficient, irrespective of whether the problem is stiff or
nonstiff. This is usually achieved by switching automatically in the code between different
classes of methods.
type system The component of a *programming language that associates each
expression of the language (variables, functions, operators, etc.) with a *data type. A type
system consists of a collection of types and type constructors, together with rules (called
type rules) that determine the consistency of an expression with a given type. The
violation of a type rule constitutes a type error, and the testing for type errors in a given
program is called type checking. Type checking is very important for determining the
semantics of a program with regard to a type system; it can be performed either at
*compilation time (i.e. by the compiler) or at *run time (i.e. during program execution).
Compilation-time type checking is in general more desirable because run-time type
checking is expensive, but a mixture of both is possible.
A language is a typed language if there exists a type system for it: otherwise, it is an
untyped language (i.e. it has no type or, equivalently, has a single universal type for all
expressions). Whether it is expedient to provide a type system for a particular
programming language will depend on importance of types in the description of the
behaviour of the programs that can be written in that language.
typewriter terminal Another name for teletypewriter.
UART (universal asynchronous receiver/transmitter) A *logic circuit, usually
an integrated circuit, that will convert an asynchronous serial data stream into a byteparallel form and vice versa. The normal application is in the interfaces for data
transmission lines and peripherals.
ubiquitous computing (ambient computing, pervasive computing) A model for the
development of computing in the early 21st century. It envisages a movement away from
‘computers’ as distinct specialized devices; rather, many objects used in everyday life will
contain embedded computing devices that can recognize and interact in useful ways with
each other and with their environment. Commonly cited examples are the refrigerator that
is aware of its contents via embedded tags and is thus able to suggest shopping lists, plan
menus, warn of approaching expiry dates, etc.; a home environment (heating, lighting,
etc.) that continuously adjusts itself according to data from biometric monitors
incorporated into clothing; and automatic recognition of a returning home owner so that
security alarms are switched off and appropriate in-house systems activated. Such a model
becomes possible as the size of computing devices decreases and their power increases,
with wireless networking making the ad-hoc self-configuring networks necessary for
ubiquitous computing viable (see BLUETOOTH). A key issue is how humans interact with
such a system. The ideal is that such interaction should be unobtrusive and natural for the
user, emphasizing *speech recognition and *artificial intelligence. Another issue is
*privacy: a truly useful ubiquitous computing system will inevitably acquire a large
amount of personal data about its users. Ubiquitous computing is currently a subject of
both academic and commercial research.
UCS (Universal Character Set) A code, defined in ISO/IEC 10646, intended to
redress the deficiencies and restrictions of the *ISO-7 code in a worldwide context. UCS
is the same as the character set used in *Unicode and is revised in tandem with it.
UCS-2 (2-byte Universal Character Set) A method of encoding the Unicode
*code points U+0000 to U+FFFF as two-byte unsigned integers. Whether the most- or
least-significant byte comes first varies between implementations and is generally
indicated by a *byte-order mark.
UCS-4 (4-byte Universal Character Set) A method of encoding characters as fourbyte unsigned integer. Whether the most- or least- significant byte comes first varies
between implementations and is generally indicated by a *byte-order mark. UCS-4, which
is not widely used, is now for practical purposes identical to *UTF-32.
UDF (universal disk format) A specification (ISO 13346) designed to apply to a
wide range of CD and DVD types, including rewritable disks.
UI Abbrev. for user interface.
UIMS Acronym for user-interface management system.
ULA Abbrev. for uncommitted logic array.
UML (Unified Modelling Language) A graphical language for the specification,
documentation, and visualization of the designs of object-oriented (OO) software systems
(see OBJECT-ORIENTED LANGUAGE). Because of its close ties with object-oriented methods
such as *OMT, UML has often been confused with a method itself; but this is not the case.
UML provides only notations and diagrams for modelling aspects of a system, each of
which has a specified semantics. No single diagram represents the whole UML model (i.e.
the model obtained after applying the UML language).
It is common to divide the diagrams provided by UML into two classes: structural
diagrams and behavioural diagrams. Structural diagrams are concerned with the
static architecture of a model (or system), i.e. the elements that constitute the model
(classes, objects, methods) and their relationships. The followings are structural diagrams:
• class diagrams
• object diagrams
• component diagrams
• composite structure diagrams
• package diagrams
• deployment diagrams
• profile diagrams
Behavioural diagrams, on the other hand, are concerned with the dynamic behaviour
of the system, i.e. its possible execution states over time. Behavioural diagrams include:
• use case diagrams
• state machine diagrams
• activity diagrams
• sequence diagrams
• communication diagrams
• interaction overview diagrams
• timing diagrams
The last four are commonly classified as interaction diagrams. UML was originally
standardized by the *OMG and was later adopted as an ISO standard. The diagrams cited
above can all be found in the latest version of UML (UML 2.4.x); they are not necessarily
present in earlier versions of UML.
unary operation (monadic operation) defined on a set S. A *function from the
domain S into S itself. The *identity function is unary. Other examples are the operations
of *negation in arithmetic or logic and of taking *complements in set theory or in
*Boolean algebra. Although basically functions, unary operations are frequently
represented using a special notation, e.g. ¬A or A′. When the set S is finite, a *truth table
can be used to define the meaning of the operation.
unbalanced cable A cable with a single conductor per signal path. Compare
BALANCED CABLE.
unbundling The separation of system software charges from hardware charges in the
marketing of computer systems. Historically, when system software was minimal and
represented a small part of total system cost, it was included without additional charge.
Unbundling was a natural result of system hardware becoming less expensive while
software was becoming a much larger proportion of the cost.
uncertainty 1. The uncertainty about a piece of knowledge in a *knowledge base can be
represented in a variety of ways. The most popular is to attach a number to the fact or rule,
e.g. 1 for complete truth, 0 for complete falsity, ¾ for likely. Sometimes these numbers are
intended to be the probability of the knowledge being true. Reasoning systems must assign
an inferred uncertainty value to an inferred piece of knowledge. See also CERTAINTY
FACTOR. 2. See ENTROPY.
uncommitted logic array (ULA) A form of programmable logic array. See PLA.
unconditional jump (unconditional branch) A *jump that causes the program
sequence to start at a new address; the instruction address becomes the contents of the
*program counter.
uncontrolled format string See FORMAT STRING BUG.
undecidable See DECISION PROBLEM.
underflow The condition that arises when the result of an arithmetic operation is smaller
than the allowable range of numbers that can be represented, or the result so obtained.
undirected graph See GRAPH.
undo A feature of many *applications that allows the user to reverse the effect of the last
action or actions. This allows recovery from unintentional actions, and could prevent
major damage resulting from a very simple but incorrect command. See also ROLLBACK,
USER-FRIENDLY.
unfolding See FOLDING.
Unicode A standard for storing, manipulating, and displaying textual data. The Unicode
character set currently (2014) allows for 1 114 112 *code points, of which over 110 000
have been assigned characters. Its contents are the same as the Universal Character Set
(see UCS), with which its revisions are coordinated. Unicode also specifies various
normative classifications for each character (upper-case letter, lower-case letter, decimal
number, etc.), rules (e.g. how to decompose a composite character, such as an accented
letter, into its component characters), and algorithms (e.g. for collation) as well as
reference charts showing the visual form of each character. For backward compatibility
the characters assigned to codepoints 0 to 127 are the same as *ASCII character set; and
those assigned to 0 to 255 Unicode are the same as ISO-8859-1, a superset of *Latin
alphabet no. 1.
http://www.unicode.org/
• The Unicode Consortium home page
unification An operation on well-formed formulas, namely that of finding a most
general common instance. The formulas can be *terms or atomic formulas (see
PREDICATE CALCULUS). A common instance of two formulas A and B is a formula that
is an instance of both of them, i.e. that can be obtained from either by some consistent
substitution of terms for variables. As an example let A and B be the following:
Let u, v, w, x, y, z be variables, and c, d constants. Consider the substitution that replaces u,
v, w, x respectively by the terms y, g(z), f(y), z. This substitution, when applied to A and B,
transforms them both into the same formula I1, where
Hence the above is a common instance of A and B. It is however only one of infinitely
many: other common instances of A and B include
Note that I2, I3, I4, I5 are themselves instances of I1. In fact any common instance of A and
B is an instance of I1 and therefore I1 is called a most general common instance of A
and B. Of the formulas above, the only other one that is a most general common instance
is I2. I5 would also be one if c and d were variables rather than constants; indeed the y and
z of I1 could be any two distinct variables. In some cases A and B have no common
instance; two examples of this are
and
If A and B do have a common instance however, they must have a most general one. There
are algorithms (the original one being Robinson’s, 1965) for deciding whether a given A
and B have a common instance, and if so finding a most general one. Robinson’s
motivation for describing unification was its role in *resolution theorem proving.
Resolution was at one time associated with ‘general problem-solving’ techniques in
artificial intelligence. More recently it has provided the conceptual basis for the logic
programming language *Prolog. Another use of unification is in compile-time typeinference, especially for *polymorphic types.
Unified Modelling Language See UML.
Unified Process (UP) A popular, configurable, software development process. Unified
Process is an iterative and incremental process, component-based, driven by the use cases,
and centred on the architecture. It uses *UML for design and documentation. A key
feature of UP is the production of models, each of which relates to a key stage in the
design. One of the best-known UP frameworks is RUP (Rational UP), developed by
Rational Software, one of the principal actors in the development of Unified Process.
Other UP frameworks include 2TUP (2 Track UP) and AUP (Agile UP).
unilaterally connected graph See REACHABILITY.
uninterruptible power supply (UPS) A power supply that is guaranteed to provide
correct working voltages to the circuits of a computer in spite of interruptions to the
incoming electrical power supply from the grid. Short-duration interruptions may be dealt
with by a device that takes energy stored in a battery and supplies it to the computer at the
correct AC voltage, using a fast switchover from the incoming to the battery power
supply. For longer-duration interruptions other means may be employed.
union 1. (of two *sets) The set that results from combining the elements of two sets S
and T, say, usually expressed as
∪ is regarded as an *operation on sets, the union operation, which is *commutative
and *associative. Symbolically
The union of S and the *empty set is S. See also SET ALGEBRA. 2. (of two *graphs, G1 and
G2) The graph that includes all the vertices and edges of G1 and G2, i.e. that contains the
union of the two sets of vertices and of the two sets of edges as its vertices and edges.
unipolar signal A signal whose signalling elements are constrained to lie either
between zero volts and some arbitrary positive voltage or less commonly between zero
volts and some negative voltage. Unipolar signals are used in data-communication
systems. Compare BIPOLAR SIGNAL.
uniquely decodable (uniquely decipherable) A term usually applied to *variablelength codes: unique decodability ensures that codewords can be recognized
unambiguously in the received signal so that the decoding process is the exact inverse of
the encoding process.
Unisys A US corporation formed from Sperry and Burroughs in 1986. The merger was
intended to create a computer company large enough to compete head-on with IBM. It
was not a success, partly because the merger was mishandled and partly because IBM was
in the course of reinventing itself. In 1997 Unisys made a loss of more than $850 million.
Following the appointment of a new chief executive, the company’s performance has
steadily improved. Its computer manufacturing operations are very profitable and it is
steadily developing its business in providing services. It is, however, a comparatively
small player in these fields.
unitary semiring See SEMIRING.
unit matrix Another name for identity matrix.
unit testing (module testing) See TESTING.
UNIVAC (Universal Automatic Computer) The US’s first commercially
available computer system, delivered in 1951 slightly later than the *Ferranti Mark I. Its
memory was in the form of mercury *delay lines. It was the product of the Eckert–
Mauchly Computer Corporation, formed in 1948 by the designers of *ENIAC. From 1951
through the mid-1950s over 40 machines were produced. The company was acquired by
Remington–Rand Inc., which merged with Sperry Corporation in 1955 to form Sperry
Rand Corp. Sperry later merged with Burroughs Corp. to form *Unisys.
Universal Character Set See UCS.
universal flip-flop See FLIP-FLOP.
Universal Product Code (UPC) See BAR CODE.
universal quantifier See QUANTIFIER.
universal serial bus See USB.
universal set A *set that, in a particular application, includes every other set under
discussion. Such sets give a more definite meaning to notions like *complement and
*membership: in asking whether or not x is in S, where S is some set, it is assumed that x
is a member of some universal set.
universal Turing machine A *Turing machine M that, given any input x and a
suitable encoding of any Turing machine K, outputs the result of applying the Turing
machine K to the input x. A universal Turing machine therefore can perform all the
computations for the class of Turing machines. The existence of such a machine was
discovered by Alan *Turing in 1936. It lead to the concept of the stored-program
computer.
UNIX (Unix) Trademark An operating system that originated in Bell Laboratories in
1969. The system was initially written to run on Digital Equipment’s PDP11
minicomputer, and was primarily intended to provide a working environment for a group
of users cooperating on a small number of related projects; the group thus had
considerable shared interests over and above the fact that they all used the same computer
system. In the intervening years UNIX has become very popular and is now the effective
standard for workstations and mid-range systems.
UNIX provides a consistent approach to multitasking, with built-in operations for the
creation, synchronization, and termination of *processes either from the system
environment or from within an existing process. This allows the extension and
customization of the UNIX command set. There is also a consistent file-management
system that provides a structured means of directory control and of file naming, with the
ability to control access to files, including mechanisms for shared access. The output from
any process can be directed to a file, or can itself serve as the input to some other process,
with the operating system ensuring that the producing and consuming process remain
correctly synchronized.
UNIX has been implemented by a wide range of workers and on a wide range of
hardware platforms. Versions have been written by individual workers through to large
software houses and major hardware manufacturers, for computer systems from desktop
computers through to enterprise servers. As an almost inevitable consequence there has
been a bewildering number of restrictions and/or extensions to the facilities offered by the
system, as well as differing implementations of what are apparently the same features.
There have been repeated efforts at standardization, and several versions have been
defined. The current position (2014) is that only those systems that comply with *The
Open Group’s Single UNIX Specification may call themselves ‘UNIX.’
http://www.unix.org/
• The Open Group’s UNIX page
unlock (unlock primitive) An indivisible operation by which a process indicates that it
has completed its access to a particular resource. See also LOCK, SEMAPHORE.
unordered tree See TREE.
unpack To convert from a packed format to a form in which individual items are directly
accessible. See also PACK.
unshielded twisted pair (UTP) See TWISTED PAIR.
unsigned Not containing a *sign: an unsigned whole-number representation is one
whose *bit pattern is interpreted as a natural type (whose value may be zero or strictly
positive), possibly as a subset of an integer type.
unsolvable See DECISION PROBLEM.
up Informal Denoting a system or component that is operational and in service and either
busy or idle; it has passed all its tests and is in a condition during which random faults
may be predicted to give an *MTBF.
UP Abbrev. for Unified Process.
UPC (Universal Product Code) See BAR CODE.
upline The direction from a remote node toward a central or controlling node in a
hierarchical network. The word may also be used as a verb: to upline or to upline load,
i.e. to send data from a remote end-user’s node to a central node. Upline loading may be
used for the storage of data that were created or modified at the remote node, but cannot
be stored there permanently. Upline loading may also be used to transmit data collected at
a remote node to a more central node for further processing. Compare DOWNLINE.
upload To load *upline, i.e. to send data from a remote end-user’s node to a central node
in a network.
up operation Another name for V operation. See SEMAPHORE.
upper bound 1. (of a set S on which the *partial ordering < is defined) An element u
with the property that s < u for all s in S. Also u is a least upper bound if, for any other
upper bound v, u < v.
Since numerical computing demands the truncation of infinite arithmetic to finite
arithmetic, the computation of least upper bounds of real numbers, indeed of any limit, can
only be achieved to a machine tolerance, usually defined to be machine precision: the
smallest epsilon eps, such that
in computer arithmetic. See also LOWER BOUND. 2. (of a matrix or vector) See ARRAY.
UPS See UNINTERRUPTABLE POWER SUPPLY.
uptime The time or percentage of time during which a computer system is actually
operating correctly.
up vector A vector used to specify the y-direction of a string of text or the y-axis of a
coordinate system.
upward compatibility See COMPATIBILITY.
URI (uniform resource indicator) An identifier that uses the syntax defined in RFC
3986. URIs are divided into two parts by a colon. The first part is a label indicating the
scheme of the URI, and the second part identifies the resource using the syntax
appropriate to that scheme. For example, the URI ‘tel:+44-020-7…’ uses the ‘tel’ scheme,
which identifies telephone numbers; therefore, the second part uses the standard syntax for
telephone numbers (in this case specifying a number in London, England). Internet *URLs
are a subset of URIs, with the schemes http, ftp, smtp, etc.
http://tools.ietf.org/html/rfc3986
• The URI specification
URL (url) (universal (or uniform) resource locator) The address system used on
the Internet, for example, to specify the location of documents in the *World Wide Web.
See also URI.
USB (universal serial bus) An external peripheral interface standard for
communication between a computer and external peripherals over low-cost cable using
serial transmission. USB is replacing existing serial ports and parallel ports and is used
with keyboards, mice, printers, scanners, and removable hard drives. It is now available on
virtually all personal computers and many printers, scanners, etc. It is supported by all the
popular operating systems providing *plug-and-play.
USB 1.1 works at 12 Mbps with specific consideration for low-cost peripherals,
supports up to 127 devices over cables up to five metres long, and includes power
distribution for low-power devices. It supports daisy chaining through a tiered star
multidrop topology. A USB cable has a rectangular ‘Type A’ plug at the computer end and
a square ‘Type B’ plug at the peripheral end. A mini version of the plug is used for very
small devices such as digital cameras. USB provides a 5-volt supply at up to 500 mA for
powering low-power devices.
The USB 2.0 specification, released in 2000, allows USB to compete with FireWire,
etc. USB 2.0 is backward-compatible with USB 1.1 but works at 480 Mbps. The next
version, USB 3.0, is expected to work at about 5 Gbps. Most, if not all, modern systems
support *hot swapping of USB devices.
http://www.usb.org/developers/docs
• The USB (version 2) specification
USB drive (memory stick) In general, any storage device that can be attached to a
computer through a *USB port. The term is particularly used for small portable storage
devices typically sealed in plastic. Their physical size is reflected in the various names for
this type of device—thumb drive, pen drive, keyring drive, memory stick. They
have capacities as high as 4 gigabytes and on most modern personal computers they can
be recognized as an additional drive without the need for a special driver. Storage devices
of this type are increasingly used for backup, data transfer, storage of photographs or MP3
files, etc.
Usenet (Netnews) The name given to a number of similar services that provide a means
of allowing users to access information on a network. Most Usenet services rely on
cooperative action by a number of *server systems; these transfer newly entered
information on one server to other distributed servers, where it will be accessed by users.
The news items, usually referred to as messages or articles, are indexed to allow rapid
searching for information relating to a specific topic. A newsgroup is a collection of
Usenet messages that have been indexed as referring to a common theme, and are
probably all held on a single server. The Usenet approach allows users to access
information generated in other countries without the need to make international network
connections.
user account A collection of data associated with a particular user of a multiuser
computer system. Each account comprises a user name and *password, and defines
*security access levels, disk storage space, etc. The *system administrator is responsible
for setting up and overseeing user accounts.
user agent See MAIL USER AGENT.
user area The part of the main memory of a computer that is available for use by the
users’ programs. A significant portion of the main memory may be dedicated to the
operating system and the facilities that it requires, e.g. buffers.
user-friendly A qualitative term applied to *interactive systems (hardware plus
software) that are designed to make the user’s task as easy as possible by providing
feedback. Ways that help to make a system user-friendly include:
• a list of valid commands available on request;
• use of a *graphical user interface;
• ability to *undo actions made in error or by accident;
• use of graphics and colour to indicate what’s going on;
• availability of a *help system giving information appropriate to the current situation;
• choice of interaction methods to suit personal preference and level of expertise;
• immediate verification of data input, such as checking that a number is in the correct
range or word-by-word *spell checking (see SPELLING CHECKER).
As computers and terminals become available to many more people with no previous
experience in the computer industry, it becomes important that only the simplest
interactions should be necessary for them to start making practical use of the systems.
The term user-friendly is acquiring a wider ranging application, e.g. to other types of
*human-computer interfaces, catalogues, and training manuals.
user interface (UI) 1. The means of communication between a human user and a
computer system, referring in particular to the use of input/output devices with supporting
software. Examples include the *graphical user interface (GUI) and *command-line
interface (CLI). 2. Another name for front end.
user-interface management system (UIMS) A computer system sitting between the
application and the user that takes over responsibility for the user interaction. Some
systems allow old *legacy applications to be updated to a modern window-based
environment with little or no change to the original application.
user manual (user guide) See DOCUMENTATION.
user requirements specification A document that defines what a proposed system
must be capable of doing to solve the problems of a defined set of potential users of such a
system. The user requirements specification should be completely independent of any
solution-oriented bias and must use terminology from the problem domain of the users. It
must be understandable by the intended users who must ‘buy in’ to it. Therefore it is most
unlikely to be created using a conventional requirements-analysis method, since these
introduce solution bias, representations, and concepts that are rarely understood by (and
are irrelevant to) the users.
user state See EXECUTION STATES.
user view (external schema, subschema) A view of part or all of the contents of a
database specified to facilitate a particular purpose or user activity. It is a partial and/or
redefined description of the *logical schema of the database.
UTF-8 (8-bit Unicode Transformation Format) A method of encoding Unicode
*code points using one-byte unsigned integers; from one to four such integers are used
depending on the code point. UTF-8 is the most widely used Unicode encoding scheme
and is the default encoding for *XML documents.
http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf
• Details of UTF-8 encoding from the Unicode (version 5) standard
UTF-16 (16-bit Unicode Transformation Format) A method of encoding
Unicode *code points using two-byte unsigned integers; either one or two such integers is
used depending on the code point. Whether the most- or least-significant byte comes first
varies between implementations and is generally indicated by a *byte-order mark.
http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf
• Details of UTF-16 encoding from the Unicode (version 5) standard
UTF-32 (32-bit Unicode Transformation Format) A method of encoding
*Unicode *code points as four-byte unsigned integers. Whether the most- or leastsignificant byte comes first varies between implementations and is generally indicated by
a *byte-order mark. UTF-32 is not widely used.
http://www.unicode.org/versions/Unicode5.0.0/ch03.pdf
• Details of UTF-32 encoding from the Unicode (version 5) standard
utility programs (utilities) The collection of programs that forms part of every
computer system and provides a variety of generally useful functions, including file
copying and deleting, text preparation, and program cross-referencing.
UTP (unshielded twisted pair) See TWISTED PAIR.
uvwxy lemma Another name for the *pumping lemma for context-free languages.
V The letter used by the *CCITT to categorize standards relating to data communications
over telephone (analogue) circuits; the number following the letter identifies a particular
standard.
vaccine See INOCULATION.
vacuum fluorescent display (VFD) A small cathode-ray tube displaying individual
characters or messages. VFDs are used, for example, in retail POS terminals and domestic
devices such as TV recorders and microwave ovens.
VADS (value-added data service) A network service in which the service provider
offers end-users additional services over and above the simple movement of data from one
location to another. For example, a service offering end-users the ability to create and
maintain mailing distribution lists as well as simple electronic mail might be classed as a
VADS.
validate (of an *SGML or *XML document) See DTD.
validation See VERIFICATION AND VALIDATION.
validity check Any check that some entity respects the constraints applying to that
entity. For example, when the value of a data item is input by a program, a validity check
is normally performed to ensure that this value is within the acceptable range.
valuator A type of input to a graphics system consisting of a real value. Actual input
devices that readily provide input to valuators are dials, rheostats, etc. See also LOGICAL
INPUT DEVICE.
value-added See VADS, VAN, VAR.
VAN (value-added network) See MANAGED DATA NETWORK SERVICE, VADS.
V&V See VERIFICATION AND VALIDATION.
van Wijngaarden grammar Another name for two-level grammar.
VAR (value-added reseller) VARs form a class of business operation that adds value
to basic PCs and other computing equipment by configuring it with additional hardware
and/or software.
variable 1. A unit of storage that can be modified during program execution, usually by
*assignment or read operations. A variable is generally denoted by an *identifier or by a
*name. 2. The name that denotes a modifiable unit of storage. 3. See PARAMETER. 4. (in
logic) a name that can stand for any of a possibly infinite set of values.
variable bit rate (VBR) A stream of data in which the data arrives at a variable number
of bits per second. For example, where data are to be transferred out of the memory of one
computer system, across a network, and into the memory of a second computer system, it
is perfectly feasible to suspend the transfer at some stage and to restart it later, without any
detriment to the transfer. Such changes in the rate of delivery of data are not tolerable
when transmitting digitally encoded speech. See also CODEC, CONSTANT BIT RATE.
variable delay (in a network) See NETWORK DELAY.
variable-length code A *code in which a fixed number of source symbols are encoded
into a variable number of output symbols. This variable number (the *code length) may be
made to depend on some property of the source symbols input to the encoder, often their
relative frequency of occurrence. If a variable-length code is to be instantaneously
decodable (i.e. a *prefix code), it must obey *Kraft’s inequality. See also SOURCE CODING
THEOREM. Compare FIXED-LENGTH CODE.
variable-length vector A *vector, i.e. a one-dimensional array, that usually has a fixed
lower bound but its upper bound may vary according to values assigned to the array. See
also STRING.
variable word length computer A computer that does not have a fixed word length
but operates on data of different word lengths; this may also apply to instruction sizes. The
lengths of data words that can be handled are usually in units of *characters or *bytes, so
that the computer handles strings of characters or bytes. It is then known as a character
machine or byte machine respectively. Variable word length computers were once
considered particularly important where data are themselves of varying lengths (e.g.
strings of characters) or where natural data lengths do not fit word (hardware-restricted)
boundaries. However, the cost of such special-purpose hardware is no longer justified,
given the very high processing speeds of modern general-purpose *fixed word length
computers.
variance See MEASURES OF VARIATION.
variant field An optional part of a *record.
variation 1. See MEASURES OF VARIATION. 2. (contractual variation) The process of
changing a contract to supply goods or services, and the results of any change to the
contract as represented in a contract amendment.
variational method A technique for the solution of certain classes of *ordinary and
*partial differential equations that involves the use of a variational principle. That is,
the solution of the differential equation is expressed as the solution of a minimization
problem that involves an integral expression. The equation is then solved by carrying out
an approximate minimization. Variational principles arise naturally in many branches of
physics and engineering. As an example, the solution of
is also the solution of the problem
where V is a class of sufficiently differentiable functions that are zero at x = 0 and x = 1.
An approximate minimization can be carried out by minimizing over the subspace of
functions
When the trial functions ϕj(x) are *splines, the resulting method is an example of the
*finite-element method.
VAX See DIGITAL EQUIPMENT CORPORATION.
VAX/VMS Trademark The operating system offered by Digital Equipment Corporation
as the standard system for their VAX range of processors. The system functions by
producing a *virtual machine for each user of the VAX hardware.
VBA Abbrev. for Visual Basic for Applications.
VB.NET See VISUAL BASIC .NET.
VBR Abbrev. for variable bit rate.
VBScript A scripting language developed by Microsoft and based on Visual Basic. It
allows designers to embed scripts in the HTML document, and these are executed by the
browser software. Like *JavaScript, it is used to add additional features to web pages.
https://msdn.microsoft.com/en-us/library/sx7b3k7y(VS.85).aspx
• VBScript user’s guide
https://msdn.microsoft.com/en-us/library/d1wf56tt(VS.85).aspx
• VBScript language reference
VDI (virtual device interface) See CGI.
VDL (Vienna Definition Language) A *metalanguage used to describe
programming languages in terms of *operational semantics. It was developed in the 1960s
by the IBM Laboratory in Vienna, which went on to devise *VDM methodology. In
contrast to VDL, the metalanguage developed for VDM, VDM-Meta-IV, used
*denotational semantics.
VDM (Vienna Development Method) A notation and methodology for writing
formal specifications, based on the Vienna Definition Method developed at the IBM
Laboratory in Vienna in the 1960s for the definition of programming languages. See
CONSTRUCTIVE SPECIFICATION.
Three dialects of the formal language of VDM are now in use, and are commonly
known as VDM languages: VDM-SL (VDM-Specification Language) is a formal
specification language for sequential systems, with support for modular structuring;
VDM++ extends VDM-SL with features for object-oriented systems and concurrency, and
VDM-RT (VDM-Real Time) extends VDM++ to model real-time embedded and
distributed systems. VDM-SL has been standardized by *ISO (ISO/IEC 13817-1).
VDT (visual display terminal), another term for visual display unit. See VDU.
VDU (visual display unit) A device that consists of a *display, *keyboard, and
computer connection.
vector A one-dimensional *array. In computing, vectors are widely used since the
memory is essentially a vector of words. The notation for vectors is determined by the
programming language. In this dictionary a bold italic lower-case letter, e.g. v, is used to
denote a vector in its entirety, and the corresponding plain italic lower-case letter indexed
by a subscript, e.g. vi, is used to denote an element of the vector.
A vector may also be used to express a deficient *matrix, in which case it is necessary
to distinguish between a row vector and a column vector.
vector display 1. A method of presenting graphical or pictorial images in which the
beam of a *cathode-ray tube (CRT) is turned on as it moves from one position to another,
thus creating a line. (The pen of a pen plotter may sometimes be operated in this way.) In a
CRT the complete picture is created from a sequence of lines, which need to be regularly
*refreshed to ensure a flicker-free picture. The amount of information that can be
displayed depends on the number of lines that can be drawn before the image needs to be
refreshed. Compare RASTER-SCAN DISPLAY. 2. A physical display operating in this way.
vectored interrupts An efficient method implemented in hardware for dealing with
many different devices, each of which is capable of interrupting and each different type of
device requiring a unique *interrupt handler. The interrupt vector is an array of
interrupt handler locations. When a device successfully interrupts the processor, it supplies
the processor with a reference to its entry in the interrupt vector. The processor then uses
this to transfer control to the appropriate interrupt handler.
vector font (plotter font) A *font created as a series of dots connected by lines that can
be scaled to different sizes. It is used by plotters.
vector graphics Graphics in which the information about the image is held as a series
of drawing instructions (and instructions to fill certain areas in certain colours). Vector
graphics are used for producing digitized artwork in many drawing programs. Compare
RASTER GRAPHICS.
vector norm See APPROXIMATION THEORY.
vector processing Processing of sequences of data in a uniform manner, a common
occurrence in manipulation of matrices (whose elements are vectors) or other arrays of
data. A vector processor will process sequences of input data as a result of obeying a
single vector instruction and generate a result data sequence. This orderly progression of
data can capitalize on the use of *pipeline processing. See also ARRAY PROCESSOR.
Veitch diagram Another name for Karnaugh map.
Venn diagram A schematic representation of a *set, first used in the 19th century by
John Venn. A universal set U will typically be represented by a rectangle, and a subset S of
U by the interior of a circle (or another simple closed curve) lying wholly within the
rectangle. Some examples are shown in the diagram. Where appropriate, the shaded areas
represent the sets indicated beneath each figure.
Venn diagram. Examples of Venn diagrams
verification The process of checking the accuracy of transcription of information. It is
generally applied to data that has been encoded via a data-preparation machine by an
operator reading from a document. The documents are subsequently read by another
operator and entered into a machine that compares the input with that prepared by the first
operator. Any differences are signaled and a correction or confirmation action is made by
the second operator.
Data may also be verified when it is copied to a storage peripheral from the main store
or another storage peripheral. In this case the data is normally coded in a way that allows
*error detection, and verification only involves checking the written data for consistency:
it is not compared with the source data.
verification and validation (V&V) A generic term for the complete range of checks
that are performed on a system in order to increase confidence that the system is suitable
for its intended purpose. This range might include a rigorous set of functional tests,
performance testing, reliability testing, and so on, in which case the term verification,
validation and testing (VV&T) is more appropriate. Although a precise distinction
is not always drawn, the verification aspect normally refers to completely objective
checking of conformity to some well-defined specification, while the validation aspect
normally refers to a somewhat subjective assessment of likely suitability in the intended
environment.
verification condition See PROGRAM CORRECTNESS PROOF.
verification system See FORMAL METHOD.
Veronica (very easy rodent-oriented network index to computerized
archives) (the reference to rodents being related to the *Gopher system). An
information-retrieval tool on the *Internet. A Veronica server holds an index of Gopher
server systems, which can be accessed using Gopher on a workstation; the result of a
search of the index is a menu of Gopher server systems that contain relevant information,
and this menu can then be used by the workstation to connect directly to the Gopher
servers. The use of Veronica declined with that of Gopher.
version control (revision control) Control of the creation and usage of the various
versions of a given entity. For a recognizable entity, e.g. a software component, there may
be various reasons for developing several distinct versions of the entity. A later version
may represent an improvement over an earlier one, in that certain errors have been
corrected or new capabilities added, or it may employ an alternative approach to meeting
the same requirements.
Version control promotes correct usage of the various versions, perhaps by restricting
access to existing versions and creation of new versions. For example, the ‘current release’
version of some software component may be protected against modification or deletion,
while access to (or even knowledge of) a version under development may be limited to the
development team.
version number A number attached to a specific version of a software item and used to
distinguish this version from other versions. Simple version numbers are usually allocated
in sequence so that successive version numbers will correspond to successive versions.
Version numbers can also be composite, consisting of several parts often separated by
periods. This numbering scheme allows a hierarchical identification of versions and is one
way of distinguishing potential subsets among a set of versions. Configuration
management approaches and configuration management tools must define a strategy for
numbering versions.
vertex An element of the set of points that underlies the concept of a *graph. Edges are
obtained by joining together pairs of vertices.
vertical check See CYCLIC REDUNDANCY CHECK.
vertical microinstruction See MICROPROGRAMMING.
vertical recording See MAGNETIC ENCODING.
very large-scale integration See INTEGRATED CIRCUIT, VLSI.
very long instruction word (VLIW) An architecture for parallel multi-core
processors that is based on instruction-level parallelism (ILP). The instructions for each
processor are merged together, indicating that they execute at the same time. VLIW is an
architecture that simplifies hardware scheduling, at the expense of making the *compiler
more complex.
VESA (Video Electronics Standards Association) A US-based organization set
up to define standards for many aspects of display technology and their interfaces.
VFAT (virtual file allocation table) See FILE ALLOCATION TABLE.
VFD Abbrev. for vacuum fluorescent display.
VFU Abbrev. for vertical format unit.
VGA (video graphics array) A colour *graphics adapter that was introduced with the
IBM PS/2 series. It could generate a 640 × 480 16-colour screen in addition to all the
modes of the EGA and MCGA adapters. See also SVGA.
VHDL (VHSIC hardware description language) A *CHDL (computer hardware
description language) developed as part of the very high speed integrated circuit (VHSIC)
project. It embodies many of the principles of *CONLAN and (as IEEE-1076) has become
the accepted standard CHDL.
video 1. Relating to the storage or broadcasting of information that contains both pictures
and sound. 2. The process of storing, reproducing, or broadcasting video information.
videoconferencing A system in which two or more sites, each equipped with a video
camera and screen, are interconnected by a network so that participants at each site can
both see and hear their opposite numbers at the other sites. There are now a number of
commercial services offering videoconferencing facilities that can operate over digital
networks.
video scanner (image grabber) A device that allows a single TV frame (or multiple
frames) to be stored in memory for analysis or processing by a computer. These can be
simple devices for low-cost applications or can be very fast real-time units that with
powerful processor support can handle image manipulation or TV standards conversion in
full colour.
video terminal A VDU that is used as a *terminal.
videotex A system that provides interactive dial-up access to one or more remote
services providing information. The user communicates with the information source by
means of the keyboard of a personal computer, or a special videotex terminal, that is
linked to the telephone through a modem. Compare TELETEXT.
Vienna Definition Language See VDL.
Vienna Development Method See VDM.
view In a database, a virtual table created by applying predefined selection and joining
criteria to one or more physical tables. A view’s contents are computed dynamically from
these tables when it is invoked. (In practice DBMSs implement some types of view by
maintaining a synchronized copy of the relevant data. Such a view is called a
materialized view.) Views can always be used for data selection, but their other
capabilities depend both on the view’s definition and on the capabilities of the particular
database management system. For example, the DMBS may not permit data to be updated
through a view; and, if it does, views still cannot be updatable if they present data that is
summarized or otherwise manipulated so that there is no one-for-one correspondence with
the underlying physical data.
viewing The mapping of scenes defined in a world-coordinate system to pictures seen
from a particular view point, possibly with *culling of the original scene and *clipping of
the area viewed.
view plane The plane onto which an object is projected in a *parallel or *perspective
projection.
viewport The area of a display that receives a particular view of the world scene. See
also VIEWING.
virgin medium Material such as a magnetic tape or disk that is suitable for the
recording of data, but has not been used or preformatted for that purpose. Compare EMPTY
MEDIUM.
virtual call service In a *packet switching network, a technique of setting up a *virtual
circuit between terminals prior to the transmission of user data.
virtual circuit A connection that to the end-user behaves like a *circuit but is actually
realized in some other way, typically by the use of some form of *packet switching
system. A virtual circuit must be brought into existence or created before it can be used,
and after use it will normally be dismantled or cleared. Usually this creation and clearing
will be undertaken by the users of the system, by means of an appropriate *protocol. A
permanent virtual circuit (PVC) is created by the operator of the network system and
cannot be cleared down by the user. The use of virtual circuits is usually associated with
*connection-oriented network services. Virtual circuits tend to be favoured by agencies
that charge for the use of telecommunications systems, such as *PTTs and *PNOs, as the
appropriate charging can be driven by the actions of creating and clearing the virtual
circuit.
virtual connection See VIRTUAL CIRCUIT.
virtual disk drive An abstract entity realized by array management software (see DISK
ARRAY)
whose functionality is the same as a physical disk drive. Its cost, *MTBF, and
performance may well be very different. See RAID.
virtual learning environment (VLE) A computing system, generally web-based,
that is used to support teaching. Such systems provide a mechanism for instructors to
share teaching materials, lecture slides, exercises, and reference resources. The system
enables enrolled students to access these materials and to submit their own work; it may
also assist the instructor with grading. Many systems support some kind of *chat room or
discussion forum facility to enable interaction between teacher and student.
virtual machine 1. A collection of resources that emulates the behaviour of an actual
machine. The virtual machine concept originated in Cambridge, Mass., in the late 1960s as
an extension of the *virtual memory system of the Manchester *Atlas computer.
A *process is defined in its totality by the contents of the workspace to which it has
access. Provided that the behaviour of the workspace is consistent with the expected
behaviour, there is no means by which a process can determine whether a resource that it
manipulates is realized by a physical resource of that type, or by the cooperative actions of
other resources that jointly present the same changes in the contents of the process’
workspace. As an example, a process cannot determine whether its output is passed
directly to a printer or is sent via some form of *spooling system. Similarly it cannot
determine whether it has sole use of a processor or is *multiprogramming with other
processes. In a virtual machine environment no particular process has sole use of any
system resource, and all system resources are regarded as being potentially sharable. In
addition, use of virtual machines provides *isolation between multiple users of a single
physical computer system, giving some level of computer security.
The virtual machine approach forms the basis of a number of commercially produced
operating systems, especially of IBM’s VM/CMS and of Digital’s VAX/VM products; it is
also increasingly used to allow users to run several different operating systems
simultaneously on one computer. 2. A *platform that has no physical existence. Programs
written for such a platform are executed by another program, which emulates the virtual
machine on a real computer. In the context of *cloud computing, a virtual machine can be
used to allow users to set up and configure their own virtual computing platform See also
INTERMEDIATE CODE.
virtual memory A system in which a *process’s workspace is held partly in high-speed
memory and partly on some slower, and cheaper, backing-store device. When the process
refers to a memory location the system hardware detects whether or not the required
location is physically present in memory, and generates an interrupt if it is not; this allows
the system supervisor to transfer the required data area from backing store into memory.
For this purpose the address space is subdivided into *pages typically holding 4 kilobytes
of data. Addresses within a page are defined by the 12 low-order bits in the address. The
high-order bits can be thought of as the page number; they are used to search an
*associative memory that shows either the physical location within memory of word zero
of the page, or indicates that the page is not present in memory—at which point an
interrupt is generated. The system supervisor then locates the page on backing store and
transfers it into memory, updating the associative memory as it does so.
virtual reality (VR) The creation and experience of environments. The central
objective is to place the participant in an environment that is not normally or easily
experienced. Augmented reality is similar to virtual reality but the virtual image is
superimposed on a real-world image often using see-through *head-mounted displays.
virtual screen A possible screen on a VDU that can support more than one session at
one time. A virtual screen is seen by the host as a unique application resource, but is
invisible to the user. The user is able to switch, at will, between virtual screens, viewing
the chosen screen as a physical screen.
virtual terminal A nonphysical terminal that is defined as a superset of characteristics
of a class of physical terminal types. The virtual terminal idea is analogous to defining a
non-real-world language into which some set of real-world languages can be translated
bilaterally.
In some *packet switching networks, attempts have been made to use the virtual
terminal concept as a means of performing protocol translation between dissimilar
terminals. At the input node the message is translated into the virtual terminal format, and
at the output node it is retranslated into the receiving terminal’s protocol. The generality of
the concept is somewhat limited because of nontranslatable characteristics of certain types
of terminals with respect to others.
virtual world A representation of an imaginary world created by program. The user
generally views and interacts with the world from the inside, often via an *avatar. Virtual
worlds are the basis of several popular multi-user Internet games, such as *Second Life.
virus Program code written to replicate by attaching copies of itself to other objects
within the system, and normally also having a detrimental effect. This may range from
generation of irritating messages, through *denial of service, to corruption or complete
destruction of data. A program virus will seek out and copy itself into other program
files whenever a previously infected program is run. A boot sector virus copies itself
into that sector of a disk and spreads whenever a system is boot loaded from an infected
disk. Viruses are spread when infected programs or disks are transferred to previously
clean systems. See also LOGIC BOMB, TROJAN HORSE, WORM.
virus detection The systematic pursuit of *viruses. Techniques of virus detection may
be either specific, checking for a set of known viruses, or generic, exploiting
characteristics common to all viruses and aimed at detecting both known and previously
unknown viruses. Techniques may be further classified into dynamic procedures, in
which a permanently resident program is constantly checking the running system for
viruses, or static procedures, which are invoked at regular intervals, typically daily, to
detect viruses introduced since their last activation. See IMMUNIZATION, INOCULATION,
SIGNATURE SCANNING.
VisiCalc Trademark An early innovative *spreadsheet program developed by VisiCorp
for the Apple microcomputer system.
Visual Basic A system for rapid development of Microsoft *Windows applications. The
user designs a visual interface by selecting ‘controls’ (e.g. menus, dialogue boxes) from a
predefined palette, and then provides code in a dialect of Basic to specify the actions for
each control in response to user input. The latest version is Visual Basic 2005 (see VISUAL
BASIC .NET).
Visual Basic 2005 See VISUAL BASIC .NET.
Visual Basic for Applications (VBA) A common control language for Microsoft
applications, in which Basic control structures and variables are supplemented by
procedures and functions specific to the application. It was first implemented for the Excel
spreadsheet.
Visual Basic .NET (vb .net) The latest major revision of Visual Basic from Microsoft.
Released in 2001, it introduced extensive support for *object-oriented programming but
was not backward compatible with previous versions. VB.NET outputs *intermediate code
that requires the .NET framework to execute. The current version is Visual Basic 2005.
Visual C++ A C++ program development system marketed by Microsoft, combining a
C++ compiler with an integrated development environment based on a visual interface.
The latest version can generate both *intermediate code for the .NET framework and
machine code.
visual display unit (visual display terminal) See VDU.
visualization The display of data with the aim of maximizing comprehension rather
than photographic realism.
Viterbi decoding The decoding of a *convolutional code by Viterbi’s algorithm.
VLB (VESA local bus) A 32-bit parallel bus used to interface graphics accelerator
cards and other interface cards to the computer bus. VLB was superseded by the *PCI bus.
See also LOCAL BUS, VESA.
VLE Abbrev. for virtual learning environment.
VLFMF (very low-frequency magnetic field) CRT displays, transformers,
fluorescent lights, etc., can emit magnetic fields at low frequency (50 Hz to 100 kHz) that
some allege can be harmful to humans. There is currently no consensus as to the levels or
exposure limits that might be harmful. Concerns about the harmful effects of VLFMFs is
also encountered with respect to power transmission lines and are highly contentious.
These effects are claimed or denied by their respective pressure groups.
VLIW (very long instruction word) A VLIW machine is one in which a number of
normal instructions are combined and are capable of simultaneous execution using parallel
functional units. The instruction may be hundreds of bits long. A compiler must ensure
that operations packaged in a VLIW do not have *data dependencies that would be
violated by their parallel execution. See also SUPERSCALAR.
VLSI (very large-scale integration) Integrated-circuit fabrication technology that
allows over 100 000 transistors to be integrated on a single chip. All modern chips are
VLSI. See also INTEGRATED CIRCUIT.
VM/CMS Trademark (virtual machine, conversational monitor system) An operating
system originally produced in Cambridge, Mass. (On its first introduction the C stood for
Cambridge.) The original system ran on a specially modified IBM 360/44, and was the
first to make formal use of the concept of a *virtual machine, as distinct from a *virtual
memory.
VME bus Trademark (Versa Module Eurocard, originally Motorola Versabus) A
highly versatile asynchronous backplane bus (IEEE-P1014) that facilitates construction of
digital systems from system modules such as processor, memory, disk controller, and
external interfacing cards. Data transfers are made by way of a 32- or 64-bit data bus.
Transfers are controlled by *handshaking interaction of request and acknowledge signals
between the current bus master and the addressed slave device. Any intelligent connected
device may request bus mastership, which then enables it to initiate data transfers;
contention between requesting devices is resolved by a two-level priority *bus arbitration
system. A flexible prioritized *interrupt handling scheme is also included to enable
devices to demand attention from the processor or other designated interrupt handling
device. Although developed originally in 1981, the VME bus has had many enhancements
and extensions and is still widely used.
V-model A *software life-cycle model that is a development of the *waterfall model. In
a typical example successive phases are displayed in a V formation with square-corner
boxes representing the activities performed in a phase and with rounded-corner boxes
representing the outputs from a phase. Outputs become the inputs to the next phase. The
left leg of the V includes phases in which the detail of the design and the implementation
of the software are gradually increased. In ascending the right leg of the V, the software is
progressively assembled from its modules and testing proceeds from single modules
through to the full system and eventual acceptance of the system.
Across-phase activities such as project and quality management are included; some
links to contractual procedures are also included, for example invitation to tender (ITT).
The model shares the weakness of waterfall-type models in omitting a diagrammatic
representation of iteration between life-cycle phases. See also SPIRAL MODEL.
VMS See VAX/VMS.
voice activation The binding of spoken commands to commonly used system
commands. It is often more efficient to speak a command rather than type on a keyboard
or click on a mouse. It is also a way to avoid *RSI (repetitive strain injury). See also
SPEECH RECOGNITION.
voiceband See BANDWIDTH.
voice coil See ACTUATOR.
voice input device A device in which speech is used to input data or system commands
directly into a system. Such equipment involves the use of *speech recognition processes,
and can replace or supplement other input devices.
Some voice input devices can recognize spoken words from a predefined vocabulary,
some have to be trained for a particular speaker. When the operator utters a vocabulary
item, the matching data input is displayed as characters on a screen and can then be
verified by the operator. The speech recognition process depends on the comparison of
each utterance with words appearing in a stored vocabulary table. The table is created or
modified by using the voice input equipment together with a keyboard. A data item or
system command is typed and the related spoken word is uttered, several times. The
spoken word is then analysed and converted into a particular bit pattern that is stored in
the vocabulary table.
voice mail See VOICE MESSAGING.
voice messaging (voicemail) A message system closely related to *email but in which
the body of the message is presented as speech. Such systems may be implemented as
extra features on a PABX system, using the tone-dialing features of the handset to control
the addressing, storing, and accessing of the recorded speech. Alternatively they may be
implemented as an extension to email by allowing the sender to present the body of the
message as digitized speech, for later recovery by the recipient who will reconvert the
stored form to an audio signal.
Voice over Internet Protocol See VOIP.
voice recognition The process of recognizing a specific voice or speaker. Many of the
processes involved are the same as those used in *speech recognition.
void set Another name for empty set.
VoIP (Voice over Internet Protocol) The use of an IP network, in particular the
Internet, to carry verbal conversations. This has been a major growth area in recent years,
with several companies offering services that not only allow conversations between their
members but also connect to the global telephone network. Indeed, many traditional
telephone providers now use VoIP internally. Implementing conversations in real time
imposes special constraints because they are particularly sensitive to any delay or lost
data. For example, the scope for using buffering to assemble an incoming message from
data packets that might arrive out of order, be delayed, be lost and require retransmission,
etc., is severely limited. There are now (2014) quite a few standards used to implement
VoIP but the most significant are ITU’s H323, which was one of the first and the IETF’s
SIP, which has found widespread use.
https://web.archive.org/web/20090318200924/http://iec.org/online/tutorials/h323/index.asp
• H323 information site
http://tools.ietf.org/html/rfc3261
• The SIP specification
volatile memory A type of memory whose contents are destroyed on the removal of
power to the memory. When volatile memories are used for crucial applications, they can
be backed up with temporary battery-power supplies. Compare NONVOLATILE MEMORY.
Volterra integral equation See INTEGRAL EQUATION.
volume A logical unit of data storage. A volume can be a single unit of a physical storage
medium (e.g. one fixed disk may be a single volume), but it can correspond to part of a
physical unit (e.g. one of several *partitions on a fixed disk) or to more than one physical
unit (e.g. multiple partitions on several fixed disks).
volume label See LABEL.
volume visualization A *visualization technique based on splitting the projected
picture into three-dimensional voxels (volume equivalents of pixels) and applying
*rendering techniques to the voxels before the mapping to two dimensions.
von Neumann, John (Margittai Neumann János Lajos) (1903–57) Hungarian-born
US mathematician. Already a noted mathematician, von Neumann emigrated to the USA
in 1930 and joined the faculty of Princeton University. His major contribution to computer
science was his ‘First Draft of a Report on the EDVAC’ (1945), which described an
architecture that has since been regarded as standard for digital computers (see EDVAC;
VON NEUMANN MACHINE). However, this was only a part of his life’s work, which also
included major contributions to game theory, quantum physics, and statistics and
numerical analysis as well as work on the atomic bomb during World War II.
von Neumann machine Any computer characterized by the following concepts:
(a) the main units are a *control unit, *ALU, *memory, and input and output facilities;
(b) programs and data share the same memory, thus the concept of a *stored program is
fundamental;
(c) the control unit and ALU, usually combined into a *central processor (which may
contain internal storage—accumulators and other registers), determine the actions to
be carried out by reading instructions from the memory.
It follows that a program for a von Neumann machine consists of a set of instructions that
are examined one after another; a *program counter in the control unit indicates the next
location in the memory from which an instruction is to be taken. It also follows that the
data on which the program operates may include *variables: storage locations can be
named so that the stored value may be subsequently referenced or changed during
execution of the program.
The vast majority of present-day computers are von Neumann machines. The name is
taken from that of the American, John von Neumann. Compare NON VON NEUMANN
ARCHITECTURE.
V operation (up operation) See SEMAPHORE.
Voronoi diagram A breakdown of a plane into Voronoi regions (also called
Dirichlet regions) based on a set of points. For each point P in the set, the
corresponding Voronoi region consists of the set of points closer to P than to any other
point in the set.
voting logic See COMPARATOR.
voxel The three-dimensional equivalent of a *pixel. It is an axis-aligned box, typically an
element in a space-subdivision structure.
VPN (virtual private network) A connection between two computers or other
endpoints in which packets sent over a shared network, for example, the Internet, are
automatically encrypted and decrypted by the endpoints. Although the packets are carried
on a shared network, their contents are protected from unauthorized access between the
endpoints. Virtual private networks are commonly used to connect branch offices to a
headquarters when the cost of a physically separate communications link cannot be
justified, or to allow workers to access their company network across the Internet when
they are not on the premises. VPNs may use proprietary or standard protocols, for
example *IPSec; endpoints may be dedicated hardware devices or software installed on
personal computers or routers.
VR Abbrev. for virtual reality.
VSAM (virtual storage access method) An *access method for data files,
supporting both *sequential access and indexed access (see INDEXED FILE), and based on
primary indexes that are structured as B+ trees (see B-TREE). It is specific to IBM
machines and operating systems using *virtual memory techniques, and improves on
*ISAM.
V-series See V.
VSO (very small outline) See SO.
VTFL code (variable-to-fixed-length code) A *code in which the data input to the
*encoder may vary in length between iterations of the encoding algorithm, but the data
output is always of the same length. The *decoding of a VTFL code is *FTVL. Also,
VTFL is the decoding scheme for data that were encoded by a FTVL code (e.g. a
*Huffman code).
VTVL code (variable-to-variable-length code) A *code in which both the data
input to the *encoder and the data output from it may vary in length between iterations of
the encoding algorithm. The *decoding of a VTVL code is also VTVL.
vulnerability Any mechanism that could lead to a breach of the security of a system in
the presence of a *threat. Vulnerabilities may arise unintentionally due to inadequacy of
design or incomplete debugging. Alternatively the vulnerability may arise through
malicious intent, e.g. the insertion of a *Trojan horse.
VV&T See VERIFICATION AND VALIDATION.
VW-grammar Short for van Wijngaarden grammar, another name for two-level
grammar.
W3 (W3) Abbrev. for World Wide Web.
W3C See WORLD WIDE WEB CONSORTIUM.
wafer A large single crystal of semiconductor, usually silicon, that is used as the substrate
on which *integrated circuits are manufactured. Wafer-scale integration is a
technique that utilizes a very large area of the silicon wafer to implement a *VLSI circuit.
wafer-scale integration See WAFER.
WAIS (wide area information service) A service designed to provide ready access
to information of interest to users based at widely separated locations, typically in a *wide
area network. The term was used both to refer to a database server holding indexed
information, and also to a software utility that ran on a network-connected workstation
and allowed a user at the workstation to carry out searches of documents held in remote
databases. The use of WAIS declined as the *World Wide Web expanded.
wait list A list of the processes that are awaiting the completion of some activity before
they can again run on a processor. Typically the activity is associated with input or output,
but may in theory be associated with any activity that can cause a process to be suspended
while awaiting the freeing of a *semaphore (or an equivalent mechanism that may be in
use to control process synchronization).
wait operation See SEMAPHORE.
wait state A situation in which one component of a system is unable to proceed until
some other component has completed an operation. As a commonly occurring example,
the basic operating time of many processors is less than the time needed to read data from
the memory subsystem. In general, the processor is unable to proceed further until
information that is requested from the memory has been received. To cater for this, when
the processor passes the address of the data to be read to the memory controller and
requests information to be read from the memory, the processor enters a wait state,
performing no operations of any kind, until the memory controller signals that the data is
available to the processor. See also ZERO-WAIT STATE.
walkthrough A product review performed by a formal team. A number of such reviews
may be held during the lifetime of a software project, covering, for example, requirements
specification, program specifications, design, and implementation. The review is formally
constituted; there is a clear statement of the contribution that each member of the review
team is required to make, and a step-by-step procedure for carrying out the review. The
person responsible for development of the product under review ‘walks through’ the
product for the benefit of the other reviewers, and the product is then openly debated with
a view to uncovering problems or identifying desirable improvements.
wallpaper In a *graphical user interface (GUI), the pattern on those parts of the screen
outside the currently displayed *windows. The wallpaper can be chosen from those
supplied with the GUI or can be provided by the users. Small repeated patterns or screenfilling pictures can be used. Compare SCREENSAVER.
Walsh analysis One of the many forms of orthogonal analysis (especially of *signals);
it employs the *Walsh functions as its orthonormal basis. Walsh analysis is especially
suited to *digital signal processing since the Walsh functions themselves, and the
operations based upon them, are easily represented and rapidly carried out by simple
digital systems. The analysis of a signal in terms of Walsh functions is called its Walsh
transform. See also DISCRETE AND CONTINUOUS SYSTEMS, FILTERING, SEQUENCY,
BANDWIDTH.
Walsh functions A complete set of functions that form an *orthonormal basis for
*Walsh analysis: they take only the values +1 and −1, and are defined on a set of 2n points
for some n. For purposes of computer representation, and also for their use in coding, it is
usual to represent ‘+1’ by ‘0’, and ‘−1’ by ‘1’. As an example, the 8-point Walsh functions
are then as follows:
Note that the Walsh functions (usually denoted wal) consist alternatively of even and odd
functions (usually denoted cal and sal by analogy with cos and sin). Furthermore, within
the set of 2n functions there is one function of zero *sequency, one of (normalized)
sequency 2n−1, and one pair (odd and even) of each (normalized) sequency from 1 to 2n−1
− 1.
A set of Walsh functions corresponds, with some permutation of columns, to a *Reed–
Muller code and, with a column deleted, to a *simplex code. See also HADAMARD
MATRICES.
Walsh transform See WALSH ANALYSIS.
WAN Acronym for wide area network.
wand A small handheld device that can be used to read printed *bar codes or characters.
The device may have a shape similar to a pen, but is usually larger in diameter or may be
designed to be grasped in the palm of the hand. In use it is stroked over the surface of the
printing at a steady speed and an audible and/or visual signal is actioned to indicate if a
satisfactory sensing of data was achieved. The wand usually only contains the sensors and
the minimum of electronics and is connected to the control electronics by a flexible cable.
Some recent wands include data storage and an OCR capability for reading text.
WAP (wireless applications protocol) A protocol for devices such as mobile
phones to connect to the Internet.
Ward–Mellor A particular variant of *structured systems analysis developed by Paul
Ward and Stephen Mellor for use in real-time systems development. In addition to the
techniques used in structured systems analysis, Ward–Mellor introduces the concept of
control processes in dataflow diagrams described by state-transition diagrams.
warm boot (warm restart) A method of restarting a computer without switching it off
and then on again or using an equivalent technique (see COLD BOOT). The implication is
that not all parts of the operating system are reinitialized; there is some carry-over from
the environment before the reboot. However, a warm boot will normally be quicker and
often simpler than a cold boot and may well serve whatever purpose was intended by the
restart.
Warnock’s algorithm A *hidden-line removal algorithm that is based on recursive
subdivision of the scene until areas are obtained that are trivial to compute. The algorithm
works because of *area coherence. It solves the general problem by avoiding it. If the
scene is simple enough to render then it is rendered; otherwise it is divided into smaller
parts and the process is repeated.
warping Distorting an image or texture to achieve some desired effect.
Warshall’s algorithm An algorithm for *transitive closure that saves computational
time or storage space by doing computations in a particular order.
watchdog timer A timing device used to guard against errors caused by the lack of an
expected response to a processor action within some maximum permitted time. One
example would be if no acknowledgment is received to the transmission of a message
from one processor to another. After some time interval it would be assumed that the
transmission had failed and should be repeated. See also TIMEOUT.
waterfall model A *software life-cycle model that represents the successive phases as
boxes and the onward progression of partially worked software as connecting arcs.
Typically the first phase, whatever its name, is shown as the highest box, and the outputs
of this and other phases appear to flow into the subsequent phases. Sometimes the flow is
only shown from first phase toward the last phase and no iteration around phases is
conceived. Other versions of the model show a reverse flow.
It is rare for the waterfall style of model to show the various activities that occur across
all life-cycle phases. For example, certain important activities such as project
management, quality management, and configuration control are omitted. A further
weakness of many waterfall models is the treatment of maintenance. Maintenance is
shown as a single box: this is the view of a system as perceived by the supplier, and
particularly a supplier who has no responsibility for software maintenance. In reality each
maintenance action will follow the full life cycle from feasibility through to
implementation.
See also SPIRAL MODEL, V-MODEL.
WATFIV An improved version of *WATFOR.
WATFOR A fast load-and-go *Fortran compiler developed at the University of
Waterloo in Canada (hence WATerloo FORtran) and widely used for the teaching of
programming in the Fortran era.
wavelength-division multiplexing In *fibre optics, the division of the available
wavelengths into multiple channels, each capable of carrying a separate signal in parallel.
wavelet A basis function, W, that yields the representation of a function f(x) of the form:
Wavelets are based on two fundamental ideas: dilation and translation. The construction of
wavelets begins with the solution to a dilation equation:
ϕ(x) is called the scaling function. W can then be derived from ϕ(x):
Wavelets are particularly useful for representing functions that are local in time and
frequency. The idea of wavelets grew out of seismic analysis and is now a rapidly
developing area in mathematics. There are elegant recursive algorithms for decomposing a
signal into its wavelet coefficients and for reconstructing a signal from its wavelet
coefficients.
wavelet image compression An approach to image compression based on *wavelets.
The image is represented by a collection of quantized wavelet coefficients.
wavelet radiosity The use of hierarchical basis functions (*wavelets) in *radiosity
calculations.
wavelet transform A decomposition of a signal in terms of a *wavelet basis.
wave-table synthesis A technique for reproducing a wide frequency range from a
small number of original samples at selected base frequencies. It is often used to create in
a more accurate way the sounds of real musical instruments by means of a number of
*sound cards. Data is either held in ROM or loaded into RAM. The specialized hardware
then performs interpolation from various base notes held in RAM or ROM. The technique
is often used by on-board *MIDI systems.
WC Abbrev. for world coordinates.
weakening (monotonicity) A rule of reasoning that implies that from a clause such as
(where
both
should be interpreted as ‘implies’ and P and Q are atoms) one can deduce
(where signifies ‘or’). In other words, additional antecedents can
always be added to a clause in a *deduction.
weakest precondition For some given program statement S and some *postcondition
R there is a (possibly empty) set of program states such that if execution of S is initiated
from one of these states then S is guaranteed to terminate in a state for which R is true.
The weakest precondition of S with respect to R, normally written
is a predicate that characterizes this set of states. Use of the adjective weakest explicitly
indicates that the predicate must characterize all states that guarantee termination of S in a
state for which R is true.
The term was introduced by *Dijkstra in 1975 in conjunction with a calculus for the
derivation of programs; this provides for development of a program to be guided by the
simultaneous development of a total correctness proof for the program. See also
PREDICATE TRANSFORMER, PROGRAM CORRECTNESS PROOF.
weakly terminating (weakly normalizing) See ABSTRACT REDUCTION SYSTEM.
weak memory model In modern *multi-core processors, a model of memory in which
there are very few constraints on the order in which memory writes from one core become
visible to the other cores. Such a model can enhance performance but requires the
programmer to take extra care if strict ordering is required.
weak mobility See MOBILE CODE LANGUAGES.
Web See WORLD WIDE WEB.
WEB See LITERATE PROGRAMMING.
web 2.0 Informal a popular term used to distinguish interactive websites such as *blogs,
*forums, and *social media from earlier (pre-2000) uses of the *World Wide Web, which
tended to publish content with little or no participation from users. This earlier use is
sometimes referred to retrospectively as web 1.0. The term web 2.0 does not mark any
technical evolution of the Web, but rather a trend in the usage of available web services.
web application A client/server application where the client is a web browser and the
two communicate using *HTTP. In practical terms, the server must produce output in the
form of *dynamic web pages and accept input in the form of *HTTP requests.
Web-based Distributed Authoring and Versioning See WEBDAV.
web browser An application used to view and interact with web pages and to navigate
between them. Technically it is a client application that implements *HTML and related
standards and which communicates with servers over a TCP/IP network using *HTTP.
Common browsers in use today include *Internet Explorer, *Chrome, *Firefox, and
*Safari.
webcam (web camera) A small TV camera usually of low resolution used in
conjunction with a suitable video card to provide real-time images for viewing on the
Internet.
web crawler (web spider) An application that systematically and continuously
traverses the *World Wide Web for some purpose. Web *search engines, for example, use
web crawlers to refresh their data by visiting every website periodically. Performing such
traversals is called spidering.
WebDAV (Web-based Distributed Authoring and Versioning) Extensions to
*HTTP that provide file manipulation operations—creation, update, deletion, moving, etc.
—on a web server. The effect is to provide a file system on the server that is accessible
over the network.
web design The process of developing the *user interface of a website. Web design
focuses on the visual aspects of the site as these appear to the user and, as such, might be
defined as the subset of *web development concerned with the aesthetics of the site’s
front-end. The target audience of the website will be placed at the forefront of all design
decisions.
Web design encompasses web page layout, content production, and graphic and
animation design. Pages are generally created using HTML for the layout and *CSS for
the styles. A web designer may write the HTML and CSS codes or tags, or may use
*wysiwyg software. He or she may also use a content management system that provides
*templates for editing. The graphics and animations on a site are often created by the web
designer, using some of the many tools that are now available.
web development The application of *software development to the creation of a
*website. This encompasses development of both static websites, which do not possess a
*database, and dynamic websites, which contain databases and may be arbitrarily
complex. Web development activities include content development, *web design, and
security configuration. A web developer is a person responsible for the development of
a website.
web feed A web document that contains a summary of and link to another document.
Web feeds are often used to notify subscribers to a service of updated content. They are
usually collected by a program running on the user’s machine called an aggregator,
which periodically checks for new feeds. There is no standard format for web feeds. See
also RSS.
web log See BLOG.
web master The person in charge of the management and maintenance of a *website.
This may or may not be the web developer who was responsible for the creation of the
site. His or her tasks will typically include updating existing content, adding new content,
maintaining the integrity of the site, and responding to user enquiries.
web of trust See PUBLIC KEY INFRASTRUCTURE.
web page A *hypertext document on the *World Wide Web.
web server A *server on a TCP/IP network that listens for *HTTP requests addressed to
it and performs the appropriate action. Usually this is involves supplying a web page in
HTML format. Basic web servers do this by transmitting a copy of a pre-prepared *static
web page. However, many modern web servers can create *dynamic web pages and host
*web applications.
web service A software component that publishes its *interface on and responds to
requests from a network, in particular the Internet. web services use open XML-based
standards: interfaces are published using WSDL (Web Services Description Language),
and services usually communicate with their clients through *SOAP messages. The
ambition of web services is to use the Internet to implement large-scale *distributed
processing in an open way.
http://www.w3.org/2002/ws/
• The WC3’s Web Services Activity Page
http://www.w3.org/TR/wsdl20-primer/
• The WSDL (version 2.0) specification primer
website A collection of hyperlinked *web pages owned by an individual, organization, or
company.
website defacement Any unauthorized change to the visual aspects of a single web
page or an entire website. This may include changes to the information available on the
site, the insertion of new graphical elements, or the replacement of the entire page or site.
Website defacement is sometimes referred to as electronic graffiti.
web spider See WEB CRAWLER.
weighted code A *block code in which a weight has been assigned to each of the
symbol positions in a codeword. See also 8421 CODE, EXCESS-3 CODE.
weighted graph A *graph that has weights associated with the edges of the graph. The
weight can be regarded as a *function from the set of edges into some appropriate
codomain. This function is sometimes called a cost function. For example, in graphs
with geographical origins, weight might represent distance or cost of travel.
weighted least squares See LEAST SQUARES, METHOD OF.
weighted mean See MEASURES OF LOCATION.
Weiler–Atherton clipping algorithm A *polygon clipping algorithm that is capable
of clipping a concave polygon with interior holes to the boundaries of another concave
polygon also with interior holes. (A concave polygon has an interior angle greater than
180°.) It is thus more general, though more complex, than the *Sutherland—Hodgman
clipping algorithm.
well-formed Denoting an *XML document that obeys the syntax rules for markup laid
down by the XML standard. For example, every non-empty opening tag must be balanced
by an equivalent closing tag; there must be a single root element; and elements must be
properly nested and not overlap. To be well-formed is the basic requirement for any XML
document; XML software expects this and will usually reject any document that is not.
Associating a *DTD or *XML schema with a document adds a second requirement, that in
addition to being well-formed the document’s usage of XML markup should be limited to
the structure specified in the DTD or schema. It is thus possible for a document to be wellformed but not conform to its DTD; the reverse, however, is not possible. (For this reason
‘well-formedness’ is not a useful concept in *SGML, where all documents must have a
DTD.)
well-formed formula (wff) See PROPOSITIONAL CALCULUS.
well-founded relation A particular kind of *partial ordering, used in termination
proofs (see PROGRAM CORRECTNESS PROOF). A well-founded relation on a set S consists
of a partial ordering
such that there does not exist any infinite sequence x1, x2, x3,… of members of S for which
each pair 〈xi,xi+1〉 belongs to R. As an example, if S consists of the natural numbers,
then the ‘greater than’ elation, containing all pairs 〈m,n〉 such that m > n, is wellfounded, since there are no infinite descending sequences of natural numbers. On the other
hand ‘greater than or equal to’, and ‘less than’ are not well-founded. On the set of integers,
none of these relations are well-founded. As another example, if S is the set of all finite
sets of natural numbers, then ‘proper superset of’ is well-founded.
In the application to terminate proofs it is shown that, whenever a certain point in the
program is visited during execution, the current value of some quantity lies within S and
also that, if x is the value of that quantity at one such visit, and x′ its value at a later visit,
the pair 〈x,x′〉 belongs to R. It then follows that that point in the program cannot be
visited infinitely often. By considering enough such points it can be concluded that any
execution must have finite length.
well-ordered set A set S on which the relation < is defined, satisfying the following
properties:
(a) given x,y,z in S,
(b) given x,y in S, then exactly one of the following three possibilities is true:
(c) if T is any nonempty subset of S, then there exists an element x in T such that
This relation < is said to be a well ordering of the set S.
WEP (Wired Equivalent Privacy) A method of encrypting traffic on wireless
networks, specified in the IEEE 802.11 family of protocols. The design of the WEP
protocol was found to be faulty, so that the encryption key can be determined by listening
to traffic for a few hours on a busy network. The IEEE 802.11i standard includes an
improved encryption design; an earlier, but nonstandard, design using similar
improvements is referred to as Wireless Protected Access (WPA).
wff (well-formed formula) See PROPOSITIONAL CALCULUS.
W grammar Another name for two-level grammar.
whetstone benchmark A *benchmark program built up from a carefully selected mix
of computer instructions and data types selected to be ‘typical’ for scientific calculations.
The whetstone metric so obtained has been widely used to measure comparative
processing performance of hardware/software systems. The metric was developed by ICL
at Whetstone, England.
while loop See DO-WHILE LOOP.
while program See WHILE PROGRAMMING LANGUAGE.
while programming language A small imperative programming language whose
programs are based on a *signature Σ and are made from assignments, sequential
composition, conditional statements, and while statements. Programs in the language are
defined, using an abbreviated BNF notation, by
where x is any *variable, t is any *term over the signature Σ b is a Boolean term, and S, S1,
and S2 are while programs. The role of the signature is to define the data types (and hence
the types of variables needed) and the basic operations on data (and hence the terms that
appear in assignments). The while programming language can compute functions and
sets on any algebra with signature Σ. When applied to the simple algebra
of natural numbers, the while programs compute all partial *recursive functions. The
while language is an important language for the theoretical analysis of ideas about
*imperative languages. It is easily extended by adding constructs, such as the *concurrent
assignment, repeat and for statements, and nondeterministic constructs (like the random
assignment x ≔ ?).
Whirlwind The first real-time computer, built at the Massachusetts Institute of
Technology and capable of calculating at high speed. The Whirlwind project had its
origins in wartime defence and was officially launched in December 1944. The first
version, operational in 1950, used electrostatic storage tubes but a ferrite *core store was
in use (its first appearance) by 1953. See also DIGITAL EQUIPMENT CORPORATION.
whiteboard (electronic blackboard) A common area between applications and users in
which mutually useful information is stored in a standard form that all can access.
white-box testing Another name for glass-box testing.
white noise Noise occurring in a channel and regarded as continuous in time and
continuous in amplitude, the noise being uniform in energy over equal intervals of
*frequency. (Note that, by contrast, white light is uniform in energy over equal intervals of
wavelength.) Compare IMPULSE NOISE.
white pages See YELLOW PAGES.
whois A protocol that allows users to discover the owner of an Internet domain name, IP
address, etc.
whole number A number that is not *fractional or *real. It is an *integer or a member
of some subset of the integers such as the *natural numbers.
wide area information service See WAIS.
wide area network (WAN) A *network with communications often over large
distances and, like a *local area network (LAN), generally operated by a single
organization. In the case of a WAN, however, this organization may be active in
commerce or industry and have plant or offices at a number of widely dispersed sites.
Alternatively the principal activity of the organization may be the operation of the WAN,
as with a *public network operator. In both cases the WAN will interconnect the LANs at
the dispersed sites. See also METROPOLITAN AREA NETWORK.
widget An element of a user interface that behaves in a particular way. The term is
associated with the *X Windows system, where a widget in general corresponds to an X
window together with the functions and rules that determine its input and output
behaviour. Examples of widgets include *buttons and *scroll bars. Widgets are therefore
components from which user interfaces can be constructed. Different widget sets are
available on X windows and these provide the elements for constructing user interfaces.
Different widget sets will usually provide different styles of interface.
width (of a bus) The number of signal lines in the *bus.
WiFi A wireless Ethernet link operating in the 2.4 GHz band and conforming to IEEE
802.11b. It has a range of up to 100 m, but this is very dependent on the location.
wiki A *website whose content can be changed and extended by users via their web
browsers. The term is also used for *web applications that facilitates this. Wikis are a
useful technique for rapidly assembling and disseminating ‘collective wisdom’ (‘wiki
wiki’ is Hawaiian for ‘fast’ or ‘quick’). They have become popular on many levels,
ranging from small private wikis through internal departmental or corporate wikis to such
popular websites as *Wikipedia. Their major problem, for which they have been
criticized, is the possibility of inappropriate or malicious changes. All wikis maintain lists
of recent changes to and often a complete history of each web page, to aid the ‘user
community’ in discovering and reverting unwanted changes. Often each web page has an
associated discussion page where the merits of existing and potential changes can be
debated. However, such self-policing has been found inadequate for highly exposed
websites with their large but unknown user base. These impose additional security
measures: finely graded levels of trust that control the extent to which a user can make
alterations; programmatic techniques that seek to identify suspicious changes; etc.
WikiLeaks An international media organization that publishes classified or otherwise
secret information on the website of the same name. Many such documents have already
been published, including thousands of US diplomatic cables.
http://mirror.wikileaks.info/
• The WikiLeaks official website
Wikipedia An Internet encyclopedia that is compiled and maintained by its users using a
*wiki web application. Founded in 2001, it currently (2014) has over four and a half
million articles in English and over 33 million in all of its 287 language editions. Although
very popular and successful, its standards of reliability, consistency, and security against
malicious alterations have been criticized.
wildcard A character that can stand for a number of different characters. In a search, for
instance, if $ is a wildcard meaning any number of characters, then find compute$ will
find compute, computer, computers, computed, etc. Again if % is a wildcard meaning any
single character in, say, a command to delete some files, then delete fred % will cause
fred1, fred2, fred3 to be deleted, but not fred23 (more than one character) nor fred on its
own (no character to match). Wildcards are widely used in commands and text searches.
See also PATTERN MATCHING.
Williams-tube store See ELECTROSTATIC STORAGE DEVICE.
wimp (windows, icons, menus, pointers) An informal term used to identify the
main advantages claimed for a windows system.
Winchester technology The name given to the design approach used in the IBM 3340
disk drive, which was introduced in 1973. It demonstrated a significant advance in
technology, allowing an increase in recording density to 300 tracks per inch and 5600 bits
per inch. The technology was adopted by many manufacturers and is the basis of that used
in modern hard disks.
winding number The number of times the sequence of points defining a polygon
winds around a particular point. This value may be used to implement an efficient polygon
inside/outside test: points for which the winding number is nonzero are defined as inside
the boundary. The test gives a different result from the *odd-even rule.
window 1. An area on a display screen inside which part of an image or file is displayed.
A windows system is a means of presenting users with views of the state of a number
of separate *processes, each carrying out a task. The user is able to initiate, monitor, and
terminate processes, each process having an associated window. The window for each
process is assigned to a specific area of the display and can be moved and often resized. It
may overlap or be overlapped by the windows associated with other processes (i.e. more
than one window can be displayed at once). As each process runs, it updates the contents
of its window, and the user can direct input to the process by placing the cursor in the
window and typing or otherwise generating input. This is of value where a user with a
workstation is managing a number of different related activities.
The windows system was originally conceived at Rank Xerox and was first used
commercially on the Apple Macintosh computer. It is now available on most types of
computer. See also WINDOWS, WINDOWS MANAGER, X WINDOWS. 2. A source region in
one coordinate system that is mapped into a destination region (called a *viewport) by a
window-to-viewport transformation. Both window and viewport are normally rectangular
regions, consequently a window-to-viewport transformation consists of translation and
scaling components only. 3. An allocation of messages, data units, or both, given by a
receiver to a sender in a data communication protocol. It controls how much data the
sender may transmit before it receives an *acknowledgment from the receiver. The
window is used for *flow control by the receiver, to prevent the sender from transmitting
more rapidly than the receiver can process. The window is also used for *error
management, by establishing the range of data that is unacknowledged and thus may need
to be retransmitted. The selection of a proper window size is dependent upon the
properties of the path between the sender and receiver: bandwidth, delay, and network
congestion are important factors.
Windows Trademark A *graphical user interface introduced by Microsoft in 1983 for
the Intel family of microprocessors; it is also known as Microsoft Windows or MS
Windows. Versions of Windows prior to *Windows 95 ran in conjunction with *MS-DOS
and concealed many of the innate limitations of MS-DOS by allowing a form of virtual
memory, unified management of peripheral devices, and multitasking. Windows permits
easy transfer of information between applications, which may be running in separate
windows on the screen simultaneously. A style guide for application developers ensures
that all Windows applications work in a similar way, markedly reducing the time taken to
learn new applications.
Windows 95 Trademark An operating system with a graphical user interface, released
by Microsoft in 1995, and intended to replace Windows, and MS-DOS (incorporating its
functions). It uses the 32-bit capabilities of *Intel processors.
Windows 98 Trademark An operating system released by Microsoft in 1998. It
comprises an enhanced version of Windows 95.
Windows 2000 Trademark An operating system released by Microsoft in 2000,
comprising an enhanced version of Windows NT and designed primarily for business use.
Windows 7 Trademark An operating system released by Microsoft in 2009 as a
successor to *Windows Vista; it improved upon several aspects of performance and
offered a streamlined interface. Like Vista, it was offered in six editions ranging from
Starter to Ultimate.
Windows 8 Trademark The current version of Microsoft Windows, released in 2012 to
replace Windows 7. It marked a major move towards supporting tablet devices with touchbased user interfaces as well as including further performance and security upgrades. The
desktop interface familiar from previous versions of Windows was retained, but was no
longer the default starting-point once a user had logged in; instead, a new ‘start’ page
showing large rectangular application and content icons is presented.
windows manager (window manager) A program for organizing the *windows of a
graphical user interface. The position, size, and contents of a window can be controlled by
an application. There may be many applications active at any one time, and each
application may have more than one window active at any one time. Windows are created,
managed, and closed down by requests from the applications to the windows manager; the
applications are *clients while the windows manager is the *server. All changes to all
windows are controlled by the windows manager, which will check the validity of a
request from an application and then update the contents of the application’s window in
accordance with the request, returning a message to the client on the outcome of the
request. In addition, the windows manager continuously monitors the position of the
mouse cursor, reporting the position of the *mouse to an application at any time when the
cursor is positioned within a window associated with that application, and generating an
‘event’ when a mouse button is pressed or released. The application can use information
about the state of the mouse button, and the cursor position within the window, to control
the running of the application. The windows manager also offers some common functions,
such as the ability to resize a window, to drag the entire window, and to iconize the
window—shrinking its size to the minimum possible. When the windows manager
changes the size of a window the client application is informed, and can then redraw the
contents of the window appropriately.
Windows ME Trademark; see WINDOWS MILLENNIUM EDITION.
Windows Millennium Edition (Windows ME) Trademark An operating system
released by Microsoft in 2000 as an upgrade from Windows 95 or 98. It was the last
version of Windows that used this codebase (subsequent versions were all descendants of
Windows NT).
Windows NT Trademark An operating system with a graphical user interface, released
by Microsoft in 1993. Despite its superficial similarity to *Windows, it used an entirely
different codebase that was not constricted (as were Windows, *Windows 95, and their
successors) by an *MS-DOS heritage. It was therefore able to fully exploit the hardware
available at the time to create a much more secure and stable system with better
multitasking capabilities. Windows NT (NT stood for new technology) was available in a
standard and *server versions, and was particularly aimed at the *file-server market.
Version 4.0, released in 1996, became the basis of many networks and continued in use
long after Microsoft released subsequent versions of Windows. These versions
—*Windows 2000, *Windows XP, and *Windows Vista—are all developments of
Windows NT.
Windows Phone Microsoft’s most recent *smartphone operating system, deployed in
2010 as a replacement for Windows Mobile. It became the operating system for Nokia
smartphones following Nokia’s licensing agreement with Microsoft in 2011.
windows system (window system) See WINDOW.
Windows Vista A version of *Windows, released (2006–7) in six editions with varying
features and limitations. It also included new and extensively redesigned features, with
improved system security being an important goal.
Windows XP Trademark An operating system released by Microsoft in 2001, and
designed to replace the Windows 95/98/ME, Windows NT, and Windows 2000 operating
systems. It comprised two versions, Windows XP Home Edition (for home use) and
Windows XP Professional (for business use). It includes improved file management and
advanced features for *mobile computing.
Winograd’s algorithm A method, due to S. Winograd, for multiplying matrices that
requires fewer multiplications than a straightforward calculation as a result of ‘preprocessing’ the two matrices concerned. This involves storing vectors that are used several
times in the calculation.
WinZip Trademark; see ZIP.
wired logic A form of digital logic in which some logic functions are implemented by
directly connecting together the outputs of one or more logic gates. The success of this
technique depends on the electronic characteristics of the gates involved. The technique is
commonly used in bus communication systems with *tri-state output or with *opencollector devices.
wired-program computer A digital computer, usually a special-purpose one, in
which the sequence of operations is fixed and cannot be easily altered. The sequence may
take different paths in accordance with data-dependent conditions. Speed of operation and
reliability may be gained at a cost in flexibility.
wireframe model A presentation of a scene made up of lines, with no attempt not to
draw lines defining objects that may be obscured by other objects.
wireless Usually refers to radio connection between devices. See also BLUETOOTH,
IRDA, WIFI, WIRELESS LAN.
wireless access point See ACCESS POINT.
wireless applications protocol See WAP.
wireless LAN (WLAN) A *local area network in which (some of) the physical links are
carried by a free-space signalling system. Much of the cost of a LAN lies in the final
flexible link between the network outlet, which is wired in as a fixed part of the fabric, and
the actual end-user device such as a PC or workstation. The presence of this link also
places restrictions on the location of equipment. A WLAN replaces this final link by a
free-space link, using either infrared (very occasionally, most generally in an informal
setting) or microwave as a carrier, allowing freedom of movement for the user and a
simplified wiring installation for the fixed wiring.
wireless sensor network A network formed from large numbers of small sensors
deployed in the field that use wireless to communicate. The sensors usually configure their
communication network on the fly by identifying their nearest neighbours. Typically, the
sensors are designed to measure some feature of interest in the environment, such as
temperature, or to sense the presence of a pollutant. The key issue is designing
communication protocols that maximize the battery lifetime of the sensors, while also
ensuring that all interesting measurements get reported. See also AD HOC NETWORKS.
wire wrapping A technique for connecting components into *circuit boards by tightly
wrapping wires around specialized terminals instead of soldering wires to them.
Wirth, Niklaus (Emil) (1934– ) Swiss computer scientist. Receiving his Ph.D. from
the University of California, Berkeley, in 1963, Wirth was Assistant Professor of
Computer Science at Stanford University (1963–67) and Professor of Informatics at ETH
Zurich (1963–99). He was the sole or a major designer of several programming languages
and operating systems, most significantly *Pascal but also including *Modula, *Modula 2,
*Oberon, and *PL/360. See also STEPWISE REFINEMENT.
wizard A software utility that helps a user to perform a particular task or install a
program, usually by asking questions and giving options that the user may select.
WLAN (wireless local area network) See WIRELESS LAN.
word 1. (machine word, computer word) A vector of bits that is treated as a unit by the
computer hardware. The number of bits is referred to as the word length or word size.
Word lengths of 32 bits are common in home computers, and word lengths of 64 bits are
not uncommon in professional and scientific workstations. The memory of a computer is
divided into words (and possibly subdivided into *bytes). A word is usually long enough
to contain an *instruction or an integer. See also MEMORY HIERARCHY. 2. (string) In
*formal language theory, a finite sequence of symbols drawn from some set of symbols
Σ. This is then a word over the alphabet Σ or a Σ-word. The elements of Σ are also
called letters. Common notation includes:
|w|—the length of the word w,
wi—the ith symbol in w,
Λ, the empty word—the unique word of length 0,
Σ*—the set of all Σ-words.
Σ* is infinite unless Σ is empty, in which case
Word Trademark A major *word processing system developed over many years by the
Microsoft Corporation. There are versions for Windows and Macintosh operating
environments.
word length (word size) See WORD.
word processing A facility that enables users to compose documents using a computer
with facilities to edit, re-format, store, and print documents with maximum flexibility. A
typical word-processing system consists of a personal computer running a wordprocessing program, and an associated printer, such as an *inkjet printer, capable of
producing high-quality output of many different text *fonts as well as diagrams and
pictures.
The systems available today fall into three main categories: stand-alone systems
supporting one operator; networked systems enabling several operators to share printers
and files; hybrid systems attached to a central mainframe or minicomputer and able to
perform additional functions. The following features are generally provided. β Document
creation and editing, including the ability to
• insert, delete, copy, and move text around in a document;
• include text and/or graphics from other files;
• search for and replace strings in the document.
• Checking of spelling according to general and specialist dictionary files.
• Document formatting and printing using a choice of paper sizes and formats with
multiple copies as required.
• Text justification to specified margins with automatic hyphenation.
• Ability to create a document from a standard template, e.g. one containing a company
letter heading.
• Use of alternative character sets such as bold, italic, underlined.
• Layout of tables, figures, etc.
• Substitution of variable information when printing the document, for easy production of
form letters, etc.
word processor 1. A computer program to perform *word processing. 2. A system
designed specifically for word processing.
word size (word length) See WORD.
word wrap See WRAPAROUND.
work area Another name for workspace.
workbench Another name for software development environment.
work file See FILE.
working set The set of *pages currently in use by a process. A process running in a
*virtual memory environment can be regarded as having a subset of its total address space
actually in use over any short period of time. The objective of the *memory management
system is to ensure that for each process those pages, and only those pages, that are
actually in use are retained in memory, thus maximizing the *hit rate for these pages.
workspace (work area) A block of locations within the main memory that are used for
the temporary storage of data during processing. The user of an application such as a
spreadsheet, word processor, or statistical package perceives the workspace as the space
containing, and hence limiting, the tables, graphics, documents, data matrices, etc., that
are currently being operated upon.
workstation A position for an operator that is equipped with all the facilities required to
perform a particular type of task. A satisfactory workstation must take into account desk,
seating, media-handling, and storage facilities and also lighting and other environmental
factors such as noise, drafts, and glare.
A workstation is often a powerful computer system that has excellent graphics and a
very fast processor, is highly interactive, and is usually part of a network. Such systems
are much used in engineering, electronics, energy, and aerospace industries, and in
universities. Applications include *CAD, *desktop publishing, and *AI research. In data
processing and office systems the basic electronic equipment would normally be a visual
display and keyboard; however there may also be ancillary electronic equipment such as
magnetic storage devices, printer, OCR, or bar-code scanner.
With the growth in the processing power of PCs most workstations are now based on
PC hardware rather than dedicated hardware (such as *SPARC).
world coordinates (WC) The preferred coordinate system used by an application.
World Wide Web (Web, WWW, W3, W3) A distributed information service that was
developed at CERN, the European Laboratory for Particle Physics, Geneva, in the early
1990s. The Web is a large-scale distributed *hypermedia system that is based on
cooperating *servers attached to a network, usually the *Internet, and allows access to
‘documents’ containing ‘links’. It is accessed using a workstation that is connected to the
network and is running a suitable utility program, usually a web browser.
Within the Web, documents are presented in hypertext mark-up language (*HTML),
and may consist of textual material or a number of other forms, such as graphics, still or
moving video images, or audio clips. Within a document there will be material to be
displayed and usually one or more links, which in a text document appear as highlighted
words or phrases, or as icons. The links hold embedded pointers to other documents
located elsewhere on the Web by the use of a *URL. A URL contains information
specifying the network protocols to be used, the network address of the server holding the
document, and the local index entry for that document. Activating a link, typically by
positioning the mouse pointer over the highlighted text and clicking, will cause the
workstation to connect via the network to the corresponding server, load the document and
the means of presenting the document, and display the document. Browsers also allow the
workstation to download programs and other files, either for immediate execution or to be
saved for future use. Such files are a major source of *malware.
World Wide Web Consortium (W3C) The organization responsible for many core
standards on the *World Wide Web. Founded by Tim *Berners-Lee in 1994, its mission is
‘to lead the World Wide Web to its full potential by developing protocols and guidelines
that ensure long-term growth for the Web.’ Its responsibilities include *CSS, *Document
Object Model, *HTML, *SOAP, *XHTML, *XML, *XPath, *XQuery, and *XSL.
worm 1. (WORM) (write once, read many (times)) A class of storage device in which
information, once written, cannot be erased or overwritten. The write-once CD-ROM is an
example. See also OPTICAL STORAGE. 2. A virus-like program that seeks out other
connected hosts in a computer network and, by exploiting a *vulnerability, transfers itself
to them.
worst-case analysis See ALGORITHM.
worst fit A method to map *segments to holes (spaces) in *virtual memory. It selects the
largest available hole in memory that can fit a needed segment, so as to leave a large hole
for other segments.
wp (WP) 1. Abbrev. for word processing or word processor. 2. Abbrev. for weakest
precondition.
WPA See WEP.
wraparound A facility of a VDU or Windows system, allowing it to display lines of
text that would otherwise be too long to be displayed completely: the line appears on the
screen as two or more successive lines. This division into shorter lines that can fit within
the available screen size is a function of the VDU and there is no need for a format
character to be included in the data stream. Wraparound may occur when a given number
of characters has been received or, in word-processing applications, at word boundaries when it is known as word wrap. Word wrap is optionally available in spreadsheets and
tabular presentation in some word processors; in this case the height of the relevant cells
may be adjusted automatically, affecting all cells on that row.
write (often followed by to) To cause data to be recorded in some form of storage. The
word is often used to qualify the meaning of a noun, as in write head.
writeable control store (WCS) See MICROPROGRAMMING.
write error See ERROR RATE. See also WRITE ERROR RECOVERY.
write error recovery An *error recovery process used if an error is detected when data
is being written to a storage peripheral or is being verified (see ERROR DETECTION). The
first step is to check that it is not simply a reading error. If the error persists, it is usual
either to overwrite the block or else to write the data again in another location. Often
several attempts are made, and both methods may be used in turn. Some devices, such as
certain optical disk drives, use such powerful *error-correcting codes that write error
recovery is considered unnecessary.
write head See MAGNETIC TAPE.
write instruction A program instruction that causes an item of data to be recorded in
some form of storage.
write-once Denoting optical media on which the user can write data, which is then
permanent: the media cannot be erased and reused. It is often called worm media,
standing for write once read many times, or read-mostly media. See also OPTICAL
STORAGE.
write protect To prevent a disk drive from writing to a disk. See also FLOPPY DISK.
write ring (write-permit ring) A ring that is attached to the hub of a reel of magnetic
tape to permit its content to be overwritten or erased. When the reel is mounted on a tape
transport the ring actuates a switch that permits the writing process. An interrupt is
normally sent to the system if writing is attempted without the write ring.
write time The elapsed time during which a given amount of data is being recorded in
some storage device. It does not include any latency or check read time.
WSDL See WEB SERVICE.
WWW Abbrev. for World Wide Web.
wysiwyg (what you see is what you get) A catchphrase coined by Flip Wilson in
his ‘Geraldine Jones’ impersonation in 1969. In computer systems it has come to mean a
system where the screen displays text and graphics almost exactly as it would be printed.
There may be minor differences in resolution and fonts used. Wysiwyg is considered to be
a desirable feature of *word processing, *desktop publishing, and other programs where
the appearance of the final printed product is important.
X The letter used by the ITU to categorize standards relating to data communications over
digital circuits; the number following the letter identifies a particular standard. Some of
the more important standards in the X-series are listed.
X3 *PAD control;
X25 data signalling between the equipment associated with the *PTT and the user;
X28 communication between a PAD and an *ASCII device;
X29 communication between two PADs;
X75 communication between networks using X25;
X121 standards for *addressing in an X25 network;
X400 message handling services: all standards in the range X400 to X499 relate to various
aspects of message handling;
X500 directory services: all standards in the range X500 to X599 relate to various aspects
of directory services.
X509 An ITU-T (see ITU) standard concerned with *public key infrastructure first
released in 1988. It specified, among other things, a format for *certificates; this has been
developed by the IETF (see INTERNET SOCIETY) and in this form is the standard
certificate format for the Internet.
http://tools.ietf.org/html/rfc3280
• The Internet X509 specification
Xeon Trademark; see INTEL.
Xerox Corporation A US-based company, best known for its copiers, printers, and
other reprographic equipment. In 1970, Xerox established its Palo Alto Research Center
(Xerox PARC) and in 2002 this was spun off into separate company. It is through Xerox
PARC that Xerox has made its impact on the computer industry, with the development of
graphical user interfaces, the *Smalltalk object-oriented development system, and
*Ethernet.
XGA (extended graphic array) An upgrade by IBM in 1991 of its old 8514A
standard. It offers an image of 1024 × 768 pixels with 256 colours. It can thus be regarded
as a subset of *SVGA.
XHTML A reformulation of *HTML as an application of *XML instead of *SGML.
Version 1 was backwards compatible with HTML version 4, but future versions probably
will not be.
http://www.w3.org/TR/xhtml1/
• The XHTML (version 1.0) specification
XML A simplified form of *SGML. See feature XML. See also SAX, SOAP, XPATH,
XQUERY.
http://www.w3.org/XML/
• The W3C’s XML page
XML
XML (extensible markup language) is a simplified and extended form of *SGML
designed especially for use on the Web. Since its release in 1998, it has become very
widely used in the computer industry. A simple example of XML data is the entry for
‘*Ruby’ in this dictionary:
<en><cod>N08/PL</cod>
<hw>Ruby</hw>
<def>An interpreted <xr>object-oriented programming language</xr> that includes
features of both <xr>imperative</xr> and <xr>functional languages</xr>. Created
by Yukihiro Matsumoto and released in 1995, it was influenced by such languages as
<xr>Perl</xr>, <xr>Smalltalk</xr>, <xr>Eiffel</xr>, <xr>Ada</xr>, and
<xr>Lisp</xr>. Its combination of elegance and apparent simplicity with underlying
power has gained Ruby an steadily increasing popularity, especially through the
<he>Ruby On Rails</he> web application <xr>framework</xr>.</def></en>
The content of the entry is divided into its logical components by tags: the whole
entry is enclosed in ‘<en>…</en>’ tags; the entry’s headword by ‘<hw>…</hw>’ tags;
the entry’s definition by ‘<def>…</def>’ tags. Cross-references to other headwords
giving further information are enclosed in ‘<xr>…</xr>’ tags. A subsidiary term that is
defined within this main definition (a so-called ‘hidden entry’) is enclosed by ‘<he>…
</he>’ tags. Some behind-the-scenes classification coding uses ‘<cod>…</cod>’ tags.
Elements
In XML terminology each pair of tags delimits an element. Elements normally begin
with a start tag, which has the form ‘<tagname>’, and end with a matching end tag,
which has the form ‘</tagname>’. If the element has no content, the sequence
‘<tagname></tagname>’ may be abbreviated to ‘<tagname/>’. Elements may appear
within other elements, but they must be properly nested; that is, an element’s own end
tag must appear before those of any elements that enclose it:
…web application <xr>framework</xr>.</def></en>
is valid XML, but
…web application <xr>framework.</def></xr></en>
is not valid because the elements overlap.
Also, at the top level, the whole of an XML document must consist of a single
element (the root element) that encloses all its content. An XML document that obeys
these rules is said to be well-formed. Where possible, text is tagged for its
information content. Tagging text for its format, as in HTML (<i> for italic, <b> for
bold, etc.), is deprecated unless absolutely unavoidable.
Attributes
Further information may be associated with an XML element in the form of
attributes. These are held as key-value pairs within the start tag:
<ElementName attribute1=“value1” attribute2=“value2”>
In general attributes are intended to hold metadata about an element rather than
content of the element. This distinction is sometimes not useful in practice; whether a
particular piece of data should be held as an attribute or in the element’s content is often
a decision to be made by the document’s designer. For instance, the information in the
‘<cod>…</cod>’ element in the example given above could equally well be coded as an
attribute of the ‘<en>’ element:
<en cod=“N08/PL”>
or perhaps by:
<en update=“new 2008” topic=“programming language”>
UTF-8 and character entities
By default XML documents are encoded in UFTF-8; other encoding systems, such as
*UTF-16, are also recognized. These allow XML documents to utilize the full range of
the *Unicode character set. Alternatively, character entities may be used to
represent any character. Either &#xhhhh; is used, where hhhh is the Unicode
hexadecimal value, or &#ddd;, where ddd is an equivalent decimal value. For example:
If a real ampersand is required & is used. Similarly the ‘less than’ symbol (<) is < and
the ‘greater than’ symbol (>) is >.
Document type definition
XML documents may be associated with another document that defines which elements
can appear and where. This second document can be a document type definition (see
DTD) or an *XML schema. The section of this dictionary’s DTD that defines the
structure of an ‘en’ element might look like this:
<!ELEMENT en (cod, hw, def)>
This means that every ‘en’ element must contain exactly one ‘cod’ element, followed
by one ‘hw’ element, followed by one ‘def’ element. Changing this definition to
<!ELEMENT en (cod?, hw, def+)>
would make the ‘cod’ element optional and would allow one or more ‘def’ elements.
An XML document whose content is not only well-formed but also matches the
structure laid down by its DTD or schema is said to be valid. Most XML parsers will
check a document’s validity and report any errors.
XML documents are associated with a particular DTD by a declaration at the head of
the document. This can refer to a disk file or to an Internet address. The latter facility
makes ensuring conformance to international standards very simple. For example, the
declaration:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”
refers to the strict version of the W3C’s DTD for *XHTML 1.0.
XML schemas are more flexible and more powerful than DTDs; in particular,
individual elements within a document can refer to different schemas.
The power of XML lies in the flexibility with which its rules can be applied to create
document types suited to many purposes that nevertheless all use the same system of
nested elements and attributes. As well as storing dictionary data and other text, XML is
used for such different applications as *RSS web feeds and specifying the interfaces of
*web services. Yet data for all these document types can be manipulated according to
standard models using publicly available utilities. For example, all XML documents can
be validated and parsed into a form that software can manipulate (usually a tree of
objects, such as that specified by the *Document Object Model); they can be
transformed into another structure using an *XSLT processor; and so on. There is
usually no need to write bespoke software for these common tasks, which immediately
gives XML a cost and efficiency advantage. Also, all XML data is held as Unicode text
and so is platform-independent.
XML database A *database whose fundamental unit of storage is XML data. Currently
(2014), XML databases are available from a few vendors and developers. There are some
emerging standards governing their design philosophy and features (*XPath, *XQuery,
XSLT), and actual systems are available. These fall into two classes: those that access a
non-XML underlying database but use XML as an input/output encoding mechanism; and
those that store native XML objects.
XML schema A formalized description of the structure of an XML document. XML
schemas serve the same purpose as *DTDs but are much more powerful and flexible. For
example, a single document may use *namespaces to take element definitions from more
than one schema, with each element being *validated against the appropriate schema.
Schemas also allow element content to be restricted to specified data types (string,
boolean, decimal number, etc.). Although the *World Wide Web Consortium has issued a
specification for XML schemas, other schema languages are also used.
http://www.w3.org/XML/Schema
• The W3C’s XML schema page
XModem A *protocol used to control the transfer of information over a *modem. The
protocol was primarily intended for modems on a dialed connection, although there were
variants for use with privately owned or leased circuits, and for networks. It is no longer
used.
XMS memory See EXTENDED MEMORY.
X-ON/X-OFF A method of *flow control based on the exchange of specific control
characters over a *duplex channel. The sending device will assume that the receiver is
able to accept characters at any time, and will transmit on that basis. If the receiver is
unable to accept further characters it will transmit an ‘X-OFF’ character to the sender,
which must then cease transmission until an ‘X-ON’ character is transmitted by the
receiver.
X/OPEN A joint initiative, launched in 1988 by some of the world’s leading computer
manufacturers, to endorse and integrate evolving standards in order to encourage
applications *portability, and to give a seal of approval to conforming products. In 1996,
X/Open Company Ltd and the *OSF merged to form *The Open Group.
XOR (xor) See EXCLUSIVE-OR OPERATION.
XPath A language for addressing parts of an *XML document, selecting nodes
(elements, attributes, character data, etc.) by their name, their value, and/or their location
relative to specified other nodes in a tree view of the document’s structure. XPath is used
within other XML standards, for example *XQuery and *XSL; indeed, XPath version 3.0,
released in 2014, is a subset of XQuery.
http://www.w3.org/TR/xpath-30
• The XPath (version 3.0) specification
XQuery A language for extracting and combining data from one or more XML
documents. It uses *XPath as a sublanguage to isolate specific nodes (elements, attributes,
character data, etc.), which can then be manipulated. Its functionality overlaps that of
XSLT (see XSL), although its origins and purpose are different.
http://www.w3.org/TR/xquery-30
• The XQuery (version 3.0) specification
XS3 code Short for excess-3 code.
X-series See X.
XSL (extensible stylesheet language) Two related languages for restructuring and
formatting XML data. XSLT (XSL Transformations) allow rules to be specified that
restructure XML data, while XSL-FO (XSL Formatting Objects) specify formatting details
for presentation in print or on screen. Both languages are themselves applications of XML,
and both use *XPath as a sublanguage for the identification of those nodes (elements,
attributes, character data, etc.) subject each rule. Although they were intended to be used
together, in practice XSLT is far more widely used than XSL-FO. Its abilities exactly
fulfilled a widespread need for a standard and convenient method of transforming XML
data, whereas formatting on web browsers was already adequately addressed by the less
sophisticated but widely established *CSS.
http://www.w3.org/TR/xslt-30/
• The XSLT (version 3.0) specification
http://www.w3.org/TR/xslfo20/
• The XSL-FO (version 2.0) specification
XSLT See XSL.
XSS Abbrev. for cross-site scripting.
X Terminal A dedicated graphical terminal supporting the *X Windows protocol and
incorporating a powerful processor. It operates over a *local area network using resources
from its host. See also THIN CLIENT.
XUI Abbrev. for X user interface.
X user interface (XUI) The user interface to the *X Windows system.
X Windows (X Windows System) A *client/server system originally developed at MIT
in the 1980s to allow a workstation, running under *UNIX and equipped with keyboard,
screen, and *mouse, to support an interactive graphics environment.
A *window is a rectangular area on the display screen whose position, size, and
contents can be controlled by an application. There may be many applications active at
any one time, and each application may have more than one window active at any one
time. Windows are created, managed, and closed down by requests from the applications
or clients, to a server, the *windows manager.
The definition of the X Windows system covers both the behaviour of the windows
manager, and the form and content of messages that pass between the windows manager
and the client applications. The windows manager and the client applications may either
coexist on a single workstation (typically a small UNIX system), or some of the client
applications may reside on other systems connected by a network to the workstation that
runs the windows manager. Somewhat confusingly, some of the client applications may
well run on a server; for example an application requiring the completion of an extensive
arithmetic calculation.
http://www.x.org/wiki/
• The X.Org Foundation home page
YACC (yet another compiler-compiler) A widely used *compiler-compiler
provided as part of the *UNIX operating system environment.
Yahoo A web *portal and search engine.
Yellow Book 1. The *coloured book that defined the *transport service formerly used
within the UK academic community. 2. See CD-ROM FORMAT STANDARDS.
yellow Ethernet Another name for thick Ethernet. See THICK WIRE.
yellow pages Indexing information providing an online directory of services on a
network. In contrast, the information of the white pages provides an online index of
users on a network. In both cases the services or users indexed will normally be those of
local interest, typically those on a local area network. As the yellow pages are used
directly by the computer systems on the network to access services provided by other
systems, there is a high premium on accuracy.
y2k (year 2000) See MILLENNIUM BUG.
Yourdon A proprietary software design method devised by Ed Yourdon. It was one of
the first methods in the group known collectively as *structured systems analysis.
Yourdon has diagram notations for *ERA diagrams, *dataflow diagrams, structure charts
(module calls), and *state-transition diagrams. Also supported are *review techniques
such as structured *walkthrough, and guidelines for analysis and design that include
qualitative assessment of the good and bad characteristics of a design. The method is
supported by tools and is used both for real-time and data-processing applications.
YouTube A website dedicated to sharing video files uploaded by its users. It was
established in 2005, and bought by *Google in 2006; by 2014 the site claimed that 100
hours of video were being uploaded every minute. Users who upload videos can earn a cut
of YouTube’s advertising revenue if their video, with the associated advertising, gets
enough views. YouTube has been criticized for infringement of *copyright and for hosting
violent or otherwise controversial material. See also USER-GENERATED CONTENT.
Z A formal notation, based on *set algebra and *predicate calculus, for the specification
of computing systems. It was developed at the Programming Research Group, Oxford
University. Z specifications have a modular structure. See also CONSTRUCTIVE
SPECIFICATION.
Z3 An electromechanical programmed calculator built in Berlin by Konrad Zuse and fully
operational in 1941. Like the earlier (nonprogrammed) calculators, Z1 (mechanical) and
Z2 (electromechanical), constructed by Zuse, it did not survive the war. An improved
machine, the Z4, was completed by 1945. Despite the lack of a conditional *branch
mechanism, it was demonstrated as Turing-complete (i.e. having power equivalent to a
*Turing machine) by Raúl Rojas in 1998.
Z-buffer (depth buffer) A method for *hidden-surface removal. For each object in a
scene, pixels are generated with colour and depth information. The Z-buffer is an array
that stores the current Z-depth of each pixel. As objects are sent to the Z-buffer only those
nearest the viewer are retained. Each pixel is set to the new light intensity only if the depth
of the point is less than the value stored at the corresponding position in the Z-buffer. The
method is simple but costly in processing and storage, hence hardware or low-level
implementations are common. See also A-BUFFER.
zero-address instruction An instruction that contains no address fields; operand
sources and destination are both implicit. It may for example enable *stack processing: a
zero-address instruction implies that the *absolute address of the operand is held in a
special *register that is automatically incremented (or decremented) to point to the
location of the top of the stack.
zero function The *function whose value is zero for every element in its domain. The
term is usually applied more specifically to the function
for all n in N, the set of nonnegative integers. This function is basic to the theory of
*recursive and *primitive recursive functions.
zero matrix Another name for null matrix.
zero suppression The elimination of nonsignificant zeros. While numerical data is
being processed it may be expanded to a uniform number of digits by the addition of
nonsignificant zeros to the left of the most significant digit. For printout or display these
nonsignificant zeros may be suppressed.
zero-trip loop See DO-WHILE LOOP.
zero-wait state A situation in which the time taken by the memory controller from
receipt of an address, and a request for data to be read from or written to that address, is
sufficiently short that the device making the request will not need to enter a *wait state.
zero word In coding theory, a word consisting entirely of zero digits. It lies at the origin
of *Hamming space. See also HAMMING WEIGHT.
ZIF socket (zero insertion force socket) A *chip socket into which it is possible to
place a chip with no downward force. Electrical contact is then made by moving a small
lever that causes each leg of the chip to be firmly gripped. A ZIF socket is used where
chips are regularly moved in and out of a socket, e.g. in a *PROM programmer.
ZIP A format for storing compressed versions of one or more files within a single archive
file (a zip file). The ZIP format was developed by Phil Katz and the first implementation
was his MS-DOS program PKZIP. It is now used on many systems and is a de facto
standard; on Windows it is WinZip. See also 7-ZIP, RAR.
zip file See ZIP.
Ziv–Lempel compaction Another name for Lempel–Ziv compaction.
zone in a network. Informal A subnetwork within a larger network. See DOMAIN.
Zuckerberg, Mark Elliot (1984– ) US software developer and businessman, who in
2006 became one of the co-founders of *Facebook while still an undergraduate at Harvard
University. A multibillionaire, he continues (2014) as chairman and CEO of Facebook. In
2013 he founded the Internet.org project, with the aim of bringing affordable Internet
access to the whole world.
Generic Domain Names
Internet top-level domain names are of two types: generic top-level domain names
(gTLDs) and country-code top-level domain names (ccTLDs). The generic domain names
indicate the type of Internet site. Formerly there were seven main gTLDs:
com
edu
gov
int
mil
net
org
commercial organizations
accredited educational establishments
US government departments (nonmilitary)
international organizations (formed by treaties between
countries)
US military; this has three subdomains:
.af.mil
Air Force
.army.mil Army
.navy.mil Navy
network-related organizations
any organization, usually a nonprofit-making organization
In addition there is a special top-level name
arpa
for technical matters concerning the
Internet
This list has been extended since 2000 by the addition of the following gTLDs:
aero
asia
bar
biz
cat
coop
info
jobs
mobi
museum
name
post
pro
rest
tel
travel
used by the air-transport industry
used by the Pan-Asia and Asia Pacific community
used by bars, etc.
used by businesses
used by the Catalan linguistic and cultural community
used by cooperative organizations
for information providers
used by human resource managers
used by consumers and providers of mobile products and services
for museums
for individual users
used by postal services
used by professional individuals
used by restaurants, etc.
used by businesses and individuals to publish their contact data
used by the travel industry
Country-Code Domain Names
ac
ad
ae
af
ag
ai
al
am
an
ao
aq
ar
as
at
au
aw
ax
az
ba
bb
bd
be
bf
bg
bh
bi
bj
bl
bm
bn
bo
br
Ascension Island
Andorra
United Arab Emirates
Afghanistan
Antigua and Barbuda
Anguilla
Albania
Armenia
Netherlands Antilles
Angola
Antarctica
Argentina
American Samoa
Austria
Australia
Aruba
Åland Islands
Azerbaijan
Bosnia and Herzegovina
Barbados
Bangladesh
Belgium
Burkina Faso
Bulgaria
Bahrain
Burundi
Benin
Saint Barthelemy
Bermuda
Brunei
Bolivia
Brazil
bs
bt
bv
bw
by
bz
ca
cc
cd
cf
cg
ch
ci
ck
cl
cm
cn
co
cr
cu
cv
cx
cy
cz
de
dj
dk
dm
do
dz
ec
ee
eg
eh
er
es
et
Bahamas
Bhutan
Bouvet Island
Botswana
Belarus
Belize
Canada
Cocos (Keeling) Islands
Congo, Democratic Republic of
Central African Republic
Congo, Republic of (Congo-Brazzaville)
Switzerland
Côte d’Ivoire
Cook Islands
Chile
Cameroon
China
Colombia
Costa Rica
Cuba
Cape Verde
Christmas Island
Cyprus
Czech Republic
Germany
Djibouti
Denmark
Dominica
Dominican Republic
Algeria
Ecuador
Estonia
Egypt
Western Sahara
Eritrea
Spain
Ethiopia
eu
European Union
fi
fj
fk
fm
fo
fr
ga
gb
gd
ge
gf
gg
gh
gi
gl
gm
gn
gp
gq
gr
gs
gt
gu
gw
gy
hk
hm
hn
hr
ht
hu
id
ie
il
im
Finland
Fiji
Falkland Islands (Malvinas)
Micronesia, Federal State of
Faroe Islands
France
Gabon
United Kingdom
Grenada
Georgia
French Guiana
Guernsey
Ghana
Gibraltar
Greenland
Gambia
Guinea
Guadeloupe
Equatorial Guinea
Greece
South Georgia and the South Sandwich Islands
Guatemala
Guam
Guinea-Bissau
Guyana
Hong Kong
Heard and McDonald Islands
Honduras
Croatia (Hrvatska)
Haiti
Hungary
Indonesia
Ireland
Israel
Isle of Man
in
io
India
British Indian Ocean Territory
iq
ir
is
it
je
jm
jo
jp
ke
kg
kh
ki
km
kn
kp
Iraq
Iran
Iceland
Italy
Jersey
Jamaica
Jordan
Japan
Kenya
Kyrgyzstan
Cambodia
Kiribati
Comoros
Saint Kitts and Nevis
Korea, Democratic People’s Republic (North
Korea)
Korea, Republic of (South Korea)
Kuwait
Cayman Islands
Kazakhstan
Laos
Lebanon
Saint Lucia
Liechtenstein
Sri Lanka
Liberia
Lesotho
Lithuania
Luxembourg
Latvia
Libya
Morocco
Monaco
Moldova
kr
kw
ky
kz
la
lb
lc
li
lk
lr
ls
lt
lu
lv
ly
ma
mc
md
me
mf
mg
Montenegro
Saint Martin (French part)
Madagascar
mh
mk
ml
mm
mn
mo
mp
mq
mr
ms
mt
mu
mv
mw
mx
my
mz
na
nc
ne
nf
ng
ni
nl
no
np
nr
nu
nz
om
pa
pe
pf
Marshall Islands
Macedonia, Former Yugoslav Republic of
Mali
Myanmar (Burma)
Mongolia
Macau
Northern Mariana Islands
Martinique
Mauritania
Montserrat
Malta
Mauritius
Maldives
Malawi
Mexico
Malaysia
Mozambique
Namibia
New Caledonia
Niger
Norfolk Island
Nigeria
Nicaragua
Netherlands
Norway
Nepal
Nauru
Niue
New Zealand
Oman
Panama
Peru
French Polynesia
pg
ph
pk
pl
Papua New Guinea
Philippines
Pakistan
Poland
pm
pn
pr
ps
pt
pw
py
qa
re
ro
rs
ru
rw
sa
sb
sc
sd
se
sg
sh
si
sj
sk
sl
sm
sn
so
sr
st
su
sv
sy
Saint Pierre and Miquelon
Pitcairn Island
Puerto Rico
Palestinian Territory, Occupied
Portugal
Palau (Belau)
Paraguay
Qatar
Réunion Island
Romania
Serbia
Russian Federation
Rwanda
Saudi Arabia
Solomon Islands
Seychelles
Sudan
Sweden
Singapore
Saint Helena
Slovenia
Svalbard and Jan Mayen Islands
Slovak Republic
Sierra Leone
San Marino
Senegal
Somalia
Suriname
Sao Tome and Principe
Soviet Union (being phased out)
El Salvador
Syrian Arab Republic
sz
tc
td
tf
tg
Swaziland
Turks and Caicos Islands
Chad
French Southern Territories
Togo
th
tj
tk
tl
tm
tn
to
tp
tr
tt
tv
tw
tz
ua
ug
uk
um
us
uy
uz
va
vc
ve
vg
vi
vn
vu
wf
ws
ye
yt
Thailand
Tajikistan
Tokelau
East Timor (Timor-Leste)
Turkmenistan
Tunisia
Tonga
East Timor (being phased out)
Turkey
Trinidad and Tobago
Tuvalu
Taiwan
Tanzania
Ukraine
Uganda
United Kingdom
United States Minor Outlying Islands
United States
Uruguay
Uzbekistan
Holy See (Vatican City State)
Saint Vincent and the Grenadines
Venezuela
Virgin Islands, British
Virgin Islands, US
Vietnam
Vanuatu
Wallis and Futuna Islands
(Western) Samoa
Yemen
Mayotte
yu
za
zm
zw
Yugoslavia (former)
South Africa
Zambia
Zimbabwe
File Extensions
Many hundreds of different file extensions exist with up to five letters. This list includes
some of the more common ones.
aac
adp
afm
ai
aif
arc
au
avi
bac
bak
bas
bat
bin
bmp
btm
c
c++
cab
cbl
cda
cdr
cfg
cgi
cgm
chk
chm
clp
cmd
com
Advanced Audio Coding file
Micro Access Project
Post Script font metrics file
Adobe Illustrator graphics file
Macintosh audio interchange file format
compressed archive file
audio file
audio visual interleaved multimedia file
backup file
backup file
Basic source file
batch program file in MS-DOS
compressed MacBinary file
bitmap graphics file
bitmapped graphics file
C source file
C++ source file
Microsoft cabinet file (program files compressed for software
distribution)
Cobol source file
CD audio track
CorelDraw graphics file
configuration file
Common Gateway Interface script file
Computer Graphics metafile
Windows unidentified data saved by ScanDisk
Compiled HTML Help file class Java class file
Windows clipboard file
command file in Windows, MS-DOS, and OS/2
command or program file
cpd
cpp
crt
css
ct
dat
dbx
dc
dll
doc
docx
dos
dot
drv
dtd
dtp
dv
dwg
dxf
eml
eps
exe
fax
fla
fon
for
fpx
gid
gif
gtar
gz
hex
hlp
htm
html
ico
fax cover document
C++ source file
Certificate file
cascading style sheets file
Paint Shop Pro graphics file
data file
Microsoft Express mail box file
Adobe Shockwave multimedia file
dynamic link library file
document file in Microsoft Word (and some other word-processing
applications)
Microsoft Word 2007 document file
MS-DOS file
Microsoft Word document template
device driver file
document type definition file for SGML or XML
Microsoft publisher document file
video file
Autocad drawing
drawing exchange file
Microsoft Outlook Express saved email file
encapsulated PostScript file
executable file
fax file
Adobe Flash movie file
Windows system font file
Fortran source file
Kodak flashpix image file
Windows index file
Gif format graphics file
compressed Unix file
compressed Unix file
Macintosh BinHex encoded file
Windows help file
HTML file
HTML file
Windows icon file
image
inf
ini
iso
jar
java
jpe
jpeg
jpg
js
jsp
lib
lnk
log
lst
lzh
mac
mdb
mid
mime
mov
mp3
mp4
mpe
mpg
MPEG
msg
msi
obj
ocx
p
pcl
pct
pcx
pdf
pfb
pfm
Macintosh disk image file
information file
initialization file
CD image file
Java archive file
Java source file
JPEG format graphics file
JPEG format graphics file
JPEG format graphics file
JavaScript source file
Java Server Page file
library document
Windows shortcut file
log file
list file
LZH archive file
MacPaint graphics file
Microsoft Access database file
MIDI format audio file
MIME format file
Apple QuickTime video file
MPEG compressed audio file
MPEG-4 movie file
MPEG animation file
MPEG animation file
MPEG animation file
Microsoft Outlook file
Microsoft installer file
object file
ActiveX control file
Pascal source file
HP Laserjet bit map
Macintosh PICT drawing
Paintbrush bitmap graphics file
Adobe Acrobat portable document file
PostScript printer font outlines file
PostScript printer font metrics file
pic
PC Paint graphics file
pict
pif
pl
png
pnt
pps
ppt
prn
ps
psd
pst
pub
qt
qti
qxd
qxl
ra
ram
ras
raw
reg
rm
rtf
sav
scr
sea
sgm
sgml
shtml
sit
spl
stm
stml
sun
svg
Macintosh PICT graphics file
program information file
Perl script file
portable network graphics bitmap
Macintosh Paint file
Microsoft PowerPoint slide show file
Microsoft PowerPoint presentation file
Windows print file
PostScript print file
Photoshop file
Microsoft Outlook personal folder file
document file in certain DTP programs
Apple QuickTime movie file
Apple QuickTime image file
QuarkXpress document file
QuarkXpress library file
RealAudio sound file
Real Audio sound file
Sun raster image bitmap file
raw file format (bitmap)
registration information file
RealAudio movie file
rich text format file
saved game file
Windows screen saver file
self-extracting file compressed using StuffIt
SGML file
SGML file
HTML file with SSI
file compressed with StuffIt
Macromedia Shockwave Flash file
HTML file with SSI
HTML file with SSI
Sun graphics file
SVG file
sw
swf
Adobe Shockwave audio file
Adobe Flash animation
sys
tar
taz
tga
tif
tiff
tmp
ttf
txt
url
uud
uue
vb
vbs
vcf
ver
vob
war
wav
wma
wmf
wmv
wps
wri
xls
xlsx
xml
xsd
xsl
xslt
xtg
z
zip
system file
Unix archive file
Unix archive file
Targa format bitmap graphics file
TIFF format graphics file
TIFF format graphics file
temporary file
TrueType font file
text file
Windows Internet shortcut file
file produced in ASCII by uuencode
file produced in binary by uudecode
Visual Basic file
VBScript file
electronic business card file
version file
video object file used in DVDs
Web application archive file
WAV format audio file
Microsoft Windows media audio file
Microsoft Windows meta file
Microsoft Windows media video file
Microsoft Works document file
Microsoft Write document file
Microsoft Excel spreadsheet file
Microsoft Excel 2007 spreadsheet file
XM data file
XML schema file
XSL stylesheet file
XSLT stylesheet file
QuarkXpress tagged format file
Unix compressed file
ZIP archive file
Character Set
The typefaces and characters used in the dictionary entries follow normal conventions for
printing mathematical and technical texts (rather than the more rigorous styles used in
some specialist computing texts).
The special characters shown in the table have been used to express specific logic, set
theory, and mathematical operations; for further information, see relevant entry. Letters of
the Greek alphabet also occur in some entries.
AND operation, conjunction
OR operation, disjunction
NOT operation, negation
NAND operation
NOR operation
For set S and/or set T:
x is a member of S
x is not a member of S
S is a subset of T
S is a proper subset of T
complement of S
union of S and T
intersection of S and T
Cartesian product of S and T
relation
function of x
function ƒ from set X to set Y
inverse function
∧.
∨+
′¬~
|∆
↓∇
inverse relation
R−1
x∈S
x∉S
S⊆T
S⊂T
S′~S S̄
S∪T
S∩T
S×T
R
ƒ(x), etc.
ƒ:X→Y
ƒ−1
sum, with limits
integral, with limits
∫abdx
elements of matrix A
aij
transpose of matrix A
AT
inverse of matrix A
A–1
↔≡
equivalence
biconditional
conditional
general binary operation
universal quantifier
existential quantifier
greater than
greater than or equal to
less than
less than or equal to
approx. equal to
not equal to
infinity
↔≡
→⇒
°
∀
∃
>
≥
<
≤
≈
≠
∞
Greek Alphabet
alpha
beta
gamma
delta
epsilon
zeta
eta
theta
iota
kappa
lambda
mu
nu
xi
omicron
pi
rho
sigma
tau
upsilon
phi
chi
psi
omega
α, A
β, B
γ, Γ
δ, Δ
ε, E
ζ, Z
η, H
θ, Θ
ι, I
κ, K
λ, Λ
μ, M
ν, N
ξ, Ξ
ο, Ο
π, Π
ρ, P
σ, Σ
τ, T
υ, Y
ϕ, Φ
χ, X
ψ, Ψ
ω, Ω
Chronology
1821
Charles *Babbage conceives his Difference
Engine.
c.1834
Charles Babbage conceives his Analytical
Engine.
George *Boole publishes ‘Mathematical
Analysis of Logic’.
First use of the *Hollerith code in tabulating
the US census.
1847
1890
1911
Incorporation of the Computing Tabulating
Recording Company (now IBM).
1936
Alan *Turing publishes ‘On Computable
Numbers’.
1936–8
John Atanasoff designs the *AtanasoffBerry computer.
Foundation of *Hewlett-Packard.
The *Harvard Mark I computer becomes
operational.
John *von Neumann publishes ‘First Draft
of a Report on the EDVAC’.
Alan Turing designs the *ACE computer.
The *ENIAC electronic calculator becomes
operational.
The *Manchester Mark I computer becomes
operational; from 1951 it was marketed as
the *Ferranti Mark I computer system.
1938
1944
1945
1945–6
1946
1948
1949
The *EDSAC computer becomes
operational.
1950
1953
Alan Turing publishes ‘Computing
Machinery and Intelligence’.
Introduction of the *UNIVAC computer
system.
The *EDVAC computer becomes
operational.
Introduction of the *LEO computer system.
1956
Introduction of the *Fortran programming
1951
1952
language.
Foundation of *Digital Equipment
Corporation.
1960
Introduction of the *Cobol programming
language.
1963
Introduction of the *Algol 60 programming
language.
Introduction of the *Basic programming
language.
Introduction of the *ASCII standard.
1965
1968
1969
Introduction of the *IBM system 360 range
of mainframe computers.
Foundation of *Intel.
Introduction of the *UNIX operating
system.
The *ARPANET network becomes
operational; it subsequently developed into
the Internet.
1970
Introduction of the *Pascal programming
language.
Introduction of the PDP-11 range of
minicomputers.
Ted *Codd publishes ‘A Relational Model
of Data for Large Shared Data Banks’.
1971
Introduction of the first microprocessor, the
Intel 4004.
Introduction of *email.
1972
Introduction of the *C programming
language. Foundation of *Cray Inc.
1974
Introduction of the Intel 8080
microprocessor.
Introduction of the *CP/M operating
system.
1976
Foundation of *Microsoft.
Foundation of Apple Computer Inc. (now
*Apple Inc.).
1977
Foundation of *Oracle.
Introduction of the *VAX range of
computers.
1978
1979
Introduction of the Intel 8086
microprocessor.
Introduction of the *ORACLE database
management system.
Introduction of the *Motorola 68000
microprocessor.
1980
Introduction of the *Ada programming
language.
1981
Introduction of the *MS-DOS operating
system.
Introduction of the IBM PC range of
microcomputers.
1982
1983
1984
1985
1986
1989
1990
1991
Foundation of *Sun Microsystems Inc.
Introduction of the *C++ programming
language.
Introduction of the Apple Macintosh range
of microcomputers.
Introduction of the Windows *GUI.
Introduction of the Intel 80386
microprocessor.
Tim *Berners-Lee proposes the *World
Wide Web.
Introduction of *Windows version 3.0, the
first version to achieve widespread
popularity.
Introduction of the *Linux operating
system.
Tim Berners-Lee launches the first website.
Introduction of the *Unicode standard.
Introduction of the *PowerPC
microprocessor.
1993
Introduction of the *Windows NT operating
system.
Introduction of the *Mosaic web browser.
Introduction of the Intel Pentium
microprocessor.
1995
Introduction of the *Java programming
language.
Introduction of the *Windows 95 operating
system.
1996–8
Larry *Page and Sergey *Brin develop the
*Google search engine.
1998
Introduction of the *XML markup
language.
Foundation of Google Inc.
2001
Introduction of the *OS X operating system.
Introduction of the *Windows XP operating
system.
2007
Introduction of the *Windows Vista
operating system.
2008
Introduction of Google’s *Chrome.
Introduction of the Apple *iPhone.
2010
Introduction of the Apple *iPad.
2011
2014
First Tweet sent to *Twitter.
Steve *Jobs, cofounder of Apple, dies.
Introduction of the Apple Watch.
Useful Websites
The following is a selection of authoritative, quality-controlled websites that provide free
information on essential IT topics. To access further relevant sites, go to the dictionary’s
companion web page at http://oxfordreference.com/page/comp.
Cnet Magazine www.cnet.com
An extensive site featuring many product reviews. It also offers technical support, price
guides, downloads, etc.
Computer Active Online www.computeractive.co.uk
Website of the popular UK magazine. Provides a software store, guides and manuals for
sale, and some free downloads.
Computer Shopper www.computershopper.co.uk
The magazine’s blog contains interesting reviews and opinion pieces.
ISO www.iso.org/iso/iso_Catalogue.htm
A list of international standards, including IT and telecommunications, at the International
Standards Organization.
NIST Dictionary of Algorithms and Data Structures www.nist.gov/dads
A dictionary of algorithms, algorithmic techniques, data structures, archetypal problems,
and related definitions. It is hosted by the National Institute of Standards and Technology.
V3 www.vnunet.com
A UK online technology magazine with a large amount of information and resources for
the individual or business. Downloads are also available.
Windrivers www.windrivers.com
Technical support and IT chat rooms
ZDNet www.zdnet.com
An online Internet magazine with thousands of product reviews and free downloads. There
is also technical support and other resources for the beginner or advanced programmer.