电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《软件技术基础教程》(徐士良版)全套PPT电子课件教案-第6章 编译技术

58页
  • 卖家[上传人]:aa****6
  • 文档编号:48798440
  • 上传时间:2018-07-20
  • 文档格式:PPT
  • 文档大小:345KB
  • / 58 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第6章 编译技术6.1 6.1 编译程序的工作过程编译程序的工作过程6.2 6.2 状态矩阵法的编译过程状态矩阵法的编译过程6.3 6.3 词法分析词法分析6.4 6.4 中间语言表示中间语言表示6.5 6.5 语法的分析与加工语法的分析与加工编译程序是一种将高级语言编写的源程序编译成机器语言程序(称为目标程序)的实用程序。 6.1 编译程序的工作过程 为了将源程序翻译成目标程序,一般 都要包括以下几个步骤。 输入源程序。 对以机内码表示的源程序进行词法分析,辨认出一个个单词符号。 根据源语言的语法规则进行语法 分析。 在实际运行之前,通常还要对目 标程序的各部分进行连接装配 。 对于块结构的语言(如C语言和 FORTRAN语言等),通常是进行分块 编译,分别得到半目标程序,最后可用 装配程序组装成一个完整的程序。 编译程序一般要包含以下几个程序模块。 (1)词法分析程序 (2)语法分析程序 (3)加工程序 (4)优化修饰部分 (5)装配程序或连 接编辑程序6.2 状态矩阵法的编译过程6.2.1 状态矩阵法的基本 原理 所谓“状态”,粗略地说,是表示过去 已经扫描了什么语法成分,以便当

      2、遇到新 的语法符号时,在不同的状态下对该语法 符号作出不同的处理。 状态矩阵法的核心是状态矩阵(也称 状态表),如表6.1所示。 6.2.2 状态矩阵的压缩在具体实现状态矩阵法时,为了节省存储空间,通常要对状态矩阵进行压缩。 各列的意义如下: 状态 指状态栈栈顶项中所包含的可能状态。 符号 指当前扫描到的可能符号。 加工子程序 指当前遇到的相应状态符号配对时编译程序应做的工作。 状态改变 指出在做完相应的编译工作后其状态栈如何改变。 综上所述,状态矩阵法的编译过程是按照存放在内存中的状态表不断地进行解释执行的。 6.3 词法分析6.3.1 词法分析的任务词法分析是编译过程各阶段的基础和 必要的准备。 词法分析的主要任务是从源程序语句 中识别出具有独立意义的语法单位(即语 法符号),并且建立一个符号表,用以保 存各语法符号的属性。 表6.4中的符号最后都变成二进制 形式的代码串。 可以将这些通用符号建立一个通 用符号表,这些符号的代码可用较大 的编号来表示,如表6.5所示。在这种情况下,上述赋值语句经 词法分析后可以得到一张符号表如表 6.6所示 。6.3.2 读字符程序读字符程序的任务

      3、是从源程序字符串中 顺序读出基本符号,并作一些简单的处理后提 供给词法分析程序。 6.3.3 状态矩阵法的词法分析 过程 词法分析程序可以用状态矩阵法来实现 。 由图6.4可以看出,每执行一次这个程序,就顺序从源程序中读出一个语法符号,并且将有关的信息存放在一些工作单元中。下面以FORTRAN语言为例来说明用状态矩阵法实现词法分析的过程。为简单 起见,作如下一些假设: 不考虑格式语句。 不考虑数的翻译。 不考虑以E开头的运算符,且运算符只有两个字母。6.3.4 算术常数的识别和翻译在词法分析的过程中,不仅要识别出 常数,还需要将常数翻译成统一的格式。 经过词法分析后,所有的实数都分解 成两部分:一部分是有效数字的所有位组 成的正整数;另一部分是以10为底的整数指数部分。 6.4 中间语言表示 “中间语言”,为能用来表述源程序并 与之等效的一种编码方式。 6.4.1 波兰表示一个表达式的波兰表示就是后缀表示 ,即表达式中的运算对象写在前面,运算 符写在后面。 (1)赋值语 句X=e 其中e为表达式。若将赋值号“=” 看作是一种双目运算符,则此赋值语 句的波兰表示定义为: Xe=(2)无条

      4、件转向语句GOTO n的波兰表示为:n GOTO(3)逻辑条件语句 IF C S的波兰表示为:C S LIF(4)子程序调用语句CALL S(y1,y2,yn)的波兰表示为:y1,y2,yn S SUB(5)维数说明语句DIMENSION A(N,M)的波兰表示为:N M A DIM(6)函数子程序段头语句FUNCTION F(X1,X2,XN)的波兰表示为:X1,X2,XN F DEFF6.4.2 三元组表示波兰表示有一个缺点,就是不便于作代码的优化。 三元组表示的一般形式为:k,( o1 o2)6.5 语法的分析与加工 语法分析和加工的主要任务有 以下几项。 识别出各种类型的语句,并 进行语法检查。 语法的加工处理。 编译程序工作的最后结果是 产生目标程序或半目标程序。6.5.1 优先矩阵法优先矩阵法的基本思想如下。将程序设计语言中的所有算符(广 义运算符,包括算术运算符、分隔符、 拼写定义符及界限符和等)设置一个优先关系,而这种优先关系用一张优先 矩阵表来表示。 6.5.2 优先数法基于算符的优先数进行编译的方法称 为优先数法。6.5.3 状态矩阵法状态矩阵法用表格形式来描述编译过程,因此条理十分清楚,这是其他方法所不及的。 6.5.4 递归子程序法递归子程序法的基本思想是:从整个源程序开始,根据各种语法成分的形成规则从大到小逐层往细分析处理,而对于每个递归定义的语法成分,都用一个相应的递归子程序来进行处理。

      《《软件技术基础教程》(徐士良版)全套PPT电子课件教案-第6章 编译技术》由会员aa****6分享,可在线阅读,更多相关《《软件技术基础教程》(徐士良版)全套PPT电子课件教案-第6章 编译技术》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.