Algorithm: Computer Science: A Modern Introduction. The Algorithm "Is The Unifying Concept

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Algorithm

Andrew Goffey

Algorithm = Logic + Control1

The importance of the algorithm for software studies is indicated with admi-
rable succinctness by Les Goldschlager and Andrew Lister in their textbook,
Computer Science: A Modern Introduction. The algorithm is the unifying concept
for all the activities which computer scientists engage in. Provisionally a de-
scription of the method by which a task is to be accomplished, the algorithm
is thus the fundamental entity with which computer scientists operate.2 It is
independent of programming languages and independent of the machines that
execute the programs composed from these algorithms. An algorithm is an ab-
straction, having an autonomous existence independent of what computer sci-
entists like to refer to as implementation details, that is, its embodiment in a
particular programming language for a particular machine architecture (which
particularities are thus considered irrelevant).
But the algorithm is not simply the theoretical entity studied by computer
scientists. Algorithms have a real existence embodied in the class libraries of
programming languages, in the software used to render web pages in a browser
(indeed, in the code used to render a browser itself on a screen), in the sorting
of entries in a spreadsheet and so on. Specialized elds of research, such as arti-
cial life or connectionism in cognitive science, utilize genetic algorithms, back-
propagation algorithms, least mean square algorithms for the construction of
models to simulate evolutionary processes or the learning capacities of neural
networks. Algorithms have material effects on end usersand not just when
a commercial website uses data-mining techniques to predict your shopping
preferences.
In short, both theoretically and practically, ideally and materially, algo-
rithms have a crucial role in software. But none of this tells us much about
the social, cultural, and political role algorithms play, if anything. Nor does
it tell us much about the strata of material reality algorithmic abstractions
might be correlated with: glowing congurations of pixels on a screen? mouse
movements? the ow of electrons around an integrated circuit? Locating itself
squarely on the side of the reductionist strategies of the exact sciences, society,
culture, and politics are very much marginal to the concerns of computing

Algorithm

15
science. Software engineering, on the other hand, concerned as it is with the
pragmatic efcacy of building software for particular purposes, might appear
to offer a better starting point for factoring culture back into software. How-
ever, it is unlikely that software engineering will allow us to view culture as
anything other than something that software plugs into, as long as we fail to
arrive at a better understanding of some of its basic building blocks. The key
question then is what, if anything, a study of algorithms as such can tell us
about the place of culture in software.
Historically, the algorithm occupies the central position in computing sci-
ence because of the way that it encapsulates the basic logic behind the Turing
machine. Alan Turings concept of a machine that could be used to determine
whether any particular problem is susceptible to being solved mechanically was
a highly original interpretation of the aim of David Hilberts famous project of
formally deciding whether or not any mathematical proposition can be proved
true. The algorithm, which Turing understood as an effective process for solv-
ing a problem, is merely the set of instructions fed into the machine to solve
that problem.3 Without the algorithm then, there would be no computing.
Although computer scientists work with them as if they were purely formal
beings of reason (with a little bit of basic mathematical notation, it is possible
to reason about algorithms, their properties and so on, the way one can reason
about other mathematical entities), algorithms bear a crucial, if problematic, re-
lationship to material reality. This was tacit in the way that the Turing machine
was envisaged in terms of effective processes: A computer is a machine, after all,
and while the Turing machine is an imaginative abstraction, its connotations
of materiality are entirely real. Robert Rosen has suggested that the tempta-
tion to extrapolate from formal procedures to material processes was practically
inherent in the enterprise of the early computing scientists.4 Such a temptation
implies a confusion between the mathematics of algorithms and the physics of
real processes, of which Stephen Wolframs bold speculation that the universe is
itself a giant computer is one possible outcome.5 The rest of this article explores
another possibility, equally speculative but perhaps more mundane.
One of the implications of characterizing the algorithm as a sum of logic
and control is that it is suggestive of a link between algorithms and action.
Despite the formal-logical framework of the theory of algorithms and the fact
that programming languages are syntactic artifacts, the construction of al-
gorithms as a precisely controlled series of steps in the accomplishment of a
task is a clear indication of what might be called the pragmatic dimension of

Algorithm

