楼主: 张搏
546 1

[学习笔记] 【学习笔记】0808华为编译器 尽力了 太专业 总结部分: 1.机器及软件的历史发 ... [推广有奖]

  • 0关注
  • 3粉丝

博士生

51%

还不是VIP/贵宾

-

威望
0
论坛币
1852 个
通用积分
158.4806
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1544 点
帖子
241
精华
0
在线时间
10 小时
注册时间
2019-8-7
最后登录
2022-6-23

楼主
张搏 发表于 2019-8-8 19:37:36 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
0808华为编译器  尽力了 太专业
总结部分:
1.机器及软件的历史发展:0和1进制是机器的基础语言,最初是为了修正航海表而用的。20世纪30-40年代后续发展机电计算机和电子计算机,软件的发展就是如何将人类语言转化为机器的0和1的语言,也即编译器。先期出现汇编语言,然后再发生基于汇编语言的高级语言FORTRAN适合科学计算,ALOGOL适合事务处理,LISP适合人工智能计算,COBOL适合商业处理,这些高级语言仍旧适用于专业人才,随后BASIC语言为基础的C\\C++\\等编译语言,JAVA等预编译语言。高级编程语言、编译器、操作系统、数据库是软件行业的4类最重要的内容。
2.编译器的历史:
最早的编译器是Grace奶奶发明的A-0编译器。
第二个被大规模应用的编译器,则是和FORTRAN编程语言配套的FORTRAN编译器
windows使用CL编译器,LINUX使用GCC编译器,安卓最初使用JAVA目前加入JIT和AOT编译机制,IOS使用已由GCC编译器调为Clang + LLVM。
3.安卓的问题:自身必须使用编译器,所以使用JAVA时自带编译器,使用的内存过高,翻译过慢就加入JIT和AOT机制来解决问题;与其他语言相互转化需要硬件资源 ;为保证语言统一,优化空间压缩;占用内存过高时,全部停止JAVE程序。
4.华为的努力:解决了JAVA需要编译器的问题,自造编译系统。解决了安卓四个问题。如何解决?见下:

一方面,方舟编译器首次在Java领域将虚拟机干掉了,也是软件史上首次将Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别Java的JNI额外开销,也彻底告别了虚拟机GC内存回收带来的应用进程掉线
方舟编译器通过编译阶段和运行阶段的双向加持,将静态编译动态语义最大的两大难点一一解决:一是设计数据模型,二是如何在运行时高效获得动态信息。方舟编译器团队基本遍历了Java的动态语义,进行了大规模的数据建模。同时,大大提高了编译时动态语义分析的精度,特别是涉及跨语言调用时;另外,华为设计了一套具有核心专利的动态语义匹配机制,有效降低了运行时动态语义的开销。
方舟编译器采用了引用计数法(RC,Reference Counting)来进行内存的实时回收,并且配合使用了专门的消除环算法(消除对象互相引用带来的无法回收问题),来避免GC集中式回收带来的系统卡顿。相比GC,方舟的内存回收是实时的而非集中式的,且不需要暂停应用进程,这样便大大消除了卡
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:学习笔记 编译器 习笔记 Reference counting

已有 1 人评分论坛币 收起 理由
经管之家编辑部 + 80 精彩帖子

总评分: 论坛币 + 80   查看全部评分

沙发
经管之家编辑部 在职认证  发表于 2019-8-8 21:04:00
充实训练营作业奖!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-2 21:11