Concepts, Techniques, and Models of Computer Programming (MIT Press)

By Peter Van Roy

This leading edge textual content offers laptop programming as a unified self-discipline in a fashion that's either functional and scientifically sound. The booklet specializes in options of lasting price and explains them accurately by way of an easy summary laptop. The booklet provides all significant programming paradigms in a uniform framework that indicates their deep relationships and the way and the place to take advantage of them jointly. After an advent to programming options, the ebook provides either recognized and lesser-known computation types ("programming paradigms"). every one version has its personal set of concepts and every is integrated at the foundation of its usefulness in perform. the final types contain declarative programming, declarative concurrency, message-passing concurrency, particular country, object-oriented programming, shared-state concurrency, and relational programming. really good versions contain graphical consumer interface programming, disbursed programming, and constraint programming. each one version is predicated on its kernel language -- an easy middle language that contains a small variety of programmer-significant parts. The kernel languages are brought gradually, including options one after the other, hence exhibiting the deep relationships among various types. The kernel languages are outlined accurately when it comes to an easy summary desktop. simply because a large choice of languages and programming paradigms may be modeled through a small set of heavily comparable kernel languages, this procedure permits programmer and pupil to know the underlying harmony of programming. The publication has many application fragments and routines, all of that are run at the Mozart Programming method, an Open resource software program package deal that includes an interactive incremental improvement environment.

Show description

Quick preview of Concepts, Techniques, and Models of Computer Programming (MIT Press) PDF

Best Programming books

Joe Celko's SQL for Smarties: Advanced SQL Programming Third Edition (The Morgan Kaufmann Series in Data Management Systems)

SQL for Smarties was once hailed because the first booklet committed explicitly to the complex options had to remodel an skilled SQL programmer into a professional. Now, 10 years later and within the 3rd version, this vintage nonetheless reigns superb because the ebook written through an SQL grasp that teaches destiny SQL masters.

Designing Audio Effect Plug-Ins in C++: With Digital Audio Signal Processing Theory

Not only one other theory-heavy electronic sign processing ebook, nor one other uninteresting build-a-generic-database programming booklet, Designing Audio influence Plug-Ins in C++ offers every thing you every thing you want to comprehend to do exactly that, together with totally labored, downloadable code for dozens audio impression plug-ins and essentially provided algorithms.

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)

“Every C++ expert wishes a replica of powerful C++. it truly is an absolute must-read for a person considering doing severe C++ improvement. If you’ve by no means learn potent C++ and also you imagine you recognize every thing approximately C++, re-evaluate. ”— Steve Schirripa, software program Engineer, Google “C++ and the C++ neighborhood have grown up within the final fifteen years, and the 3rd version of powerful C++ displays this.

Cocoa Design Patterns

“Next time a few child exhibits up at my door requesting a code overview, this can be the publication that i'm going to throw at him. ”   –Aaron Hillegass, founding father of sizeable Nerd Ranch, Inc. , and writer of Cocoa Programming for Mac OS X   Unlocking the secrets and techniques of Cocoa and Its Object-Oriented Frameworks   Mac and iPhone builders are usually beaten via the breadth and class of the Cocoa frameworks.

Extra info for Concepts, Techniques, and Models of Computer Programming (MIT Press)

Show sample text content

Four. 2 easy thread programming thoughts . . . . . . . . . four. 2. 1 developing threads . . . . . . . . . . . . . . . . four. 2. 2 Threads and the browser . . . . . . . . . . . . four. 2. three Dataflow computation with threads . . . . . . four. 2. four Thread scheduling . . . . . . . . . . . . . . . four. 2. five Cooperative and aggressive concurrency . . . four. 2. 6 Thread operations . . . . . . . . . . . . . . . four. three Streams . . . . . . . . . . . . . . . . . . . . . . . . . four. three. 1 uncomplicated producer/consumer . . . . . . . . . . . four. three. 2 Transducers and pipelines . . . . . . . . . . . four. three. three handling assets and bettering throughput four. three. four circulation gadgets . . . . . . . . . . . . . . . . . four. three. five electronic common sense simulation . . . . . . . . . . . . . four. four utilizing the declarative concurrent version at once . . . four. four. 1 Order-determining concurrency . . . . . . . . four. four. 2 Coroutines . . . . . . . . . . . . . . . . . . . . four. four. three Concurrent composition . . . . . . . . . . . . four. five Lazy execution . . . . . . . . . . . . . . . . . . . . . four. five. 1 The demand-driven concurrent version . . . . . four. five. 2 Declarative computation versions . . . . . . . . four. five. three Lazy streams . . . . . . . . . . . . . . . . . . four. five. four Bounded buffer . . . . . . . . . . . . . . . . . four. five. five analyzing a dossier lazily . . . . . . . . . . . . . . . four. five. 6 The Hamming challenge . . . . . . . . . . . . . four. five. 7 Lazy checklist operations . . . . . . . . . . . . . . . four. five. eight power queues and set of rules layout . . . . four. five. nine record comprehensions . . . . . . . . . . . . . . four. 6 gentle real-time programming . . . . . . . . . . . . . . Copyright c 2001-3 by means of P. Van Roy and S. Haridi. All rights reserved. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 216 219 221 221 222 223 228 233 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 239 241 243 246 247 251 251 251 252 256 259 260 261 261 263 265 270 271 277 277 279 281 283 286 290 293 295 297 298 299 303 307 309 CONTENTS vii four. 6. 1 easy operations . . . . . . . . . . . . . . . . . . four. 6. 2 Ticking . . . . . . . . . . . . . . . . . . . . . . . four. 7 barriers and extensions of declarative programming . four. 7. 1 potency . . . . . . . . . . . . . . . . . . . . . . four. 7. 2 Modularity . . . . . . . . . . . . . . . . . . . . . four. 7. three Nondeterminism . . . . . . . . . . . . . . . . . . four. 7. four the genuine international . . . . . . . . . . . . . . . . . . . four. 7. five selecting the correct version . . . . . . . . . . . . . . four. 7. 6 prolonged versions . . . . . . . . . . . . . . . . . . four. 7. 7 utilizing varied versions jointly . . . . . . . . . . four. eight The Haskell language . . . . . . . . . . . . . . . . . . . . four. eight. 1 Computation version . . . . . . . . . . . . . . . . . four. eight. 2 Lazy overview . . . . . . . . . . . . . . . . . . . four. eight. three Currying . . . . . . . . . . . . . . . . . . . . . . . four. eight. four Polymorphic varieties . . . . . . . . . . . . . . . . . four. eight. five sort periods . . . . . . . . . . . . . . . . . . . . . four. nine complicated issues . . . . . . . . . . . . . . . . . . . . . . . four. nine. 1 The declarative concurrent version with exceptions four. nine. 2 extra on lazy execution . . . . . . . . . . . . . . . four. nine. three Dataflow variables as verbal exchange channels . . four. nine. four extra on synchronization . . . . . . . . . . . . . . four. nine. five Usefulness of dataflow variables . . . . . . . . . . four. 10 old notes . . . . . . . . . . . . . . . . . . . . . . . four. eleven routines . . . . . . . . . . . . . . . . . . . . . . . . . . . five Message-Passing Concurrency five. 1 The message-passing concurrent version . . . . . . . . . . five. 1. 1 Ports . . . . . . . . . . . . . . . . . . . . . . . . . five. 1. 2 Semantics of ports . . . . . . . . . . . . . . . . . five. 2 Port gadgets . . . . . . . . . . . . . . . . . . . . . . . . . five. 2. 1 The NewPortObject abstraction .

Download PDF sample

Rated 4.59 of 5 – based on 9 votes