16
programming. Algorithms do things, and their syntax embodies a command
structure to enable this to happen. After all, the Turing machine as an imagi-
native abstraction had as a material correlate a series of real computers. And
dumb though they may be, missile guidance systems, intelligence databases,
and biometric testing are all perfectly real. Without this effective existence
in concrete machinery, algorithms would only ever have a paper reality as the
artifacts of a formal language.
In the eld of linguistics, the existence of a pragmatic dimension to lan-
guagethe fact that words do thingshas created enormous problems for
attempts to formalize the structure of natural language. Because pragmatics
connects language to extrinsic factors, it becomes impossible to conceptualize
a language as a self-sufcient system closed in on itself. Perhaps attempting to
conceptualize the pragmatic dimension of the algorithm might yield a simi-
lar result? However, while formalization comes afterwards with natural lan-
guages, with algorithms, formalization comes rst, the express aim being to
divorce (formal) expression from (material) content completely. Understand-
ably then, the study of computation has tended to concentrate on issues of
syntax and semantics, the assumption being that what algorithms do can be
appropriately grasped within such a framework. This has tended to result in
making the leap from the theoretical world to the practical world a difcult
one to accomplish. Always the trivia of implementation details.
A conception of the algorithm as a statement as Michel Foucault used the
term might allow us to understand this approach a little better. For Foucault,
the statement is not analytically reducible to the syntactic or semantic features
of a language; it refers instead to its historical existence and the way that this
historical existence accomplishes particular actions. The statement is a sort
of diagonal line tracing out a function of the existence of language, which is
in excess of its syntactic and semantic properties. In this way, the concept of
the statement acts as a reminder that the categorical distinction between form
and content is, paradoxically, insufciently abstract to grasp the intelligence
of concretely singular constellations of language in their effective existence.
As Foucault puts it in The Archaeology of Knowledge, to speak is to do some-
thingsomething other than to express what one thinks, to translate what
one knows, and something other than to play with the structure of language.6
For Foucault, these actions are restricted to the human sphere, as is only to be
expected from an analysis which focuses on the historical existence of natural
languages. Appropriately translated into the eld of software studies, however,

Algorithm

17
focusing on the development and deployment of algorithms and an analysis of
the actions they accomplish both within software and externally might lead us
to view the latter as a sort of machinic discourse, which addresses the ways in
which algorithms operate transversally, on themselves, on machines, and on
humans. (Alternatively, we might want to start to think about cultural analy-
sis as a process of software engineering.)
Viewing algorithms in this way as statements within a machinic discourse
would problematize their existence in a way which undercuts the pure / applied
or theory / practice dichotomies which crop up when the distinction between
computing science and software engineering is too hastily made. The formalist
aim at complete abstraction from content not only relays the theory / practice
divide, it also tends to preclude an analysis of the link between the crucial enti-
ties of computing science and historical context. Just because the development
of an algorithm requires a level of de facto formal abstraction, which then al-
lows that algorithm to be applied to other kinds of content, does not mean that
we have exhausted everything that we need to know to understand the processes
of which it is a part. To borrow an expression from Gilles Deleuze and Flix
Guattari, whose analysis of the place of pragmatics in language is part of the
inspiration for this discussion, the problem with the purely formal conception
of the algorithm as an abstract machine is not that it is abstract. It is that it is
not abstract enough. That is to say, it is not capable of understanding the place
of the algorithm in a process which traverses machine and human.7
Algorithms obviously do not execute their actions in a void. It is difcult
to understand the way they work without the simultaneous existence of data
structures, which is also to say data. Even the simplest algorithm for sorting a
list of numbers supposes an unsorted list as input and a sorted list as output (as-
suming the algorithm is correct). Although computer scientists reason about
algorithms independendently of data structures, the one is pretty near useless
without the other. In other words, the distinction between the two is formal.
However, from a practical point of view, the prerequisite that structured data
actually exist in order for algorithms to be operable is quite fundamental, be-
cause it is indicative of a critical operation of translation that is required for a
problem to be tractable within software. That operation of translation might be
better understood as an incorporeal transformation, a transformation that, by
recoding things, actions, or processes as information, fundamentally changes
their status. This operation can be accomplished in myriad ways, but generally
requires a structuring of data, whether by something as innocuous as the use of

Algorithm

