Skip to main content

Programming Language Pragmatics

  • 5th Edition - January 9, 2025
  • Latest edition
  • Authors: Michael Scott, Jonathan Aldrich
  • Language: English

Programming Language Pragmatics is the most comprehensive programming language textbook available today, with nearly 1000 pages of content in the book, plus hundreds more pages… Read more

Early spring sale

Nurture your knowledge

Grow your expertise with up to 25% off trusted resources.

Description

Programming Language Pragmatics is the most comprehensive programming language textbook available today, with nearly 1000 pages of content in the book, plus hundreds more pages of reference materials and ancillaries online. Michael Scott takes theperspective that language design and language implementation are tightly interconnected, and that neither can be fully understood in isolation. In an approachable, readable style, he discusses more than 50 languages in the context of understanding how code isinterpreted or compiled, providing an organizational framework for learning new languages, regardless of platform. This edition has been thoroughly updated to cover the most recent developments in programming language design and provides both a solid understanding of the most important issues driving software development today

Key features

  • Provides a complete re-write of the chapter on semantic analysis, using formal inference rules
  • Includes a heavy revision of the chapter on type systems
  • Presents significant updates to the chapters on composite types, object orientation, and code generation
  • Covers new material on ownership types, safe concurrency, asynchronous programming, traits, move constructors, template “concepts,” the LLVM compiler infrastructure, and many other topics

Readership

Upper-level undergraduate and graduate-level computer science students taking a programming languages course

Table of contents

I. Foundations

1. Introduction

2. Programming Language Syntax

3. Names, Scopes, Bindings

4. Semantic Analysis

5. Target Machine Architecture

II. Core Issues in Language Design

6. Control Flow

7. Data Types

8. Composite Types

9. Subroutines and Control Abstraction

10. Data Abstraction and Object Orientation

III. Alternative Programming Models

11. Functional Languages

12. Logic Languages

13. Concurrency

14. Scripting Languages

IV. A Closer Look at Implementation

15. Building a Runnable Program

16. Run-time Program Management

17. Code Improvement

Product details

  • Edition: 5
  • Latest edition
  • Published: May 9, 2025
  • Language: English

About the authors

MS

Michael Scott

Michael L. Scott is a professor and past Chair of the Computer Science Department at the University of Rochester. He is best known for work on synchronization and concurrent data structures: algorithms from his group appear in a wide variety of commercial and open-source systems. A Fellow of the ACM and the IEEE, he shared the 2006 Dijkstra Prize in Distributed Computing. In 2001 he received the University's Robert and Pamela Goergen Award for Distinguished Achievement and Artistry in Undergraduate Teaching.

Affiliations and expertise
Professor and past Chair, Computer Science Department, University of Rochester, USA

JA

Jonathan Aldrich

Jonathan Aldrich works at the intersection of programming languages and software engineering. His research explores how the way we express software affects our ability to engineer software at scale. A particular theme of much of his work is improving software quality and programmer productivity through better ways to express structural and behavioral aspects of software design within source code. Professor Aldrich has contributed to object-oriented typestate verification, modular reasoning techniques for aspects and stateful programs, and new object-oriented language models. For his work specifying and verifying architecture, he received a 2006 NSF CAREER award and the 2007 Dahl-Nygaard Junior Prize (press release, article). Right now he's excited to be working on the design of Wyvern, a new modularly extensible programming language.
Affiliations and expertise
Institute for Software Research and Computer Science Department, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA