CaesarJ编程语言:特性、关联技术与未来展望
1. 相关工作概述
与相关技术工作可以分为三类:分层组合、横切组合和动态方面控制。
2. 分层组合
- 虚拟类的发展 :虚拟类最初在Beta中引入,后在gbeta中进一步发展,补充了混入组合和家族多态性。CaesarJ在JVM上对这些概念进行了坚实的实现,并将其与横切组合的语言特性相结合。
- Jx和Keris :Jx支持一种嵌套继承,但它将内部类视为周围类的属性,而非封闭对象的属性,其适用性仅限于线性细化,因为它没有为家族类提供任何组合机制。Keris也支持类似的类线性细化,但它是作为静态模块的扩展技术,而非可实例化的家族类。
- AHEAD :基于GenVoca和Mixin Layers的思想,AHEAD支持将应用程序特性模块化到称为层的大规模单元中,这些层是描述应用程序不同工件片段(包括Java类片段)的文件集。层使用类似于CaesarJ的混入组合技术进行组合,其实现基于源到源的转换。但层缺乏子类型和抽象能力,而在CaesarJ中,抽象对于确保单个家族类及其组合的有效性起着重要作用。此外,AHEAD通过额外的规范来确保层的可靠组合,与CaesarJ的家族类不同,层不能被实例化和多态使用。
- 虚拟类和特征的组合 :虚拟类沿着两个维度进行组合:首先组合同一虚拟类的混入,然后将这样的混入列表与其超类的类似混入列表进行组合。特征也支持类沿着两个维度的组合:在类内部组合特征,然后沿着继承层次结构进行组合。类内部
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



