Abstraction and Specification in Program Development (MIT by Barbara Liskov, John V. Guttag

By Barbara Liskov, John V. Guttag

Abstraction and Specification in software improvement bargains pros in software layout and software program engineering a strategy that may allow them to build courses which are trustworthy and fairly effortless to appreciate, regulate, and retain. stable programming consists of the systematic mastery of complexity, and this booklet offers the 1st unified remedy of the recommendations of abstraction and specification, which, the authors argue, are the linchpin of any powerful method of programming. They position specific emphasis at the use of information abstraction to supply hugely modular courses. The authors specialize in the method of decomposing huge application tasks into self reliant modules that may be assigned to self sufficient operating teams. They speak about equipment of decomposition, the types of modules which are most dear during this approach, and strategies to extend the possibility that modules produced can actually be recombined to unravel the unique programming challenge. there are lots of examples of abstractions during the textual content, and every bankruptcy ends with pertinent references and routines. lots of the pattern implementations within the ebook are written in CLU, one among an increasing number of languages capable of aid info abstraction. enough fabric is integrated, even though, to permit the reader to paintings in Pascal in addition. the fabric during this e-book was once built through the authors in the course of a decade of educating undergraduate, graduate, and professional-level classes. Barbara Liskov, the developer of CLU, is Professor and John Guttag an affiliate Professor of desktop technological know-how at MIT. Abstraction and Specification in application improvement is incorporated within the MIT electric Engineering and machine technology sequence.

Show description

Read Online or Download Abstraction and Specification in Program Development (MIT Electrical Engineering and Computer Science Series) PDF

Similar software development books

Software Engineering (9th Edition)

Meant for introductory and complicated classes in software program engineering.

The 9th variation of software program Engineering provides a wide viewpoint of software program engineering, concentrating on the methods and strategies basic to the construction of trustworthy, software program platforms. elevated assurance of agile equipment and software program reuse, in addition to insurance of 'traditional' plan-driven software program engineering, provides readers the main up to date view of the sector at the moment to be had. functional case reports, an entire set of easy-to-access supplementations, and broad internet assets make instructing the direction more uncomplicated than ever.

The publication is now established into 4 parts:

1: advent to software program Engineering
2: Dependability and safeguard
three: complex software program Engineering
four: software program Engineering administration

Ruby Pocket Reference (2nd Edition)

Up to date for Ruby 2. 2, this convenient reference deals short but transparent reasons of Ruby's middle parts - from operators to blocks to documentation creation—and highlights the most important good points you'll paintings with on a daily basis. want to know the right kind syntax for a conditional? Forgot the identify of that String technique?

Successful Evolution of Software Systems

In todayÂ’s fast-changing, aggressive surroundings, having an up to date details process (IS) is important for all businesses and associations. instead of making a new method from scratch, reengineering is a cheap method to increase an IS to check altering enterprise wishes. utilizing specific examples, this sensible ebook offers equipment and strategies for reengineering platforms for flexibility and reliability.

Visual Studio 2010 All-in-One For Dummies

A entire, easy-to-understand advisor to visible Studio 2010 visible Studio is Microsoft's accomplished improvement atmosphere that encompasses the . internet Framework, numerous programming languages, and ASP. internet. Programmers like it for constructing purposes for cellular units and the internet. simply because visible Studio should be advanced, the All-in-One For Dummies structure makes it effortless for novices to understand its various elements and wake up to hurry.

Additional resources for Abstraction and Specification in Program Development (MIT Electrical Engineering and Computer Science Series)

Sample text

X : = X + 1 { X = 24 } } X := X + 1 { x 2 > 45 } } X : = X + 1 { X 2 - X > 87 } } X : = x 2 - X + 1 { X � 23 } } x := x4 - x 2 - 6 { x � 23 } } x : = (x - 1) (x + 1 ) { x � 0} } X := 1 { X = 10 } } X := y { X < 0 } } X : = X + y { X > 0 1\ y > 0 } } b : = b 1\ c { b } } b := b 1\ c { b => c } } b : = b 1\ c { c => b } } b : = b 1\ c { b = c } } x , y, z : = y, z , X { X = X 1\ y = y 1\ z = z } } z , y : = z x, y - 1 { y � 0 1\ z . xY = ab } · · 2. Give the strongest expression that can be substituted for the dots in each of the following cases.

It is a loop of only three lines, and terminates with the symbol end that occurs two lines below the symbol while. What I meant was that execution of the loop terminates. I will stick to the sloppy terminology. 2 The Simple Statements For describing the meaning, or the semantics, of the statements in our program notation we use the following notation: { P } S { Q }. Both P and Q are conditions, and S is a statement; P is called the precondition and Q is called the postcondition. We will also use the term predicate for condition.

Write expression (L: i : 2 �; i � N 1\ prime (i ) : i) in the tradi­ tional notation with a lowerbound and an upperbound for a summa­ tion. 8. Exercises 45 15. Prove { k > 0 } * [x < 0 -+ X := X + kj { X �0} . 16. Prove { true } * [x < y -+ x, y := y, x] { x � y }. 17. Prove { true } • [i < i - i := i + 1 1 i < k - i := i + 1 1 k < i - k := k + 1] { i =j =k } 18. We have observed that for given P, Q, B, and S, several invariants may exist to infer { P } * [B -+ S] { Q }. ) Prove that the conjunction and disjunction of two invariants are also invariants.

Download PDF sample

Rated 4.46 of 5 – based on 4 votes