软件设计师-编译原理

1.文法程序

1.1认识终结符和非终结符

终结符是一个原子量,不能再分解了,不能单独在左边的。用小写的字符表示。

非终结符可理解为一个可以再进行拆分的元素。用大写字母表示。

1.2文法的类型

0型文法

软件设计师-编译原理

() 闭包表示集合中的任意个元素任意组合成一个串。

1型文法

软件设计师-编译原理

2型文法

软件设计师-编译原理

3型文法

软件设计师-编译原理

 2.正规式(正则表达式)

软件设计师-编译原理

 x*表示x的个数从0个到无穷个。

状态图∑小写表示不需要输入任何元素就可以转换到下一个状态,也就是输入为空的时候就可以转换到下一个状态.


有限自动机(有穷自动机)

1.NFA与DFA的定义

NFA 不确定的有限自动机 DFA确定的有限自动机

   软件设计师-编译原理


语法推导数

1.每个节点都有一个标记,此标记是V的一个符号;

2.根的节点是S;

3若一节点n至少有一个它除自己外的子孙,并且标记为A,则A肯定在Vn中.

4.如果节点n的直接子孙,从左到右的次序是节点n1,n2,..nK,其 标记分别是A1,A2,....Ak,那么

A->A1,A2...Ak,一定是P中的一个产生式。

软件设计师-编译原理

短语 语法树中任意一个节点的叶子节点就是短语

直接短语  语法树中节点与子节点