【编译原理】第三章部分课后题答案

news2024/11/27 6:16:28
第 三 章 课 后 习 题

T 3.1

考虑文法
S → ( L )   ∣   a L → L , S   ∣   S S \rightarrow (L)\space | \space a\\ L\rightarrow L, S \space | \space S S(L)  aLL,S  S
(a) 建立句子 ( a , ( a , a ) ) (a,(a,a)) (a,(a,a)) ( a , ( a , a ) , ( a , a ) ) (a,(a,a),(a,a)) (a,(a,a),(a,a)) 的分析树。

见下面两题。

(b) 为 (a) 的两个句子构造最左推导。

( a , ( a , a ) ) (a,(a,a)) (a,(a,a)) 最左推导的分析树(包括推导过程中的分析树):

在这里插入图片描述

( a , ( a , a ) , ( a , a ) ) (a,(a,a),(a,a)) (a,(a,a),(a,a)) 最左推导的分析树:
S ⇒ l m ( L ) ⇒ l m ( L , S ) ⇒ l m ( S , S ) ⇒ l m ( a , S ) ⇒ l m ( a , ( L ) ) ⇒ l m ( a , ( L , S ) ) ⇒ l m ( a , ( S , S ) ) ⇒ l m ( a , ( ( L ) , S ) ) ⇒ l m ( a , ( ( L , S ) , S ) ) ⇒ l m ( a , ( ( S , S ) , S ) ) ⇒ l m ( a , ( ( a , S ) , S ) ) ⇒ l m ( a , ( ( a , a ) , S ) ) ⇒ l m ( a , ( ( a , a ) , ( L ) ) ) ⇒ l m ( a , ( ( a , a ) , ( L ) ) ) ⇒ l m ( a , ( ( a , a ) , ( L , S ) ) ) ⇒ l m ( a , ( ( a , a ) , ( S , S ) ) ) ⇒ l m ( a , ( ( a , a ) , ( a , S ) ) ) ⇒ l m ( a , ( ( a , a ) , ( a , a ) ) ) S\Rightarrow_{lm} (L)\Rightarrow_{lm} (L,S) \Rightarrow_{lm} (S,S) \Rightarrow_{lm} (a,S) \Rightarrow_{lm}(a,(L)) \Rightarrow_{lm} (a,(L,S)) \Rightarrow_{lm} (a,(S,S)) \Rightarrow_{lm} (a,((L),S))\\ \Rightarrow_{lm} (a,((L,S),S)) \Rightarrow_{lm} (a,((S,S),S))\Rightarrow_{lm} (a,((a,S),S)) \Rightarrow_{lm} (a,((a,a),S)) \Rightarrow_{lm} (a,((a,a),(L)))\\ \Rightarrow_{lm} (a,((a,a),(L))) \Rightarrow_{lm} (a,((a,a),(L,S)))\Rightarrow_{lm} (a,((a,a),(S,S))) \Rightarrow_{lm} (a,((a,a),(a,S))) \Rightarrow_{lm} (a,((a,a),(a,a))) Slm(L)lm(L,S)lm(S,S)lm(a,S)lm(a,(L))lm(a,(L,S))lm(a,(S,S))lm(a,((L),S))lm(a,((L,S),S))lm(a,((S,S),S))lm(a,((a,S),S))lm(a,((a,a),S))lm(a,((a,a),(L)))lm(a,((a,a),(L)))lm(a,((a,a),(L,S)))lm(a,((a,a),(S,S)))lm(a,((a,a),(a,S)))lm(a,((a,a),(a,a)))
(c) 为 (a) 的两个句子构造最右推导。

( a , ( a , a ) ) (a,(a,a)) (a,(a,a)) 最右推导的分析树(包括推导过程中的分析树):

在这里插入图片描述

( a , ( a , a ) , ( a , a ) ) (a,(a,a),(a,a)) (a,(a,a),(a,a)) 最右推导:

