46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
---
|
||
title: 2025-2026学年上学期期中
|
||
---
|
||
|
||
## 华东师范大学过程型测试 2025-2026 学年第 一 学期
|
||
|
||
一、给定下面正则定义给出:
|
||
|
||
$$
|
||
(a|b)^*abb
|
||
$$
|
||
|
||
1.利用 Thompson 构造法,为 该正则表达式对应的 NFA;[^1]
|
||
|
||
3.[^2]使用子集构造法将上面得到的 NFA 转换为 DFA;
|
||
|
||
4.对上述 DFA 进行最小化。
|
||
|
||
二、考虑如下描述简单赋值语句与算数表达式的文法:
|
||
|
||
$$
|
||
1) S \rightarrow id := E ; \\
|
||
2) E \rightarrow E + T | T \\
|
||
3) T \rightarrow T * F | F \\
|
||
4) F \rightarrow ( E ) | id \\
|
||
$$
|
||
|
||
1. 对该文法进行消除左递归与提取左因子。
|
||
2. 根据 1 的新文法,求出每个非终结符的 FIRST 集合和 FOLLOW 集合。
|
||
3. 依据新文法的 FIRST / FOLLOW 集合,构造该文法的 LL(1) 分析表;
|
||
4. 设输入串为:
|
||
|
||
$id := id + id * id ; \$$[^3]
|
||
|
||
给出对应的 LL(1) 分析程序的分析过程(最左推导),要求:
|
||
|
||
1. 采用“栈内容 / 当前输入符号 / 所用产生式或动作”三列形式逐步写出推导过程;
|
||
2. 直到栈与输入都只剩下 $\$$[^4] 为止。
|
||
|
||
提示:可按课堂 LL(1) 实例的格式直接书写推导步骤。
|
||
|
||
[^1]: 原文如此,译者仅作保留;
|
||
[^2]: 原文序号如此排列,不存在第二小文;
|
||
[^3]: 原文此处 $\$$ 为 $\mathbb{S}$
|
||
[^4]: 原文此处 $\$$ 为 #
|