使用 LLVM 进行面向方面编程
有什么方法可以将方面集成到 LLVM 字节码中吗?
Is there some way to integrate aspects into LLVM-bytecode?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有什么方法可以将方面集成到 LLVM 字节码中吗?
Is there some way to integrate aspects into LLVM-bytecode?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
如果您指的是现有方式,我还没有看到任何稳定/生产中的东西,但是有很多论文,例如:
http://www.cs.rochester.edu/meetings/TRANSACT07/papers/felber.pdf
http://llvm.org/pubs/2005-03-14-ACP4IS -AspectsKernel.pdf
你最好的选择是找到你感兴趣的 LLVM 支持的语言,然后寻找具有 AOP 框架的项目 语言。有些是预编译器,它们可以“按原样”工作(假设您可以运行编写预编译器的任何内容)。直接操作编译器输出的框架必须进行修改才能在 LLVM 代码上运行。
一般答案是“当然”——任何允许访问生成代码或编译过程的系统都将支持方面,这只是您想要付出多少努力的问题放入其中。
LLVM 拥有用于研究字节码的出色工具,在我看来,这些工具使 AOP 之类的东西玩起来更有趣。
If you mean an existing way, I haven't seen anything that's stable/in production, but there are a number of papers, for example:
http://www.cs.rochester.edu/meetings/TRANSACT07/papers/felber.pdf
http://llvm.org/pubs/2005-03-14-ACP4IS-AspectsKernel.pdf
Your best bet would be to find an LLVM-supported language you're interested in, then look for projects that have an AOP framework for that language. Some are pre-compilers, which would work "as-is" (assuming you can run whatever the pre-compiler is written in). Frameworks that directly manipulate compiler output would have to be modified to operate on LLVM code.
The general answer is "of course"--any system that allows access to generated code or the compilation process will support aspects, it's just a matter of how much effort you want to put in to it.
LLVM has great tools for poking at bytecode, which IMO make things like AOP a lot more fun to play with.