S ⇒ r m ( L ) ⇒ r m ( L , S ) ⇒ r m ( L , ( L ) ) ⇒ r m ( L , ( L , S ) ) ⇒ r m ( L , ( L , ( L ) ) ) ⇒ r m ( L , ( L , ( L , S ) ) ) ⇒ r m ( L , ( L , ( L , a ) ) ) ⇒ r m ( L , ( L , ( S , a ) ) ) ⇒ r m ( L , ( L , ( a , a ) ) ) ⇒ r m ( L , ( S , ( a , a ) ) ) ⇒ r m ( L , ( ( L ) , ( a , a ) ) ) ⇒ r m ( L , ( ( L , S ) , ( a , a ) ) ) ⇒ r m ( L , ( ( L , a ) , ( a , a ) ) ) ⇒ r m ( L , ( ( S , a ) , ( a , a ) ) ) ⇒ r m ( L , ( ( a , a ) , ( a , a ) ) ) ⇒ r m ( S , ( ( a , a ) , ( a , a ) ) ) ⇒ r m ( a , ( ( a , a ) , ( a , a ) ) ) S\Rightarrow_{rm} (L) \Rightarrow_{rm} (L,S) \Rightarrow_{rm} (L,(L)) \Rightarrow_{rm} (L,(L,S)) \Rightarrow_{rm} (L,(L,(L)))\Rightarrow_{rm} (L,(L,(L,S)))\Rightarrow_{rm} (L,(L,(L,a))) \\ \Rightarrow_{rm} (L,(L,(S,a))) \Rightarrow_{rm} (L,(L,(a,a))) \Rightarrow_{rm} (L,(S,(a,a))) \Rightarrow_{rm} (L,((L),(a,a)))\Rightarrow_{rm} (L,((L,S),(a,a))) \\ \Rightarrow_{rm} (L,((L,a),(a,a))) \Rightarrow_{rm} (L,((S,a),(a,a)))\Rightarrow_{rm} (L,((a,a),(a,a))) \Rightarrow_{rm} (S,((a,a),(a,a)))\Rightarrow_{rm} (a,((a,a),(a,a))) Srm(L)rm(L,S)rm(L,(L))rm(L,(L,S))rm(L,(L,(L)))rm(L,(L,(L,S)))rm(L,(L,(L,a)))rm(L,(L,(S,a)))rm(L,(L,(a,a)))rm(L,(S,(a,a)))rm(L,((L),(a,a)))rm(L,((L,S),(a,a)))rm(L,((L,a),(a,a)))rm(L,((S,a),(a,a)))rm(L,((a,a),(a,a)))rm(S,((a,a),(a,a)))rm(a,((a,a),(a,a)))
(d) 这个文法产生的语言是什么?

该文法产生的语言是括号匹配的串,串中的各项用“,”隔开,项可以是括号匹配的子串或 a。

T 3.2

考虑文法
S → a S b S   ∣   b S a S   ∣   ε S\rightarrow aSbS\space|\space bSaS \space | \space \varepsilon SaSbS  bSaS  ε
(a) 为句子 a b a b abab abab 构造两个不同的最左推导,以此说明该文法是二义的。

第一种最左推导的分析树(包括推导过程中的分析树):

在这里插入图片描述

第二种最左推导的分析树(包括推导过程中的分析树):

在这里插入图片描述

一个文法,如果存在某个句子有不止一棵分析树与之对应,那么称这个文法是二义的;故,该文法是是二义的。

(b) 为 a b a b abab abab 构造对应的最右推导。

两种最右推导的分析树(包括推导过程中的分析树)如下:

在这里插入图片描述

(c) 为 a b a b abab abab 构造对应的分析树。

见上面四幅图。

(d) 这个文法产生的语言是什么?

通过最左推导的方式和产生式 S → a S b S\rightarrow aSb SaSb 可以得到前缀为若干个 a a a 的任意长度的串;

通过最左推导的方式和产生式 S → b S a S\rightarrow bSa SbSa 可以得到前缀为若干个 b b b 的任意长度的串;

题目给的产生式为 S → a S b S S\rightarrow aSbS SaSbS S → b S a S S\rightarrow bSaS SbSaS S → ε S\rightarrow \varepsilon Sε,由 S S S 可以推导出空串,可以说明可以产生 S → a S b S\rightarrow aSb SaSb S → b S a S\rightarrow bSa SbSa,因此由任意长度的前缀 a a a 和前缀 b b b 的子串可以构成 a a a b b b 任意交错的串;

