南京大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 出错处理

编译原理讲义 (第九章出错处理) 南京大学计算机系 赵建华
编译原理讲义 (第九章 出错处理) 南京大学计算机系 赵建华

错误种类 ·词法错误:在词法分析阶段就可以发现的错误。 ·语法错误:程序的书写不符合语法规则。 语义错误: 静态语乂错误:编译程序可以发现。 动态语乂错误:源程序虽然能够被编译和执行,但是结 果不对。一般是逻辑上的错误。 违反环境限制的错误:由于实现方面的问题,有些 编译器不接受语言的全集。同时语言本身也有限制。 比如:函数说明嵌套的深度,数组的最大层数
错误种类 • 词法错误:在词法分析阶段就可以发现的错误。 • 语法错误:程序的书写不符合语法规则。 • 语义错误: – 静态语义错误:编译程序可以发现。 – 动态语义错误:源程序虽然能够被编译和执行,但是结 果不对。一般是逻辑上的错误。 • 违反环境限制的错误:由于实现方面的问题,有些 编译器不接受语言的全集。同时语言本身也有限制。 比如:函数说明嵌套的深度,数组的最大层数

错误复原 编写程序的过程中,出现错误是不可避免的 编译程序在进行编译的时候,需要检査出程序 的错误。并且给出提示 ·当编译程序碰到源程序中的错误的时候,应该 设法从错误中复原,并继续扫描程序以给出更 多的提示信息、。更多的信息使得程序员能够更 加方便地修改程序 ·可能复原是错误的。所以一般来讲,编译程序 给出的第一个错误是可靠的,而其他的错误信 息可能是不准确的
错误复原 • 编写程序的过程中,出现错误是不可避免的。 • 编译程序在进行编译的时候,需要检查出程序 的错误。并且给出提示。 • 当编译程序碰到源程序中的错误的时候,应该 设法从错误中复原,并继续扫描程序以给出更 多的提示信息。更多的信息使得程序员能够更 加方便地修改程序。 • 可能复原是错误的。所以一般来讲,编译程序 给出的第一个错误是可靠的,而其他的错误信 息可能是不准确的

错误复原的要点 株连信息的遏制 株连信息是指由于源程序中的一个错误而导 致编译程序向用户报告很多相关的出错信息。 而这些信息是不真实的。 重复信息的遏制 是指源程序中的一个错误而反映在源程序的 多处
错误复原的要点 • 株连信息的遏制 – 株连信息是指由于源程序中的一个错误而导 致编译程序向用户报告很多相关的出错信息。 而这些信息是不真实的。 • 重复信息的遏制 – 是指源程序中的一个错误而反映在源程序的 多处

株连信息的例子 已经说明过程p(inta,intb);在使用的时 候写成了pab) 编译程序扫描的时候,首先发现“.”是 错误的,应为a不是结构类型的变量。然 后,发现b是错误的。最后发现p的参数 个数不同 ·这些信息都是由于将‘,’误写做‘而 引起的
株连信息的例子 • 已经说明过程p(int a, int b);在使用的时 候写成了p(a.b)。 • 编译程序扫描的时候,首先发现“.”是 错误的,应为a不是结构类型的变量。然 后,发现b是错误的。最后发现p的参数 个数不同。 • 这些信息都是由于将‘,’误写做‘.’而 引起的

重复信息的例子 如果用户忘了申明变量i(或者声明的时 候变量的拼写错误),而在程序中多出 使用i 编译程序在每次碰到对i使用的时候都 可能发现错误:变量i没有被定义。 这个错误信息将多次出现。而实际上这 个错误是唯一的
重复信息的例子 • 如果用户忘了申明变量i(或者声明的时 候变量的拼写错误),而在程序中多出 使用i。 • 编译程序在每次碰到对i的使用的时候都 可能发现错误:变量i没有被定义。 • 这个错误信息将多次出现。而实际上这 个错误是唯一的

语法错误提示信息(自顶向下) 在自顶向下的扫描过程中,如果扫描程 序碰到了非预期的符号输入,最简单的 提示方法就是: unexpected symbol:? 自顶向下的分析过程中,扫描程序能够 十分清楚地知道当前正在按照什么规 进行扫描,所以提示信息也可以给得更 加详细:在扫描??的时候碰到非预期的
语法错误提示信息(自顶向下) • 在自顶向下的扫描过程中,如果扫描程 序碰到了非预期的符号输入,最简单的 提示方法就是:unexpected symbol: ‘?’ • 自顶向下的分析过程中,扫描程序能够 十分清楚地知道当前正在按照什么规则 进行扫描,所以提示信息也可以给得更 加详细:在扫描???的时候碰到非预期的 符号??

