PL0编译程序的实现.ppt

PL0编译程序的实现.ppt

ID:52062518

大小:1.55 MB

页数:110页

时间:2020-03-31

PL0编译程序的实现.ppt_第1页
PL0编译程序的实现.ppt_第2页
PL0编译程序的实现.ppt_第3页
PL0编译程序的实现.ppt_第4页
PL0编译程序的实现.ppt_第5页
资源描述:

《PL0编译程序的实现.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、温故知新编译原理的内容及学习意义翻译器、编译器的定义编译器的阶段划分及前端、后端的概念“遍”的概念遍编译的几个阶段常用一遍(pass)扫描实现,一遍扫描包括读一个输入文件和写一个输出文件。词法分析器语法分析器语义分析器源程序中间代码生成器代码优化器代码生成器目标程序出错管理器符号表管理器编译器从逻辑上可以分成若干阶段,每个阶段把源程序从一种表示变换成另一种表示遍单遍扫描与多遍扫描:每一遍的扫视可完成上述一个阶段或多个阶段的工作。每一遍的输入都是上一遍的输出,第一遍的输入是源程序正文,最后一遍的输出是目标代码。

2、单遍与多遍的比较:遍数多:编译器结构清晰,但时间效率不高遍数少:编译速度快,但对机器的内存要求高遍数的确定:主要因素是源程序和机器(目标机)的特征。前端和后端:把编译过程分成前端和后端两部分前端:只依赖于源程序,独立于目标机器(生成中间代码)后端:依赖于目标机器,与源程序无关,只与中间语言有关(从中间代码生成目标代码)好处:提高开发编译器的效率取一个编译器的前端,重写它的后端以产生同一源语言在另一机器上的编译器不同的前端使用同一个后端,从而得到一个机器上的几个编译器(采用同一中间语言)源程序目标机器1目标机器

3、2目标机器3目标机器n编译器不区分前端和后端的编译器源程序目标机器1目标机器2目标机器3目标机器n编译器前端编译器后端区分前端和后端的编译器下列程序中哪些不是编译程序的组成部分?A词法分析B代码读入C语法分析D代码生成对下列错误信息,请指出可能是编译的哪个阶段报告的。else没有匹配的if数组下标越界声明和使用的函数没有定义零做除数在数中出现非数字字符语法分析语义分析或代码生成语义分析代码优化或语义分析词法分析B代码读入判断高级语编写的源程序都必顺通过编译,产生目标代码后才能运行.多遍扫描的编译程序的多遍是指

4、多次重复读源程序.就执行速度而言,编译后再执行程序比解释执行程序慢.(×)(×)(×)出错处理程序语法分析程序语义分析程序目标代码生成程序词法分析程序中间代码生成程序代码优化程序表格管理程序注意上述编译过程的阶段划分只是一种典型的分法,事实上并不是所有的编译程序都分成这样几个阶段的。有些编译程序对优化没有什么要求,优化阶段就可省去。在某些情况下,为了加快编译速度,中间代码产生阶段也可以去掉。有些最简单的编译程序是在语法分析的同时产生目标代码。但是,多数实用编译程序的工作过程大致都像上面所说的那六个阶段。其它编

5、译程序的另外两个重要的工作是表格管理和出错处理。编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更新有关的表格,因此需要有表格管理的工作;如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动校正错误,这些工作称之为出错处理。出错处理一个好的编译程序应该:全最大限度发现错误准准确指出错误的性质和发生地点局部化将错误的影响限制在尽可能小的范围内若能自

6、动校正错误则更好,但其代价非常高出错处理源程序中的错误通常分为:语法错误不符合语法(或词法)规则的错误语义错误不符合语义规则的错误单词拼写错误、括号不匹配...说明错误、作用域错误、类型不匹配...现代编译技术必须面对应用需求和目标体系结构的多样化高性能计算(HighPerformanceComputing)指令级并行(InstructionLevelParallelism)线程级并行(ThreadLevelParallelism)处理机级并行(ProcessorLevelParallelism)系统级并行(

7、ThreadLevelParallelism)嵌入式计算(EmbeddedComputing)需求多样性(实时、资源限制、功耗、多目标)其它多媒体计算(MultimediaComputing)网络计算(NetworkComputing)……编译技术重要方向并行编译技术–面向高性能计算交叉编译技术–面向嵌入式计算第2章PL/0编译程序的实现本章目的:以PL/0编译程序为实例,学习编译程序实现的基本步骤和相关技术1PL/0编译程序的结构2PL/0编译程序的分析工作(词法,语法和语义)实现3PL/0编译程序的错误处

8、理方法4目标代码生成和类pcode代码解释器PL/0语言描述它由世界著名计算机科学家N.Wirth编写PL/0语言:PASCAL语言的子集,功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分它充分体现一个高级语言编译程序实现的基本方法和技术本书提供了两种形式的PL/0语言的语法描述:语法图:用语法图描述语法规则的优点是直观、易读EBNFPL/0的非形式化描述数据类型只有整型标识符的有效长度是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。