|
ABSTRACT
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 applied.
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.
| |
Ada 83
|
Reference Manual for the Ada Progrcunming Language, ANSI/MIL-STD 1815A, 1983.
|
 |
Agrawal et al. 91
|
Rakesh Agrawal , Linda G. Demichiel , Bruce G. Lindsay, Static type checking of multi-methods, Conference proceedings on Object-oriented programming systems, languages, and applications, p.113-128, October 06-11, 1991, Phoenix, Arizona, United States
|
| |
America 87
|
|
 |
America & van der Linden 90
|
|
 |
Amiel et al. 94
|
Eric Amiel , Olivier Gruber , Eric Simon, Optimizing multi-method dispatch using compressed dispatch tables, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.244-258, October 23-28, 1994, Portland, Oregon, United States
|
| |
Barnes 91
|
J. G. P. Barnes. Programming in Ada (third edition). Addison-Wesley, Wokingham, England, 1991.
|
 |
Bobrow et al. 88
|
Daniel G. Bobrow , Linda G. DeMichiel , Richard P. Gabriel , Sonya E. Keene , Gregor Kiczales , David A. Moon, Common Lisp Object System specification, ACM SIGPLAN Notices, v.23 n.SI, p.1-142, September 1988
[doi> 10.1145/885631.885632]
|
 |
Bracha & Griswold 93
|
Gilad Bracha , David Griswold, Strongtalk: typechecking Smalltalk in a production environment, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.215-230, September 26-October 01, 1993, Washington, D.C., United States
|
 |
Bruce et al. 93
|
Kim B. Bruce , Jon Crabtree , Thomas P. Murtagh , Robert van Gent , Allyn Dimock , Robert Muller, Safe and decidable type checking in an object-oriented language, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.29-46, September 26-October 01, 1993, Washington, D.C., United States
|
 |
Canning et al. 89
|
P. S. Canning , W. R. Cook , W. L. Hill , W. G. Olthoff, Interfaces for strongly-typed object-oriented programming, Conference proceedings on Object-oriented programming systems, languages and applications, p.457-467, October 02-06, 1989, New Orleans, Louisiana, United States
|
 |
Cardelli & Wegner 85
|
|
| |
Cardelli & Mitchell 89
|
|
 |
Castagna et al. 92
|
Giuseppe Castagna , Giorgio Ghelli , Giuseppe Longo, A calculus for overloaded functions with subtyping, Proceedings of the 1992 ACM conference on LISP and functional programming, p.182-192, June 22-24, 1992, San Francisco, California, United States
|
| |
Chambers 92
|
|
| |
Chambers 93
|
Craig Chambers. The Cecil Language: Specification and Rationale. Technical report #93-03-05, Department of Computer Science and Engineering, University of Washington, March, 1993.
|
| |
Chambers & Leavens 94
|
Craig Chambers and Gary T. Leavens. Type.checking and Modules for Multi-Methods. Technical report #94-03-01, Department of Computer Science and Engineering, University of Washington, March, 1994.
|
| |
Chen & Turau 94
|
|
 |
Cook et al. 90
|
|
| |
Cook 90
|
|
| |
Dean et al. 94
|
Jeffrey Dean, Craig Chambers, and David Grove. Identifying Profitable Specialization in Object-Oriented Languages. In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Orlando, FL, June, 1994. Available as Technical Report 94/9, Department of Computer Science, University of Melbourne, 1994.
|
 |
Ghelli 91
|
Giorgio Ghelli, A static type system for message passing, Conference proceedings on Object-oriented programming systems, languages, and applications, p.129-145, October 06-11, 1991, Phoenix, Arizona, United States
|
| |
Goldberg & Robson 83
|
|
| |
Goguen 84
|
Joseph A. Goguen. Parameterized Programming. In IEEE Transactions on Software Engineering 10(5), pp. 528-543, September, 1984.
|
 |
Harrison & Ossher 93
|
William Harrison , Harold Ossher, Subject-oriented programming: a critique of pure objects, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.411-428, September 26-October 01, 1993, Washington, D.C., United States
|
| |
Hölzle 93
|
|
 |
Hudak et al. 92
|
Paul Hudak , Simon Peyton Jones , Philip Wadler , Brian Boutel , Jon Fairbairn , Joseph Fasel , María M. Guzmán , Kevin Hammond , John Hughes , Thomas Johnsson , Dick Kieburtz , Rishiyur Nikhil , Will Partain , John Peterson, Report on the programming language Haskell: a non-strict, purely functional language version 1.2, ACM SIGPLAN Notices, v.27 n.5, p.1-164, May 1992
[doi> 10.1145/130697.130699]
|
| |
Leavens 91
|
|
 |
Leavens & Weihl 90
|
|
 |
Liskov et al. 77
|
|
| |
Liskov et al. 81
|
Barbara Liskov, Russell Atkinson, Toby Bloom, Eliot Moss, J. Craig Schaffert, Robert Scheifler, and Alan Snyder. CLU Reference Manual. Lecture Notes in Computer Science, volume 114, Springer-Verlag, New York, NY, 1981.
|
 |
Liskov & Zilles 74
|
|
| |
Meyer 88
|
|
| |
Meyer 92
|
|
| |
Milner et al. 90
|
|
| |
Mössenböck & Wirth 91
|
H. M6ssenb6ck and Niklaus Wirth. The Programming Language Oberon-2. Structured Programming 12(4), 1991.
|
| |
Mugridge et al. 91
|
|
| |
Nelson 91
|
|
| |
Paepcke 93
|
|
| |
Palsberg & Schwartzbach 94
|
|
| |
Parnas 71
|
D. L. Parnas. Information Distribution Aspects of Design Methodology. Proceedings of IFIP Congress 71. IFIP, 1971.
|
 |
Parnas 72
|
|
| |
Paulson 91
|
|
| |
Pierce & Turner 92
|
Benjamin C. Pierce and David N. Turner. Statically Typed Multi-Methods via Partially Abstract Types. Unpublished manuscript, October, 1992.
|
 |
Rouaix 90
|
|
 |
Schaffert et al. 86
|
Craig Schaffert , Topher Cooper , Bruce Bullis , Mike Kilian , Carrie Wilpolt, An introduction to Trellis/Owl, Conference proceedings on Object-oriented programming systems, languages and applications, p.9-16, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
Snyder 86
|
|
| |
Steele 90
|
|
| |
Stroustrup 91
|
|
| |
Szyperski 92
|
|
| |
Touretzky 86
|
|
 |
Wirfs-Brock & Wilkerson 88
|
Allen Wirfs-Brock , Brian Wilkerson, A overview of modular smalltalk, Conference proceedings on Object-oriented programming systems, languages and applications, p.123-134, September 25-30, 1988, San Diego, California, United States
|
| |
Wirth 88
|
|
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE Design Automation Conference on
Gwo-Dong Chen
, Daniel D. Gajski
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
|