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
1 - 1 of 1
No Thumbnail Available
- Name:
- TR94_03.pdf
- Size:
- 219.81 KB
- Format:
- Adobe Portable Document Format
- Description: