Type Checking and Modules for Multi-Methods

dc.contributor.author Chambers, Craig
dc.contributor.author Leavens, Gary
dc.contributor.department Department of Computer Science
dc.date 2018-02-13T22:19:05.000
dc.date.accessioned 2020-06-30T01:57:13Z
dc.date.available 2020-06-30T01:57:13Z
dc.date.issued 1994-03-01
dc.description.abstract <p>Two major obstacles preventing the wider acceptance of multi-methods are concerns over the lack of encapsulation and modularity and the lack 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 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, the presence of abstract classes, and graph-based method lookup semantics. We prove formally that our algorithm fulfills its specification. 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.</p>
dc.description.comments <p>© 1994 Craig Chambers and Gary T. Leavens.</p>
dc.identifier archive/lib.dr.iastate.edu/cs_techreports/44/
dc.identifier.articleid 1036
dc.identifier.contextkey 5280746
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath cs_techreports/44
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/20229
dc.source.bitstream archive/lib.dr.iastate.edu/cs_techreports/44/TR94_03.pdf|||Sat Jan 15 00:17:10 UTC 2022
dc.subject.disciplines Programming Languages and Compilers
dc.subject.disciplines Systems Architecture
dc.subject.keywords Multi-methods
dc.subject.keywords object-oriented programming
dc.subject.keywords encapsulation
dc.subject.keywords modules
dc.subject.keywords packages
dc.subject.keywords static typechecking
dc.subject.keywords typechecking algorithms
dc.subject.keywords conformance
dc.subject.keywords completeness
dc.subject.keywords consistency
dc.subject.keywords subtype
dc.subject.keywords inheritance
dc.subject.keywords abstract classes
dc.subject.keywords Cecil language
dc.title Type Checking and Modules for Multi-Methods
dc.type article
dc.type.genre article
dspace.entity.type Publication
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
File
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
TR94_03.pdf
Size:
219.81 KB
Format:
Adobe Portable Document Format
Description:
Collections