CONTENTS v
3 Declarative Programming Techniques 113
3.1 Whatisdeclarativeness? ....................... 117
3.1.1 Aclassificationofdeclarativeprogramming......... 117
3.1.2 Specificationlanguages.................... 119
3.1.3 Implementing components in the declarative model . . . . 119
3.2 Iterativecomputation......................... 120
3.2.1 Ageneralschema....................... 120
3.2.2 Iterationwithnumbers.................... 122
3.2.3 Usinglocalprocedures .................... 122
3.2.4 Fromgeneralschematocontrolabstraction ........ 125
3.3 Recursivecomputation........................ 126
3.3.1 Growingstacksize ...................... 127
3.3.2 Substitution-based abstract machine ............ 128
3.3.3 Converting a recursive to an iterative computation . . . . 129
3.4 Programmingwithrecursion..................... 130
3.4.1 Typenotation......................... 131
3.4.2 Programmingwithlists.................... 132
3.4.3 Accumulators ......................... 142
3.4.4 Differencelists ........................ 144
3.4.5 Queues............................. 149
3.4.6 Trees.............................. 153
3.4.7 Drawingtrees......................... 161
3.4.8 Parsing ............................ 163
3.5 Timeandspaceefficiency ...................... 169
3.5.1 Executiontime ........................ 169
3.5.2 Memoryusage......................... 175
3.5.3 Amortizedcomplexity .................... 177
3.5.4 Reflectionsonperformance.................. 178
3.6 Higher-orderprogramming...................... 180
3.6.1 Basicoperations ....................... 180
3.6.2 Loopabstractions....................... 186
3.6.3 Linguisticsupportforloops ................. 190
3.6.4 Data-driventechniques.................... 193
3.6.5 Explicitlazyevaluation.................... 196
3.6.6 Currying............................ 196
3.7 Abstractdatatypes.......................... 197
3.7.1 Adeclarativestack ...................... 198
3.7.2 Adeclarativedictionary ................... 199
3.7.3 Awordfrequencyapplication ................ 201
3.7.4 Secureabstractdatatypes.................. 204
3.7.5 Thedeclarativemodelwithsecuretypes .......... 205
3.7.6 Asecuredeclarativedictionary ............... 210
3.7.7 Capabilities and security ................... 210
3.8 Nondeclarativeneeds......................... 213
Copyright
c
2001-3 by P. Van Roy and S. Haridi. All rights reserved.
评论0
最新资源