Programming in the 1990s: An Introduction to the Calculation of Programs

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Programming is a fascinating and challenging subject. Unfortunately, it is rarely presented as such. Most often it is taught by "induction": features of some famous programming languages are given operational meaning (e.g. a loop "goes round and round"), a number of examples are shown, and by induction, we are asked to develop other programs, often radically different from the ones we've seen. Basically we are taught to guess our programs, and then to patch up our guesses. Our errors are given the cute name of "bugs". Fixing them becomes puzzle-solving, as does finding tricks that exploit or avoid poorly designed features of the programming language. The entire process is time-consuming and expensive. And even so, we are never quite sure if our programs really work in all cases. When approached in this way, programming is indeed a dull activity. There is, however, another approach to programming, an approach in which programs can be developed reliably, with attention to the real issues. It is a practical approach based on methodically developing programs from their specifications. Besides being practical, it is exciting. Many programs can be developed with relative ease. Problems which once were difficult can now be solved by beginners. Elegant solutions bring great satisfaction. This is our subject. We are interested in making programming an exciting topic!

Author(s): Edward Cohen
Series: Texts and Monographs in Computer Science
Publisher: Springer
Year: 1990

Language: English
Pages: 274
Tags: Programming Techniques; Software Engineering

Front Matter....Pages i-xv
What can we learn from a cake?....Pages 1-7
Preliminary notions, notations, and terminology....Pages 9-26
Predicates A — Boolean operators....Pages 27-43
Predicates B — Quantified expressions....Pages 45-59
Specifications....Pages 61-79
The shapes of programs....Pages 81-100
Intermezzo on calculations....Pages 101-108
Developing loopless programs....Pages 109-121
Developing loops — an introduction....Pages 123-126
Loops A — On deleting a conjunct....Pages 127-148
Loops B — On replacing constants by fresh variables....Pages 149-194
Mainly on recursion....Pages 195-220
Back to scratch....Pages 221-247
Where to go from here....Pages 249-260
Back Matter....Pages 261-268