- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章南财数据智能化课件.ppt
第6章 编译技术概述 6.1 编译程序的工作过程及其基本组成 6.2 状态矩阵法的编译过程 6.3 词法分析 6.4 中间语言表示 6.5 语法的分析与加工 6.1 编译程序的工作过程及其基本组成 6.1.1 编译程序的工作过程 6.1.2 编译程序的基本组成 6.1.1 编译程序的工作过程 编译程序是一种将用高级语言编写的源程序翻译成机器语言程序的实用程序。 1. 输入源程序。 2. 词法分析。 3. 语法分析,生成对应的机器代码(即机器语言程序)。 4. 链接装配,得到一个可供计算机运行的代码程序(即可执行程序)。 三遍扫描的编译过程 半目标程序的装配示意图 6.1.2 编译程序的基本组成 1. 词法分析程序(读词程序) 包括读字符子程序和换码子程序。它的任务是要从源程序中识别出一个个具有独立语法意义的单词,并要对这些单词进行分类,换成对应的机内码。 2. 语法分析程序 主要任务是根据不同类型的语句转到相应的处理程序去进行处理。在识别语句类型以及处理过程中,还要作必要的语法检查,以便查出源程序中不符合语法规则的各种语法错误。 3. 加工程序 对各种语句的处理程序。 4. 优化修饰部分 使目标程序进一步“优化”。 5. 装配程序或链接程序 这主要任务是将分块编译得到的半目标程序(包括库程序)进行总装配,最后得到一个可供运行的目标程序。 6.2 状态矩阵法的编译过程 6.2.1 状态矩阵法的基本原理 6.2.2 状态矩阵的压缩 6.2.1 状态矩阵法的基本原理 状态矩阵法的核心是一张状态表(也称状态矩阵)。 状态矩阵 6.2.2 状态矩阵的压缩 稀疏状态矩阵 压缩后的状态矩阵 (1) 状态 指状态栈栈顶项中所包含的可能状态。 (2) 符号 指当前扫描到的可能符号。 (3) 加工子程序 指当前遇到的相应状态符号配对时编译程序应做的工作。如果这一栏为空白,则表示不做任何加工处理;如果这一栏包含几个加工子程序,则其执行顺序为从左到右。 (4) 状态改变 指出在做完相应的编译工作后其状态栈如何改变。例如: (5) 转向 指出下一步转向何处。其中: P 表示不去读下一个语法符号,让已经改变了的状态栈栈顶项的状态与原来扫描到的语法符号进行配对,以决定下一步该如何处理; N 表示转去读下一个语法符号,然后根据新的状态符号配对,继续下一步的处理。 状态矩阵法的总控程序框图 6.3 词法分析 6.3.1 词法分析的任务 6.3.2 读字符程序 6.3.3 状态矩阵法的词法分析过程 6.3.4 算术常数的识别和翻译 6.3.1 词法分析的任务 词法分析的主要任务是从源程序语句中识别出具有独立意义的语法单位(即语法符号),并且还要建立符号表,用以保存各语法符号的属性。 在实际处理时,语句中的所有语法符号均用代码表示,最常用的方法是直接用语法符号在符号表中的序号来换码。 例如,FORTRAN语言中的赋值语句 100 RN=(2.4*RN+X)/2.4+IN*(X+2.4) 经一遍扫描后,建立一张符号表 符号表 则此语句的代码串为 001 002 003 004 005 006 002 007 008 009 010 005 007 011 006 004 008 007 005 009 将通用符号专门建立一张通用符号表,这些符号的代码可以用较大的编号来表示 通用符号表 普通符号表 编码串为 001 002 906 904 003 902 002 900 004 905 903 003 900 005 902 904 004 900 003 905 6.3.2 读字符程序 读字符程序的任务是从源程序字符串中顺序读出基本符号,并做一些简单的处理后提供给词法分析程序。 以FORTRAN语言为例,读字符程序通常要作的一些处理工作。 (1) 源程序中的注释行只是为了提高源程序的可读性而加入的,对程序的执行任何作用,实际上它不是程序的内容。因此,当读字符程序识别到注释行时,应将它滤掉。 (2) 通常,在源程序中有许多空格字符,而这些空格中的大多数是没有任何意义的,也只是为了提高程序的可读性而加入的,去掉它们不会改变程序的功能。因此,在FORTRAN源程序中,除了文字型常数及格式语句中的文字字域或说明符中的空格外,所有其它空格都应滤掉。 (3) 当
您可能关注的文档
最近下载
- GBT5213-2019冷轧低碳钢板及钢带.pdf
- 焊接工艺与技能训练 7.3 闪光对接操作 7.3闪光对焊操作.pptx VIP
- 2024年苏州昆山国创投资集团有限公司招聘真题.docx VIP
- Z银行Y分行个人长尾客户数字化经营策略研究.pdf
- 《成人腰大池引流护理》(TCRHA 069-2024).pdf VIP
- 浙江省农村公路安全设施设置技术指南(试行) .pdf VIP
- 苏科版数学(2024)七年级下册期末试卷(含答案).docx VIP
- 2025年陕西西安安泰测试设备有限公司招聘笔试参考题库含答案解析.pdf
- 22S702 室外排水设施设计与施工——钢筋混凝土化粪池.docx VIP
- 水工建筑物止水带技术规范DLT52152023年.docx VIP
文档评论(0)