Today, computers fulfil a dazzling array of roles, a flexibility
resulting from the great range of programs that can be run on them.
A Science of Operations examines the history of what we now call
programming, defined not simply as computer programming, but more
broadly as the definition of the steps involved in computations and
other information-processing activities. This unique perspective
highlights how the history of programming is distinct from the history
of the computer, despite the close relationship between the two in the
20th century. The book also discusses how the development of
programming languages is related to disparate fields which attempted to
give a mechanical account of language on the one hand, and a linguistic
account of machines on the other.
Topics and features: covers the early development of automatic
computing, including Babbage's "mechanical calculating engines" and the
applications of punched-card technology; examines the theoretical work
of mathematical logicians such as Kleene, Church, Post and Turing, and
the machines built by Zuse and Aiken in the 1930s and 1940s; discusses
the role that logic played in the development of the stored program
computer; describes the "standard model" of machine-code programming
popularised by Maurice Wilkes; presents the complete table for the
universal Turing machine in the Appendices; investigates the rise of the
initiatives aimed at developing higher-level programming notations, and
how these came to be thought of as 'languages' that could be studied
independently of a machine; examines the importance of the Algol 60
language, and the framework it provided for studying the design of
programming languages and the process of software development; explores
the early development of object-oriented languages, with a focus on the
Smalltalk project.
This fascinating text offers a new viewpoint for historians of science
and technology, as well as for the general reader. The historical
narrative builds the story in a clear and logical fashion, roughly
following chronological order.