Principles of Programming Languages


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.
Download free tutorial in PDF (163 pages) created by Mike Grant .
Pages : 163
Size :
File type : HTML
Downloads: 130
Created: 2021-05-15
License: Free
Author(s): Mike Grant
Principles of Programming Languages

Others Principles of Programming Tutorials

Others related eBooks about Principles of Programming Languages

Azure DevOps Succinctly

Download free course Azure DevOps Succinctly, pdf file on 112 pages by by Sander Rossel....

High-Performance Caching with Nginx and Nginx Plus

Download free course High-Performance Caching with Nginx and Nginx Plus, pdf file on 47 pages by Floyd Smith....

Measure, Integration and Real Analysis

This textbook welcomes students into the fundamental theory of measure, integration, and real analysis. Focusing on an accessible approach, it lays the foundations for further study by promoting a deep understanding of key results. ...

Optimizing HPC Applications with Intel Cluster Tools

Download free course Optimizing HPC Applications with Intel Cluster Tools, pdf file on 291 pages by Alexander Supalov, Andrey Semin, Michael Klemm, Christopher Dahnken....

Adobe Illustrator Photoshop Basics

This PDF tutorial is created for students who would like to learn the basics of the Adobe Illustrator CS6,free training document material on 76 pages by Sharon Steuer....

A Friendly Introduction to Mathematical Logic

At the intersection of mathematics, computer science, and philosophy, mathematical logic examines the power and limitations of formal mathematical thinking. In this expansion of Leary's user-friendly 1st edition, readers with no previous study in the field are introduced to the basics of model theor...

Asterisk: The Future of Telephony, 2nd Edition

This bestselling book is now the standard guide to building phone systems with Asterisk, t..., download free Asterisk tutorial in PDF (604 pages) created by Jared Smith ....

Advanced Problems in Mathematics: Preparing for University

This book is intended to help candidates prepare for entrance examinations in mathematics and scientific subjects, including STEP (Sixth Term Examination Paper). STEP is an examination used by Cambridge colleges as the basis for conditional offers. They are also used by Warwick University, and man...

Learning Regular Expressions

Download free course Learning Regular Expressions, pdf file on 94 pages by Stack Overflow Community....

802.11ac: A Survival Guide

The next frontier for wireless LANs is 802.11ac, a standard that increases throughput beyo..., download free Survival Guide tutorial in PDF (152 pages) created by ....