跳到主要内容

2025-2026学年上学期期末

华东师范大学期末试卷A卷 2025-2026 学年第 一 学期

一、选择题

  1. 设正规式 (regular expression)
r=(ab)(cde)(xy)r = (a\mid b)(c\mid d\mid e)(x\mid y)

L(r)L(r) 中元素个数(the number of elements in L(r)L(r))为()。

A. 6

B. 12

C. 18

D. 24 2. 文法 G[S]G[S]:

SaSbabS \to aSb\,\mid\,ab

所识别的语言是(the language recognized by the grammar)是()。

A. {anbnn0}\{a^nb^n\,\mid\,n \geq 0\}

B. {anbnn1}\{a^nb^n\,\mid\,n \geq 1\}

C. {anbmn,m1}\{a^nb^m\,\mid\,n,m \geq 1\}

D. {(ab)nn1}\{(ab)^n\,\mid\,n \geq 1\}

!!!warning 原题遗失,但原题是错题

  1. 给定文法 GGSS为开始符号):
SaSBBbBcεS \to aS\,\mid\,B \\ B \to bBc\,\mid\,ε

下列哪些符号串是 L(G)L(G) 中的元素(which string is in L(G)L(G))。

A. a2b3c3a^2b^3c^3

B. a2b3c2a^2b^3c^2

C. abab

D. a3ca^3c

  1. 一个 LR(1)LR(1) 文法(an LR(1) grammer)一定是()。

A. 二义性文法

B. 无二义性文法

C. 左递归文法

D. LL(1) 文法

二、填空题

  1. 已知文法 G[E]G[E]:
EETTTT/FFF(E)id\begin{aligned} E &\to E-T\,\mid\,T \\ T &\to T/F\,\mid\,F \\ F &\to (E)\,\mid\,id \end{aligned}

则终结符集合(terminal set)为______,非终结符集合(non-terminal set)为)______。

  1. 编译程序的工作过程一般可分为(the phases of a compile):______、______、______、______、______、______等基本阶段,同时还会伴有(also with)______和______。

  2. 一个活动记录(activity record / stack frame)通常包括______、______、______、______、______等若干部分。

  3. DFA和NFA主要区别在于(the key difference between DFA and NFA):______。

三、简答

  1. 证明文法 EE+EEˆEEidE \to E + E \mid E \,\,\texttt{\^{}}\, E \mid -E \mid id 具有二义性。
  2. 为文法 L={anbmcn},n1,m0}L = \{a^nb^mc^n\},n \geq 1,m \geq 0\} 设计CFG。
  3. 对于属性文法

SpAqS \to pAq {print 1};

SpS \to p {print 2};

AASA \to AS {print 3};

ArA \to r {print 4};

输入串为 prpq,输出为什么

  1. 对于文法:
SAdAaAbc\begin{aligned} S &\to Ad\\ A &\to aAb \mid c \end{aligned}

a. 给出 aAbdaAbdacbdacbd 的句柄

b. 分别给出 aacbbdaacbbd 的最左和最右推导

  1. 消除下列文法的左递归
EETTTT/FFF(E)id\begin{aligned} E &\to E - T \mid T\\ T &\to T / F \mid F\\ F &\to (E) \mid id \end{aligned}

四、计算

  1. 对于正则表达式 r=(ab)(ababab)r = (a\mid b)^*(aba\mid bab)

a. 使用直接构造法构造 DFA,给出状态表

b. 最小化上一问的 DFA ,给出状态表或说明合并结果

  1. 对于文法
SABAaAεBbBCCcCd\begin{aligned} S &\to AB\\ A &\to aA\mid ε\\ B &\to bB\mid C\\ C &\to cC\mid d \end{aligned}

a. 构造 LR(0) 规范集组

b. 给出 follow 集

c. 构造 SLR(1) 状态表,说明是否为 SLR(1) 文法

d. 对于 $aabbccdd$$,给出文法分析过程

  1. 给出下列代码的三地址码形式
while(m*2 < n+k OR m != k)
while(n - m >= 3 AND k < 8>)
{
n = n - 1;
k = k + m;
}