没有任何数据可供显示
开源项目社区 | 当前位置 : |
|
www.trustie.net/open_source_projects | 主页 > 开源项目社区 > frabbuccino |
frabbuccino
|
0 | 0 | 19 |
贡献者 | 讨论 | 代码提交 |
IntroductionFrabbuccino is a highly extensible Java and AspectJ compiler. It is a complete feature-oriented refactoring of abc (The AspectBench Compiler for AspectJ).
What is abc?abc is a framework for experimentation with AspectJ language features and compiler optimizations. It was specifically designed to support extensions such as syntax, semantics, optimizing passes, etc. abc has been used in a variety of research projects to explore ideas with actual implementation in AspectJ.
What is Frabbuccino?The goal of Frabbuccino is to take abc and demonstrate that it can be made more extensible, more flexible, and more maintainable by refactoring it using the AHEAD tool suite. Frabbuccino's design is based on the concept of feature-oriented programming, the study of feature modularity.
In Frabbuccino, the original design of abc is broken apart into multiple features, those chunks of code that are heavily correlated and generally form coherent components in the end product. For example, in AspectJ, the pointcut call(MethodPattern) might be considered a feature, because it embodies a single concept. The code to implement that in abc is not local to a few classes. Rather, it is spread across multiple components including the parser, AST visitors, and the runtime. However, by extracting those chunks of code into a single module, we transform abc from a compiler framework with extensions into a set of features that can be composed to generate a desired compiler.