期末考试结束了,把之前的作业和复习笔记整理到博客上。
后面会持续更新,因为博主在备战考研,更新速度会有些慢。
目录
第 1 章 引论
第 2 章 文法和语言
2.1 句型分析和语法树
令文法G[E]为:E->T | E+T | E-T T->F | T*F F->(E)|i
证明 E+T*F 是它的一个句型,给出该句型的所有短语、直接短语和句柄。
(1)
∵
\because
∵ E=>T=>E+T=>E+T*F
即 E
⇒
∗
\stackrel{*}{\Rightarrow}
⇒∗E+T*F
∴
\therefore
∴ E+T*F 是文法G[E]的一个句型
(2) 由(1)中的推导可以构造句型 E+T*F 的语法树如下:
![](https://img-blog.csdnimg.cn/20210711163830825.png)
该句型的短语为 E+T*F、T*F
直接短语为 T*F
句柄为 T*F
2.2 文法设计
请构造一文法,使文法产生的语言是正偶数集合,并规定偶数非0开头。
G
=
{
{
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
}
,
{
S
,
A
,
B
,
B
′
,
C
,
D
}
,
S
,
P
}
P
=
{
S
→
A
B
C
∣
D
A
→
1
∣
2
∣
3
∣
4
∣
5
∣
6
∣
7
∣
8
∣
9
B
→
B
′
B
∣
ε
B
′
→
0
∣
1
∣
2
∣
3
∣
4
∣
5
∣
6
∣
7
∣
8
∣
9
C
→
0
∣
2
∣
4
∣
6
∣
8
D
→
2
∣
4
∣
6
∣
8
}
\begin{aligned} &\mathrm{G}=\left\{\{0,1,2,3,4,5,6,7,8,9\},\left\{\mathrm{S}, \mathrm{A}, \mathrm{B}, \mathrm{B}^{\prime}, \mathrm{C}, \mathrm{D}\right\}, \mathrm{S}, \mathrm{P}\right\} \\ &\mathrm{P}=\{\mathrm{S} \rightarrow \mathrm{ABC}|\mathrm{D} \\ &\hspace{2.3em} \mathrm{A} \rightarrow 1|2|3|4|5|6|7|8|9 \\ &\hspace{2.3em} \mathrm{B} \rightarrow \mathrm{B}^{\prime} \mathrm{B}| \varepsilon \\ &\hspace{2.3em} \mathrm{B}^{\prime} \rightarrow 0|1|2|3|4|5|6|7|8|9 \\ &\hspace{2.3em} \mathrm{C} \rightarrow 0|2| 4|6| 8 \\ &\hspace{2.3em} \mathrm{D} \rightarrow 2|4|6|8\} \end{aligned}
G={{0,1,2,3,4,5,6,7,8,9},{S,A,B,B′,C,D},S,P}P={S→ABC∣DA→1∣2∣3∣4∣5∣6∣7∣8∣9B→B′B∣εB′→0∣1∣2∣3∣4∣5∣6∣7∣8∣9C→0∣2∣4∣6∣8D→2∣4∣6∣8}
第 3 章 词法分析
设字母表 ∑ = {0, 1},给出 ∑ 上的正规式 r = (0|10)*
3.1 正规式 → \rightarrow →NFA
构造 NFA N,使得L(N) = L(r)
NFA N 的构造过程如下:
(*) 即为所求的 NFA N