Long ago~ the welfare of a sooiety used to depend heavily on the skill and dedioation of its oraftsmen - the miller~ the blaok smith~ the oobbler and the tailor. These oraftsmen aoquired their skill by a long and poorly paid apprentioeship to some master of their oraft. They learned by imitation and experienoe~ and by tri al and error. They did not read books or study soienoe~ they knew nothing of the theory of their subjeot~ the geometry of their ru dimentary drawings~ nor the mathematios underlying their primitive oaloulations. They oould not explain how or why they used their methods; yet they worked effeotively by themselves or in small teams to oomplete their tasks at a predioted oost~ to a fairly well predioted timesoale~ and usually to the satisfaotion of their olients. The programmer of today shares many of these attributes of a oraftsman. He learns his oraft by apprentioeship in an existing team of programmers - but his apprentiaeship is highZy paid and usually very short. He develops his skill by trial; but mostly by error. He does not study theory~ or even read books on Computer Soience. He knows nothing of the logical and mathematical founda tions of his profession; and he hates to explain or justifY~ or even to dooument what he has done.
Inhaltsverzeichnis
I: Program Development and Verification. - Smoothsort, an Alternative for Sorting in Situ. - Lambek and Moser Revisited. - A General Axiom of Assignment. - Assignment and Linked Data Structures. - A Proof of the Schorr-Waite Algorithm. - Verification of Sequential Programs: Temporal Axiomatization. - Specification and Derivation of Programs. - Repaying Our Debts. - II: Denotational Semantics. - Lectures on a Mathematical Theory of Computation. - Semantic Models. - III: Abstract Data Types. - Algebras, Theories and Freeness: An Introduction for Computer Scientists. - An Analysis of Semantic Models for Algebraic Specifications. - IV: Infinite Structures. - Fundamental Properties of Infinite Trees. - Behaviors of Processes and Synchronized Systems of Processes. - V: Concurrent Programs. - A Tutorial on the Split Binary Semaphore. - A Fixed Point Approach to Applicative Multiprogramming. - Discrete Event Simulation Based on Communicating Sequential Processes. - Structure of an Operating System.