1.自底向上 要写:驱动程序
2 自底向上 关键:寻找句柄
3.产生正规语言的文法为 3型
4.与(a|b)* 等价的正规式为 (a*b*)*
5.消除左递归:要引进非终结符,提取左因子
S-> SaA|Se|B -> S(aA|e)|B 引进非终结符S“(,) 非终结符要放在最后。 ->BS‘ S'->(aA|e)S'|反三
A-> BbA|B ->B(bA|e) 引进非中劫符A’ ->BA' A'-.>bA|e
6.LR(k)方法是 从左到右 每次向前预测k步的一种编译方法
7.递归下降法允许任一一个非终结符是直接左递归的。
8简单文法不允许任一产生式产生相同右部
9.编译程序包含五个部分:词法分析 语法分析 中间代码生成 代码优化 目标代码生成
10.词法分析 用于识别单词
11.语法分析:发现语法错误
12.关于解释程序描述正确的是:解释程序在处理程序时不产生目标代码
13.解释程序处理语言时采用的方法是:将源程序转为中间代码 再解释执行。
14.语法分析器的作用:1.分析单词如何构成语句与说明 2.分析语句与说明如何构成程序 3.分析程序的结构
15.编译程序是一种解释程序
16.文法G 所描述的语言是:由文法的开始符号推出的所有终极符号的集合
文法分四种类型:0型文法:前后文无关文法 1型文法:前后文有关文法 2型文法:上下文无关文法 3 型文法:正规文法
17.一个上下文无关文法包含四个部分:1.一组非终结符 2.一组终结符 3.一个开始符号 4.一组产生式
18.编译原理:除了 词法分析 语法分析 语义分析 中间代码生成 代码优化 还伴随有:表格处理 与 出错处理
19.如果源程序是高级语言写的,目标程序是机器语言程序或汇编程序,其翻译程序称为编译程序
20.编译方式与解释方式的根本区别在于:是否产生目标代码
21.对于编译程序而言:输入的是源程序 输出的是目标程序
22.产生式是用于定义 语法成分的一种书写规则
23.语法分析最常用的两种分析方法:自上而下 自下而上
24.1.什么是句子:设G是给定的文法,S是开始符号,如果Sx(x属于VT*) x称为一个句子
2.什么是语言:设G【s】是给定文法,由G 定义的L【G】为 L[G]={x|Sx x属于VT*}
25正规文法产生的语言都可以用上下文无关文法来描述
26.注意一般 p->np|N 右侧p写在右侧
2.新变量放左侧 最后一步推导循环变量放右侧
有孩子才叫树,(T)带括号的不能作为树的跟节点,要带上一层,但是其短语要用()包裹住。
不带括号的短语是直接短语。
自身也是子树
一个结点不能称为树
句柄,最左直接短语要从子树上找。