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 |
Downloads: | 146 |
Created: | 2022-02-03 |
License: | CC BY-NC-ND |
Author(s): | Robert Harper |
Warning: Trying to access array offset on false in /home/tutovnfz/public_html/amp/article-amp.php on line 263
Others related eBooks about Practical Foundations for Programming Languages
This book presents computer programming as a key method for solving mathematical problems...., download free Programming for Computations tutorial in PDF (350 pages) created by Svein Linge .
Download free course Professor Frisby's Mostly Adequate Guide to Functional Programming, pdf file on 146 pages by Brian Lonsdorf.
Download free course Programming for Computations - Python, pdf file on 350 pages by Svein Linge, Hans Petter Langtangen.
Download free course Programming for Computations - Python, pdf file on 244 pages by Svein Linge, Hans Petter Langtangen.
Mathematica is a feature-rich, high-level programming language which has historically been used by engineers. This book unpacks Mathematica for programmers, building insights into programming style via real world syntax, real world examples, and extensive parallels to other languages.