又因为每个产生式中 a a a b b b 的个数都相同,故产生 a a a b b b 数目相等且任意长度的串


T 3.3

下面的二义文法描述命题演算公式,为它写一个等价的非二义性文法。
S → S   and   S   ∣   S   or   S   ∣   not   S   ∣   true   ∣   false   ∣   ( S ) S→S \space\textbf{and}\space S\space|\space S\space \textbf{or}\space S\space|\space \textbf{not}\space S\space|\space \textbf{true}\space|\space \textbf{false} \space|\space(S) SS and S  S or S  not S  true  false  (S)
通过引入非终结符消除二义性:
E → E or   T   ∣   T T → T and   F   ∣   F F → not   F   ∣   ( E )   ∣   true   ∣   false E\rightarrow E \textbf{or}\space T\space |\space T \\ T\rightarrow T \textbf{and}\space F\space |\space F \\ F\rightarrow \textbf{not} \space F\space |\space (E)\space |\space \textbf{true}\space |\space \textbf{false} \\ EEor T  TTTand F  FFnot F  (E)  true  false


T 3.4

文法
R → R   ′ ∣ ′   R   ∣   R   R   ∣   R ∗   ∣   ( R )   ∣   a   ∣   b R\rightarrow R\space '|' \space R \space |\space R \space R \space|\space R^*\space|\space(R)\space|\space a \space | \space b RR  R  R R  R  (R)  a  b
产生字母表 { a , b } \{a,b\} {a,b} 上所有不含 ε \varepsilon ε 的正规式。注意,第一条竖线加了引号,它是正规式的或运算符号,而不是文法产生式右部各选择之间的分隔符,另外 ∗ ^* 在这里是一个普通的终结符。该文法是二义的。

(a) 证明该文法产生字母表 { a , b } \{a,b\} {a,b} 上的所有正规式。

证明:

(1) 该文法产生的串是字母表 { a , b } \{a,b\} {a,b} 上的正规式:

R → a R\rightarrow a Ra R → b R\rightarrow b Rb产生 a a a b b b,而 a a a b b b { a , b } \{a,b\} {a,b}上的符号,因此是正规式。若 R 1 R_1 R1 R 2 R_2 R2产生正规式 α \alpha α β \beta β
则:
R → R 1 R 2 R\rightarrow R_1R_2 RR1R2 产生正规式 α β \alpha\beta αβ

R → R 1 ∣ R 2 R\rightarrow R_1|R_2 RR1R2 产生正规式 α   ∣   β \alpha\space|\space\beta α  β

R → R 1 ∗ R\rightarrow R_1^* RR1 产生正规式 α ∗ \alpha^* α

R → ( R 1 ) R\rightarrow (R_1) R(R1) 产生正规式 ( α ) (\alpha) (α)

(2) 字母表 { a , b } \{a,b\} {a,b} 上的所有正规式都可由此文法产生:

字母表 { a , b } \{a,b\} {a,b} 上的任一正规式(其中 α \alpha α β \beta β 为正规式)必为以下形式之一:

α β \alpha\beta αβ,可由 R → R R R\rightarrow RR RRR 产生

α   ∣   β \alpha\space | \space\beta α  β,可由 R → R   ∣   R R\rightarrow R\space | \space R RR  R 产生

α ∗ \alpha^* α,可由 R → R ∗ R\rightarrow R^* RR 产生

( α ) (\alpha) (α),可由 R → ( R ) R\rightarrow (R) R(R) 产生

a a a,可由 R → a R\rightarrow a Ra 产生

b b b,可由 R → b R\rightarrow b Rb 产生

因而,该文法产生字母表 { a , b } \{a,b\} {a,b} 上的所有正规式

(b) 为该文法写一个等价的非二义文法。它给予算符 ∗ ^* 、连接和 ∣ | 的优先级和结合性同 2.2 节中定义的一致。

