{"title":"Upscaling the CLOS inheritance mechanism for multidimensional objects","authors":"Henry J. Borron","doi":"10.1109/TOOLS.1997.681878","DOIUrl":null,"url":null,"abstract":"The paper generalizes the linearization technique known in Lisp-based languages to multidimensional objects. A general principle is defined and applied to memory representations and methods. Linearization is done on a dimension-per-dimension basis. Such application, simplified in the case of representations, has to be complemented in the case of methods, first by a condition verified in practice and secondly by a rule, quite simple to apply. Combinations become purely declarative, with no further need for the OOP classical imperative anti-modular send-super construct (fall-next-method in CLOS, super in Smalltalk). Quite sophisticated combination methods with multiple roles as done in CLOS are supported. Multiple dispatch is also supported. This paper also looks at the desirable properties of a linearization algorithm fit for use in this context. Besides stability and monotonicity, already known, a third property is brought into light. Because it conflicts with monotonicity, a refined study was conducted: the paper proposes three candidate solutions, and selects the best compromise.","PeriodicalId":276758,"journal":{"name":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1997-11-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TOOLS.1997.681878","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
The paper generalizes the linearization technique known in Lisp-based languages to multidimensional objects. A general principle is defined and applied to memory representations and methods. Linearization is done on a dimension-per-dimension basis. Such application, simplified in the case of representations, has to be complemented in the case of methods, first by a condition verified in practice and secondly by a rule, quite simple to apply. Combinations become purely declarative, with no further need for the OOP classical imperative anti-modular send-super construct (fall-next-method in CLOS, super in Smalltalk). Quite sophisticated combination methods with multiple roles as done in CLOS are supported. Multiple dispatch is also supported. This paper also looks at the desirable properties of a linearization algorithm fit for use in this context. Besides stability and monotonicity, already known, a third property is brought into light. Because it conflicts with monotonicity, a refined study was conducted: the paper proposes three candidate solutions, and selects the best compromise.