可以使用LLVM IR作为通用语言在编程语言之间进行转换吗?

时间:2019-01-08 02:02:24

标签: compiler-construction llvm programming-languages transpiler

我使用的是一种晦涩的编程语言,它没有像流行语言那样拥有太多的第三方库选项。我使用的语言虽然灵活,但修改语言非常容易。假设语言是Common Lisp。我们还假设CL具有可编译为LLVM的编译器,而我想从CL使用的语言+库(比如C ++和OpenCV)也具有LLVM编译器。那么我可以使用LLVM IR形式的OpenCV作为伪编译吗?

1 个答案:

答案 0 :(得分:2)

这种情况要求结构/对象布局匹配,名称修改匹配(对于具有非全局命名范围的语言),如果任何一种/两种语言都有异常,则各种异常处理细节都应达成共识,即继承/ vtables是以相同的方式处理,并且调用约定必须兼容。可能还有更多,这只是我脑海中的一个快速答案。

如果您不得不问这个问题,我担心简短的回答是“否”。