Principles of Programming Languages

Download free course Principles of Programming Languages, pdf file on 163 pages by Mike Grant, Zachary Palmer, Scott Smith.
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.

Table of contents

  • Introduction
  • Operational Semantics
  • Tuples, Records, and Variants
  • Side Effects: State and Exceptions
  • Object-Oriented Language Features
  • Type Systems
  • Concurrency
  • Compilation by Program Transformation
Pages : 163
Size : 1.1 MB
File type : PDF
Downloads: 45
Created: 2022-02-03
License: CC BY-SA
Author(s): Mike Grant, Zachary Palmer, Scott Smith
Principles of Programming Languages

Others programming Tutorials

OOP - Learn Object Oriented Thinking and Programming

An Introduction to C & GUI Programming

Java 3D Programming

Effective AWK Programming

Defensive Database Programming with SQL Server

Others related eBooks about Principles of Programming Languages

Data Parallel C++

Learn how to accelerate C++ programs using data parallelism. This open book enables C++ programmers to be at the forefro.....

Practical C++ programming

This tutorial is devoted to practical C++ programming. It teaches you the mechanics of the language, free training document under 549 designated to all level users....

Learn BlackBerry 10 App Development

Learn how to leverage the BlackBerry 10 Cascades framework to create rich native applicati..., download free BlackBerry 10 tutorial in PDF (356 pages) created by Anwar Ludin ....

Learn Node.JS

This beginner's course of Node.js will teach you how to make a first functional Web application using Node.js. The author presents his work as the guide he would have liked to read starting with Node.js. He has deliberately simplified his explanations so as to be comprehensible to the greatest numbe...

How To Code in Python 3

Extremely versatile and popular among developers, Python is a good general-purpose languag..., download free Python tutorial in PDF (458 pages) created by ....

Essential Kotlin

This book written to provide clear and concise explanation of topics for programmers both starting to learn the Kotlin programming language as well as those diving in more complex topics. Most examples are linked to online playground that allows you to change the code and re-run it....

Basic OOP in C++

Download C++ programming language courses about object-oriented programming (OOP), free training document in PDF by Eunsuk Kang and JeanYang....

Become an Xcoder: Start Programming the Mac Using Objective-C


Introduction to JPA

Download free Introduction to JPA for Beginners, course tutorial, a PDF file created by Bruce Campbell....

Practices of the Python Pro

Download free course Practices of the Python Pro, pdf file on 248 pages by Dane Hillard....