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

Programming Computer Vision with Python

Programming Persistent Memory

OOP - Learn Object Oriented Thinking and Programming

Programming for Computations - MATLAB/Octave

Certified Programming with Dependent Types

Others related eBooks about Practical Foundations for Programming Languages

Data Mining and Analysis: Fundamental Concepts and Algorithms

The fundamental algorithms in data mining and analysis form the basis for the emerging field of data science, which includes automated methods to analyze patterns and models for all kinds of data, with applications ranging from scientific discovery to business intelligence and analytics. ...

Processing WSDL in Python

With this tutorial you will learn how to process WSDL in Python language (web services and Python) , free PDF cocument under 11 pages by Mike Olson and Uche Ogbuji ....

Android™ Notes for Professionals

The fast-growing popularity of Android smartphones and tablets creates a huge opportunities for developers. If you're an experienced developer, you can start creating robust mobile Android apps right away with this professional guide....

Hacking Secret Ciphers with Python

Download free course Hacking Secret Ciphers with Python, pdf file on 442 pages by Al Sweigart....

JavaScript from ES5 to ESNext

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

How To Code in Go

This book is designed to introduce you to writing programs with the Go programming languag..., download free Go tutorial in PDF (447 pages) created by Cory LaNou ....

Biopython: Tutorial and Cookbook

Download free course Biopython: Tutorial and Cookbook, pdf file on 360 pages by by Jeff Chang, Brad Chapman, Iddo Friedberg, Thomas Hamelryck, Michiel de Hoon, Peter Cock, Tiago Antao, Eric Talevich, Bartek Wilczy?ski....

Learning iOS eBook (PDF)

Download free IOS tutorial course material and training in PDF file 1131 pages....

Delphi Advanced Programming Technology

Download Delphi Advanced Programming Technology PDF tutorial intended to advanced level users, free training document on 163 pages by Sun Zhao-yun....

Making Games with Python & Pygame

Making Games with Python & Pygame covers the Pygame library with the source code for 11 ga..., download free Game Development tutorial in PDF (365 pages) created by ....