该文法没有体现运算符 ∗ ^* ( ) () () ∣ | 和连接的优先级,因而是二义的。例如:
R ⇒ R   ∣   R ⇒ a   ∣   R   ⇒ a   ∣   R ∗ ⇒ a   ∣   b ∗ R ⇒ R ∗ ⇒ R   ∣   R ∗   ⇒ a   ∣   R ∗ ⇒ a   ∣   b ∗ R\Rightarrow R\space | \space R \Rightarrow a\space | \space R\space\Rightarrow a\space|\space R^*\Rightarrow a\space|\space b^* \\ R\Rightarrow R^* \Rightarrow R\space | \space R^*\space\Rightarrow a\space|\space R^*\Rightarrow a\space|\space b^* RR  Ra  R a  Ra  bRRR  R a  Ra  b
通过引入非终结符消除二义性:
E → E   ′ ∣ ′   T   ∣   T T → T F   ∣   F F → F ∗   ∣   ( E )   ∣   a   ∣   b E\rightarrow E\space'|' \space T \space|\space T \\ T\rightarrow TF\space |\space F \\ F\rightarrow F^*\space | \space (E)\space |\space a \space |\space b EE  T  TTTF  FFF  (E)  a  b
消除二义性后:
E ⇒ E   ∣   T ⇒ E   ∣   F ⇒ E   ∣   F ∗   ⇒ E   ∣   b ∗ ⇒ T   ∣   b ∗ ⇒ F   ∣   b ∗ ⇒ a   ∣   b ∗ E\Rightarrow E\space|\space T\Rightarrow E\space|\space F\Rightarrow E\space|\space F^*\space\Rightarrow E\space |\space b^* \Rightarrow T\space | \space b^* \Rightarrow F \space | \space b^*\Rightarrow a \space | \space b^* EE  TE  FE  F E  bT  bF  ba  b
(c) 按上面两个文法构造句子 a b   ∣   b ∗ a ab\space|\space b^*a ab  ba 的分析树。

存在二义性:

不存在二义性:

在这里插入图片描述


T 3.5

条件语句文法
s t m t → if   e x p r   then   s t m t   ∣   m a t c h e d _ s t m t m a t c h e d _ s t m t → if   e x p r   then   m a t c h e d _ s t m t   else   s t m s t   ∣   other stmt \rightarrow \textbf{if}\space expr \space \textbf{then} \space stmt \space | \space matched\_stmt \\ matched\_stmt \rightarrow \textbf{if} \space expr \space \textbf{then} \space matched\_stmt\space \textbf{else} \space stmst \space | \space \textbf{other} stmtif expr then stmt  matched_stmtmatched_stmtif expr then matched_stmt else stmst  other

试图消除悬空 e l s e else else 的二义性,请证明该文法仍然是二义的。

由于 m a t c h e d _ s t m t matched\_stmt matched_stmt不能保证 t h e n then then e l s e else else的配对,因而存在二义性。

句型 i f   e x p r   t h e n   i f   e x p r   t h e n   m a t c h e d _ s t m t   e l s e   i f   e x p r   t h e n   m a t c h e d _ s t m t   e l s e   s t m t if\space expr\space then \space if \space expr\space then \space matched\_stmt \space else \space if \space expr\space then \space matched\_stmt \space else \space stmt if expr then if expr then matched_stmt else if expr then matched_stmt else stmt 存在两个不同的最左推导。

期望的是:

if expr then
	if expr then
		matched_stmt
	else 
		if expr then
			matched_stmt
		else 
			stmt

一种和期望不一样的推导:

stmt
=> matched_stmt
=> if expr then matched_stmt else stmt
=> if expr then if expr then matched_stmt else stmt else stmt
=> if expr then if expr then matched_stmt else if expr then stmt else stmt
=> if expr then if expr then matched_stmt else if expr then matched_stmt else stmt

if expr then
	if expr then
		matched_stmt
	else 
		if expr then
			matched_stmt
else 
	stmt

另一种推导:

stmt
=> if expr then stmt
=> if expr then matched_stmt
=> if expr then if expr then matched_stmt else stmt
=> if expr then if expr then matched_stmt else matched_stmt 
=> if expr then if expr then matched_stmt else if expr then matched_stmt else stmt

if expr then
	if expr then
		matched_stmt
	else 
		if expr then
			matched_stmt
		else 
			stmt

T 3.8

