Practical Foundations for Programming Languages



Download free course Practical Foundations for Programming Languages, pdf file on 590 pages by Robert Harper.
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-defined programs-follows naturally. The purpose of this book is to explain this remark. A variety of programming language features are analyzed in the unifying framework of type theory. A language feature is defined by its statics, the rules governing the use of the feature in a program, and its dynamics, the rules defining how programs using this feature are to be executed. The concept of safety emerges as the coherence of the statics and the dynamics of a language.

In this way we establish a foundation for the study of programming languages. But why these particular methods? The main justification is provided by the book itself. The methods we use are both precise and intuitive, providing a uniform framework for explaining programming language concepts. Importantly, these methods scale to a wide range of programming language concepts, supporting rigorous analysis of their properties. Although it would require another book in itself to justify this assertion, these methods are also practical in that they are directly applicable to implementation and uniquely effective as a basis for mechanized reasoning. No other framework offers as much.

Table of contents

  • Judgments and Rules
  • Syntactic Objects
  • Inductive Definitions
  • Hypothetical and General Judgments
  • Statics and Dynamics
  • Statics
  • Dynamics
  • Type Safety
  • Evaluation Dynamics
  • Function Types
  • Function Definitions and Values
  • Godel's T
  • Plotkin's PCF
  • Finite Data Types
  • Product Types
  • Sum Types
  • Pattern Matching
  • Generic Programming
  • Infinite Data Types
  • Inductive and Co-Inductive Types
  • Recursive Types
  • Dynamic Types
  • The Untyped -Calculus
  • Dynamic Typing
  • Hybrid Typing
  • Variable Types
  • Girard's System F
  • Abstract Types
  • Constructors and Kinds
  • Subtyping
  • Subtyping
  • Singleton Kinds
  • Classes and Methods
  • Dynamic Dispatch
  • Inheritance
  • Exceptions and Continuations
  • Control Stacks
  • Exceptions
  • Continuations
  • Types and Propositions
  • Constructive Logic
  • Classical Logic
  • Symbols
  • Symbols
  • Fluid Binding
  • Dynamic Classification
  • State
  • Modernized Algol
  • Assignable References
  • Laziness
  • Lazy Evaluation
  • Polarization
  • Parallelism
  • Nested Parallelism
  • Futures and Speculations
  • Concurrency
  • Process Calculus
  • Concurrent Algol
  • Distributed Algol
  • Modularity
  • Components and Linking
  • Type Abstractions and Type Classes
  • Hierarchy and Parameterization
  • Equational Reasoning
  • Equational Reasoning for T
  • Equational Reasoning for PCF
  • Parametricity
  • Process Equivalence
  • Appendices
  • Finite Sets and Finite Functions
Pages : 590
Size : 3.0 MB
File type : PDF
Downloads: 151
Created: 2022-02-03
License: CC BY-NC-ND
Author(s): Robert Harper
Practical Foundations for Programming Languages

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

Others programming Tutorials

Certified Programming with Dependent Types

Fundamentals of Python Programming

An Introduction to C & GUI Programming

Programming for Computations - Python

Mathematica® Programming: an Advanced Introduction

Others related eBooks about Practical Foundations for Programming Languages

Perl tutorial for professionals

Download free Perl tutorial course in PDF, training file in 39 chapters and 109 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

Programming for Computations - MATLAB/Octave

Download free course Programming for Computations - MATLAB/Octave, pdf file on 228 pages by Svein Linge, Hans Petter Langtangen....

OpenCOBOL Guide for programmers

This PDF tutorial describes the syntax and usage of the COBOL programming language as implemented by the current version of OpenCOBOL ,it's a free training document under 259 pages designated to intermediate users level....

Ruby Hacking Guide

The Ruby Hacking Guide is a book that explains how the ruby interpreter (the official C implementation of the Ruby language) works internally. To fully understand it, you need a good knowledge of C and Ruby. This book is going to investigate ruby as a whole....

GUI Design for Android Apps

GUI Design for Android Apps is the perfect - and concise - introduction for mobile app dev..., download free Android tutorial in PDF (156 pages) created by ....

VB.NET Quick Guide

The purpose of this PDF tutorial is to provide a quick learning guide to programming for the students who wants to buils their own application with Microsoft VB.Net ....

Python for You and Me

Download free course Python for You and Me, pdf file on 173 pages by Kushal Das....

C++ Notes for Professionals

Download free course C++ Notes for Professionals, pdf file on 707 pages by Stack Overflow Community....

Android Application Development for the Intel Platform

Download free course Android Application Development for the Intel Platform, pdf file on 508 pages by by Ryan Cohen, Tao Wang....

Getting started with PowerShell

Download free tutorial about PowerShell, it's a powerful and very flexible language that is relatively easy to understand. PowerShell allows you as a system administrator to create scripts that help you automate certain tasks in a simple and very practical way....