基于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,之后再进行安卓原生编译。

你可能感兴趣的:(基于LLVM的思考)