Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Principles of Programming Languages

by Mike Grant, Zachary Palmer, Scott Smith

Principles of Programming Languages

Subscribe to new books via telegram channel

DescriptionTable of ContentsDetailsReport an issue

Book Description

In this open book, our goal is to study the fundamental concepts in programming languages, as opposed to learning a range of specific languages. Languages are easy to learn, it is the concepts behind them that are difficult. The basic features we study in turn include higher-order functions, data structures in the form of records and variants, mutable state, exceptions, objects and classes, and types. We also study language implementations, both through language interpreters and language compilers. Throughout the book we write small interpreters for toy languages, and in Chapter 8 we write a principled compiler. We define type checkers to define which programs are well-typed and which are not. We also take a more precise, mathematical view of interpreters and type checkers, via the concepts of operational semantics and type systems. These last two concepts have historically evolved from the logician's view of programming.

The material has evolved from lecture notes used in a programming languages course for juniors, seniors, and graduate students at Johns Hopkins University. While the book uses formal mathematical techniques such as operational semantics and type systems, it does not emphasize proofs of properties of these systems. We will nonetheless sketch the intuitions of some proofs.

This open book is licensed under a Creative Commons License (CC BY-SA). You can download Principles of Programming Languages ebook for free in PDF format (1.1 MB).

Table of Contents

Chapter 1
Chapter 2
Operational Semantics
Chapter 3
Tuples, Records, and Variants
Chapter 4
Side Effects: State and Exceptions
Chapter 5
Object-Oriented Language Features
Chapter 6
Type Systems
Chapter 7
Chapter 8
Compilation by Program Transformation

Book Details

Principles of Programming Languages
Computer Science
PDF Size
1.1 MB

Related Books

Practical Foundations for Programming Languages
Types are the central organizing principle of the theory of programming languages. Language features are manifestations of type structure. The syntax of a language is governed by the constructs that define its types, and its semantics is determined by the interactions among those constructs. The soundness of a language design - the absence of ill-d...
Programming Languages and Systems
This book constitutes the proceedings of the 27th European Symposium on Programming, ESOP 2018, which took place in Thessaloniki, Greece in April 2018, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018. The 36 papers presented in this volume were carefully reviewed and selected from 114 submissions. The ...
Fundamentals of Computer Programming with C#
This open book aims to provide novice programmers solid foundation of basic knowledge regardless of the programming language. This book covers the fundamentals of programming that have not changed significantly over the last 10 years. Educational content was developed by an authoritative author team led by Svetlin Nakov from the Software University...
Foundations of Software Science and Computation Structures
This book constitutes the proceedings of the 15th International Conference on Foundations of Software Science and Computational Structures, FOSSACS 2012, held as part of the joint European Conference on Theory and Practice of Software, ETAPS 2012, which took place in Tallinn, Estonia, in March/April 2012. The 29 papers presented in this book toget...
Fundamental Approaches to Software Engineering
This book constitutes the proceedings of the 21st International Conference on Fundamental Approaches to Software Engineering, FASE 2018, which took place in Thessaloniki, Greece in April 2018, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018.The 19 papers presented in this volume were carefully reviewed ...
Foundations of Analytical Chemistry
This book offers a completely new approach to learning and teaching the fundamentals of analytical chemistry. It summarizes 250 basic concepts of the field on the basis of slides. Each of the nine chapters offers the following features: - Introduction: Summary. General scheme. Teaching objectives. - Text containing the explanation of each slide. - ...