Affiliation:
1. Georgia Institute of Technology, Atlanta, GA
2. The University of Texas at Austin, Austin, TX
Abstract
A "refinement" is a functionality addition to a software project that can affect multiple dispersed implementation entities (functions, classes, etc.). In this paper, we examine large-scale refinements in terms of a fundamental object-oriented technique called collaboration-based design. We explain how collaborations can be expressed in existing programming languages or can be supported with new language constructs (which we have implemented as extensions to the Java language). We present a specific expression of large-scale refinements called
mixin layers
, and demonstrate how it overcomes the scalability difficulties that plagued prior work. We also show how we used mixin layers as the primary implementation technique for building an extensible Java compiler, JTS.
Publisher
Association for Computing Machinery (ACM)
Cited by
115 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards Virtual Machine Support for Contextual Role-Oriented Programming Languages;Proceedings of the 15th ACM International Workshop on Context-Oriented Programming and Advanced Modularity;2023-07-17
2. Software Development for Educational Information Services Using Multilayering Semantics Adaptation;International Journal of Service Science, Management, Engineering, and Technology;2022-09-16
3. Programming language implementations for context-oriented self-adaptive systems;Information and Software Technology;2022-03
4. Verification Strategies for Feature-Oriented Software Product Lines;Proceedings of the 16th International Working Conference on Variability Modelling of Software-Intensive Systems;2022-02-23
5. Language Family Engineering with Product Lines of Multi-level Models;Formal Aspects of Computing;2021-08-10