Accession Number : ADA512432


Title :   CZ: Multimethods and Multiple Inheritance Without Diamonds


Corporate Author : CARNEGIE-MELLON UNIV PITTSBURGH PA SCHOOL OF COMPUTER SCIENCE


Personal Author(s) : Malayeri, Donna ; Aldrich, Jonathan


Full Text : http://www.dtic.mil/dtic/tr/fulltext/u2/a512432.pdf


Report Date : Dec 2009


Pagination or Media Count : 49


Abstract : Multiple inheritance has long been plagued with the diamond inheritance problem, leading to solutions that restrict expressiveness, such as mixins and traits. Instead, we address the diamond problem directly, considering two difficulties it causes: ensuring a correct semantics for object initializers, and typechecking multiple dispatch in a modular fashion--the latter problem arising even with multiple interface inheritance. We show that previous solutions to these problems are either unsatisfactory or cumbersome, and suggest a novel approach: supporting multiple inheritance but forbidding diamond inheritance. Expressiveness is retained through two features: a requires construct that provides a form of subtyping without inheritance, and a dynamically-dispatched super call similar to that found in traits. Through examples, we illustrate that inheritance diamonds can be eliminated via a combination of requires and ordinary inheritance. We provide a sound formal model for our language and demonstrate its modularity and expressiveness.


Descriptors :   *PROGRAMMING LANGUAGES , *OBJECT ORIENTED PROGRAMMING , SEMANTICS


Subject Categories : Computer Programming and Software


Distribution Statement : APPROVED FOR PUBLIC RELEASE