Download A Practical Theory of Programming by Eric C.R. Hehner PDF

By Eric C.R. Hehner

There are numerous theories of programming. the 1st usable concept, known as ''Hoare's Logic'', remains to be essentially the most well known. In it, a specification is a couple of predicates: a precondition and postcondition (these and all technical phrases can be outlined in due course). one other well known and heavily comparable conception via Dijkstra makes use of the weakest precondition predicate transformer, that's a functionality from courses and postconditions to preconditions. lones's Vienna improvement strategy has been used to virtue in a few industries; in it, a specification is a couple of predicates (as in Hoare's Logic), however the moment predicate is a relation. Temporal good judgment is yet one more formalism that introduces a few certain operators and quantifiers to explain a few facets of computation. the speculation during this booklet is less complicated than any of these simply pointed out. In it, a specification is simply a boolean expression. Refinement is simply usual implication. This conception can be extra basic than these simply pointed out, employing to either terminating and nonterminating computation, to either sequential and parallel computation, to either stand-alone and interactive computation. And it comprises time bounds, either for set of rules type and for tightly restricted real-time functions

Show description

Read or Download A Practical Theory of Programming PDF

Best programming languages books

Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle

This e-book covers plenty of other ways that eventualities and person tales were utilized in a number of industries. i am partial to the method and so preferred all the diversified viewpoints. The booklet does be afflicted by being written from a number of authors with assorted agendas, and you'll no longer locate whatever of price in the entire chapters.

The Language of Machines: An Introduction to Computability and Formal Languages

An up to date, authoritative textual content for classes in conception of computability and languages. The authors redefine the development blocks of automata idea through supplying a unmarried unified version encompassing all conventional different types of computing machines and "real global" digital pcs. This reformulation of computablity and formal language conception presents a framework for development a physique of data.

Understanding Z: A Specification Language and its Formal Semantics

Via supplying a proper semantics for Z, this booklet justifies the declare that Z is an exact specification language, and gives a regular framework for knowing Z requirements. It makes an in depth theoretical comparability among schemas, the Z build for breaking standards into modules, and the analogous amenities in different languages corresponding to transparent and ASL.

Google Maps power tools for maximizing the API

Create customized purposes with the Google Maps API that includes step by step examples, this sensible source will get you begun programming the Google Maps API with JavaScript very quickly. how to embed maps on web content, annotate the embedded maps along with your facts, generate KML documents to shop and reuse your map information, and allow patron purposes to request spatial information via internet providers.

Additional resources for A Practical Theory of Programming

Example text

X:= y+1 In each, the problem (left side) is refined by (follows from, is implied by) the solution (right side) for all initial and final values of all variables. 3 Conditions optional A condition is a specification that refers to at most one state. A condition that refers to (at most) the initial state (prestate) is called an initial condition or precondition, and a condition that refers to (at most) the final state (poststate) is called a final condition or postcondition. In the following two definitions let P and S be specifications.

At one extreme, we have the specification † ; it is the easiest specification to implement because all computer behavior satisfies it. At the other extreme is the specification ƒ , which is not satisfied by any computer behavior. But ƒ is not the only unimplementable specification. Here is another. x≥0 ∧ y′=0 If the initial value of x is nonnegative, the specification can be satisfied by setting variable y to 0 . But if the initial value of x is negative, there is no way to satisfy the specification.

If b is an implemented boolean expression of the initial values, and P and Q are programs, then if b then P else Q is a program. Q is a program. An implementable specification that is refined by a program is a program. For the “implemented expressions” referred to in (b) and (c), we take booleans, numbers, characters, and lists, with all their operators. We omit bunches, sets, and strings because we have lists, and we omit functions and quantifiers because they are harder to implement. All these notations, and others, are still welcome in specifications.

Download PDF sample

Rated 4.44 of 5 – based on 19 votes