1编译原理概述

  1、简述编译程序与翻译程序、汇编程序的联系与区别。

  编译程序是现代计算机系统的基本组成部分之一,而且多数计算机系统都配有不追中高级语言的编译程序。从功能上看,一个编译程序就是一个语言编译程序。

  翻译程序是吧一种语言书写的程序翻译成另一种语言的等价程序。

  汇编程序是一个翻译程序,他把汇编语言程序翻译成机器语言程序。

 

  2、编译过程包括哪几个主要阶段及每个阶段的主要功能。

 // 需预处理的源程序→预处理程序→源程序→编译程序→目标汇编语言程序→汇编程序→可再装配的机器代码→装配/连接编辑程序→绝对机器代码

    源程序→语法分析→语法分析→语义分析→中间代码生成→代码优化→目标代码生成→目标程序

  3、简述解释程序与编译程序的区别。                 

  编译程序: 编译程序是一个语言处理程序,他把一个高级语言程序翻译成某个机器的汇编语言程序或者二进制代码程序,这个二进制代码程序在机器上运行生成结果。编译一次后,此后的每次运行无需重新编译。

  解释程序:解释程序接受某个语言的程序并立即运行这个源程序。它的工作模式是一个个的获取分析并执行源程序语句。每次执行都要重新解释。

源程序缓冲区

名字表
目标代码缓冲区
编译程序用中间表示及各种表格
目标代码区  
数据区
解释系统  
源程序
工作单元及表名字
标号表
缓冲区(输入输出)
栈区

编译时                                                                 运行时                                     解释程序的存储区内容

编译程序的编译阶段和运行阶段的存储区内容                                                                                     

 

 

  4、了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会有什么影响。

  官方介绍称,方舟编译器是基于GCC开发的交叉编译器套件,它包括了C、C++、Fortran的前端,也包括了这些语言的库(如libstdc++、libgcc等)。HCC运行在X86 linux架构服务器上,生成的二进制运行在Aarch64架构服务器上。华为方舟编译器提供了全新的系统及应用的编译和运行机制,从动态编译变为静态编译,就是直接将高级语言直接编译成机器码,彻底消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举。实现的过程大家可能不懂,但是具体到效果上呢?按照华为官方的测试数据,“方舟编译器”可以让应用执行效率提升了29%,系统操作流畅度提升了24%,系统响应性能提升了44%,三方应用操作流畅度提升了60%。对于这样的表现,荣耀掌门人赵明表示,方舟编译器这是安卓系统性能的革命性突破(流畅不卡顿),有了它可以让安卓的体验超越苹果iOS。据悉,在8月初的HDC华为开发者大会上,华为表示目前已经与40多家顶级开发者合作,对各类流行应用进行编译优化,并且在未来几个月中陆续发布上线。最后,华为官方还透露了打造方舟编译器上投入的时间:2009年华为启动5G基础技术研究的同时就成立了编译组;2014年,众多海内外专家加入,方舟项目正式启动;2016年成立了编译器与编程语言实验室,直到2019年正式对外公开,前后也是准备了10年时间。

转载于:https://www.cnblogs.com/hjqq/p/11451985.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值