Binding Time (Book)

Six Studies in Programming Technology and Milieu

Edited by Mark Halpern

This book is a collection of related but independent essays. Such books are notoriously hard to classify-a fact that alarms me, since they thereby become hard to shelve, review, and sell. And so I imagined, when I first conceived the idea of collecting them, that I would have to devote some considerable effort to finding a Common Theme that they all illustrate or contribute to, and thereby show that theyhave better reason to congregate between one pair of covers than the simple fact that I wrote them. It quickly turned out, though, that no great effort was required. These essays, although written over a period of about twenty-five years, and in widely varying circumstances, fit together and support each other so well that I can only suspect my subconscious of having planned them as chapters of one book from the start. I have had to discipline myself, in fact, to hold to a reasonable number the cross references that I inserted whenever I found that a point I try to make in one chapter is supported or amplified by an argument offered in another. The problem has been not to find their common theme, but to retain some autonomy for the several essays the book comprises.

Edition

Preface 
1 Turing's Test and the Ideology of Artificial Intelligence 
Appendix A 
Appendix B 
Appendix C
Notes 
2 Perfection & Paradox: Programming and Mathematics Exchange Favors 
Mathematical notation and natural languages 
Calculism and programming languages 
Calculism and the validation of programs 
Two key papers on the verification controversy 
The exposure of paradox: Programming returns the favor 
Notes 
3 From the Macroprocessor to the General Processor 
Language or processor? 
Three dimensions of programming languages 
Logical place of the macroprocessor 
Historical place of the macroprocessor 
The notational dimension 
The modal dimension 
Machine independence versus object-program efficiency 
Have we thrown out the baby? 
Epilogue 
The past recaptured? 
Notes 
4 Natural Language and Redundancy in Programming 
The problem defined 
English, active and passive 
Translation versus comprehension 
Written versus spoken input 
Objections and counterproposals 
Redundancy 
What calculus, and why? 
Consequences for 'program correctness' and plain debugging 
Specimen confusions 
Assertions: Applied redundancy in OOP
Notes 
5 Building on the General Processor: From Modules to Boxes 
What is a bug?
Is there a place for 'good design'?
Where are bugs found?
What is a module? 
Parnas on 'information hiding' and module specification 
From modules to boxes 
Attaining bug-free code 
Assertions as debugging tools 
The extended general processor: How boxes are built and used 
Boxes and proofs: A summary 
Boxes as support for 'field debugging' 
Appendix 
Notes 
6 The Politically Correct Programmer 
A theorem on human rights 
'Proof' and its uses in politics 
Notes 
References 
Author Index 
Subject Index

Related Titles