Description
Teaches students about great programming-language ideas and how to use them in programming practice.
About the Author
Norman Ramsey is Associate Professor of Computer Science at Tufts University. Since earning his Ph.D. at Princeton, he has worked in industry and has taught programming languages, advanced functional programming, programming-language implementation, and technical writing at Purdue, the University of Virginia, and Harvard as well as Tufts. He has received Tufts's Lerman-Neubauer Prize, awarded annually to one outstanding undergraduate teacher. He has also been a Hertz Fellow and an Alfred P. Sloan Research Fellow. His implementation credits include a code generator for the Standard ML of New Jersey compiler and another for the Glasgow Haskell Compiler.
Reviews
'Norman Ramsey provides a foundational approach to understanding the key concepts in programming languages, including methodology around structure and formalism, complemented by abundant (battle-tested) exercises that help to ground the ideas. Whereas many texts on programming languages focus on surface details of a representative class of languages, this book captures key ideas that transcend specific languages, offering formal ways to think about design, reasoning, and implementation.' Greg Morrisett, Cornell University
'Survey courses on programming languages are popular, but the best way to understand programming languages is to implement them, and the best way to start is by implementing interpreters. This book describes how to implement interpreters for a wide range of languages, representing key features of real-world languages while providing the theoretical background needed to understand them. I have used pre-prints of this book for many years in my Caltech course on programming languages, and I know of no book with a comparable depth and breadth of coverage of the subject. I strongly recommend it to anyone with a serious interest in programming languages.' Michael C. Vanier, California Institute of Technology
This book is a landmark work of scholarship. In a single consistent framework Ramsey covers a huge range of topics in programming language design, implementation, and reasoning. We see functional, imperative, and object-oriented languages; we study garbage collection, control operators, type inference, and module systems; we use the key intellectual tools of type theory and semantics to understand and reason about our programs; and, crucially, we build everything. This is not a discursive overview: the book is full of code, extensively indexed and cross-referenced. We emerge with concrete implementations of languages that are carefully designed to demonstrate the key intellectual landmarks of different programming styles. Most important of all, in reading this book you are travelling in the company of a master of his craft, one who has distilled into these pages a lifetime of insightful reflection on the principled design and implementation of programming languages.' Simon Peyton Jones, Epic Games
Book Information
ISBN 9781107180185
Author Norman Ramsey
Format Hardback
Page Count 600
Imprint Cambridge University Press
Publisher Cambridge University Press
Weight(grams) 1650g
Dimensions(mm) 262mm * 184mm * 50mm