Cover of: Concepts, Techniques, and Models of Computer Programming by Peter Van Roy, Seif Haridi

Concepts, Techniques, and Models of Computer Programming

  • 4.00 ·
  • 2 Ratings
  • 14 Want to read
  • 0 Currently reading
  • 3 Have read
    Loading...

Buy this book

When you buy books using these links the Internet Archive may earn a small commission.

Last edited by MARC Bot
June 29, 2019 | History

Concepts, Techniques, and Models of Computer Programming

  • 4.00 ·
  • 2 Ratings
  • 14 Want to read
  • 0 Currently reading
  • 3 Have read
Publish Date
Publisher
The MIT Press
Language
English
Pages
930

Buy this book

When you buy books using these links the Internet Archive may earn a small commission.

Previews available in: English

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

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

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