(a) 消除习题 3.1 文法的左递归。
S → ( L )   ∣   a L → S L ′ L ′ →   , S L ′   ∣   ε S\rightarrow (L)\space | \space a \\ L\rightarrow SL' \\ L'\rightarrow\space ,SL'\space | \space \varepsilon S(L)  aLSLL ,SL  ε
(b) 为 (a) 的文法构造预测分析器。

F i r s t ( S ) = {   (   ,   a   } F i r s t ( L ) = {   (   ,   a   } F i r s t ( L ′ ) = {   ′ , ′   ,   ε   } F o l l o w ( S ) = {   )   ,   ′ , ′   ,   $   } F o l l o w ( L ) = {   )   ,   $   } F o l l o w ( L ′ ) = {   )   ,   $   } First(S) = \{\space(\space,\space a\space\} \\ First(L) = \{\space(\space,\space a\space\} \\ First(L') = \{\space','\space,\space\varepsilon\space\} \\\\ Follow(S) = \{\space)\space,\space','\space,\space\$\space\} \\ Follow(L) = \{\space)\space, \space\$\space\} \\ Follow(L')= \{\space)\space, \space\$\space\} \\ First(S)={ ( , a }First(L)={ ( , a }First(L)={ , , ε }Follow(S)={ ) , , , $ }Follow(L)={ ) , $ }Follow(L)={ ) , $ }

非终结符输入符号
()a,$
SS→(L)S→a
LL→SL'L→SL'
L'L'→εL→,SL'L'→ε

T 3.10

构造下面文法的 LL(1) 分析表。
D → T L T → int   ∣   real L → id   R R →   , id   R   ∣   ε D\rightarrow TL \\ T\rightarrow \textbf{int} \space | \space \textbf{real} \\ L\rightarrow \textbf{id} \space R \\ R\rightarrow\space ,\textbf{id}\space R \space | \space \varepsilon DTLTint  realLid RR ,id R  ε
先确定非终结符的 F i r s t First First F o l l o w Follow Follow 集:
F i r s t ( D ) = F i r s t ( T ) = { int , real } F i r s t ( L ) = { id } F i r s t ( R ) = { ′ , ′ , ε } F o l l o w ( D ) = F o l l o w ( L ) = { $ } F o l l o w ( T ) = { id } F o l l o w ( R ) = { $ } First(D)=First(T) = \{\textbf{int}, \textbf{real}\}\\ First(L)=\{\textbf{id}\} \\ First(R)=\{',', \varepsilon\} \\ \\ Follow(D)=Follow(L)=\{\$\} \\ Follow(T)=\{\textbf{id}\} \\ Follow(R)=\{\$\} First(D)=First(T)={int,real}First(L)={id}First(R)={,,ε}Follow(D)=Follow(L)={$}Follow(T)={id}Follow(R)={$}

非终结符输入符号
intrealid,$
DD→TLD→TL
TT→intT→real
LL→idR
RR→,idRR→ε

T 3.11

构造下面文法的 LL(1) 分析表。
S → a B S   ∣   b A S   ∣   ε A → b A A   ∣   a B → a B B   ∣   b S\rightarrow aBS\space |\space bAS \space | \space \varepsilon \\ A\rightarrow bAA\space | \space a \\ B\rightarrow aBB \space | \space b SaBS  bAS  εAbAA  aBaBB  b

F i r s t ( S ) = { a , b , ε } F i r s t ( A ) = F i r s t ( B ) = { a , b } F o l l o w ( S ) = F o l l o w ( A ) = F o l l o w ( B ) = { $ } First(S) = \{a, b, \varepsilon\}\\ First(A) = First(B) =\{a, b\} \\ \\ Follow(S)=Follow(A)=Follow(B)=\{\$\} First(S)={a,b,ε}First(A)=First(B)={a,b}Follow(S)=Follow(A)=Follow(B)={$}

非终结符输入符号
ab$
SS→aBS
S→ε
S→bAS
S→ε
S→ε
AA→aA→bAA
BB→aBBB→b

T 3.12

