Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Pattern calculus : computing with functions and structures
Jay B., Springer Publishing Company, Incorporated, New York, NY, 2009. 213 pp. Type: Book (978-3-540891-84-0)
Date Reviewed: Jan 26 2010

Programmers who are lucky enough to use a programming language that features properly integrated pattern matching greatly value the expressivity gain. But, as Jay shows us in this book, we have barely started to properly explore the design landscape of pattern matching in programming languages. More than anyone else, he has systematically explored both the theory and practice of pattern matching. More importantly, the knowledge thus gained has been largely transcribed into this book. Carefully written, it concisely explains the concepts surrounding the integration of pattern matching into both the operational semantics and the type system of two programming paradigms--functional and object-oriented. Finally, this is put into practice in a real programming language, called bondi, created by the author.

The book is divided into three parts. The first one, “Terms,” covers general issues of operational semantics for programming languages, before turning to the semantics and design space for pattern matching. It covers imperative, functional, and object-oriented features, as well as static and dynamic patterns.

“Types,” the second part, essentially goes over the same material; however, this time, it details all of the machinery necessary to lay out a variety of type systems appropriate for the features presented in the previous part. This part is a technically challenging 80 pages; a reader unfamiliar with type systems would be well advised to start with another book [1] before attempting to read this one. Readers familiar with type systems will find this part complete and well written, although still rather dense.

The third part, “Programming in bondi,” is a high-level tutorial on bondi, written in a style appropriate for a reader who is a seasoned programmer in ML and Java and has also read and (generally) understood the first two parts. It is brisk, but well illustrated with examples that demonstrate the power and expressivity of bondi. Furthermore, each chapter systematically ends with some brief notes on relevant related work, both recent and historical.

I appreciated the succinctness of the book, although this density might put off some readers who would have otherwise benefited from reading this material. I would have liked to see more details on the author’s accumulated engineering knowledge on how to build languages with pattern matching and unusual polymorphism. While the author does spend some time doing this, the justification for the design choices is not always entirely transparent, even though one gets the feeling that there are strong reasons for the choices made.

The audience for this book is researchers in programming language design; for them, I highly recommend this book.

Reviewer:  Jacques Carette Review #: CR137670 (1011-1094)
1) Pierce, B. Types and programming languages. The MIT Press, Cambridge, MA, 2002.
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Lambda Calculus And Related Systems (F.4.1 ... )
 
 
Data Types And Structures (D.3.3 ... )
 
 
Pattern Matching (F.2.2 ... )
 
 
Patterns (D.3.3 ... )
 
 
Data Structures (E.1 )
 
Would you recommend this review?
yes
no
Other reviews under "Lambda Calculus And Related Systems": Date
Polymorphic rewriting conserves algebraic strong normalization
Breazu-Tannen V., Gallier J. Theoretical Computer Science 83(1): 3-28, 1991. Type: Article
Aug 1 1992
Metacircularity in the polymorphic &lgr;-calculus
Pfenning F. (ed), Lee P. (ed) Theoretical Computer Science 89(1): 137-159, 1991. Type: Article
Nov 1 1992
Quantitative domains and infinitary algebras
Lamarche F. Theoretical Computer Science 94(1): 37-62, 1992. Type: Article
Dec 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy