Departmental Papers (CIS)

Document Type

Journal Article

Date of this Version

November 2002

Comments

Copyright Cambridge University Press. Reprinted from Journal of Functional Programming, Volume 12, Issue 6, November 2002, pages 511-548.

This article also appears as chapter 21 of Types and Programming Languages by Benjamin C. Pierce [MIT Press, 2002].

Abstract

Algorithms for checking subtyping between recursive types lie at the core of many programming language implementations. But the fundamental theory of these algorithms and how they relate to simpler declarative specifications is not widely understood, due in part to the difficulty of the available introductions to the area. This tutorial paper offers an 'end-to-end' introduction to recursive types and subtyping algorithms, from basic theory to efficient implementation, set in the unifying mathematical framework of coinduction.

Share

COinS
 

Date Posted: 10 September 2005

This document has been peer reviewed.