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: 62
Created: 2022-02-03
License: CC BY-SA
Author(s): Mike Grant, Zachary Palmer, Scott Smith
Principles of Programming Languages

Warning: Trying to access array offset on false in /home/tutovnfz/public_html/article.php on line 233

Others programming Tutorials

Is Parallel Programming Hard, And, If So, What Can You Do About It?

Practical Foundations for Programming Languages

Programming Persistent Memory: A Comprehensive Guide for Developers

Programming for Computations - Python

Introduction to Programming with Fortran

Others related eBooks about Principles of Programming Languages

Learning Perl Through Examples

Download tutorial intituled Learning Perl Through Examples, it's a free training document under 72 pages by Yun Shen....

Xamarin.IOS tutorial in PDF

Download free Xamarin.IOS tutorial course in PDF, training file in 23 chapters and 95 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

Guide to C++ Programming

This tutorial provides an introduction to C++ programming language in PDF. This guide will help you to learn how to write a simple computer programs in C++ with somes exercises....

PC Assembly Language

The purpose of this book is to give the reader a better understanding of how computers really work at a lower level than in programming languages like Pascal. By gaining a deeper understanding of how computers work, the reader can often be much more productive developing software in higher level lan...

Reverse Engineering for Beginners

Download free ebook about Reverse Engineering for Beginners. A PDF tutorial on 942 pages by Dennis Yurichev....

Invent Your Own Computer Games with Python

Invent Your Own Computer Games with Python teaches you how to program in the Python langua..., download free Game Development tutorial in PDF (367 pages) created by ....

Learning React Native

React Native is an open-source mobile application framework created by Facebook. It is an ..., download free React Native tutorial in PDF (101 pages) created by ....

Python Tutorial for Beginners in PDF

In this tutorial, we will introduce you to the basic concepts of Python programming in an informal manner....

Fast Lane to Python

This book aims to enable the reader to quickly acquire a Python foundation. The material particularly feel quite comfortable to anyone with background in an object-oriented programming (OOP) language such as C++ or Java....

Basic Programming Concepts

The objectives of this tutorial are to introduce the fundamental concept of algorithm and the basic concepts of object-oriented programming, use the Java programming language, understand and apply good programming practices and evaluate your programmer skills....