Types and programming languages

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems--and of programming languages from a type-theoretic perspective -- -has important applicat...

Full description

Saved in:
Bibliographic Details
Main Author Pierce, Benjamin C.
Format Electronic eBook
LanguageEnglish
Published Cambridge, Mass. : MIT Press, 2002.
Subjects
Online AccessFull text
ISBN9780262256810
Physical Description1 online zdroj (xxi, 623 pages) : illustrations

Cover

Table of Contents:
  • 1. Introduction
  • 2. Mathematical preliminaries
  • [pt]. 1. Untyped systems
  • 3. Untyped arithmetic expressions
  • 4. An ML implementation of arithmetic expressions
  • 5. The untyped Lambda-calculus
  • 6. Nameless representation of terms
  • 7. An ML implementation of the Lambda-calculus
  • [pt]. 2. Simple types
  • 8. Typed arithmetic expressions
  • 9. Simply typed Lambda-calculus
  • 10. An ML implementation of simple types
  • 11. Simple extensions
  • 12. Normalization
  • 13. References
  • 14. Exceptions
  • [pt]. 3. Subtyping
  • 15. Subtyping
  • 16. Metatheory of subtyping
  • 17. An ML implementation of subtyping
  • 18. Case study : imperative objects
  • 19. Case study : featherweight Java
  • [pt]. 4. Recursive types
  • 20. Recursive types
  • 21. Metatheory of recursive types
  • [pt.]. 5. Polymorphism
  • 22. Type reconstruction
  • 23. Universal types
  • 24. Existential types
  • 25. An ML implementation of system F
  • 26. Bounded quantification
  • 27. Case study : imperative objects, redux
  • 28. Metatheory of bounded quantification
  • [pt]. 6. Higher-order systems
  • 29. Type operators and kinding
  • 30. Higher-order polymorphism
  • 31. Higher-order subtyping.