西安电子科技大学《编译原理》.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第三章语法分析3.1语法分析的若干问题

3.1.1语法分析器的作用3.1.2语法错误的处理原则3.1.2语法错误的处理原则(续1)3.1.2语法错误的处理原则(续2)3.2上下文无关文法(ContextFreeGrammar,CFG)

3.2.1CFG的定义与表示1由产生式集表示CFG3.2.1CFG的定义与表示(续1)4产生式的缩写形式3.2.1CFG的定义与表示(续2)3.2.2CFG产生语言的基本方法-推导3.2.2CFG产生语言的基本方法-推导(续1)3.2.2CFG产生语言的基本方法-推导(续2)3.2.3推导、分析树与语法树3.2.3推导、分析树与语法树(续1)3.2.3推导、分析树与语法树(续2)3.2.3推导、分析树与语法树(续3)3.2.4二义性与二义性的消除

3.2.4.1二义性(歧义,Ambiguity)“悬空(dangling)else”问题3.2.4.1二义性(续1)3.2.4.2二义性的消除可以看出:1改写二义文法为非二义文法(续1)再讨论“悬空else”问题1改写二义文法为非二义文法(续2)1改写二义文法为非二义文法(续3)2为文法符号规定优先级和结合性3修改语言的语法(表现形式被改变)3.3语言与文法简介3.3.1正规式与上下文无关文法

1正规式到CFG的转换2为什么用正规式而不用CFG描述词法3.3.2上下文有关语言

(ContextSensitiveLanguage,CSL)计数问题3.3.3形式语言与自动机简介再考察L3:3.3.3形式语言与自动机简介(续)结束改写二义文法:*词法分析:元素是字母表,组成字符串,线性结构,单词的集合语法分析:元素是终结符,组成句子,树结构,句子的集合语法的双重含意:①语法规则:上下文无关文法(子集-LL文法或LR文法)②语法分析:下推自动机(LL或LR分析器),自上而下和自下而上分析本章主要内容:1与语法分析有关的基本概念和相关问题2上下文无关文法3自上而下分析4自下而上分析5上机作业-第二部分:函数绘图语言的语法分析器语法分析器是编译器前端的重要组成部分,许多编译器,特别是由自动生成工具构造的编译器,往往其前端的中心部件就是语法分析器。语法分析器在编译器中的位置和作用下:它的主要作用有两点:1根据词法分析器提供的记号流,为语法正确的输入构造分析树(或语法树),这是本章的重点,在以后各节中详细讨论;2检查输入中的语法(可能包括词法)错误,并调用出错处理器进行适当处理,下边简单介绍语法错误处理的基本原则,而在以后的讨论中忽略此问题。1源程序中可能出现的错误两类:语法错误和语义错误。①词法错误如非法字符或拼写错关键字、标识符等; @ intege 20times②语法错误是指语法结构出错,如少分号、begin/end不配对等。 begin x:=a+b y:=x;③静态语义错误:如类型不一致、参数不匹配等; a,b:integer; x:array[1..10]ofinteger; x:=a+b;④动态语义错误(逻辑错误):如无穷递归、变量为零时作除数等。 while(t){...}; a:=a/b;大多数错误的诊断和恢复集中在语法分析阶段。一个原因是大多数错误是语法错误,另一个原因是语法分析方法的准确性,它们能以非常有效的方法诊断语法错误。在编译的时侯,想要准确诊断语义或逻辑错误有时是很困难的。2语法错误处理的目标对语法错误的处理,一般希望达到以下基本目标:清楚而准确地报告错误的出现,地点正确、不漏报、不错报也不多报;迅速地从每个错误中恢复过来(以便分析继续进行);不应使对语法正确源程序的分析速度降低太多。3语法错误的基本恢复策略紧急方式恢复:抛弃若干输入,直到遇到同步记号。短语级恢复:采用串替换的方式对剩余输入进行局部纠正(抛弃+插入)。出错产生式:用出错产生式捕捉错误(预测错误)。预置型的短语级恢复方式。全局纠正:对错误输入序列x,找相近序列y,使得x变换成y所需的修改、插入、删除次数最少。例3.1下述

文档评论(0)

智乾 + 关注
实名认证
内容提供者

科技工作者

1亿VIP精品文档

相关文档