phenomena possibly requiring alterations of the song delivery. Here we
have in action a singing module that renders whichever songs are concerned,
just as the printing module rendered documents on paper for the computer.
On the other
hand, a recording channel allows one to record information. For example, a
microphone can be used to record a voice and store it in the computer. This is
essentially an input channel because the main flow of information goes from the
external device to the computer. It most likely is also an output channel since
the computer may need to send signals to the microphone, for example to turn it
off or change its parameters. A small unit of processing links the computer and
the microphone and manages the flow of data and signals, moving information
between the memory of the computer and the memory associated with the
microphone when the signals show readiness. The equivalent of the
voice-recording example by computers might be scene recognition by humans. In
this case, the main flow of information goes to the brain through an elaborate
hierarchical system of sensors, starting with the eyes, decomposing the scene
into various elements of processing. A feedback mechanism exists to command,
for example, the eyes to look in a different direction. We see again a
specialized module processing input conditions, much like the electronics
converted audio information and placed it in the memory of the computer.
A modern
printer, or microphone, can actually comprise a specialized computer. However,
a communication channel between two generic, less specialized computers is more
symmetric, as the data may typically flow both ways in similar fashion. The
interaction between the two computers is governed by sophisticated rules
allowing, for example, the computers to not talk at the same time, to exchange
information in an orderly fashion, and to understand each other in the various
contexts involved. Because communication between computers on the grand scale
of a worldwide network requires a considerable number of rules to be made
explicit, the communication between generic computers is a very well formalized
domain, which has already reached a maturity that makes it a prime target for
comparison with similar functions in humans. Indeed, corresponding to
computer-computer interaction, we have human-human interaction, with language
as a most obvious example of an enabling mechanism. The flow of information is
essentially symmetrical, with elaborate mechanisms of synchronization and
recovery at several levels. Much as computers cannot keep interrupting each
other, humans need protocols allowing one person to talk and the other to
listen at appropriate moments. Also required are systems of understanding based
on shared contexts. Just as computer-computer interactions are very
sophisticated theoretical constructions of computer science for fundamental
reasons of pragmatic success in communication, language and its realizations
have been the object of deep empirical and formal studies.
The stroke of
genius in the earliest electronic computers was the recognition that the
control of actions taken by the computer needed to be extremely malleable; or,
perhaps the more important realization was that they could be malleable.
Babbage’s mechanical computer had a process control that was largely cast in
stone in the form of the interconnection of gears of fixed size and with fixed
ratios of size relative to other gears. Consequently, the device was fairly
adept at repeating a series of well-defined algorithmic steps, but it was
difficult to impossible to take the machine very far afield from the problem
for which it was constructed.
Software is the instruction set that, through
interpretation by a central processing unit, effects a series of computational
operations by a computer. If you wish, software allows one to change the size
and ratios of the gears of the machine. Software is the script that controls
the actions of a computer, much like the script of a play controls the actors
in the play. We will come back to this
|