编译原理要点

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)带括号的不能作为树的跟节点,要带上一层,但是其短语要用()包裹住。

不带括号的短语是直接短语。

自身也是子树

一个结点不能称为树

 

句柄,最左直接短语要从子树上找。

 

 

原文地址:https://www.cnblogs.com/yzdwd/p/13234901.html