Programming Languages: Application and Interpretation is a programming-languages text by Shriram Krishnamurthi of Brown University. From the preface:
-
- This book is the fruit of a vision for teaching programming languages by integrating the “two cultures” that have evolved in its pedagogy. One culture is based on interpreters, while the other emphasizes a survey of languages. Each approach has significant advantages but also huge drawbacks. The interpreter method writes programs to learn concepts, and has its heart the fundamental belief that by teaching the computer to execute a concept we more thoroughly learn it ourselves.
-
- While this reasoning is internally consistent, it fails to recognize that understanding definitions does not imply we understand consequences of those definitions. For instance, the difference between strict and lazy evaluation, or between static and dynamic scope, is only a few lines of interpreter code, but the consequences of these choices is enormous. The survey of languages school is better suited to understand these consequences.
-
- The text therefore melds these two approaches.
StructureAndInterpretationOfComputerPrograms and especially
EssentialsOfProgrammingLanguages are examples of interpreters-based programming languages books. In fact PLAI is a response to both of those books. Like both of them, it teaches through, or using,
SchemeLanguage.
ConceptsTechniquesAndModelsOfComputerProgramming is an example of a good book in the survey-of-languages vein. (Even though the many specific languages studied in CTM are (largely) all extensions of core OzLanguage - to a large extent, Oz is to CTM as Scheme is to SICP or EoPL - the book is about how those languages can (and should) be used rather than how they can be implemented.)
Section VII teaches FirstClassContinuations, using web programming as the motivating example. So PLAI may be of particular interest to anyone hoping to master a continuation-based web framework (see WebTransactionsWithContinuations) such as SeasideFramework, or ArcLanguage's default web system, or Krishnamurthi's own PltScheme webserver.
The book is free online: you can also get a paid download or a printed copy from http://www.lulu.com/content/808232 .
CategoryBook CategoryOnlineBook CategoryContinuation