下面的文法是否为 LL(1) 文法,说明理由。
S → A B   ∣   P Q x A → x y B → b c P → d P   ∣   ε Q → a Q   ∣   ε S\rightarrow AB\space|\space PQx \\ A\rightarrow xy \\ B\rightarrow bc \\ P\rightarrow dP\space|\space \varepsilon\\ Q\rightarrow aQ\space | \space \varepsilon SAB  PQxAxyBbcPdP  εQaQ  ε
上面文法不是 LL(1) 文法。

LL(1) 文法:对于产生式 A → α   ∣   β A\rightarrow \alpha \space | \space \beta Aα  β 满足:

F I R S T ( α )   ∩   F I R S T ( β ) = ϕ FIRST(\alpha)\space∩ \space FIRST(\beta) = \phi FIRST(α)  FIRST(β)=ϕ

② 若 β ⇒ ∗ ε \beta\Rightarrow ^* \varepsilon βε ,那么 F I R S T ( α )   ∩   F o l l o w ( A ) = ϕ FIRST(\alpha)\space∩ \space Follow(A) = \phi FIRST(α)  Follow(A)=ϕ

而本题中, F I R S T ( A B ) = { x } FIRST(AB) = \{x\} FIRST(AB)={x} F I R S T ( P Q x ) = { d , a , x } FIRST(PQx) = \{d,a,x\} FIRST(PQx)={d,a,x},不满足条件 ①,故,上面文法不是 LL(1) 文法。


T 3.18

为习题3.3的文法构造SLR分析表

扩展文法:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

actiongoto
andornottruefalse()$S
0s2s3s4s51
1s6s7acc
2s2s3s4s58
3r4r4r4r4
4r5r5r5r5
5s2s3s4s59
6s2s3s4s510
7s2s3s4s511
8s6/r3s7/r3r3r3
9s6s7r12
10s6/r1s7/r1r1r1
11s6/r2s7/r2r2r2
12r6r6r6r6

T 3.29

(a) 为下面文法构造规范LR(1)分析表,画出像图3.20这样的状态转换图就可以。
S → V = E   ∣   E V → * E   ∣   id E → V S\rightarrow V\textbf{=}E\space|\space E\\ V\rightarrow \textbf{*}E\space|\space\textbf{id}\\ E\rightarrow V SV=E  EV*E  idEV
详述构建 I 0 I_0 I0的过程:

① 拓展文法:
S ′ → S      ( 0 ) S → V = E      ( 1 ) S → E      ( 2 ) V → * E      ( 3 ) V → id      ( 4 ) E → V      ( 5 ) S'\rightarrow S\space\space\space\space (0)\\ S\rightarrow V\textbf{=}E\space\space\space\space (1) \\ S\rightarrow E\space\space\space\space (2) \\ V\rightarrow \textbf{*}E\space\space\space\space (3) \\ V\rightarrow\textbf{id}\space\space\space\space (4)\\ E\rightarrow V \space\space\space\space (5) SS    (0)SV=E    (1)SE    (2)V*E    (3)Vid    (4)EV    (5)
② 由于 S ′ S' S后面不会存在任何字符,所以其 F o l l o w Follow Follow集中只有$元素,因此产生式(0)的搜索符为$

在这里插入图片描述

③ 对于项目 S ′ → ⋅   S   ,   S'\rightarrow ·\space S\space, \space S S ,  $   \space  ,可以将产生式(1)代入,因为项目右部 S S S后面为空串,所以新项目的搜索符为$,故得到新项目 S → ⋅   V = E   ,   S\rightarrow·\space V\textbf{=}E\space, \space S V=E ,  $   \space  ;类似地,将产生式(2)代入,得到新项目 S → ⋅   E   ,   S\rightarrow·\space E\space, \space S E ,  $

在这里插入图片描述

④ 对于项目 S → ⋅   V = E   ,   S\rightarrow·\space V\textbf{=}E\space, \space S V=E ,  $,可以将产生式(3)和(4)代入,因为项目右部 V V V后面为 = = =,所以新项目的搜索符为 = = =,而不是$,故得到新项目 V → ⋅   * E   ,   = V\rightarrow·\space\textbf{*}E\space, \space= V *E , = V → ⋅   id   ,   = V\rightarrow·\space\textbf{id}\space, \space= V id , =

在这里插入图片描述

