zoukankan      html  css  js  c++  java
  • 第一次作业:了解编译原理--09.04

    1)简述编译程序与翻译程序、汇编程序的联系与区别。
    翻译程序是指把高级语言源程序翻译成机器语言源程序的软件。
    编译程序是先完整编译后运行的程序.汇编程序也是一种语言翻译程序,汇编语言代码翻译成目标机器指令的过程。
    编译程序与汇编程序的区别:如果源语言是高级语言,而目标语言是汇编语言或机器语言之类,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。
    2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
    一、词法分析
    词法分析的任务是:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词
    二、语法分析
    语法分析的任务是:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位
    三、语义分析
    对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)
    四、中间代码产生
    “中间代码”是一种含义明确、便于处理的记号系统,它通常独立于具体的硬件。中间代码是一种独立于具体硬件的记号系统
    五、代码优化
    优化的任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。
    六、目标代码生成
    把中间代码经优化处理之后变换成特定机器上的低级语言代码。这阶段实现了最后的翻译,它的工作有赖于硬件系统结构和机器指令含义。
    3)简述解释程序与编译程序的区别。
    编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。

    4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解并谈谈它的基本思想与采用的技术路线,以及它对安卓软件生态会有什么影响。
    基本思想:方舟编译器则是在开发的时候就已经完成了静态编译,不需要依赖手机本身编译。同时,方舟编译器还提供了更高效的内存回收机制。方舟编译器对代码进行优化,为程序带来更高的性能。采用的技术路线:支持多语言联合优化的编译,在面对采用混合语言开发的安卓应用,方舟编译器可以在开发环境中编译成统一的流程,通过统一的程序表示和优化来执行,效率更高。影响:安卓生态圈被华为方舟编译器打破了原有传统,突破手机机能限制,根据不同的应用采用不同的编译和优化算法,提高了应用执行效率,为广大的用户提供更加愉快的体验。更加推动我国的安卓技术,为我们国人长脸。

  • 相关阅读:
    NERDTree 快捷键辑录
    linux 自动登录脚本
    INSERT INTO .. ON DUPLICATE KEY更新多行记录
    Linux环境PHP7.0安装
    SVN常用命令
    Linux下查看文件和文件夹大小
    Cacti安装详细步骤
    linux回到上次目录与历史命令查找快捷方式
    shell的if else 以及大于,小于等逻辑表达式
    Nginx_Lua
  • 原文地址:https://www.cnblogs.com/cndl/p/11457964.html
Copyright © 2011-2022 走看看