从LLVM解析树重新生成源代码

Re-generating source code from LLVM parse tree?

本文关键字:新生 源代码 LLVM      更新时间:2023-10-16

我很好奇是否有任何项目可以使用LLVM解析树并从中重新生成源代码。我特别想到C/C++。

如果"LLVM解析树"是来自clang的AST

是的,你可以从叮当的AST中再生来源。一些参考文献:

  • Eli与Clang的基本源代码到源代码转换,2012
  • Eli的Clang和libTooling的现代源代码到源代码转换,2014
  • 使用Clang执行源代码到源代码转换(幻灯片)
  • SoSlang:SOurce-to-SOurce Clang(幻灯片)

如果"LLVM解析树"是LLVM IR

有几个项目可以从LLVM IR生成源。第一个项目,LLVM 3.1中删除了"C后端"。

现在有几个项目可以从LLVM IR:生成C

  • Roel Jordans 复活的"C后端"

    [LLVMdev][RFC]复活C后端(Mailing List Post),通过引用的phoronix新闻

  • "C++->LLVM IR->Emscripten->asm.js->C"链

    LLVM IR=>C编译器的原型("C后端"),通过LLVM Weekly-#15