Programming Languages: Application and Interpretation by Shriram Krishnamurthi can be downloaded in pdf format.
The following are some of the people who have contributed to this book:
• Many of the problems in this book are variations of classical problems
that appeared first in technical articles and then in textbooks. Whenever
I know the origin of a problem or solution, I acknowledge it in the text.
• I also thank the students at Wellesley College who worked with the first
edition of the book, and the students at Olin College who worked with
the second edition.
• Se Won sent in a small but important correction in my presentation of
Tanenbaum’s solution to the Dining Philosophers Problem.
• Daniel Zingaro punched a hole in the Dancer’s problem, which provoked
me to rewrite that section. I can only hope that it makes more sense now.
Daniel also pointed out an error in a previous version of my solution to
the H2O problem, and then wrote back a year later with some typos.
• Thomas Hansen found a typo in the Cigarette smokers problem.
• Pascal R¨utten pointed out several typos, including my embarrassing misspelling
of Edsger Dijkstra.
• Marcelo Johann pointed out an error in my solution to the Dining Savages
problem, and fixed it!
• Roger Shipman sent a whole passel of corrections as well as an interesting
variation on the Barrier problem.
• Jon Cass pointed out an omission in the discussion of dining philosophers.
• Krzysztof Ko´sciuszkiewicz sent in several corrections, including a missing
line in the Fifo class definition.
• Fritz Vaandrager at the Radboud University Nijmegen in the Netherlands
and his students Marc Schoolderman, Manuel Stampe and Lars Lockefeer
used a tool called UPPAAL to check several of the solutions in this book
and found errors in my solutions to the Room Party problem and the
Modus Hall problem.
• Eric Gorr pointed out an explanation in Chapter 3 that was not exactly
• Jouni Lepp¨aj¨arvi helped clarify the origins of semaphores.
• Christoph Bartoschek found an error in a solution to the exclusive dance
• Eus found a typo in Chapter 3.
Tak-Shing Chan found an out-of-bounds error in counter mutex.c.
• Roman V. Kiseliov made several suggestions for improving the appearance
of the book, and helped me with some LATEX issues.
• Alejandro C´espedes is working on the Spanish translation of this book and
found some typos.
• Erich Nahum found a problem in my adaptation of Kenneth Reek’s solution
to the Sushi Bar Problem.
• Martin Storsj¨o sent a correction to the generalized smokers problem.