聊城大学,计算机学院,编译原理复习_第1页
聊城大学,计算机学院,编译原理复习_第2页
聊城大学,计算机学院,编译原理复习_第3页
聊城大学,计算机学院,编译原理复习_第4页
聊城大学,计算机学院,编译原理复习_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-4-51计算机学院计算机学院编 译 原 理 Compiler PrinciplesCompiler Principles 2022-4-52 高级语言程序不能被计算机硬件理解,它必须经过一高级语言程序不能被计算机硬件理解,它必须经过一些步骤转换成相应的目标机器指令。些步骤转换成相应的目标机器指令。编译程序编译程序程序设程序设计语言计语言机器语言机器语言 2022-4-53源程序源程序P计算机计算机A目标程序目标程序P计算机计算机B运行结果运行结果编译程序编译程序C原始数据原始数据D运行程序运行程序编编译译阶阶段段运运行行阶阶段段2022-4-542022-4-552022-4-56对

2、由字符构成的源程序进行扫描和分析,得到单词对由字符构成的源程序进行扫描和分析,得到单词序列。序列。 常以子程序出现,每调用一次提交一个单词符号(常以子程序出现,每调用一次提交一个单词符号()。)。识别单词、删除空白符号、回车及其他无实质性符识别单词、删除空白符号、回车及其他无实质性符号、删除注释、进行单词符号合法性检查。号、删除注释、进行单词符号合法性检查。2022-4-57 把源程序的单词组成语法短语把源程序的单词组成语法短语(表示成语法树表示成语法树)。 即即判断源程序是否为相应程序设计语言中的一个合法程序。判断源程序是否为相应程序设计语言中的一个合法程序。语言的语法规则,即描述程序结构的

3、规则。语言的语法规则,即描述程序结构的规则。明确程序中所出现的一些量的属性和意义,进行相明确程序中所出现的一些量的属性和意义,进行相应的语义审查,以保证源程序在语义上的正确性。应的语义审查,以保证源程序在语义上的正确性。n上下文相关性上下文相关性n类型匹配类型匹配n类型转换类型转换2022-4-58便于处理,便于代码优化。源程序的中间表示。便于处理,便于代码优化。源程序的中间表示。三元式、四元式、逆波兰式、树形结构三元式、四元式、逆波兰式、树形结构等等易产生、易翻译成目标程序。易产生、易翻译成目标程序。对代码进行改进,使之占用的空间少,运行速对代码进行改进,使之占用的空间少,运行速度快。度快。

4、n 代码优化首先在中间代码进行,由优化的中间代码得代码优化首先在中间代码进行,由优化的中间代码得到较优的目标代码。到较优的目标代码。2022-4-59n 目标代码一般是可重定位的机器代码或汇编语言代码。目标代码一般是可重定位的机器代码或汇编语言代码。n 为生成目标代码,对程序中使用的每个变量要指定存储为生成目标代码,对程序中使用的每个变量要指定存储单元,并把每条中间代码指令翻译成完全相同任务的机单元,并把每条中间代码指令翻译成完全相同任务的机器指令。器指令。n 编译程序在各个阶段应编译程序在各个阶段应诊断和报告源程序中的错误,包诊断和报告源程序中的错误,包括词法错误,语法错误,语义错误。括词法

5、错误,语法错误,语义错误。n 编译程序应编译程序应报告出错地点,并给出简明准确的提示信息。报告出错地点,并给出简明准确的提示信息。2022-4-510词法分析器语法分析器语义分析器源程序中间代码生成器代码优化器代码生成器目标程序出错管理器符号表管理器 2022-4-511n源程序的分析源程序的分析n目标程序的综合目标程序的综合n 在实际的编译器中,若干阶段可以组合在一起,各阶段在实际的编译器中,若干阶段可以组合在一起,各阶段之间的中间表示也无需显式构造。之间的中间表示也无需显式构造。2022-4-512 源程序源程序 中间代码中间代码 目标代码目标代码 仅依赖源程序仅依赖源程序 仅依赖目标计算

6、机仅依赖目标计算机前端后端 通常,所有的阶段被分成通常,所有的阶段被分成前端前端和和后端后端两部分(两部分(分析阶段分析阶段和和综合阶段综合阶段)。)。2022-4-513n 对输入文件(源程序或其等价的中间形式)从头到尾扫对输入文件(源程序或其等价的中间形式)从头到尾扫视,完成预定处理视,完成预定处理遍遍输入文件输出文件n 多遍扫描的优点多遍扫描的优点n各遍扫描功能相对独立,编译程序结构清晰各遍扫描功能相对独立,编译程序结构清晰n对源程序及其内部的多次扫视和加工,有利于进行比较对源程序及其内部的多次扫视和加工,有利于进行比较细致和充分的代码优化处理细致和充分的代码优化处理2022-4-514把前端组织成一遍扫描词法分析语法分析语义分析和中间代码生成源程序中间代码 符 号 表 管 理 错 误 的 诊 查 处 理2022-4-515n 符号表是记录标识符的数据结构。符号表是记录标识符的数据结构。n源程序中使用的标识符;源程序中使用的标识符;n每个标识符的各种属性。这些属性提供标识符的存储分每个标识符的各种属性。这些属性提供标识符的存储分配、类型和作用域信息。过程标识符,还有参数的个数配、类型和作用域信息。过程标识符,还有参数的个数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论