18
a form on a web page or by social processes of a more complex form: the knowl-
edge extraction practiced by the developers of expert systems, the restructur-
ing of an organization by management consultants, and so on.
It would be easy to leave the analysis of algorithms at this point: We are
back on familiar territory for cultural analysis, that of the critique of abstrac-
tion. Within cultural studies and many other elds of research in the human
sciences, abstraction is often thought of as the enemy. Many movements of
philosophical thought, literary and artistic endeavor, and human-scientic re-
search set themselves up against the perceived dehumanizing and destructive
consequences of the reductionism of mathematics, physics, and allied disci-
plines, as the perennial debates about the differences between the human and
the exact sciences suggests. We could even understand major elements of the
concept of culture as a response to the abstract machinery of industrial capital-
ism and the bifurcated nature modern rationality is built upon. Understand-
ing things, activities, tasks, and events in algorithmic terms appears only to
exacerbate this situation. What is an algorithm if not the conceptual embodi-
ment of instrumental rationality within real machines?
However, to simply negate abstraction by an appeal to some other value
supposedly able to mitigate the dehumanizing consequences of reductionism
misses a crucial point. It fails to adequately question the terms by which the
algorithm, as a putatively self-sufcient theoretical construct, maintains its
hierarchizing power. In questioning the self-sufciency of the algorithm as a
formal notion by drawing attention to its pragmatic functioning, however, it
becomes possible to consider the way that algorithms work as part of a broader
set of processes. Algorithms act, but they do so as part of an ill-dened network
of actions upon actions, part of a complex of power-knowledge relations, in
which unintended consequences, like the side effects of a programs behavior,
can become critically important.8 Certainly the formal quality of the algorithm
as a logically consistent construction bears with it an enormous powerpar-
ticularly in a techno-scientic universebut there is sufcient equivocation
about the purely formal nature of this construct to allow us to understand that
there is more to the algorithm than logically consistent form.
Lessig has suggested that code is law, but if code is law it is law as a
management of infractions.9 Formal logics are inherently incomplete and
indiscernibles exist. Machines break down, programs are buggy, projects are
abandoned and systems hacked. And, as the philosopher Alfred North White-
head has shown, humans are literally infected by abstractions.10 This no bad

Algorithm

19
thing, because like the virus which produced variegated tulips of a rare beauty,
infection can be creative too.

Notes

1. Robert Kowalski, Algorithm = logic + control.

2. Les Goldschlager and Andrew Lister, Computer Science: A Modern Introduction, 2nd
ed., 12.

3. See Rolf Herken, ed., The Universal Turing Machine: A Half-Century Survey for an
excellent collection of appraisals of the Turing machine.

4. Robert Rosen, Effective Processes and Natural Law in Herken, ibid.

5. Stephen Wolfram, A New Kind of Science.

6. Replace the word speak with the word program and one might begin to get a sense
of what is being suggested here. See Michel Foucault, The Archaeology of Knowledge.

7. Gilles Deleuze and Flix Guattari, November 20, 1923: Postulates of Linguistics,
in A Thousand Plateaus.

8. See Philip Agre, Computation and Human Experience on the crucial role of side effects
in software. Max Webers essay The Protestant Ethic and the Spirit of Capitalism is the
classic text on the fundamental role of unintended consequences in human action.

9. Gilles Deleuze, Foucault, p. 39.

10. See for example, Alfred North Whitehead, Science and the Modern World, and the
extended commentary by Isabelle Stengers, Penser avec Whitehead.

Algorithm

20
Analog
Derek Robinson

Now the analogy between reasons, causes, forces, principles, and


moral rules is glaring, but dazzling.
james clerk maxwell1

The term analog has come to mean smoothly varying, of a piece with the
apparent seamless and inviolable veracity of space and time; like space and
time admitting innite subdivision, and by association with them connoting
something authentic and natural, against the articial, arbitrarily truncated
precision of the digital (e.g., vinyl records vs. CDs). This twist in the tradi-
tional meaning of analog is a linguistic relic of a short-lived and now little-
remembered blip in the history of technology.
Electronic analog computers, based on technologies developed in the
1930s1940s and sold commercially from the mid-1950s onward, were used
by scientists and engineers to create and explore simulation models, hence
their name: A model is something standing in analogical relationship to the
thing being modeled. The medium of the analogy was voltage, the electro-
motive force owing and varying continuously through a circuit. Electronic
ampliers would allow any varying quantity sensed by instruments to be input
to and transformed through an analog computers program (i.e., its circuit),
tting it for use in ballistics computations and real time process control.
General purpose analog computers were anticipated in certain exotic me-
chanical devices dating from the 1870s, but these were costly specialized ma-
chines, never widely deployed. Only twenty or so Bush Differential Analyzers
were ever built, and a similar number of Kelvins Tidal Predictor and Har-
monic Analysers installed worldwide. The nal iteration of the Bush Differen-
tial Analyzer was operational by 1942; it had 2000 vacuum tubes, 200 miles of
wire, 150 electric motors, thousands of relays, and weighed 100 tons.2 Of the
mechanical analog computers (barring the slide rule) the Norden bombsight
probably saw widest service, being used in U.S. bombers from World War II
until the end of the Vietnam War. Given airspeed and altitude, the bombsight
calculated a bombs trajectory through a complex assembly of electric motors,
gyros, levels, gears, and optical parts.
Much of the early work on electronic computing, both analog and digital,
was carried out under the shroud of wartime secrecy, and it would be decades

Analog

21

You might also like