语法错误提示信息(自底向上) 当栈顶状态为S,当前符号为a,而分析表中 AISa没有相应的值得时候,分析程序检查出 源程序的错误 简单的信息提示可以是:预期扫描{??}但是扫 描到了?。其中预期扫描的符号是指所有使 A[S,x」有定义的符号x。 通过分析S对应的项集,我们可以知道,当前 的分析程序试图规约到什么语法成分。那么提 示信息何以更加详细
语法错误提示信息(自底向上) • 当栈顶状态为S,当前符号为a,而分析表中 A[S,a]没有相应的值得时候,分析程序检查出 源程序的错误。 • 简单的信息提示可以是:预期扫描{???}但是扫 描到了?。其中预期扫描的符号是指所有使 A[S,x]有定义的符号x。 • 通过分析S对应的项集,我们可以知道,当前 的分析程序试图规约到什么语法成分。那么提 示信息何以更加详细

昔误的定位 在扫描程序检查到错误的时候,需要告 诉用户,其错误发生在源程序的什么位 置 简单的方法是:在进行词法分析的时候, 记录下每个词法单位(符号)的行和列 扫描程序碰到非预期的符号时,可以在 提示信息中给出该符号的位置
错误的定位 • 在扫描程序检查到错误的时候,需要告 诉用户,其错误发生在源程序的什么位 置。 • 简单的方法是:在进行词法分析的时候, 记录下每个词法单位(符号)的行和列。 扫描程序碰到非预期的符号时,可以在 提示信息中给出该符号的位置

昔误的复原 错误的复原是指编译程序遇到错误的时 候,在给出错误提示后试图越过当前的 错误继续扫描 常用的方法是:对于某个语法成分,如 果该语法成分有一个非常确定的符号作 为结束符号。那么当扫描这个语法成分 时发现错误,程序试图继续扫描到该结 束符号。并把这个符号之前的东西规约 成为相应的语法成分
错误的复原 • 错误的复原是指编译程序遇到错误的时 候,在给出错误提示后试图越过当前的 错误继续扫描。 • 常用的方法是:对于某个语法成分,如 果该语法成分有一个非常确定的符号作 为结束符号。那么当扫描这个语法成分 时发现错误,程序试图继续扫描到该结 束符号。并把这个符号之前的东西规约 成为相应的语法成分
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第八章 代码优化.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第六章 语义分析和目标代码生成.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第五章 语法分析——自底向上分析技术(2/2).ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第五章 语法分析——自底向上分析技术(1/2).ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 语法分析——自顶向下分析技术(2/2).ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 语法分析——自顶向下分析技术(1/2).ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 词法分析.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第二章 文法与语言.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第一章 总论(主讲:赵建华).ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)引言(主讲:赵建华).ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第九章 操作系统结构.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第八章(8.2)实例研究Windows2000.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第八章(8.1)网络操作系统.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第八章 网络与分布式操作系统.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第八章(8.3)分布式计算.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章 操作系统安全性(7.4)内部访问授权.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章 操作系统安全性(7.1-7.3).ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章(7.7)实例研究Windows2000.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章(7.8)实例研究UnixWare 2.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第六章(6.3-3)文件管理2.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第一章 概述(谢希仁).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第十章 因特网的演进.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第二章 物理层.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第三章 数据链路层.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第四章 局域网.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第五章 广域网(谢希仁).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第六章 网络互连.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第七章 运输层.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第八章 应用层.ppt
- 电子工业出版社:《计算机网络》课程教学资源(第四版,PPT课件讲稿)第九章 计算机网络的安全.ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第一章 网络操作系统概述.ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第三章 进程、作业线程管理(1/2).ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第三章 进程、作业线程管理(2/2).ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第三章 进程、作业管理.ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第二章 windows2000操作系统.ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第五章 文件管理.ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第六章 设备管理.ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第四章 存储管理(一).ppt
- 《网络操作系统》课程教学资源(PPT课件讲稿)第四章 存储管理(二).ppt
- 北京工业大学:《形式语言与自动机理论》PPT电子教案(蒋宗礼).ppt