Check nearby libraries
Buy this book
This edition doesn't have a description yet. Can you add one?
Check nearby libraries
Buy this book
Previews available in: English
Subjects
Computer programmingShowing 3 featured editions. View all 3 editions?
Edition | Availability |
---|---|
1
Concepts, Techniques, and Models of Computer Programming
2004, MIT Press
in English
0262332590 9780262332590
|
zzzz
Libraries near you:
WorldCat
|
2
Concepts, Techniques, and Models of Computer Programming
March 1, 2004, The MIT Press
Hardcover
in English
0262220695 9780262220699
|
aaaa
Libraries near you:
WorldCat
|
3
Concepts, Techniques, and Models of Computer Programming
2004, MIT Press
in English
0262257165 9780262257169
|
zzzz
Libraries near you:
WorldCat
|
Book Details
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
Edition Notes
Classifications
The Physical Object
ID Numbers
Community Reviews (0)
Feedback?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 |