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 and 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.