1
7
AsPcTc++是一个值得尝试的尝试,但大学项目并不经常继续下去,因为产品往往不健全,原有的学者失去兴趣,研究生们也会继续前进。我在2010年写这个答案的时候似乎就是这样。令我惊讶的是,在2017,APETCT++似乎仍然有着积极的发展。如果你愿意 只是 C++方面,这大概值得一看。 面向方面编程是一种特殊的程序转换(“ 找到与此条件匹配的位置(“切入点”)并对该位置的代码执行此操作 "). 所以,如果你有一个程序转换工具,你可以很容易地模拟AOP。要在C++上进行转换,需要一个强大的C++前端以及转换和再生代码的能力。OpenC++是一个进行C++转换的项目,其中转换被纯编码为具有AST程序修改的过程AST流程。一个特定的问题涉及到C++的哪种方言被OpenC++处理;特别是,我不确定C++的OpenC++处理模板或完全通用的方言(GCC,MS);然而,我没有直接的经验,只是这些工具的狂热狂热。 我们的 DMS Software Reengineering Toolkit 是由语言定义参数化的通用程序转换。它有 robust definitions for GCC and MS dialects of C++ . 您可以像OpenC++那样实现程序上的转换,或者更方便地编写源到源模式的转换(或者更通常地,混合这些来实现复杂的效果)。DMS已被用于大规模C++代码的大规模重组 (见 Case study: Re-engineering C++ component models via automatic program transformation ). DMS是积极维护的,但它是商业的。 编辑2015年3月:现在在GCC和MS方言中有C++ 14。 编辑2017年7月:现在在GCC和MS方言中有C++ 17。 |
2
1
|
Walter · 如何配置aspectj忽略getter和setter 7 年前 |
MikaelW · AOP,如何仅在直接从包X发出时拦截对给定类的调用 7 年前 |
Serhii · 如何从父方法获取注释? 7 年前 |
Filip · .使用自定义属性的NET Unity拦截 7 年前 |