⑤ 对于项目 S → ⋅   E   ,   S\rightarrow·\space E\space, \space S E , $,可以将产生式(5)代入,因为项目右部 E E E后面为空串,所以新项目的搜索符为$,故得到新项目 S → ⋅   V   ,   S\rightarrow·\space V\space,\space S V ,  $

在这里插入图片描述

⑥ 项目 V → ⋅   * E V\rightarrow ·\space\textbf{*}E V *E V → ⋅   id V\rightarrow· \space\textbf{id} V id 不会产生新的项目

⑦ 对于项目 S → ⋅   V   ,   S\rightarrow·\space V\space,\space S V ,  $,可以将产生式(3)和(4)代入,注意此时产生的新项目应该继承项目 S → ⋅   V   ,   S\rightarrow·\space V\space,\space S V ,  $的搜索符$,因此两个新项目为 V → ⋅   * E   ,   V\rightarrow·\space\textbf{*}E\space, \space V *E , $和 V → ⋅   id   ,   V\rightarrow·\space\textbf{id}\space, \space V id , $

在这里插入图片描述

⑧ 不妨将第一个分量相同的项目对应的搜索符集合合并一下

在这里插入图片描述

生成其他状态的道理类似,只展示结果。

在这里插入图片描述

在这里插入图片描述

(b) 上述状态转换图有同心项目集吗?若有,合并同心项目集后是否会出现动作冲突?

其中 I 4 I_4 I4 I 11 I_{11} I11 I 5 I_5 I5 I 12 I_{12} I12 I 7 I_7 I7 I 13 I_{13} I13 I 8 I_8 I8 I 10 I_{10} I10分别为同心项目集。

同心项目集的合并(又得到LALR自动机的过程)不会引入新的移进-归约冲突,可能会引入新的归约-归约冲突;又因为规范LR(1)自动机已经解决了移进-归约冲突的问题,所以只需要验证是否存在归约-归约冲突即可。显然合并后不存在归约-归约冲突,综上,不存在动作冲突。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC学习:三、SpringMVC的请求与响应

