• 第一次作业:编译原理概述


    1)简述编译程序与翻译程序、汇编程序的联系与区别。
    编译器将高级语言翻译成汇编语言,然后通过汇编程序将汇编语言翻译成机器语言。但是编译器只能将源语言编译成目标语言。编译程序是翻译程序之一,汇编程序是将汇编语言翻译成机器语言。

    2)编译过程包括哪几个主要阶段及每个阶段的主要功能。
    一般也可以划分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。
    词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词
    语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位
    语义分析与中间代码产生:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。
    优化:优化的任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。优化的主要方面有:公关子表达式的提取、循环优化、删除无用代码等等。
    目标代码生成:优化的任务在于对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。优化的主要方面有:公关子表达式的提取、循环优化、删除无用代码等等。

    3)简述解释程序与编译程序的区别。
    编译程序:先整体编译在一次性执行,执行程序时只执行目标程序。
    解释程序:边解释边执行,不会生成目标程序。

    4)了解新开源的华为方舟编译器(https://www.openarkcompiler.cn/home),理解它的基本思想与采用的技术路线,谈谈它对安卓软件生态会会有什么影响。
    方舟编译器首次在Java领域将虚拟机干掉了,也是软件史上首次将Java/C/C++等混合代码一次编译成机器码直接在手机上运行,彻底告别Java的JNI额外开销;另一方面,方舟编译器用空间换性能,直接将编译器的代码优化搬到了开发者环境,不再被手机端的硬件资源所限制,为代码优化提供了无限可能。给安卓带来了更高的编译效率和更持久的流畅水平。
  • 相关阅读:
    js时间操作扩展方法
    C#异步调用与线程总结
    ERP笔记5系统服务水平
    HtmlAgilityPack不能解析<select><option>的解决方法
    qq掉线咒语:aidusort.as
    情商的管理
    错误:ORA01036: 非法的变量名/编号 的多种解决办法
    安装MySQLdb时出错:EnvironmentError: mysql_config not found
    Ubuntu12.04安装maven
    (转)ASP.NET 3.5 企业级开发
  • 原文地址:https://www.cnblogs.com/huangzixuan/p/11451796.html
Copyright © 2020-2023  润新知