Abstract
We compare different kinds of first-order models of objects and message passing, as found in object-oriented programming languages. We show that generic function models can easily simulate record models for static, class-based languages. We explore type systems for such languages, and show that our simulation preserves typing. Algebraic models emerge as abstractions of the generic function model that suppress details that are irrelevant for client code.Thanks to Todd Millstein for comments on an earlier draft, and for suggesting that we make our comparisons between the record and generic function models constructive, which greatly improved the paper. Thanks to Todd and Craig Chambers for many discussions about multimethod languages and their type systems.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have