活动介绍

编译原理笔记个人手写整理.pdf

preview
5星 · 超过95%的资源 需积分: 0 70 下载量 29 浏览量 更新于2021-01-15 收藏 12.29MB PDF 举报
"编译原理笔记个人手写整理.pdf" 本资源是关于编译原理笔记的个人手写整理,涵盖了编译原理的基本概念、算符优先关系、算符优先分析算法、优先函数、LR 分析法等多个方面的知识点。 一、算符优先关系 算符优先关系是指在文法中,两种符号之间的优先级关系。有三种类型的优先关系:a 的优先级低于 b (a < b)、a 的优先级等于 b (a = b)、a 的优先级高于 b (a > b)。算符优先关系是有序的,但不具有传递性。 二、算符优先分析算法 算符优先分析算法是指使用栈存储已经看到的输入符号,用优先关系指导移动归约语法分析器的动作。该算法的主要思想是:如果栈顶的终结符和下一个输入符之间的优先关系是<或=,则语法分析器移动,表示还没有发现句柄的右端;如果是>关系,就调用归约。 三、算符优先分析法优缺点 算符优先分析法的优点是速度快,但缺点是无法发现由单个非终结符组成的“可归约串”。忽略非终结符在归约过程中的作用,存在某种危险性,可能导致把本来不成句子的输入串误认为是句子。 四、优先函数 优先函数是指用来计算优先关系的函数。优先函数的计算方法是:f(a) < g(b),如果 a < b;f(a) = g(b),如果 a = b;f(a) > g(b),如果 a > b。优先函数的问题是使得优先关系表中的空白项是模糊的,且使得错误的发现被推迟。 五、优先关系表的存储方式 优先关系表可以使用矩阵表示或优先函数表示。矩阵表示需要大量内存空间,但准确直观;优先函数需要内存空间小,但不利于出错处理。 六、LR 分析法 LR 分析法是指从左向右扫描输入字符串,构造最右推导的逆过程。LR 语法分析器适用于一大类上下文无关文法的语法分析。LR 分析法的优点是能识别几乎所有能用上下文无关文法描述的程序设计语言的结构,且可以和其他移动归约分析一样被有效地实现。 七、LR 语法分析器的优缺点 LR 语法分析器的优点是能识别几乎所有能用上下文无关文法描述的程序设计语言的结构,且可以和其他移动归约分析一样被有效地实现。但缺点是构造 LR 分析表需要复杂的计算。 八、错误恢复 算符优先分析器能发现的语法错误包括:如果栈顶的终结符和当前输入之间没有优先关系、如果发现句柄,但句柄不是任何产生式的右部。错误恢复的方法是给出相应的具有描述性的出错信息,并试图通过插入、删除来获得句柄。
身份认证 购VIP最低享 7 折!
30元优惠券
照旧的你好
  • 粉丝: 11
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜

最新资源