To be destructive or not to be, that is the question on modular extensions

S. Chiba
{"title":"To be destructive or not to be, that is the question on modular extensions","authors":"S. Chiba","doi":"10.1145/2588548.2588554","DOIUrl":null,"url":null,"abstract":"Inheritance is a classic mechanism for extending an existing module. Since it preserves the original module, programmers can use both the original module and the extended one in the same program. So inheritance is a non-destructive mechanism. On the other hand, there are some extension mechanisms that directly modify an existing module and thus only the extended module is available in a program. These mechanisms such as aspects in AspectJ and revisers in our language GluonJ should be categorized into destructive mechanisms. Both destructive extension mechanisms and non-destructive ones are useful but in different scenarios.\n This talk presents that the primary difference between destructive mechanisms and non-destructive ones is the scope of where the extensions are effective and visible in a program. Then this talk shows the third approach in the middle between the two extreme ones, destructive and non-destructive. The third approach allows programmers to control the scope of the extensions in a modular fashion. The talk presents a few language mechanisms of this approach, including our method shells, and also remaining issues in the contexts of feature-oriented programming.","PeriodicalId":245301,"journal":{"name":"Workshop on Foundations of Aspect-Oriented Languages","volume":"18 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-04-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Workshop on Foundations of Aspect-Oriented Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2588548.2588554","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Inheritance is a classic mechanism for extending an existing module. Since it preserves the original module, programmers can use both the original module and the extended one in the same program. So inheritance is a non-destructive mechanism. On the other hand, there are some extension mechanisms that directly modify an existing module and thus only the extended module is available in a program. These mechanisms such as aspects in AspectJ and revisers in our language GluonJ should be categorized into destructive mechanisms. Both destructive extension mechanisms and non-destructive ones are useful but in different scenarios. This talk presents that the primary difference between destructive mechanisms and non-destructive ones is the scope of where the extensions are effective and visible in a program. Then this talk shows the third approach in the middle between the two extreme ones, destructive and non-destructive. The third approach allows programmers to control the scope of the extensions in a modular fashion. The talk presents a few language mechanisms of this approach, including our method shells, and also remaining issues in the contexts of feature-oriented programming.
是破坏性的还是不破坏性的,这是关于模扩展的问题
继承是扩展现有模块的经典机制。由于它保留了原始模块,程序员可以在同一个程序中同时使用原始模块和扩展模块。所以继承是一种非破坏性的机制。另一方面,有一些扩展机制可以直接修改现有模块,因此在程序中只有扩展的模块可用。这些机制,例如AspectJ中的方面和我们的语言GluonJ中的修订器,应该被归类为破坏性机制。破坏性扩展机制和非破坏性扩展机制都是有用的,但用于不同的场景。本讲座介绍了破坏性机制和非破坏性机制之间的主要区别是扩展在程序中有效和可见的范围。然后这个演讲展示了第三种方法在两个极端之间,破坏性的和非破坏性的。第三种方法允许程序员以模块化的方式控制扩展的范围。这次演讲介绍了这种方法的一些语言机制,包括我们的方法壳,以及在面向特性的编程环境中遗留的问题。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信