编译原理:了解编译原理
1)简述编译程序与翻译程序、汇编程序的联系与区别。
个人理解:编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。
翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。
汇编程序(为低级服务)是将汇编语言书写的源程序翻译成由机器指令和其他信息组成的目标程序。
编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。
2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
个人理解:编译阶段也常常划分为两大步骤:分析步骤和综合步骤 。分析步骤是指对源程序的分析 -线性分析(词法分析或扫描) -层次分析(语法分析) -语义分析;综合步骤是指后端的工作,为目标程序的生成而进行的综合。
3)简述解释程序与编译程序的区别。
个人理解:编译程序是整体编译完了,再一次性执行。而解释程序是一边解释,一边执行。 解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。编译程序与解释程序最大的区别之一在于前者生成目标代码,而后者不生成;此外,前者产生的目标代码的执行速度比解释程序的执行速度要快;后者人机交互好,适于初学者使用。用COBOL、FORTRAN等语言编写的程序考虑到执行速度一般都是编译执行。
4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
个人理解:方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件。 方舟编译器还在持续演进中,陆续将上述能力实现和开源。
通过多语言统一IR表示,可实现应用中多种编程语言联合编译优化提升性能;在支持多平台的同时,根据设备特征提供便捷的开发与部署策略提升效率。
转载于:https://www.cnblogs.com/zhif97/p/11458075.html
编译原理:了解编译原理相关推荐
- 【实习周记】微信网络组件——腾讯Mars框架的原理、编译和使用
腾讯mars框架的编译和使用 腾讯Mars框架的原理.编译和使用 一.Mars的编译 二.Mars的使用 1.初始化Mars 2.通过长连接发送消息 3.使用短链接发送 4.接收相应请求的返回消息 5 ...
- AVB源码学习(一):AVB2.0工作原理及编译配置
参考资料 感谢前辈的blog,安全相关的资料可太少了,很详细很卓越 https://blog.csdn.net/jackone12347/article/details/116241676 前言 在这 ...
- ZUCC_编译语言原理与编译_实验04 语言与文法
编译语言原理与编译实验报告 课程名称 编程语言原理与编译 实验项目 语言与文法 实验目的 了解文法的历史 理解产生式规则 掌握最左推导,最右推导 掌握文法的二义性 掌握文法的分类与层次 实验内容 一. ...
- android AVB2.0(一)工作原理及编译配置
android AVB2.0介绍,本篇主要介绍AVB2.0的概述和工作原理.配置和编译. 有关AVB2.0的其他子系统的介绍,请查看android AVB2.0学习总结 一.AVB2.0概述 什么是A ...
- 计算机编译原理ppt,编译原理课件.ppt
文档介绍: 高级语言 汇编语言 SOURCE PROGRAM Assemble PROGRAM ?翻译程序? TRANSLATER 为什么要学****编译原理 程序设计语言是计算机软件专业的重要核心 ...
- python编译过程和执行原理
python编译过程和执行原理 (1)python执行原理 这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链 ...
- Mybatis - 预编译的运用和原理
Mybatis - 预编译 一. 什么是预编译 1.1 Mybatis中预编译的运用 1.2 预编译的原理 1.2.1 动态SQL的分类 1.2.2 预编译的处理(占位符的替换) 1.2.3 执行的时 ...
- JavaScript中函数作用域之精辟,函数原理的浅入深出,及程序执行预编译之通天编译???
1.程序执行的前一刻会先将代码预编译一遍,如果有语法错误则直接终止程序运行 //预编译之通天编译 --> 在执行的前一刻,会把文件通天扫描一遍 /** //预编译 函数整体提升(即函数会放到程序 ...
- openMVG原理、编译、源码理解、实践
openMVG原理.编译.源码理解.实践 1.理论 2.实践 2.1.源码编译(重点) 2.2.其他 3. Work1: 根据tutorial_demo.py理解SFM pipeline (1).运行 ...
- dnsspoof工作原理、编译、源码分析
dnsspoof 是一个DNS欺骗工具,只要给出将要重定向的域名和域名重定向到的IP,就可以实现DNS欺骗. 下载地址:http://monkey.org/~dugsong/dsniff/ dnssp ...
最新文章
- 三电平igbt死区时间计算_IGBT基础与运用知识
- iOS 10 的一个重要更新-自定义的通知界面
- 数字图像处理技术的应 用领域
- mqtt如何判断设备离线_反渗透纯水设备膜元件如何离线清洗?
- 漫画:去掉一个数,如何让剩余的数乘积最大?
- 颠覆智能手机的下一代设备已出现?
- jQuery的Select操作集合
- Opencv之读取yuv420P
- JavaScript学习初步
- 【转】webservice 测试地址
- 20佳非常有创意的About页面设计
- Akka-CQRS(15)- Http标准安全解决方案:OAuth2+JWT
- spark机器学习 源码解析及原理分析
- 编程分钟转化小时怎么编_CNC数控加工中心编程好学吗?多年数控编程工程师指点迷津...
- 巴菲特致股东的一封信:2004年
- 《SRE Google运维解密》散文
- php读取与写入文件(详解)
- 表达式的LenB(123程序设计ABC)的值是27吗
- java中的PO、BO、VO、QO、POJO、DTO、DAO分别代表什么意思
- git log查看日志中文乱码的解决方法,绝对好用2021
热门文章
- Verilog HDL的简单应用之74ls148功能的实现
- dell服务器T100无法进入系统,戴尔电脑开机进不去,一直在转圈圈,怎么处理?
- 转载——背包九讲(原文链接已不可考)
- 九大微博传播分析工具
- 在centos7系统安装docker及用docker安装jenkins
- 微信CRM六大模块详解
- php判断区间数字,如何快速判断数字在那个区间?
- python 期货现货差价监测_数字货币期货现货差价监控
- 微信支付快速生成签名sign
- 【U8+】用友U8数据卸出提示“更改卸载业务单据关闭日期删除后处理出错,错误描述,存储过程没有任何参数”