Cart
Free Shipping in the UK
Proud to be B-Corp

Programming Languages Norman Ramsey (Tufts University, Massachusetts)

Programming Languages By Norman Ramsey (Tufts University, Massachusetts)

Programming Languages by Norman Ramsey (Tufts University, Massachusetts)


£75.19
Condition - New
Only 2 left

Summary

This 'great ideas applied in practice' textbook emphasizes practice. It distills key programming languages and their design ideas down to small, simple languages implemented by an interpreter, The hands-on approach lets readers develop skills that will help them be productive programmers even in languages they've never seen before.

Programming Languages Summary

Programming Languages: Build, Prove, and Compare by Norman Ramsey (Tufts University, Massachusetts)

Computer scientists often need to learn new programming languages quickly. The best way to prepare for this is to understand the foundational principles that underlie even the most complicated industrial languages. This text for an undergraduate programming languages course distills great languages and their design principles down to easy-to-learn 'bridge' languages implemented by interpreters whose key parts are explained in the text. The book goes deep into the roots of both functional and object-oriented programming, and it shows how types and modules, including generics/polymorphism, contribute to effective programming. The book is not just about programming languages; it is also about programming. Through concepts, examples, and more than 300 practice exercises that exploit the interpreter, students learn not only what programming-language features are but also how to do things with them. Substantial implementation projects include Milner's type inference, both copying and mark-and-sweep garbage collection, and arithmetic on arbitrary-precision integers.

Programming Languages 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

About Norman Ramsey (Tufts University, Massachusetts)

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.

Table of Contents

Preface; Acknowledgments; Credits; Tables of judgment forms, important functions, and concrete syntax; List of symbols and notation; Introduction; Part I. Foundations: 1. An imperative core; 2. Scheme, S-expressions, and first class functions; 3. Control operators and a small-step semantics: Scheme+; 4. Automatic memory management; 5. Interlude: Scheme in ML; 6. Type systems for Impcore and Scheme; 7. ML and type inference; Part II. Programming at Scale: 8. User-defined, algebraic types; 9. Molecule, abstract data types, and modules; 10. Smalltalk and object orientation; Afterword; Bibliography; Key words and phrases; Concept index.

Additional information

NPB9781107180185
9781107180185
110718018X
Programming Languages: Build, Prove, and Compare by Norman Ramsey (Tufts University, Massachusetts)
New
Hardback
Cambridge University Press
2022-10-27
600
N/A
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a new book - be the first to read this copy. With untouched pages and a perfect binding, your brand new copy is ready to be opened for the first time

Customer Reviews - Programming Languages