编译原理实战课
宫文学
北京原点代码 CEO
26066 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
真实编译器解析篇 (19讲)
编译原理实战课
15
15
1.0x
00:00/00:00
登录|注册

40 | 成果检验:方舟编译器的优势在哪里?

可移植到所有的操作系统和硬件平台
提升安卓系统的操作流畅度和响应速度
摆脱虚拟机思路
不同语言的融合问题
垃圾收集的问题
受Java虚拟机思路的影响
不同语言的融合问题
垃圾收集机制
Maple IR是如何应对这种挑战
用一种IR表示所有类型的语言的挑战
后续分享
期待更多部分的开源
分层设计的思想
对HIR有更好地支持
依托的实力支撑
大无畏的创新精神
Maple IR中分层设计的思想
分层设计的思想
对Maple IR的处理过程
对HIR有更好地支持
分层设计的思想
对源代码中的信息进行完整呈现
示例程序编译
编译方舟编译器本身
环境配置
需要从源代码入手
目前开源版本号还只是0.2版
逐步开源
成果
解决Android应用开发的问题
目标不仅是替代Android上的应用开发和运行环境
Android对应用开发的支持不够好
技术生态中语言的编译和运行体系非常重要
作者:宫文学
标题:成果检验:方舟编译器的优势在哪里?
挑战和应对
未来展望
Maple IR
方舟编译器的定位和设计思路
Maple IR的处理
Maple IR的特点
方舟编译器的源代码
方舟编译器的开源部分
方舟编译器的解决方案
Android的不足
参考文章
一课一思
课程小结
Maple IR
方舟编译器的开源项目
方舟编译器的优势
成果检验:方舟编译器的优势在哪里?

该思维导图由 AI 生成,仅供参考

你好,我是宫文学。到这里,咱们的课程就已经进入尾声了。在这门课程里,通过查看真实的编译器,你应该已经积累了不少对编译器的直观认识。前面我们研究的各种编译器,都是国外的产品或项目。而这一讲呢,我们则要看看一个有中国血统的编译器:方舟编译器
通过阅读方舟编译器已经公开的代码和文档,在解析它的过程中,你可以检验一下自己的所学,谈谈你对它的认识。比如,跟你了解的其他编译器相比,它有什么特点?先进性如何?你是否有兴趣利用方舟编译器做点实际项目?等等。
不过,到目前为止,由于方舟编译器开源的部分仍然比较有限,所以这一讲我们只根据已经掌握的信息做一些分析。其中涉及两个大的话题,一是对方舟编译器的定位和设计思路的分析,二是对方舟编译器所使用的 Maple IR 的介绍。
好,首先,我借助 Android 对应用开发支持的缺陷,来谈一下为什么方舟编译器是必要的。

Android 的不足

为什么要研发一款自己的编译器?对于一个大的技术生态而言,语言的编译和运行体系非常重要。它处在上层应用和下层硬件之间,直接决定了应用软件能否充分地发挥出硬件的性能。对于移动应用生态而言,我国拥有体量最大的移动用户和领先的移动应用,也有着最大的手机制造量。可是,对于让上层应用和底层硬件得以发挥最大能力的编译器和运行时,我们却缺少话语权。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

华为自主研发的方舟编译器旨在解决Android平台应用开发的瓶颈,通过优化内存管理、提高应用运行速度和改善不同语言调用效率等方面来提升Android平台的使用体验。文章深入介绍了方舟编译器的设计思路和核心技术Maple IR,展示了其先进性和应用前景。华为依托编译技术积累的团队和专家支撑了方舟编译器的创新,为未来在编译技术上有所作为奠定了基础。Maple IR的分层设计思想和对HIR的更好支持使其能更好地用于分析和优化。文章还提到了Maple IR与其他编译器的不同之处,为读者提供了更多的技术背景和对比参考。总的来说,本文通过深入的技术分析和示例展示,全面介绍了方舟编译器及其核心技术Maple IR的特点和应用前景,对于对编译器技术感兴趣的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编译原理实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • xiaobang
    看到基于引用计数的gc和java gc的比较,想问下引用计数的gc是怎么解决循环引用的问题的呢?

    作者回复: 这个问题,有两个技术思路: 1.是gc去监测循环引用。你可以参见Python编译器里面的相关算法。 2.是通过引入弱引用等机制,避免循环引用。但这样的话,责任就交给了编程人员。

    2020-09-16
    4
    1
  • Geek_9c3134
    老师编译器怎么做测试 需要做哪些测试

    作者回复: 编译器作为一种软件,跟普通软件的测试是一样的。你看编译器的源代码的时候,一般都能看到一些测试用例。 测试可以从很多角度。 1.从功能角度,你可以测试某个编译器支持语言的哪些特性。比如,quickjs支持的JavaScript标准到哪个版本?等等。 2.编译速度也是一个需要考虑的方面。你可以比较不同编译器,或者编译器不同版本之间,在编译速度方面的差别。 3.编译后的目标代码的性能,通常也是用来比较的一个方面。 4.其他还有目标代码大小等。 我有时候说,计算机语言(的设计)是文,编译技术是武。既然是武,那么武无第二,武功是有客观标准的,是可以测量出来的。如果某一个语言有两个编译器,那么一定是可以通过测试互相对比的。

    2021-04-08
  • ᯤ⁵ᴳ
    周志德已经离职了 方舟编译器也不再被人提起
    2022-05-31
    2
  • kkxue
    方舟编译器开源JS运行子系统了,https://mp.weixin.qq.com/s/FKOUIpEZpDYYuwwC6coSbg
    2021-09-08
  • minghu6
    唉, 真正革命性的技术进步还是要依赖大公司或者国家级支持的实验室, 不光个人奋斗也要考虑历史进程....... 像谷歌对安卓的策略, 华为开发方舟主要目的还是技术无关的, 技术只能搭风而上.
    2021-06-20
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部