编译原理期末复习 | 词法分析
期末考考完想着这次复习得不错,把笔记分享出来叭~ 但因为是自用笔记,所以很多地方写的并不是那么详细,适合针对性复习,不适合一点都不懂的直接看这个来学。如果有看到书上哪里不会的不妨看看本笔记,可能会更通俗易懂。
词法分析
空串和空集的区别
集合的乘积
- 所有满⾜ x∈A,y∈B 的符号串 xy 构成的集合。
符号串的幂和集合的幂要区分: (特别是0次幂)
求集合的闭包
描述语言的文法是不唯一的,即一个语言可以有很多种文法,但是给定了一个文法,其描述的语言是唯一的。
推导、直接推导、广义推导
- 直接推导: 一步推导(顾名思义,只推一步)
一步以上推导: 推一步或若干步(>=1步)
广义推导: 推0步或若干步(>=0步)
注意区分推导和规则的符号。
证明符号串是文法的句子/句型
证明是句型的话,即证明文法可以广义推导(0步或n步)出这个符号串,这个符号串就是句型。推到最后无法再推(没有非终结符了)的结果是这个符号串,这个符号串就是句子。
句型: 含若干个终结符/非终结符的符号串,可以继续推导直到最后只剩终结符的句型就是句子。
句子: 只含终结符的符号串
句子是特殊的句型。
文法和语言的书写格式
最左推导、最右推导、规范规约
最左推导 : 每次对整个符号串中 最左边 的非终结符推导
最右推导 : 每次对整个符号串中 最右边 的非终结符推导
规约: 推导的逆过程,从句子(全是终结符),按照规则将符合规则右部的部分用规则左部替换。
规范规约是最左规约,规范推导是最右推导(两者互为逆过程)
规则的递归、文法的的递归
给出文法 , 写出句型 、句子、短语 、直接短语、句柄
子树法
例题1:
例题2:
判断文法是否有二义性
其他
本章其他几个小知识点不算很重点而且比较简单好理解,就没有整理了,大概列一下还有哪些需要掌握的细节。
- 0型文法、1型文法、2型文法、3型文法:理解区别是什么,理解上下文无关、上下文有关、递归是什么概念。
1型(上下文有关文法)2型(上下文无关文法)3型(递归文法)
- 文法实用性限制、消除有害规则、多余规则
- 消除文法二义性(消除左递归)(会在语法分析那章详细讲)