我想要开发一个工具,在基于程序结构的程序中执行某些优化。例如,假设我想识别循环中的if-let,那么我的工具将把它重写为两个循环。我希望这个工具能够从各种各样的语言中重写程序,例如Java、C++、Python、Javascript等等。
我正在探索是否可以为此目的使用GraalVM,作为一个公共平台,在这个平台中,我可以为各种语言实现相同的优化。
GraalVM是否有一个通用的中间表示(类似于LLVM )?我看了文档,但不知道从哪里开始。有什么指示吗?
注意:我并不是在寻找语言之间的互操作性.您可以假设我要重写的程序是用一种语言编写的;不同程序的语言可能不同。
发布于 2019-05-15 14:47:16
GraalVM有两个与此相关的组件:
使用Tru显框架实现的语言被部分评估为Java字节码,然后由Graal编译器编译。本文/talk提供了更多细节,包括Graal编译器使用的IR:https://chrisseaton.com/truffleruby/jokerconf17/。取决于您的具体用例,您可能想要连接到信托公司,部分评估或Graal编译器。
https://stackoverflow.com/questions/56147705
复制相似问题