
- English
- PDF
- Available on iOS & Android
Practical Foundations for Programming Languages
About this book
Types are the central organizing principle of the theory of programming languages. In this innovative book, Professor Robert Harper offers a fresh perspective on the fundamentals of these languages through the use of type theory. Whereas most textbooks on the subject emphasize taxonomy, Harper instead emphasizes genetics, examining the building blocks from which all programming languages are constructed. 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. Professor Harper's presentation is simultaneously rigorous and intuitive, relying on elementary mathematics. The framework he outlines scales easily to a rich variety of language concepts and is directly applicable to their implementation. The result is a lucid introduction to programming theory that is both accessible and practical.
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
Table of contents
- Cover
- Practical Foundations for Programming Languages
- Title
- Copyright
- Contents
- Preface
- PART I: Judgments and Rules
- PART II: Statics and Dynamics
- PART III: Function Types
- PART IV: Finite Data Types
- PART V: Infinite Data Types
- PART VI: Dynamic Types
- PART VII: Variable Types
- PART VIII: Subtyping
- PART IX: Classes and Methods
- PART X: Exceptions and Continuations
- PART XI: Types and Propositions
- PART XII: Symbols
- PART XIII: State
- PART XIV: Laziness
- PART XV: Parallelism
- PART XVI: Concurrency
- PART XVII: Modularity
- PART XVIII: Equational Reasoning
- PART XIX: Appendix
- Bibliography
- Index