compiler-construction - 是否可以使用 LLVM IR 作为通用语言在编程语言之间进行转换?
问题描述
我正在使用一种晦涩的编程语言,它没有像流行语言那样在第三方库方面拥有尽可能多的选项的特权。我使用的语言很灵活,而且很容易修改语言。假设语言是 Common Lisp。让我们还假设 CL 有一个编译器可以编译为 LLVM,并且我想从 CL 使用的语言+库(比如说 C++ 和 OpenCV)也有一个 LLVM 编译器。那么我可以使用 OpenCV 的 LLVM IR 形式作为伪转译吗?
解决方案
这种事情需要结构/对象布局匹配,名称修改匹配(对于具有除全局以外的命名范围的语言),如果任一/两种语言都有异常,则各种异常处理细节一致,继承/vtables 在同样的方式,调用约定必须兼容。可能还有更多,这只是我脑海中的一个快速回答。
如果你不得不问这个问题,我担心简短的回答是“不”。
推荐阅读
- mysql - 未将用户数据保存到 laravel 5.6 中的用户表
- php - 我想在 Laravel5.6 中搜索类别时获取与商店的关系值
- ios - iOS Spritekit 滚动菜单
- php - 我在咨询我的 php 咨询时遇到了困难
- microsoft-graph-api - 使用图形 api 构建来自微软团队的“聊天”和“活动提要”功能
- oracle - 在 SQL plus 中看不到错误描述
- java - Scytale密码明文和Z实现
- laravel - Laravel中foreach循环内的多个查询
- javascript - Bootstrap 模型未从所选选项中显示
- sql - 使用间接加入的组创建分隔列表