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

Introduction to C and GUI Programming

Programming for Computations - Python, 2nd Edition

Learn Programming

Fundamentals of C++ Programming

Programming Persistent Memory: A Comprehensive Guide for Developers

Others related eBooks about Practical Foundations for Programming Languages

JavaScript from ES5 to ESNext

Download free course JavaScript from ES5 to ESNext, pdf file on 84 pages by Flavio Copes....

A Byte of Python

Download free course A Byte of Python, pdf file on 117 pages by Self-publishing....

C# and .NET course

14 lessons to get you started with C# and .NET, free PDF tutorial by Jonathan Worthington ....

Download Cobol Tutorial in PDF

Download free Cobol tutorial course in PDF, training file in 52 chapters and 118 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

Android Programming Tutorials

This book shows you what you can do with Android, through a series of 40 individual exercises. It gives you hands-on instruction in how to build sophisticated Android applications, using many of the technologies outlined in CommonsWare's other Android books. ...

XcalableMP PGAS Programming Language

XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Ad.....

Download Haskell PDF Tutorial

Download Haskell PDF Tutorial for free, it consisting of 24 chapters and 683 pages covering all the most important Haskell concepts. This tutorial is intended for beginner programmers, and we recommend you to go through all the chapters, to get the most out of it as possible....

Building Skills in Python: A Programmer's Introduction to Python

This book is a complete presentation of the Python language. It is oriented toward learning, which involves accumulating many closely intertwined concepts. In our experience teaching, coaching and doing programming, there is an upper limit on the "clue absorption rate". In order to keep within thi...

Effective AWK Programming, 5th Edition

When processing text files, the awk language is ideal for handling data extraction, report..., download free AWK Programming tutorial in PDF (572 pages) created by ....

Java programming

This document is about a Java programming ,a free pdf tutorial for beginners a basic knowledge of object-oriented programming is assumed....