logo资料库

concepts, techniques, and models of computer programming-full.pdf

第1页 / 共931页
第2页 / 共931页
第3页 / 共931页
第4页 / 共931页
第5页 / 共931页
第6页 / 共931页
第7页 / 共931页
第8页 / 共931页
资料共931页,剩余部分请下载后查看
Concepts, Techniques, and Models of Computer Programming
Cover
Table of Contents
Preface
Running the Example Programs
1 Introduction to Programming Concepts
1.1 A calculator
1.2 Variables
1.3 Functions
1.4 Lists
1.5 Functions over lists
1.6 Correctness
1.7 Complexity
1.8 Lazy evaluation
1.9 Higher-order programming
1.10 Concurrency
1.11 Data.ow
1.12 Explicit state
1.13 Objects
1.14 Classes
1.15 Nondeterminismand time
1.16 Atomicity
1.17 Where do we go from here?
1.18 Exercises
I GENERAL COMPUTATION MODELS
2 Declarative Computation Model
2.1 De.ning practical programming languages
2.2 The single-assignment store
2.3 Kernel language
2.4 Kernel language semantics
2.5 Memorymanagement
2.6 From kernel language to practical language
2.7 Exceptions
2.8 Advanced topics
2.9 Exercises
3 Declarative Programming Techniques
3.1 What is declarativeness?
3.2 Iterative computation
3.3 Recursive computation
3.4 Programmingwith recursion
3.5 Time and space e.ciency
3.6 Higher-order programming
3.7 Abstract data types
3.8 Nondeclarative needs
3.9 Program design in the small
3.10 Exercises
4 Declarative Concurrency
4.1 The data-driven concurrentmodel
4.2 Basic thread programming techniques
4.3 Streams
4.4 Using the declarative concurrent model directly
4.5 Lazy execution
4.6 Soft real-time programming
4.7 The Haskell language
4.8 Limitations and extensions of declarative programming
4.9 Advanced topics
4.10 Historical notes
4.11 Exercises
5 Message-Passing Concurrency
5.1 The message-passing concurrent model
5.2 Port objects
5.3 Simple message protocols
5.4 Program design for concurrency
5.5 Lift control system
5.6 Using the message-passing model directly
5.7 The Erlang language
5.8 Advanced topic
5.9 Exercises
6 Explicit State
6.1 What is state?
6.2 State and systembuilding
6.3 The declarative model with explicit state
6.4 Data abstraction
6.5 Stateful collections
6.6 Reasoning with state
6.7 Program design in the large
6.8 Case studies
6.9 Advanced topics
6.10 Exercises
7 Object-Oriented Programming
7.1 Inheritance
7.2 Classes as complete data abstractions
7.3 Classes as incremental data abstractions
7.4 Programming with inheritance
7.5 Relation to other computation models
7.6 Implementing the object system
7.7 The Java language (sequential part)
7.8 Active objects
7.9 Exercises
8 Shared-State Concurrency
8.1 The shared-state concurrentmodel
8.2 Programming with concurrency
8.3 Locks
8.4 Monitors
8.5 Transactions
8.6 The Java language (concurrent part)
8.7 Exercises
9 Relational Programming
9.1 The relational computation model
9.2 Further examples
9.3 Relation to logic programming
9.4 Natural language parsing
9.5 A grammar interpreter
9.6 Databases
9.7 The Prolog language
9.8 Exercises
II SPECIALIZED COMPUTATION MODELS
10 Graphical User Interface Programming
10.1 The declarative/procedural approach
10.2 Using the declarative/procedural approach
10.3 The Prototyper interactive learning tool
10.4 Case studies
10.5 Implementing the GUI tool
10.6 Exercises
11 Distributed Programming
11.1 Taxonomy of distributed systems
11.2 The distribution model
11.3 Distribution of declarative data
11.4 Distribution of state
11.5 Network awareness
11.6 Common distributed programming patterns
11.7 Distribution protocols
11.8 Partial failure
11.9 Security
11.10 Building applications
11.11 Exercises
12 Constraint Programming
12.1 Propagate-and-search
12.2 Programming techniques
12.3 The constraint-based computation model
12.4 De.ning and using computation spaces
12.5 Implementing the relational computation model
12.6 Exercises
III SEMANTICS
13 Language Semantics
13.1 The general computation model
13.2 Declarative concurrency
13.3 Eight computation models
13.4 Semantics of common abstractions
13.5 Historical notes
13.6 Exercises
IV APPENDIXES
A Mozart System Development Environment
A.1 Interactive interface
A.2 Command line interface
B Basic Data Types
B.1 Numbers (integers, oats, and characters)
B.2 Literals (atoms and names)
B.3 Records and tuples
B.4 Chunks (limited records)
B.5 Lists
B.6 Strings
B.7 Virtual strings
C Language Syntax
C.1 Interactive statements
C.2 Statements and expressions
C.3 Nonterminals for statements and expressions
C.4 Operators
C.5 Keywords
C.6 Lexical syntax
D General Computation Model
D.1 Creative extension principle
D.2 Kernel language
D.3 Concepts
D.4 Di.erent forms of state
D.5 Other concepts
D.6 Layered language design
References
Index
Team DDU
Concepts,Techniques,andModelsofComputerProgramming
This page intentionally left blank
Concepts,Techniques,andModelsofComputerProgrammingbyPeterVanRoySeifHaridiTheMITPressCambridge,MassachusettsLondon,England
c2004MassachusettsInstituteofTechnologyAllrightsreserved.Nopartofthisbookmaybereproducedinanyformbyanyelectronicormechanicalmeans(includingphotocopying,recording,orinformationstorageandretrieval)withoutpermissioninwritingfromthepublisher.ThisbookwassetinLATEX2εbytheauthorsandwasprintedandboundintheUnitedStatesofAmerica.LibraryofCongressCataloging-in-PublicationDataVanRoy,Peter.Concepts,techniques,andmodelsofcomputerprogramming/PeterVanRoy,SeifHaridip.cm.Includesbibliographicalreferencesandindex.ISBN0-262-22069-51.Computerprogramming.I.Haridi,Seif.II.Title.QA76.6.V362004005.1—dc222003065140
ShortContentsPrefacexiiiRunningtheExampleProgramsxxix1IntroductiontoProgrammingConcepts1IGENERALCOMPUTATIONMODELS272DeclarativeComputationModel293DeclarativeProgrammingTechniques1114DeclarativeConcurrency2335Message-PassingConcurrency3456ExplicitState4057Object-OrientedProgramming4898Shared-StateConcurrency5699RelationalProgramming621IISPECIALIZEDCOMPUTATIONMODELS67710GraphicalUserInterfaceProgramming67911DistributedProgramming70712ConstraintProgramming749IIISEMANTICS77713LanguageSemantics779
viShortContentsIVAPPENDIXES813AMozartSystemDevelopmentEnvironment815BBasicDataTypes819CLanguageSyntax833DGeneralComputationModel843References853Index863
TableofContentsPrefacexiiiRunningtheExampleProgramsxxix1IntroductiontoProgrammingConcepts11.1Acalculator...............................11.2Variables.................................21.3Functions.................................21.4Lists...................................41.5Functionsoverlists...........................71.6Correctness...............................91.7Complexity................................101.8Lazyevaluation.............................111.9Higher-orderprogramming.......................131.10Concurrency...............................141.11Dataflow.................................151.12Explicitstate..............................161.13Objects..................................171.14Classes..................................181.15Nondeterminismandtime.......................201.16Atomicity................................211.17Wheredowegofromhere?......................221.18Exercises.................................23IGENERALCOMPUTATIONMODELS272DeclarativeComputationModel292.1Definingpracticalprogramminglanguages..............302.2Thesingle-assignmentstore......................422.3Kernellanguage.............................492.4Kernellanguagesemantics.......................562.5Memorymanagement..........................722.6Fromkernellanguagetopracticallanguage..............792.7Exceptions................................90
分享到:
收藏