Skip to content
Register Sign in Wishlist

Programming Languages
Build, Prove, and Compare

$84.99 (P)

textbook
  • Date Published: October 2022
  • availability: Available
  • format: Hardback
  • isbn: 9781107180185

$ 84.99 (P)
Hardback

Add to cart Add to wishlist

Other available formats:
eBook


Request examination copy

Instructors may request a copy of this title for examination

Description
Product filter button
Description
Contents
Resources
Courses
About the Authors
  • 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.

    • Hands-on approach helps students develop programming skills
    • Online examples make it easy for instructors and students to understand and build on the material
    • Focus on how understanding of language design features translates into learning new languages quickly
    Read more

    Reviews & endorsements

    ‘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

    See more reviews

    Customer reviews

    Not yet reviewed

    Be the first to review

    Review was not posted due to profanity

    ×

    , create a review

    (If you're not , sign out)

    Please enter the right captcha value
    Please enter a star rating.
    Your review must be a minimum of 12 words.

    How do you rate this item?

    ×

    Product details

    • Date Published: October 2022
    • format: Hardback
    • isbn: 9781107180185
    • length: 600 pages
    • dimensions: 262 x 184 x 50 mm
    • weight: 1.65kg
    • availability: Available
  • 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.

  • Author

    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.

Related Books

Sorry, this resource is locked

Please register or sign in to request access. If you are having problems accessing these resources please email [email protected]

Register Sign in
Please note that this file is password protected. You will be asked to input your password on the next screen.

» Proceed

You are now leaving the Cambridge University Press website. Your eBook purchase and download will be completed by our partner www.ebooks.com. Please see the permission section of the www.ebooks.com catalogue page for details of the print & copy limits on our eBooks.

Continue ×

Continue ×

Continue ×
warning icon

Turn stock notifications on?

You must be signed in to your Cambridge account to turn product stock notifications on or off.

Sign in Create a Cambridge account arrow icon
×

Find content that relates to you

Join us online

This site uses cookies to improve your experience. Read more Close

Are you sure you want to delete your account?

This cannot be undone.

Cancel

Thank you for your feedback which will help us improve our service.

If you requested a response, we will make sure to get back to you shortly.

×
Please fill in the required fields in your feedback submission.
×