Book

Programming Languages: Application and Interpretation

📖 Overview

Programming Languages: Application and Interpretation is a computer science textbook that combines two educational approaches to teaching programming languages: survey-based learning and interpreter-based implementation. The book uses Racket programming language and is freely available as an electronic resource. The text presents programming concepts through a dual methodology, first introducing ideas through broad surveys, then reinforcing understanding through hands-on interpreter implementation. This structure enables students to grasp both theoretical foundations and practical applications of programming language concepts. The book serves as both an academic textbook and an ongoing development project, with regular updates and supplementary materials available through Brown University's course pages. Published independently by author Shriram Krishnamurthi, it has been adopted by numerous universities and high schools. The work represents a significant contribution to computer science education by bridging the gap between theoretical understanding and practical implementation of programming languages. Its approach challenges traditional categorizations of programming paradigms while providing a comprehensive foundation in language design and interpretation.

👀 Reviews

Reviews indicate this is a readable introduction to programming language concepts that balances theory and practice. The book covers material through hands-on implementation rather than pure theory. Liked: - Clear explanations of complex concepts like parsing and type systems - Practical exercises building small languages - Focus on Racket makes concepts concrete - Free online availability Disliked: - Some readers found later chapters on types too dense - A few noted the Racket-centric approach limits broader applicability - Exercises sometimes lack detailed solutions Ratings: Goodreads: 4.24/5 (17 ratings) No Amazon reviews found From reader reviews: "Helped me understand PL concepts by actually implementing them" - Goodreads "Great balance between theory and practice" - Reddit r/programming "The type system chapters lost me a bit" - Goodreads "Wish it covered more languages beyond Racket" - Goodreads Note: Limited review data available online for comprehensive analysis.

📚 Similar books

Types and Programming Languages by Benjamin Pierce A comprehensive foundation in type systems and programming language theory that complements Krishnamurthi's implementation-focused approach.

Essentials of Programming Languages by Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes The book presents interpreters for progressively complex languages using Scheme, focusing on the key concepts that shape programming language design.

Concepts of Programming Languages by Robert W. Sebesta The text examines fundamental programming concepts through the lens of multiple language paradigms and their implementations.

Practical Foundations for Programming Languages by Robert Harper This work connects mathematical foundations with practical language implementation through constructive type theory and functional programming.

Programming Language Pragmatics by Michael L. Scott The book bridges theoretical principles with real-world implementation considerations in programming language design and construction.

🤔 Interesting facts

🔹 The Racket programming language used in the book evolved from Scheme, which was created by Guy Steele and Gerald Sussman at MIT in the 1970s as a tool for teaching programming concepts. 🔹 Author Shriram Krishnamurthi was awarded the SIGPLAN Robin Milner Young Researcher Award in 2012 for his exceptional contributions to programming language research. 🔹 The book's interactive exercises are powered by WeScheme, a web-based programming environment that allows students to write and test Racket code directly in their browsers. 🔹 The text has been translated into multiple languages and is used in programming language courses at over 50 universities worldwide, including Brown University, where Krishnamurthi teaches. 🔹 The book's approach of teaching through interpreter construction was inspired by the seminal work "Structure and Interpretation of Computer Programs" (SICP) by Abelson and Sussman.