基于LLVM的思考

最近在看LLVM相关代码,产生了一点思考。

LLVM是编译器的基础设施,苹果的Xcode编译系统就是以LLVM展开。

iOS的编译过程,
1、预编译,解析头文件,删除注释,宏定义展开
2、词法分析,生成token
3、语法分析,生成AST
4、生成IR,中间语言
5、静态分析
6、生成机器码

思考一:
1、2、3、4这四个过程是在Clang编译器前端实现,如果我们实现java或者kotlin的解析过程,生成中间语言IR,然后在编译器后端翻译成机器码后,实现APK的打包,就能够将安卓的开发移植到Xcode里。

思考二:
因为所有语言在LLVM中都需要生成IR中间语言,那么我们可以通过OC或者Swift来进行安卓开发,只是之前需要实现一套Android的框架。

思考三:
基于Swift与Cotlin的相似性,我们可以用Swift生成AST后,转成Kotlin,之后再进行安卓原生编译。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在 iOS 开发的过程中,Xcode 为我们提供了非常完善的编译能力,正常情况下,我们只需要 Command + ...
    CoderLF阅读 13,115评论 0 17
  • LLVM (底层虚拟机 Low-Level Virtual Machine),这是一个开源项目,最开始作为伊利诺伊...
    XLsn0w阅读 1,660评论 0 1
  • 一、什么是LLVM 1、官网:https://llvm.org/The LLVM Project is a col...
    迷心迷阅读 2,963评论 0 2
  • http://www.starming.com/index.php?v=index&view=107 http:/...
    111浪子111阅读 3,185评论 0 11
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,374评论 2 35