美文网首页
基于LLVM的思考

基于LLVM的思考

作者: 大冯宇宙 | 来源:发表于2019-12-30 19:31 被阅读0次

最近在看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的思考

    最近在看LLVM相关代码,产生了一点思考。 LLVM是编译器的基础设施,苹果的Xcode编译系统就是以LLVM展开...

  • ClangFormat-Xcode配置

    你的项目基于的基础样式,我的项目是基于LLVM的 BaseOnStyle: LLVM 缩进宽度 IndentWid...

  • 基于LLVM开发属于自己Xcode的Clang插件

    开发的插件效果如下 简介 本开发是基于LLVM,那么我们先来简单了解一下LLVM: LLVM项目是模块化、可重用的...

  • iOS混淆调研-基于llvm

    关于iOS混淆-基于llvm 在此之前,你需要先了解 llvm 源码: https://github.com/mi...

  • OCLint自定义规则迁移至clang插件的做法

    前提:基于OCLint,使用LLVM9.0.0版本源码,macOS系统 OCLint中已经自带了LLVM的源码,因...

  • 跟着铁头干混淆3 ubuntu2004编译ollvm4.0 解决

    OLLVM(Obfuscator-LLVM) 是一套开源的,基于llvm的混淆工具。 国内的很多加固厂商,很多都使...

  • iOS对象的本质

    准备工作 Clang的概述 Clang是一个C++编写、基于LLVM、发布于LLVM BSD许可证下的C/C++/...

  • OClint的使用

    关于OCLint OCLint 是基于LLVM/Clang(前端编译)而开发的代码静态分析工具。 OCLint可用...

  • LLVM

    LLVM 什么是LLVM? 官网:https://llvm.org/ The LLVM Project is a ...

  • iOS_LLVM

    LLVM 官网:https://llvm.org/[https://llvm.org/] The LLVM Pro...

网友评论

      本文标题:基于LLVM的思考

      本文链接:https://www.haomeiwen.com/subject/jbomoctx.html