Type Checking and Modules for Multi-Methods







Deposit Papers 


Chambers, Craig and Leavens, Gary T. (1995) Type Checking and Modules for Multi-Methods. Technical Report TR95-19, Department of Computer Science, Iowa State University.

Full text available as:Postscript
Adobe PDF


Typechecking and Modules for Multi-Methods
Craig Chambers and Gary T. Leavens
Two major obstacles hindering the wider acceptance of multi-methods
are concerns over the lack of encapsulation and modularity and the
absence of static typechecking in existing multi-method-based
languages. This paper addresses both of these problems. We present a
polynomial-time static typechecking algorithm that checks the
conformance, completeness, and consistency of a group of method
implementations with respect to declared message signatures. This
algorithm improves on previous algorithms by handling separate type
and inheritance hierarchies, abstract classes, and graph-based method
lookup semantics. We also present a module system that enables
independently-developed code to be fully encapsulated and statically
typechecked on a per- module basis. To guarantee that potential
conflicts between independently-developed modules have been resolved,
a simple well-formedness condition on the modules comprising a program
is checked at link-time. The typechecking algorithm and module system
are applicable to a range of multi-method-based languages, but the
paper uses the Cecil language as a concrete example of how they can be
An earlier version of this report appears in the proceedings of
OOPSLA '94, October 1994. This report, minus the appendices,
will appear in ACM TOPLAS.
Copyright (c) 1995 by the Association for Computing Machinery,
Inc. Permission to make digital or hard copies of part or all of this
work for personal or classroom use is granted without fee provided
that copies are not made or distributed for profit or commercial
advantage and that new copies bear this notice and the full citation
on the first page. Copyrights for components of this work owned by
others than ACM must be honored.  Abstracting with credit is
permitted. To copy otherwise, to republish, to post on servers, or to
redistribute to lists, requires prior specific permission and/or a
fee.  Request permissions from Publications Dept, ACM Inc.,
fax +1 (212) 869-0481, or .
Appendix copyright (c) Craig Chambers and Gary T. Leavens, 1995.

Subjects:All uncategorized technical reports
ID code:00000108
Deposited by:Staff Account on 02 October 1995

Contact site administrator at: