首页> 美国政府科技报告 >CZ: Multimethods and Multiple Inheritance Without Diamonds
【24h】

CZ: Multimethods and Multiple Inheritance Without Diamonds

机译:CZ:没有钻石的多方法和多重继承

获取原文

摘要

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.

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号