4. SpringMVC的请求与响应 4.1 RequestMapping ​ 使用RequestMapping注解可以定义不同的处理器映射规则。 1. URL路径映射: RequestMapping(value“/queryAll”)或RequestMapping("/queryAll”) value的值是数组,可以将多个url映射到同一个方法…

计算机研究生就业方向之互联网安全

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前…

CSS 居中总结

文章目录CSS 居中总结水平居中文字水平居中块元素水平居中行内元素和行内块元素水平居中垂直居中文字垂直居中单行文字多行文字块元素居中块元素居中(方法二)块元素居中(方法三)行内元素、行内块元素居中flex居中CSS 居中总结 水…

web前端期末大作业实例 (1500套) 集合

文章目录📚web前端期末大作业 (1500套) 集合一、网页介绍二、网页集合💌表白网页 125套 (集合)💙Echarts大屏数据展示 150套 (集合)一、基于HTMLEcharts技术制作二、基于VUEEcharts技术制作🎁更多源码📚web前端期末大作…

去中心化的互联网环境,有一种神奇的商业模式,无产品也可以创业

现在的电商行业做分销的平台越来越多,竞争力也越渐增大,不得不使用一些电商商业模式来让用户进来并留下来。 ​ 但是在经济环境和疫情环境的双重影响下,每个人或多或少都被影响到了。虽然有很多行业低落,但是也有一些行业兴起&…

Spring事务及Spring整合MyBatis

SM整合的步骤 1,建库建表 2,新建maven模块 3,修改maven目录 4,修改pom.xml文件,添加依赖 5,添加MyBaits模板(SqlMapperConfig.xml和XXXMapper.xml文件) 6,添加Appli…

小程序中的轮播图

目录 小程序的宿主环境 - 组件 1.scroll-view 组件的基本使用2.swiper 和 swiper-item 组件的基本使用3.text 组件的基本使用4.rich-text 组件的基本使用附:微信小程序轮播图单独添加图片、修改轮播图图片、单独修改某张图片总结 小程序的宿主环境 - 组件 1.scrol…

北京智和信通:交换机策略查询与自动化配置

在网络中交换机占据重要位置,一旦交换机被攻击或破坏,都将使整个网络处于危险之中。在网络的日常配置管理中,交换机的配置也是核心工作,但在交换机的配置过程复杂,而且根据品牌及型号的不同,配置方式也不相…

利用2阶分数阶微分掩模的边缘检测(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

java计算机毕业设计基于安卓Android的装维助手APP

项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于装维助手APP当然也不能排除在外,随着网络技术的不断成熟,带动了装维助手APP,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性…

服务器负载过高实例分析

一、问题现象 top 命令查看显示服务器负载情况,服务器负载1.31,而且长时间没降下去,CPU使用率99.9%也异常飚高 load average :系统平均负载均值,三列分别代表 1分钟、5分钟、15分钟。理论上,值越小越好。负…

C4D中使用python脚本1

学习视频链接 关于C4D与Python那些事_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1et411172W/ 目录 一、简单用法 二、C4D包 2.1 vector 矢量 2.2 矩阵 2.3 用脚本创建对象 2.4 几何体结构 三、制作效果 3.1 洗牌 3.2 后面的项目单独开文章 一、简单用法 …

java小技能:对list集合根据条件进行分组、过滤和字段筛选

文章目录 引言I 对list根据条件进行分组1.1 费率信息实体1.2 dto1.3 查询数据II 对list根据条件进行过滤和字段筛选1.1 代理商配置角色权限步骤1.2 实体1.3 穿透删除所有下级代理商相对应的权限值引言 需求背景:查询机构下的代理商费率信息,查询结果对分润和返利进行分组。 …

【云计算与大数据技术】Spark的解析(图文解释 超详细必看)

一、Spark RDD Spark是一个高性能的内存分布式计算框架,具备可扩展性,任务容错等特性,每个Spark应用都是由一个driver program 构成,该程序运行用户的 main函数 。 Spark提供的一个主要抽象就是 RDD(Resilient Distributed Data…

Java搭建宝塔部署实战SSM智能养生平台管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Java开发的SSM智能养生平台管理系统源码。 技术架构 技术框架:ssm layui jsp mybatis bootstrap jquery mysql5.7运行环境:jdk8 nginx1.20 tomcat9 IntelliJ …

与电装DENSO建立EDI连接需要掌握哪些信息?

项目背景 株式会社电装DENSO CORPORATION是世界汽车零部件及系统的顶级供应商,在2013年《财富》周刊公布的世界500强企业排名中,位列第242名。作为世界顶级汽车技术、系统以及零部件的全球性供应商,电装在环境保护、发动机管理、车身电子产品…

DocuWare平台——用于文档管理和工作流程自动化的内容服务平台详细介绍(下)

接上篇~~ 三、处理文档、控制工作流程 顺畅的信息流是每个生产过程的基础。自动化任何基于文档的任务(从有效的重新提交文档到复杂的审批工作流程),让您的团队在跨组织和跨部门的工作中畅通无阻。 具有列表的任务管理 通过自动汇总当前信…

数字分类

目录 1012:数字分类 输入格式: 输出格式: 输入样例 1: 输出样例 1: 输入样例 2: 输出样例 2: 代码长度限制: 时间限制: 内存限制: 思路: 1.变量存储 1.2代码: 大坑,好多坑: 坑点1&#xff1…

Android 动态分区详解(六) 动态分区的底层机制

文章目录 1. Android 动态分区的两重含义2. device mapper 的原理3. linear 映射的原理3.1 多个设备映射示例3.2 `dmsetup create` 命令参数解释1. `dmsetup create` 命令2. 映射表格式解析3.3 单个设备映射示例1. 使用 dmsetup 映射单个设备2. 使用 dmctl 映射 super 设备本文…

二、物理层(二)传输介质和物理层设备

目录 2.1物理层概述 2.2导向型传输介质 2.2.1双绞线 2.2.2同轴电缆 2.2.3光纤 2.3非导向型传输介质 2.3.1无线电波 2.3.2微波 2.3.3红外线、激光 2.4物理层设备 2.4.1中继器 2.4.2集线器 2.1物理层概述 物理层考虑的是如何在连接到各种计算机的传输媒体上传输数据比…