Advanced Topics in Types and Programming LanguagesBenjamin C. Pierce MIT Press, 2 lip 2024 - 588 A thorough and accessible introduction to a range of key ideas in type systems for programming language. The study of type systems for programming languages now touches many areas of computer science, from language design and implementation to software engineering, network security, databases, and analysis of concurrent and distributed systems. This book offers accessible introductions to key ideas in the field, with contributions by experts on each topic. The topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference. Advanced Topics in Types and Programming Languages builds on Benjamin Pierce's Types and Programming Languages (MIT Press, 2002); most of the chapters should be accessible to readers familiar with basic notations and techniques of operational semantics and type systems—the material covered in the first half of the earlier book. Advanced Topics in Types and Programming Languages can be used in the classroom and as a resource for professionals. Most chapters include exercises, ranging in difficulty from quick comprehension checks to challenging extensions, many with solutions. |
Spis treści
Substructural Type Systems | 3 |
Dependent Types | 45 |
Effect Types and RegionBased Memory Management | 87 |
Typed Assembly Language | 141 |
ProofCarrying Code | 177 |
Logical Relations and a Case Study in Equivalence Checking | 223 |
Typed Operational Reasoning | 245 |
Design Considerations for MLStyle Module Systems | 293 |
Type Definitions | 347 |
The Essence of ML Type Inference | 389 |
A Solutions to Selected Exercises | 491 |
References | 535 |
| 567 | |
Inne wydania - Wyświetl wszystko
Kluczowe wyrazy i wyrażenia
abstract machine abstract type algebraic data type algorithm allocated annotations application argument arity binding Bool chapter compiler components Computer Science constraint construct context contextual equivalence data structures deallocated defined dependent types derivation Dict encoding ensure example existential expression extended Figure Functional Programming functor HM(X implementation induction instance instantiation integer interface judgment kind l₁ labels lambda calculus Lemma linear logical relation m₁ memory module operational semantics pair parameter pointer polymorphic Programming Languages proof properties prove r₁ record type recursive recursive types reduction region region inference require S₁ safety policy signature stack Standard ML substitution subtyping symbolic evaluator syntactic syntax t₁ TAPL term-relations Theorem tion type checking type constructor type definitions type equivalence type inference type scheme type system type variables typing rules v₁ Vector well-typed

