Concepts, Techniques, and Models of Computer Programming

  • 4.00 ·
  • 2 Ratings
  • 18 Want to read
  • 0 Currently reading
  • 3 Have read
Not in Library

My Reading Lists:

Create a new list

Check-In

×Close
Add an optional check-in date. Check-in dates are used to track yearly reading goals.
Today

  • 4.00 ·
  • 2 Ratings
  • 18 Want to read
  • 0 Currently reading
  • 3 Have read


Download Options

Buy this book

Last edited by MARC Bot
June 29, 2019 | History

Concepts, Techniques, and Models of Computer Programming

  • 4.00 ·
  • 2 Ratings
  • 18 Want to read
  • 0 Currently reading
  • 3 Have read

This edition doesn't have a description yet. Can you add one?

Publish Date
Publisher
The MIT Press
Language
English
Pages
930

Buy this book

Previews available in: English

Edition Availability
Cover of: Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming
2004, MIT Press
in English
Cover of: Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming
March 1, 2004, The MIT Press
Hardcover in English
Cover of: Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming
2004, MIT Press
in English

Add another edition?

Book Details


Published in

Cambridge, Massachusetts, USA

Table of Contents

List of Figures Page xvi
List of Tables Page xxiv
Preface Page xxvii
Running the example programs Page xliii
I. Introduction Page 1 1. Introduction to Programming Concepts Page 3 1.1. A calculator Page 3 1.2. Variables Page 4 1.3. Functions Page 4 1.4. Lists Page 6 1.5. Functions over lists Page 9 1.6. Correctness Page 11 1.7. Complexity Page 12 1.8. Lazy evaluation Page 13 1.9. Higher-order programming Page 15 1.10. Concurrency Page 16 1.11. Dataflow Page 17 1.12. State Page 18 1.13. Objects Page 19 1.14. Classes Page 20 1.15. Nondeterminism and time Page 21 1.16. Atomicity Page 23 1.17. Where do we go from here Page 24 1.18. Exercises Page 24 II. General Computation Models Page 29 2. Declarative Computation Model Page 31 2.1. Defining practical programming languages Page 33 2.2. The single-assignment store Page 44 2.3. Kernel language Page 50 2.4. Kernel language semantics Page 57 2.5. From kernel language to practical language Page 80 2.6. Exceptions Page 91 2.7. Advanced topics Page 98 2.8. Exercises Page 108 3. Declarative Programming Techniques Page 113 3.1. What is declarativeness? Page 117 3.2. Iterative computation Page 120 3.3. Recursive computation Page 126 3.4. Programming with recursion Page 130 3.5. Time and space efficiency Page 169 3.6. Higher-order programming Page 180 3.7. Abstract data types Page 197 3.8. Nondeclarative needs Page 213 3.9. Program design in the small Page 221 3.10. Exercises Page 233 4. Declarative Concurrency Page 237 4.1. The data-driven concurrent model Page 239 4.2. Basic thread programming techniques Page 251 4.3. Streams Page 261 4.4. Using the declarative concurrent model directly Page 277 4.5. Lazy execution Page 283 4.6. Soft real-time programming Page 309 4.7. Limitations and extensions of declarative programming Page 314 4.8. The Haskell language Page 327 4.9. Advanced topics Page 332 4.10. Historical notes Page 343 4.11. Exercises Page 344 5. Message-Passing Concurrency Page 353 5.1. The message-passing concurrent model Page 354 5.2. Port objects Page 357 5.3. Simple message protocols Page 361 5.4. Program design for concurrency Page 370 5.5. Using the message-passing concurrent model directly Page 385 5.6. The Erlang language Page 394 5.7. Advanced topics Page 402 5.8. Exercises Page 407 6. Explicit State Page 413 6.1. What is state? Page 416 6.2. State and system building Page 418 6.3. The declarative model with explicit state Page 421 6.4. Abstract data types Page 427 6.5. Stateful collections Page 438 6.6. Reasoning with state Page 444 6.7. Program design in the large Page 453 6.8. Case studies Page 467 6.9. Advanced topics Page 484 6.10. Exercises Page 487 7. Object-Oriented Programming Page 493 7.1. Motivations Page 495 7.2. Classes as complete ADTs Page 498 7.3. Classes as incremental ADTs Page 507 7.4. Programming with inheritance Page 524 7.5. Relation to other computation models Page 543 7.6. Implementing the object system Page 552 7.7. The Java language (sequential part) Page 556 7.8. Active objects Page 563 7.9. Exercises Page 574 8. Shared-State Concurrency Page 577 8.1. The shared-state concurrent model Page 581 8.2. Programming with concurrency Page 581 8.3. Locks Page 590 8.4. Monitors Page 600 8.5. Transactions Page 608 8.6. The Java language (concurrent part) Page 625 8.7. Exercises Page 626 9. Relational Programming Page 633 9.1. The relational computation model Page 635 9.2. Further examples Page 639 9.3. Relation to logic programming Page 644 9.4. Natural language parsing Page 654 9.5. A grammar interpreter Page 662 9.6. Databases Page 667 9.7. The Prolog language Page 673 9.8. Exercises Page 684 III. Specialized Computation Models Page 687 10. Graphical User Interface Programming Page 689 10.1. Basic concepts Page 691 10.2. Using the declarative/procedural approach Page 692 10.3. Case studies Page 699 10.4. Implementing the GUI tool Page 712 10.5. Exercises Page 712 11. Distributed Programming Page 713 11.1. Taxonomy of distributed systems Page 716 11.2. The distribution model Page 718 11.3. Distribution of declarative data Page 720 11.4. Distribution of state Page 726 11.5. Network awareness Page 729 11.6. Common distributed programming patterns Page 730 11.7. Distribution protocols Page 738 11.8. Partial failure Page 744 11.9. Security Page 749 11.10. Building applications Page 751 11.11. Exercises Page 752 12. Constraint Programming Page 755 12.1. Propagate and search Page 756 12.2. Programming techniques Page 761 12.3. The constraint-based computation model Page 764 12.4. Computation spaces Page 766 12.5. Implementing the relational computation model Page 777 12.6. Exercises Page 778 IV. Semantics Page 781 13. Language Semantics Page 783 13.1. The shared-state concurrent model Page 784 13.2. Declarative concurrency Page 806 13.3. Eight computation models Page 808 13.4. Semantics of common abstractions Page 809 13.5. Historical notes Page 810 13.6. Exercises Page 811 V. Appendices Page 815 A. Mozart System Development Environment Page 817 A.1. Interactive interface Page 817 A.2. Batch interface Page 819 B. Basic Data Types Page 821 B.1. Numbers (integers, floats, and characters) Page 821 B.2. Literals (atoms and names) Page 825 B.3. Records and tuples Page 826 B.4. Chunks (limited records) Page 829 B.5. Lists Page 830 B.6. Strings Page 832 B.7. Virtual strings Page 833 C. Language Syntax Page 835 C.1. Interactive statements Page 836 C.2. Statements and expressions Page 836 C.3. Nonterminals for statements and expressions Page 838 C.4. Operators Page 838 C.5. Keywords Page 841 C.6. Lexical syntax Page 843 D. General Computation Model Page 845 D.1. Creative extension principle Page 846 D.2. Kernel language Page 847 D.3. Concepts Page 848 D.4. Different forms of state Page 850 D.5. Other concepts Page 851 D.6. Layered language design Page 852 Bibliography Page 853 Index Page 869

Classifications

Library of Congress
QA76.6.V36 2004, QA76.6 .V36 2004

The Physical Object

Format
Hardcover
Pagination
xxix, 900
Number of pages
930
Dimensions
10.1 x 8.4 x 2 inches
Weight
4.4 pounds

ID Numbers

Open Library
OL9451338M
Internet Archive
artagentoriented00libg
ISBN 10
0262220695
ISBN 13
9780262220699
LCCN
2003065140
Library Thing
16747
Goodreads
772585

Community Reviews (0)

Feedback?
No community reviews have been submitted for this work.

Lists

This work does not appear on any lists.

History

Download catalog record: RDF / JSON
June 29, 2019 Edited by MARC Bot import existing book
October 22, 2014 Edited by r. clayton added toc
July 28, 2014 Created by ImportBot import new book