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: 72
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

C Programming for Arduino

Programming Computer Vision with Python

Programming Persistent Memory: A Comprehensive Guide for Developers

Basic Programming Concepts

Programming for Computations - Python, 2nd Edition

Others related eBooks about Principles of Programming Languages

The Boost C++ Libraries

This book is an introduction to the Boost C++ Libraries. The Boost C++ Libraries complement the C++ standard and add many practical tools that can be of use to any C++ developer and in any C++ project. Because the Boost C++ Libraries are based on the C++ standard, they are implemented using state-...

Data Structures and Algorithms

Download free course Data Structures and Algorithms, pdf file on 111 pages by Granville Barnett, Luca Del Tongo....

C++ Exercices with solutions

Download free document in PDF about C++ language, exercices and solutions for beginners and intermediate level students....

Test-Driven Development with Python

By taking you through the development of a real web application from beginning to end, this hands-on guide demonstrates the practical advantages of test-driven development (TDD) with Python. You'll learn how to write and run tests before building each part of your app, and then develop the minimum a...

Modeling and Simulation in Python

This book is an introduction to physical modeling using a computational approach. It is organized in three parts:...

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 ....

Learning Laravel by examples

With this PDF tutorial you will learn how to build a web application with Laravel PHP Framework version 4, free training document under 58 pages....

Think Java, 2nd Edition

Think Java is a hands-on introduction to computer science and programming used by many uni..., download free Java tutorial in PDF (326 pages) created by ....

Fundamentals of C++ Programming

Download free course Fundamentals of C++ Programming, pdf file on 766 pages by Richard L. Halterman....

Essential Swift

This book written to provide clear and concise explanation of topics for programmers both starting to learn the Swift 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....