ACM Home Page
Please provide us with feedback. Feedback
Type dispatch for named hierarchical types
Full text PdfPdf (1.34 MB)
Source International Conference on Functional Programming archive
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming table of contents
Paris, France
Pages: 172 - 182  
Year of Publication: 1999
ISBN:1-58113-111-9
Also published in ...
Author
Neal Glew  Department of Computer Science, Cornell University
Sponsors
INRIA : Institut Natl de Recherche en Info et en Automatique
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 27,   Citation Count: 10
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/317636.317797
What is a DOI?

ABSTRACT

Type dispatch constructs are an important feature of many programming languages. Scheme has predicates for testing the runtime type of a value. Java has a class cast expression and a try statement for switching on an exception's class. Crucial to these mechanisms, in typed languages, is type refinement: The static type system will use type dispatch to refine types in successful branches. Considerable previous work has addressed type case constructs for structural type systems without subtyping, but these do not extend to named type systems with subtyping, as is common in object oriented languages. Previous work on type dispatch in named type systems with subtyping has not addressed its implementation formally.This paper describes a number of type dispatch constructs that share a common theme: class cast and class case constructs in object oriented languages, ML style exceptions, hierarchical extensible sums, and multimethods. I describe a unifying mechanism, tagging, that abstracts the operation of these constructs, and I formalise a small tagging language. After discussing how to implement the tagging language, I present a typed language without type dispatch primitives, and a give a formal translation from the tagging language.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
AC96
ACPP91
 
CGL95
 
Cha97
Craig Chambers. The Cecil language, specification and rationale. Technical report, Department of Computer Science and Engineering, University of Washington, Box '352350, Seattle, Washington 98195-2350, USA, March 1997.
CW99
CWM98
FR99
 
GJS96
 
Gle99
HM95
 
HS97
Robert Harper and Christopher Stone. An interpretation of Standard ML in type theory. Technical Report CMU-CS-97-147, Carnegie Mellon University, Pittsburgh, PA 15213, June 1997.
KCR98
 
MCG+99
Greg Morrisett, Karl Crary, Neal Clew, Dan Grossman, Richard Samuels, Frederick Smith, Daivd Walker, Stephanie Weirich, and Steve Zdancewic. TALx86: A realistic typed assembly language. In A CM SIGPLAN Workshop on Compiler Support for System Software, volume 0228 of INRIA Research Reports, Atlanta, CA, USA, May 1999.
MFH95
 
Mor95
Greg Morrisett. Compiling with ~lpes. PhD thesis, Carnegie Mellon University, December 1995. Published as CMU Technical Report CMU-CS-95-226.
MWCG98
RR96
TMC+96

CITED BY  10