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: 114
Created: 2022-02-03
License: CC BY-NC-ND
Author(s): Robert Harper
Practical Foundations for Programming Languages

Others programming Tutorials

Programming for Computations - Python

Learn Programming

Certified Programming with Dependent Types

Programming for Computations - Python, 2nd Edition

Power Programming with Mathematica

Others related eBooks about Practical Foundations for Programming Languages

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

Introduction to language R

This pdf tutorial is an introduction to language R, free training document under 10 pages for beginners....

.NET Framework Notes for Professionals

The .NET Framework Notes for Professionals book is compiled from Stack Overflow Documentat..., download free .NET tutorial in PDF (192 pages) created by ....

Programming for Computations - Python

Download free course Programming for Computations - Python, pdf file on 350 pages by Svein Linge, Hans Petter Langtangen....

Python for Everybody

This book assumes that everyone needs to know how to program, and that once you know how to program you will figure out what you want to do with your newfound skills. Download free ebook intituled Python for Everybody, creative commons document...

Introduction to Microsoft Word 2010

Download free training document in PDF intituled Introduction to Microsoft Word 2010, course on 159 pages for beginners....

Haskell Tutorial for C Programmers

This book is written to introduce Haskell for programmers of imperative languagues, including C, C++, Java, Python, and Pascal, etc....

Ruby on Rails Notes for Professionals

Download free course Ruby on Rails Notes for Professionals, pdf file on 230 pages by Stack Overflow Community....

Essential C

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

Using the Web to Build the IoT

The Internet of Things offers us an internet that is becoming more than just a mass of mul..., download free IoT tutorial in PDF (176 pages) created by ....