You may have to Search all our reviewed books and magazines, click the sign up button below to create a free account.
In this comprehensive anthology Peter Naur, one of the world's foremost computer scientists, presents his selected writings from 1951 to 1990. The book features Naur's original and stimulating reflections on the nature of computing, with perceptive analyses of many issues that remain controversial. Comprising the author's published and unpublished writings on scientific, technical, philosophical, and social aspects of computing, the volume highlights his view of computing as, essentially, a human activity.
"What an absolutely cool guy!" --- Dennis Shasha, NYU "Fascinating... very worthwhile" --- Robert Harper, CMU What mathematical rigor has and has not to offer to software engineers. Peter Naur wrote his first research paper at the age of 16. Soon an internationally acclaimed astronomer, Naur's expertise in numerical analysis gave him access to computers from 1950. He helped design and implement the influential ALGOL programming language. During the 1960s, Naur was in sync with the research agendas of McCarthy, Dijkstra, and others. By 1970, however, he had distanced himself from them. Instead of joining Dijkstra's structured programming movement, he made abundantly clear why he disapproved o...
The book records the essential discoveries of mathematical and computational scientists in chronological order, following the birth of ideas on the basis of prior ideas ad infinitum. The authors document the winding path of mathematical scholarship throughout history, and most importantly, the thought process of each individual that resulted in the mastery of their subject. The book implicitly addresses the nature and character of every scientist as one tries to understand their visible actions in both adverse and congenial environments. The authors hope that this will enable the reader to understand their mode of thinking, and perhaps even to emulate their virtues in life.
The notion of Minimalism is proposed as a theoretical tool supporting a more differentiated understanding of reduction and thus forms a standpoint that allows definition of aspects of simplicity. Possible uses of the notion of minimalism in the field of human–computer interaction design are examined both from a theoretical and empirical viewpoint, giving a range of results. Minimalism defines a radical and potentially useful perspective for design analysis. The empirical examples show that it has also proven to be a useful tool for generating and modifying concrete design techniques. Divided into four parts this book traces the development of minimalism, defines the four types of minimalism in interaction design, looks at how to apply it and finishes with some conclusions.
Most aspects of our private and social lives—our safety, the integrity of the financial system, the functioning of utilities and other services, and national security—now depend on computing. But how can we know that this computing is trustworthy? In Mechanizing Proof, Donald MacKenzie addresses this key issue by investigating the interrelations of computing, risk, and mathematical proof over the last half century from the perspectives of history and sociology. His discussion draws on the technical literature of computer science and artificial intelligence and on extensive interviews with participants. MacKenzie argues that our culture now contains two ideals of proof: proof as tradition...
To construct a compiler for a modern higher-level programming languagel one needs to structure the translation to a machine-like intermediate language in a way that reflects the semantics of the language. little is said about such struc turing in compiler texts that are intended to cover a wide variety of program ming languages. More is said in the Iiterature on semantics-directed compiler construction [1] but here too the viewpoint is very general (though limited to 1 languages with a finite number of syntactic types). On the other handl there is a considerable body of work using the continuation-passing transformation to structure compilers for the specific case of call-by-value languages ...
This book explains the development of theoretical computer science in its early stages, specifically from 1965 to 1990. The author is among the pioneers of theoretical computer science, and he guides the reader through the early stages of development of this new discipline. He explains the origins of the field, arising from disciplines such as logic, mathematics, and electronics, and he describes the evolution of the key principles of computing in strands such as computability, algorithms, and programming. But mainly it's a story about people – pioneers with diverse backgrounds and characters came together to overcome philosophical and institutional challenges and build a community. They collaborated on research efforts, they established schools and conferences, they developed the first related university courses, they taught generations of future researchers and practitioners, and they set up the key publications to communicate and archive their knowledge. The book is a fascinating insight into the field as it existed and evolved, it will be valuable reading for anyone interested in the history of computing.
Contrary to what many believe, Alan Turing is not the father of the all-purpose computer. Engineers were, independently of Turing, already building such machines during World War II. Turing's influence was felt more in programming after his death than in computer building during his lifetime. The first person to receive a Turing award was a programmer, not a computer builder. Logicians and programmers recast Turing's notions of machine and universality. Gradually, these recast notions helped programmers to see the bigger picture of what they were accomplishing. Later, problems unsolvable with a computer influenced experienced programmers, including Edsger W. Dijkstra. Dijkstra's pioneering work shows that both unsolvability and aesthetics have practical relevance in software engineering. But to what extent did Dijkstra and others depend on Turing's accomplishments? This book presents a revealing synthesis for the modern software engineer and, by doing so, deromanticizes Turing's role in the history of computing.