Information Technology Reference
In-Depth Information
numbers to represent the instructions and setting the appropriate switches
on the machines was a secondary task, suitable for young women who needed
only appropriate secretarial skills and some aptitude for mathematics. A more
charitable explanation is that the difficulties of actually constructing the early
computers and keeping them running were so overwhelming that these chal-
lenges completely overshadowed the problem of coding. Looking back, it now
seems naive for the early computer builders to think that once they managed
to get the machine up and running, the coding of a problem for the machine
would be a relatively minor task!
There were some early warnings that programming might not be so sim-
ple. Maurice Wilkes recalls:
Fig. 3.2. A filing cabinet is a good
analogy for thinking about the way a
computer's hard disk stores information
in files and folders.
As soon as we started programming, we found out to our surprise that it was
not as easy to get programs right as we had thought. I can remember the
exact instant when I realised that a large part of my life from then on was
going to be spent in finding mistakes in my own programs. 3
In a similar vein, one of the pioneers of computing, Edsger Dijkstra of the
Netherlands, suggests in his autobiography that programming is even harder
than theoretical physics.
In 1955 I took the decision not to become a theoretical physicist, but to
become a programmer instead. I took that decision because I had concluded
that of theoretical physics and programming, programming embodied the
greater intellectual challenge. You see, in those days I did not suffer from
intellectual modesty. 4
Software now surrounds us like the air that we breathe. It runs the communica-
tion networks, the power grid, our PCs, and our smart phones. It is embedded
in cars, aircraft, and buildings, and in banks and national defense systems. We
use software all the time, even if we are not aware of it. When we drive a car,
pay bills, use a phone, or listen to a CD, thousands of lines of code are executed.
According to Bjarne Stroustrup, the Danish inventor of the C++ programming
language, “Our civilization runs on software.” 5 Let's take a closer look at how
we write the software that controls such a large part of our lives.
The file clerk model
Computers do much more than just compute. Typically there will be one
part of the machine where the computer does all the basic mathematical oper-
ations while the rest of the machine is dedicated to moving the digital data
around in the form of electrical signals. In many ways, we can think of the oper-
ation of a computer as being like the work that file clerks once did in an office.
The file clerk was given a job to do and then had to move back and forth to racks
of filing cabinets, taking files out and putting them back, scribbling notes on
pieces of paper, passing notes around, and so on, until the job was completed
(see Fig. 3.2 ). It will be helpful to use this analogy of the computer as a file clerk
as a starting point to explain some of the basic ideas of a computer's structure
and organization. This model is a good way for us to understand the essential
ideas of how a computer actually does what it does.
Search WWH ::




Custom Search