1. 编译与解释
2. 文法
1. 文法的定义
2. 文法的类型———需简单记忆
3. 语法的推导树
- 1、作用
- 通过
推导树
可以了解到
一种语法可表达的串
,构造的一些句型
是什么样子
- 通过
- 2、例题说明
- 1、
文法G
中的终结符[T]
为{a,b},一般以小写字母表示
, - 2、
文法G
中的非终结符[V](这种符号可以推出其他符号)
为{S,A}
,一般以大写字母表示
, - 3、
文法G
中的起始符[S]
为S
, - 4、
文法G
中的产生式[P]
为S->aAS|a
和A->SbA|SS|ba
, - 5、根据产生式
S->aAS|a
可以得出S->aAS
和S->a
, - 6、根据产生式
A->SbA|SS|ba
可以得出A->SbA
和A->ss
和A->ba
, - 7、使用产生式
S->aAS
可以得到第一步的语法树
flowchart TD 1[S] --- 2[a] & 3[A] & 4[S]
- 8、接着使用产生式
A->SbA
和S->a
可以得到第二步的语法树
flowchart TD 1[S] --- 2[a] & 3[A] & 4[S] 3[A] --- 5[S] & 6[b] & 7[A] 4[S] --- 8[a]
- 9、接着使用产生式
S->a
可以得到第三步的语法树
flowchart TD 1[S] --- 2[a] & 3[A] & 4[S] 3[A] --- 5[S] & 6[b] & 7[A] 4[S] --- 8[a] 5[S] --- 9[a]
- 10、从而得到构造
句型aabAa
的推导树
- 1、
3. 正规式(重点
)———对有限自动机
的另一种表达形式
1. 说明
- 1、符号说明
- 1)
|
代表或
的意思 - 2)
*
代表循环多次
的意思(0->无穷大)
- 1)
2. 例题
- 例题解析
- 1、第(1)个空解析———D
- A选项———S->aA、A->bS、S->aA、A->bS、S->aA、A->b———最终得到ababab
- B选项———S->bB、B->aS、S->bB、B->aS、S->bB、B->a———最终得到bababa
- C选项———S->aA、A->bS、S->bB、B->aS、S->aA、A->b———最终得到abbaaa
- D选项———S->bB、B->aS、S->bB、B->无法得到b开头的———所以无法识别babba
- 2、第(2)个空解析———C
- A选项———第(1)空的A\B\C\D选项都可以表达,过于宽泛
- B选项———只能表达abab...,不满足所有
- C选项———第(1)空的A\B\C选项到都可以表达,不能表达D,适用
- D选项———只能表达abab...baba...
- 1、第(1)个空解析———D
4. 有限自动机(重点
)
1. 表示方式
2. 考察形式
- 给一个图,判断
能否得到指定的串
,即看从起点
是否能够找到一条到终点的路
(例如:0011或111等)
3. 例题
- 例题解析———C———A为起点、C为终点
- A选项———(A输入0,进入B)(B输入0,还是在B)(B输入0,还是在B)(B输入0,还是在B)———最终没有到达C
- B选项———(A输入1,还是在A)(A输入1,还是在A)(A输入1,还是在A)(A输入1,还是在A)———最终没有到达C
- C选项———(A输入0,进入B)(B输入1,还是在C)(C输入0,进入B)(B输入1,进入C)———
最终到达C
- D选项———(A输入1,还是在A)(A输入0,进入B)(B输入1,进入C)(C输入0,进入B)———没有到达C
5. 表达式(重点
)
1. 说明———利用树的遍历
求前、中、后缀表达式
的过程
2. 例题
- 1、例题解析———D
- 先将
表达式
转换为树的形式
(括号不需要
构造到树中
) - 然后利用
树的遍历方式
求解
- 先将
6. 传值与传址(重点
)
0. 形参和实参
1. 形参———如上(swap方法参数列表中的x,y就是形参)
2. 实参———如上(main方法调用swap方法参数列表中的a,b就是实参)
1. 函数的调用方式
1. 传值调用————结果为4 3,3 4
2. 传址(引用)调用————结果为4 3,4 3