南邮《编译原理》习题解答

南邮《编译原理》习题解答
南邮《编译原理》习题解答

《编译原理》习题解答:

第一次作业:

P14 2、何谓源程序、目标程序、翻译程序、汇编程序、编译程序和解释程序?它们之间可能有何种关系?

答:被翻译的程序称为源程序;

翻译出来的程序称为目标程序或目标代码;

将汇编语言和高级语言编写的程序翻译成等价的机器语言,实现此功能的程序称为翻译程序;

把汇编语言写的源程序翻译成机器语言的目标程序称为汇编程序;

解释程序不是直接将高级语言的源程序翻译成目标程序后再执行,而是一个个语句读入源程序,即边解释边执行;

编译程序是将高级语言写的源程序翻译成目标语言的程序。

关系:汇编程序、解释程序和编译程序都是翻译程序,具体见P4 图 1.3。

P14 3、编译程序是由哪些部分组成?试述各部分的功能?

答:编译程序主要由8个部分组成:(1)词法分析程序;(2)语法分析程序;(3)语义分析程序;(4)中间代码生成;(5)代码优化程序;(6)目标代码生成程序;(7)错误检查和处理程序;(8)信息表管理程序。具体功能见P7-9。

P14 4、语法分析和语义分析有什么不同?试举例说明。

答:语法分析是将单词流分析如何组成句子而句子又如何组成程序,看句子乃至程序是否符合语法规则,例如:对变量x:= y 符合语法规则就通过。语义分析是对语句意义进行检查,如赋值语句中x与y类型要一致,否则语法分析正确,语义分析则错误。

补充:为什么要对单词进行内部编码?其原则是什么?对标识符是如何进行内部编码的?答:内部编码从“源字符串”中识别单词并确定单词的类型和值;原则:长度统一,即刻画了单词本身,也刻画了它所具有的属性,以供其它部分分析使用。对于标识符编码,先判断出该单词是标识符,然后在类别编码中写入相关信息,以表示为标识符,再根据具体标识符的含义编码该单词的值。

P38 1、设T1={11,010},T2={0,01,1001},计算:T2T1,T1*,T2+。

T2T1={011,0010,0111,01010,100111,1001010}

T1*={ε,11,010,1111,11010,01011,010010……}

T2+={0,01,1001,00,001,01001,010,0101……}

P38-39 8、设有文法G[S]:

S∷=aAb

A∷=BcA | B

B∷=idt |ε

试问下列符号串(1)aidtcBcAb (2)aidtccb(4)abidt是否为该文法的句型或句子。(1)S?aAb?aBcAb?aidtcAb?aidtcBcAb 句型但不是句子;

(2)S?aAb?aBcAb?aidtcAb?aidtcBcAb?aidtccAb?aidtccBb?aidtccb;是句型也是句子;

(4)该文法的句子或句型的最后一个字符串一定是字符“b”;

P39 11、试分别描述下列文法所产生的语言(文法开始符号为S):(1)S∷=0S | 01

(2)S∷=aaS | bc

(1)L(G)={0n1| n≥1};{解题思路:将文法转换为正规表达式} (2)L(G)={a2n bc | n≥0}。

P39 12、试分别构造产生下列语言的文法:

(1){ ab n a | n=0,1,2,3……}

(3){ aba n | n≥1}

(5){ a n b m c p | n,m,p≥0}

(1)G={V N,V T,P,S},V N={S,A },V T={a,b},

P:S∷=aAa

A∷=bA |ε

(3)G={V N,V T,P,S},V N={S,A },V T={a,b},

P:S∷=abA

A∷=aA | a

(5)①G={V N,V T,P,S},V N={S,A ,B,C},V T={a,b,c},P:S∷=ABC

A∷=aA |ε

B∷=bB |ε

C∷=cC |ε

②G={V N,V T,P,S},V N={S},V T={a,b,c},

P:S∷=aS | bS | cS |ε

P39 15. 设文法G规则为:

S::=AB

B::=a|Sb

A::=Aa|bB

对下列句型给出推导语法树,并求出其句型短语,简单短语和句柄。(2)baabaab (3)bBABb

解(2)S

A B

A a S

b B A B

a b B a

a

句型baabaab的短语a, ba, baa, baab, baabaab,简单短语a,句柄 a

S

(3)

A B

b B

S b

A B

短语bB, AB, ABb,bBABb

简单短语bB, AB,

句柄bB

P41 24. 下面文法那些是短语结构文法,上下文有关文法,上下文无关文法,及正规文法?

1.S::=aB B::= cB B::=b C::=c

2.S::=aB B::=bC C::=c C::=ε

3.S::=aAb aA::=aB aA::=aaA B::=b A::=a

4.S::=aCd aC::=B aC::=aaA B::=b

5.S::=AB A::=a B::=bC B::=b C::=c

6. S::=AB A::=a B::=bC C::=c C::=ε

7. S::=aA S::= ε A::=aA A::=aB A::=a B::=b

8. S::=aA S::= ε A::=bAb A::=a

短语结构文法(0) 4

上下文有关文法(1) 3

上下文无关文法(2) 5 6 8 或者 2 5 6 7 8

正规文法(3) 1 2 7 或者 1

P42 29. 用扩充的BNF表示以下文法规则:

1.Z::=AB|AC|A

2.A::=BC|BCD|AXZ|AXY

3.S::=aABb|ab

4.A::=Aab|ε

解:

1.Z::=A(B|C|ε)::=A[B|C]

2.A::=BC(ε|D)|{X(Z|Y)}::= BC[D]|{X(Z|Y)}

3.A::=a((AB|ε)b) ::= a[AB]b

4.A::={ab|ε}::={ab}

P74 4. 画出下列文法的状态图:

Z::=Be

B::=Af

A::=e|Ae 并使用该状态图检查下列句子是否该文法的合法句子:f, eeff, eefe。

由状态图可知只有eefe是该文法的合法句子。

P74 5. 设右线性文法G=({S, A, B}, {a, b}, S, P),其中P组成如下:

S::=bA A::=bB A::=aA A::=b B::=a

画出该文法的状态转换图。

P74 6. 构造下述文法G[Z]的自动机,该自动机是确定的吗?它相应的语言是什么?

Z::=A0 A::=A0|Z1|0

解1:将左线性文法转换为右线性文法,由于在规则中出现了识别符号出现在规则右部的情形,因此不能直接使用书上的左右线性文法对应规则,可以引入非终结符号B,将左线性文法变为Z::=A0 A::=A0|B1|0 B::=A0,具体为:

A := Z1 A := B1

A := A01

Z := A0 B := A0

将所得的新左线性文法转换成右线性文法:

此时利用书上规则,其对应的右线性文法为:A::=0A|0B|0 Z::=0A B::=1A 解2:先画出该文法状态转换图:

NFA=({S ,A ,Z},{0,1},M ,{S},{Z})

其中M : M (S ,0)={A} M (S ,1)=? M (A ,0)={A ,Z} M (A ,1)=?

M (Z ,0)=? M (Z ,1)={A}

显然该文法的自动机是非确定的;它相应的语言为:{0,1}上所有满足以00开头以0

根据其转换系统可得状态转换集、状态子集转换矩阵如下表所示: 则其相应的DFA 为:

P74 8. 设 (NFA) M = ( {A, B}, {a, b}, M, {A}, {B} ),其中M 定义如下:

M (A, a) = {A, B} M (A, b) = {B} M (B, a) = ? M (B, b) = {A, B}

请构造相应确定有穷自动机(DFA) M ’。 解:构造一个如下的自动机(DFA) M ’, (DFA) M ’={K, {a, b}, M ’, S, Z}

K 的元素是[A] [B] [A, B]

由于M (A, a )={A, B},故有M ’([A], a )=[A, B]

同样 M ’([A],b )=[B]

M ’([B],a )= ?

M ’([B],b )=[A ,B]

由于M ({A ,B},a )= M (A ,a )U M (B ,a )= {A ,B}U ?= {A ,B} 故 M ’([A ,B],a )= [A ,B]

由于M ({A ,B},b )= M (A ,b )U M (B ,b )={B}U {A ,B} = {A ,B} 故 M ’([A ,B],b )= [A ,B]

S=[A],终态集Z={[A,B],[B]}

重新定义:令0=[A] 1=[B] 2=[A, B],则DFA如下所示:

可以进一步化简,把M’的状态分成终态组{1,2}和非终态组{0}

由于{1,2}a={1,2}b={2} {1,2},不能再划分。至此,整个划分含有两组{1,2}{0} 令状态1代表{1,2},化简如图:

第六次作业:

P74 11(1)(0 | 11*0)*

解:先构造该正规式的转换系统:

由上述转换系统可得状态转换集K={S, 1, 2, 3, 4, Z},状态子集转换矩阵如下表所示:

P74 12. 将图3.24非确定有穷自动机NFA 确定化和最少化。

解:设(DFA)M = {K, V T , M, S, Z},其中,K={[0], [0, 1], [1]},V T ={a, b},M :

a

图3.24 NFA 状态转换图

1

由状态子集转换矩阵可知,状态0和1是等价的,而状态2和3是等价的,因此,合并等价状态之后只剩下2个状态,也即是最少状态的DFA 。

M ([1], a) =[0] M ([1], b) =Ф M ([0, 1], a) =[0, 1] M ([0, 1], b) =[1] M ([0], a) =[0, 1] M ([0], b) =[1] S=[1],Z={[0], [0, 1]}

令[0, 1]=2,则其相应的状态转换图为: 现在对该DFA 进行化简,先把状态分为两组: 终态组 {0, 2} 和非终态组 {1},易于发现 {0, 2} 不可以继续划分,因此化简后的状态转换图如下:

P74 18. 根据下面正规文法构造等价的正规表达式:

S::=cC | a ……①

A::=cA | aB ……② B::=aB | c ……③

C::=aS | aA | bB | cC | a ……④ 解:由③式可得 B= aB + c → B=a*c

由②式可得 A= cA + aB → A= c*aa*c 由①式可得 S= cC + a

由④式可得 C= aS + aA + bB + cC + a → C= c*( aS + aA + bB + a) →

C= c*( aS + ac*aa*c + ba*c + a) → S= cc*( aS + ac*aa*c + ba*c + a) + a = cc*aS+ cc*( ac*aa*c + ba*c + a) + a = (cc*a)*( cc*( ac*aa*c + ba*c + a) + a) = (cc*a)*( cc*( ac*aa*c | ba*c | a) | a) 另一种答案是S= c(ac | c)*( ac*aa*c | ba*c | aa | a) | a

第七次作业:

P142 1. 试分别消除下列文法的直接左递归(采用两种方法——重复法和改写法)(1)G[E]:

E::=T | EAT ……①

T::=F | TMF ……②

F::=(E) | i ……③

A::=+ | - ……④

M::=* | / ……⑤

解:先采用“重复法”:再采用“改写法”:

E::=T{AT} E::=TE’

T::=F{MF} E’::= ATE’ | ε

F::=(E) | i T::=FT’

A::=+ | - T’::=MFT’ | ε

M::=* | / F::=(E) | i

A::=+ | -

M::=* | /

P142 2. 试分别消除下列文法的间接左递归

(2)G[Z]:

Z::=AZ| b ……①

A::=Z A | a ……②

解:将②式代入①式可得,Z::=ZAZ| aZ | b 消除左递归后得到:

Z::=(aZ | b)Z’

Z’::=AZZ’ | ε

A::=ZA| a

P143 5. 对下面的文法G[E]:

E::=TE’

E’::=+E |ε

T::=FT’

T’::=T |ε

F::=PF’

F’::=*F’ |ε

P∷=(E) |a |b |∧

(1)计算这个文法的每个非终结符号的FIRST和FOLLOW;

(2)证明这个文法是LL(1)文法;

(3)构造它的LL(1)分析表并分析符号串a*b+b;

解:(1)构造FIRST集:

FIRST(E’)={+, ε}

FIRST(F’)={*, ε}

FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P) ={ (,a,b,∧}

FIRST(T’)={ (,a,b, ε,∧}

构造FOLLOW 集:

规则一

#∈FOLLOW(E) FOLLOW(E)={#}

规则二

)∈FOLLOW(E) FOLLOE(E)={ ),#}

FIRST(E’)-{ε}FOLLOW(T) FOLLOW(T)={+}

FIRST(T’)-{ε}FOLLOW(F) FOLLOW(F)={ (,a,b,∧}

FIRST(F’)-{ε}FOLLOW(P) FOLLOW(P)={*}

规则三

FOLLOW(E) FOLLOW(E’) FOLLOW(E’)={#,)}

FOLLOW(E) FOLLOW(T) FOLLOW(T)={+,#,)}

FOLLOW(T) FOLLOW(T’) FOLLOW(T’)= {+,#,)}

FOLLOW(T) FOLLOW(F) FOLLOW(F)={ (,),a,b,+,#,∧} FOLLOW(F) FOLLOW(F’) FOLLOW(F’)= { (,),a,b,+,#,∧} FOLLOW(F) FOLLOW(P) FOLLOW(P)= { (,),a,b,+,#,∧,*}

最后结果为:

FIRST(E’)={+, ε}

FIRST(F’)={*, ε}

FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P) ={ (,a,b,∧}

FIRST(T’)={ (,a,b, ε,∧)

FOLLOE(E)={ ), #}

FOLLOW(E’)={#,)}

FOLLOW(T)={+,#,)}

FOLLOW(T’)= {+,#,)}

FOLLOW(F)={ (,),a,b,+,#,∧}

FOLLOW(F’)={ (,),a,b,+,#,∧}

FOLLOW(P)= { (,),a,b,+,#,∧,*}

(2)证明该文法是LL(1)文法:

证明:对于规则E’::=+E |ε,T’::=T |ε,F’::=*F’ |ε(仅有一边能推出空串)有FIRST(+E)={+}∩FIRST(ε)= ?,FIRST(T)={(, a, b, ∧}∩FIRST(ε)= ?

FIRST(*F’)={*}∩FIRST(ε)= ?,FIRST(+E)={+}∩FOLLOW(E’)= {#, )}=?

FIRST(T)={(, a, b, ∧}∩FOLLOW(T’)= {+, #, )}=?

FIRST(*F’)={*}∩FOLLOW(F’)= { (,),a,b,+,#,∧}=?

所以该文法是LL(1)文法。

下面分析符号串a*b+b

步骤分析栈余留输入串所用的产生式

1 #E a*b+b# E→TE’

2 #E’T a*b+b# T→FT’

3 #E’T’F a*b+b# F→PF’

4 #E’T’F’P a*b+b# P→a

5 #E’T’F’a a*b+b#

6 # E’T’F’ *b+b# F’→*F’

7 # E’T’F’* *b+b#

8 # E’T’F’ b+b# F’→ε

9 # E’T’ b+b# T’→T

10 # E’T b+b# T→FT’

11 # E’T’F b+b# F→PF’

12 # E’T’F’P b+b# P →b

13 #E’T’F’b b+b#

14 #E’T’F’ +b# F’→ε

15 #E’T’ +b# T’→ε

16 #E’ +b# E’→+E

17 #E+ +b#

18 #E b# E→TE’

19 #E’T b# T→FT’

20 #E’T’F b# F→PF’

21 # E’T’F’P b# P→b

22 # E’T’F’b b#

23 # E’T’F’ # F’→ε

24 # E’T’ # T’→ε

25 #E’ # E’→ε

26 # # 成功

所以符号串a*b+b是该文法的句子;

P144 6. 对下列文法,构造相应的FIRST和FOLLOW:

(1)S∷=aAd

A∷=BC

B∷=b |ε

C∷=c |ε

(2)A∷=BCc | gDB

B∷=ε| bCDE

C∷=DaB | ca

D∷=ε| dD

E∷=gAf | c

构造FIRST集

FIRST(S)={a}

FIRST(B)={b,ε}

FIRST(C)={c,ε}

FIRST(A)={b,c,ε}

构造FOLLOW集

规则一

#∈FOLLOW(S) FOLLOW(S)={#} 规则二

d∈FOLLOW(A) FOLLOE(A)={d} FIRST(C)-{ ε}FOLLOW(B) FOLLOW(B)={c} 规则三

FOLLOW(A) FOLLOW(B) FOLLOW(B)={d,c}

FOLLOW(A) FOLLOW(C) FOLLOW(C)={d} 最后结果为:

FIRST(S)={a}

FIRST(A)={b,c,ε}

FIRST(B)={b,ε}

FIRST(C)={c,ε}

FOLLOW(S)={#}

FOLLOW(A)={d}

FOLLOW(B)={d,c}

FOLLOW(C)={d}

(2)

构造FIRST集

规则二

FIRST(A)={g},

FIRST(B)={b,ε},

FIRST(C)={ c},

FIRST(D)={d,ε},

FIRST(E)={ g,c }.

规则三

FIRST(A)={g,b,c},

FIRST(C)={a,c,d},

FIRST(A)={ a,b,c,d,g}.

构造FOLLOW集

规则一

#∈FOLLOW(A) FOLLOW(A)={#}

f∈FOLLOW(A) FOLLOE(A)={ f,#}

c∈FOLLOW(C) FOLLOE(C)={ c}

a∈FOLLOW(D) FOLLOE(D)={ a}

FIRST(Cc)-{ ε}FOLLOW(B) FOLLOW(B)={c,d,a}

FIRST(B)-{ ε}FOLLOW(D) FOLLOW(D)={b,a}

FIRST(DE)-{ ε}FOLLOW(C) FOLLOW(C)={d,g,c}

FIRST(E) FOLLOW(D) FOLLOW(D)={b,c,a,g}

规则三

FOLLOW(A) FOLLOW(B) FOLLOW(B)={a,c,d,f,#}

FOLLOW(A) FOLLOW(D) FOLLOW(D)={a,b,c,f,g,#}

FOLLOW(B) FOLLOW(E) FOLLOW(E)= {a,c,d,f,#}

FOLLOW(C) FOLLOW(B) FOLLOW(B)={ a,c,d,g,f,#}

FOLLOW(B) FOLLOW(E) FOLLOW(E)= { a,c,d,g,f,#}

最后结果为:

FIRST(A)={ a,b,c,d,g},

FIRST(B)={b,ε},

FIRST(C)={a,c,d},

FIRST(D)={d,ε},

FIRST(E)={ g,c },

FOLLOE(A)={ f,#}

FOLLOW(B)={ a,c,d,g,f,#},

FOLLOW(C)={d,g,c},

FOLLOW(D)={a,b,c,f,g,#},

FOLLOW(E)= { a,c,d,g,f,#}.

P144 9. 设已给文法G[S]:

S∷=SaB | bB

A∷=Sa

B∷=Ac

(1)将此文法改写为LL(1)文法

(4)构造LL(1)分析表

解:此题消除左递归之后,构造LL(1)分析表存在“多重入口”问题,故采用以下方法:(1)改写为LL(1)文法:

S∷=bB{aB}

A∷=Sa

B∷=Ac

(4)

FIRST(S)={ b },

FIRST(A)={b},

FIRST(B)={b},

FOLLOE(S)={a,#},

FOLLOW(A)={ c},

FOLLOW(B)={a,#}.

P144 10. 证明下述文法不是简单优先文法:

(1)S∷=bEb

E∷=E+T | T

(2)S∷=bEb

E∷=F | F+T | T | i

T∷=i | (E)

证明:

(1)画语法树:S

╱│╲

b E b

╱│╲

E + T

可以得出b=E和b

(2)因该文法中含

E∷=i

T∷=i

右部两个产生式相同,故该文法不是简单优先文法.

P145 11. 构造下述文法的优先关系矩阵,它们是简单优先文法吗?

S∷=M | U

M∷=iEtMe M | a

U∷=iEtS | iEtMeU

E∷=b

解:

S M U E i t e a b S M U E i t e a b

S 0 0 0 0 0 0 0 0 0 S 0 1 1 0 0 0 0 0 0 M 0 0 0 0 0 0 1 0 0 M 0 0 0 0 1 0 0 1 0 U 0 0 0 0 0 0 0 0 0 U 0 0 0 0 1 0 0 0 0 =

E 0 0 0 0 0 1 0 0 0 = E 0 0 0 0 0 0 0 0 1 i 0 0 0 1 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 t 1 1 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 e 0 1 1 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0

S M U E i t e a b S M U E i t e a b S 0 0 0 0 0 0 0 0 0 S 0 1 1 0 1

0 0 1 0 M 0 0 0 0 0 0 1 0 0 M 0 0 0 0 1 0 0 1 0 U 0 0 0 0 0 0 0 0 0 U 0 0 0 0 1 0 0 0 0

=

E 0 0 0 0 0 1 0 0 0 = E 0 0 0 0 0 0 0 0 1 i 0 0 0 1 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 t 1 1 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 e 0 1 1 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0 = × S M U E i t e a b S M U E i t e a b S 0 0 0 0 0 0 0 0 0 S 0 1 1 0 0 0 0 0 0 M 0 0 0 0 0 0 0 0 0 M 0 1 0 0 0 0 0 1 0 U 0 0 0 0 0 0 0 0 0 U 1 0 1 0 0 0 0 0 0 =

E 0 0 0 0 0 0 0 0 0 = E 0 0 0 0 0 0 0 0 1 i 0 0 0 0 0 0 0 0 1 i 0 0 0 0 0 0 0 0 0 t 0 1 1 0 1 0 0 1 0 t 0 0 0 0 0 0 0 0 0 e 0 0 0 0 1 0 0 1 0 e 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0

S M U E i t e a b S M U E i t e a b S 1 1 1 0 0 0 0 1 0 S 1 1 1 0 0 0 0 1 0 M 0 1 0 0 0 0 0 1 0 M 0 1 0 0 0 0 0 1 0 U 1 1 1 0 0 0 0 0 0 U 1 1 1 0 0 0 0 1 0

=

E 0 0 0 0 0 0 0 0 0 = E 0 0 0 0 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0

B L

B L 2 B L +

B R

B L +

B R 2 B R 3

b 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0 S M U E i t e a b S M U E i t e a b S 1 1 1 0 0 0 0 1 0 S 1 0 1 0 0 0 0 0 0 M 0 1 0 0 0 0 0 1 0 M 1 1 1 0 0 0 0 0 0 U 1 1 1 0 0 0 0 1 0 U 1 0 1 0 0 0 0 0 0

=

E 0 0 0 0 0 0 0 0 1 = E 0 0 0 0 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0

a 0 0 0 0 0 0 0 0 0 a 1 1 1 0 0 0 0 0 0

b 0 0 0 0 0 0 0 0 0 b 0 0 0 1 0 0 0 0 0

S M U E i t e a b S M U E i t e a b

S 1 1 1 0 1 0 0 1 0 S 0 0 0 0 0 0 0 0 0 M 0 1 0 0 1 0 0 1 0 M 0 0 0 0 0 0 1 0 0 U 0 0 1 0 1 0 0 0 0 × = U 0 0 0 0 0 0 0 0 0

=

E 0 0 0 1 0 0 0 0 1 E 0 0 0 0 0 0 0 0 0 i 0 0 0 0 1 0 0 0 0 i 0 0 0 0 0 0 0 0 0 t 0 0 0 0 0 1 0 0 0 t 0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 1 0 0 e 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 1 0 a 0 0 0 0 0 0 1 0 0 b 0 0 0 0 0 0 0 0 1 b 0 0 0 0 0 1 0 0 0

S M U E i t e a b S M U E i t e a b

S 0 0 0 0 0 0 0 0 0 S 1 1 1 0 1 0 0 1 0 M 0 0 0 0 0 0 1 0 0 M 0 1 0 0 1 0 0 1 0 U 0 0 0 0 0 0 0 0 0 U 0 0 1 0 1 0 0 0 0 =

× = E 0 0 0 0 0 0 0 0 0 × E 0 0 0 1 0 0 0 0 1 i 0 0 0 0 0 0 0 0 0 i 0 0 0 0 1 0 0 0 0 t 0 0 0 0 0 0 0 0 0 t 1 1 0 0 0 1 0 0 0 e 0 0 0 0 0 0 0 0 0 e 0 1 1 0 0 0 1 0 0 a 0 0 0 0 0 0 1 0 0 a 0 0 0 0 0 0 0 1 0 b 0 0 0 0 0 1 0 0 0 b 0 0 0 0 0 0 0 0 1 S M U E i t e a b S 0 0 0 0 0 0 0 0 0 M 0 0 0 0 0 0 1 0 0 U 0 0 0 0 0 0 0 0 0 = E 0 0 0 0 0 0 0 0 0 i 0 0 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 e 0 0 0 0 0 0 0 0 0 a 0 0 0 0 0 0 1 0 0 b 0 0 0 0 0 1 0 0 0

B R + B (R +)T

B L *

B (R +)T B L *

B (R +)T B

优先关系矩阵如下:

其中含多重定义的表项,因而该文法不是简单优先文法。

P145 12. 根据图4.25的语法树,确定全部优先关系:

(a) E=+ +=T T=* *=F (=E E=)

*<( +* i>* )>+ T>+ F>+ (b) <说明表>=; BEGIN=<说明表> REAL=<标识符表>

<变量>=:= ;=<语句表> :==i

BEGIN<<说明> BEGIN

; <<语句> ;<<变量> ;

<说明>>; <标识符表>>; i>; i>:=

P145 13. 利用表4.6文法G[E]的优先关系矩阵,来分析符号串#b(((aa)a)a)b#和#((aa)a)#。

P146 17. 设已给文法G[S]: E ∷=E+T | T

T ∷=T*F | F

F ∷=P ↑F | P

P ∷=(E) | i

(1) 构造此文法的算符优先矩阵; 解:(1)

E T

F P ( i * + ) ↑ E 0 0 0 0 0 0 0 0 0 0 T 0 0 0 0 0 0 0 0 0 0 F 0 0 0 0 0 0 0 0 0 0 =

P 0 0 0 0 0 0 0 0 0 0 1 ( 0 0 0 0 0 0 0 0 1 0 i 0 0 0 0 0 0 0 0 0 0 * 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 ) 0 0 0 0 0 0 0 0 0 0 ↑ 0 0 0 0 0 0 0 0 0 0

最新编译原理试题汇总+编译原理期末试题(8套含答案+大题集)

编译原理考试题及答案汇总一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式

北京邮电大学《编译原理与技术》课程教学大纲

《编译原理与技术》课程教学大纲 一、课程编号:1311020 二、课程名称:编译原理与技术(64学时) Compiler Principle and Technology 三、课程教学目的 通过本课程的学习,使学生了解并掌握程序设计语言的编译程序的设计原理与实现技术,了解编译程序的构造方法;加深学生对高级程序设计语言的理解,做到触类旁通;使学生体会到其他专业基础知识如算法与数据结构、程序设计、操作系统、形式语言与自动机、计算机组成原理、汇编语言、软件工程等综合应用,对计算机的软硬件工作原理建立比较深刻的理解,提高学生的专业素养,使学生能够利用所学的理论知识解决实际问题,培养学生分析问题、解决问题的能力。 四、课程教学基本要求 1.了解编译的基本概念和步骤,编译程序的基本组成、结构、编译环境等基本概念。 2.掌握词法分析的原理、词法分析程序的设计和实现方法。 3.掌握语法分析的原理和实现技术、简单的语法分析程序的设计和实现。 4.掌握语法制导翻译技术。 5.理解利用语法制导翻译技术进行语义分析、中间代码生成的实现。 6.理解程序运行环境、代码生成相关的基本概念和实现方法。 7.了解代码优化技术的基本概念和方法。 五、教学内容及学时分配(含实验) 第一章编译概述2学时 1.翻译和解释 2.编译的阶段 3.编译程序的前后处理器(预处理器、汇编程序、连接装配程序)第二章词法分析4学时 1.词法分析器的作用 2.词法分析器的输入与输出 3.记号的描述与识别 4.词法分析程序的设计与实现 5*.软件工具LEX(规格说明、工作原理)

1.语法分析器的作用 2.自顶向下分析(预测分析器、非递归的预测分析器) 3.自底向上分析(规范归约、移进-归约方法实现) 4.LR分析器(模型及工作过程、SLR(1)分析器、LR(1)分析器、LALR(1)分析器)5.LR分析方法对二义文法的应用 6*.软件工具YACC (规格说明、二义性处理) 第四章语法制导翻译技术8学时 1.语法制导定义与翻译方案 2.S属性定义的自底向上翻译 3.L属性的自顶向下翻译 4.L属性的自底向上翻译 第五章语义分析4学时 1.语义分析的概念 2.符号表的组织与管理 3.类型检查(类型表达式、类型等价) 4.简单类型检查器的说明(语言说明、确定标识符的类型、表达式及语句的类型检查) 5*.类型检查有关的其他主题(函数和运算符的重载、类型转换、多态函数) 第六章运行环境6学时 1.程序运行时的存储组织 2.存储分配策略(静态存储分配、栈式存储分配、堆式存储分配) 3.访问非局部名字 4.参数传递方式 第七章中间代码生成6学时 1.中间代码形式 2.赋值语句的翻译 3.布尔表达式的翻译 4.控制语句的翻译 5.过程调用语句的翻译

南邮通信原理期末考试试题-《通信原理》试卷01

XXX 级本科《通信原理》试题(卷) 说明:答案要求简明扼要,全部做在考试题(卷)上。 一、 (20分)填 空 1、 数字通信系统的主要优点是 __________ 、_____________、 ________________、________________。 2、 通信系统的主要质量指标通常用_________和________衡量, FSK 系统指标具体用______ _和_ _______衡量,FM/PM 系统具体指标用______ 和______ _衡量。 3、 PCM 量化可以分为 和 。在线性PCM 中,抽样频率为8 KHZ ,对双极性信号编码时编码器输出码元速率为72 KB ,则量化信噪比为_______dB 。 4、 ΔM 信号携带着输入信号的_______信息,Σ—ΔM 信号携带着输入信号的_______信息,PCM 信号携带着输入信号的_______信息,。 5、 窄带高斯噪声的一维随机包络服从_________ 分布,其概率密度函数p (x )= ;OOK 信号加窄带高斯噪声的 一维随机包络服从 分布。 6、 在0—-T 时刻内高度为A 的矩形信号,与之相匹配的滤波器的单位冲激响应h (t )图形为 ,传递函数H(ω)= ,最大输出信噪比r 0max = ,最大信噪比出现的时刻t o = 。 7、 门限效应是 ;用示波器观察眼图的方法步骤是(1) ,(2) 。 8、 二进制代码 1011000000000000101的差分码是 ;HDB3码是 +1 。 9、在ΔM 系统中,输入信号f(t)=Acos ωk t ,抽样速率为f s ,量化台阶为δ,要求系统不出现过载现象,而且能正常编码,输入信号f(t)的幅度范围应为 。 10、信道带宽为6 MHz ,信号功率与噪声谱密度之比为6 MHz ,则信道最大传输速率为 ,当信道带宽B 趋

王汝传编译原理习题答案

《编译原理》习题答案: 第一次: P14 2、何谓源程序、目标程序、翻译程序、汇编程序、编译程序和解释程序?它们之间可能有何种关系? 答:被翻译的程序称为源程序; 翻译出来的程序称为目标程序或目标代码; 将汇编语言和高级语言编写的程序翻译成等价的机器语言,实现此功能的程序称为翻译程序; 把汇编语言写的源程序翻译成机器语言的目标程序称为汇编程序; 解释程序不是直接将高级语言的源程序翻译成目标程序后再执行,而是一个个语句读入源程序,即边解释边执行; 编译程序是将高级语言写的源程序翻译成目标语言的程序。 关系:汇编程序、解释程序和编译程序都是翻译程序,具体见P4 图 1.3。 P14 3、编译程序是由哪些部分组成?试述各部分的功能? 答:编译程序主要由8个部分组成:(1)词法分析程序;(2)语法分析程序;(3)语义分析程序;(4)中间代码生成;(5)代码优化程序;(6)目标代码生成程序;(7)错误检查和处理程序;(8)信息表管理程序。具体功能见P7-9。 P14 4、语法分析和语义分析有什么不同?试举例说明。 答:语法分析是将单词流分析如何组成句子而句子又如何组成程序,看句子乃至程序是否符合语法规则,例如:对变量x:= y 符合语法规则就通过。语义分析是对语句意义进行检查,如赋值语句中x与y类型要一致,否则语法分析正确,语义分析则错误。 P15 5、编译程序分遍由哪些因素决定? 答:计算机存储容量大小;编译程序功能强弱;源语言繁简;目标程序优化程度;设计和实现编译程序时使用工具的先进程度以及参加人员多少和素质等等。 补充: 1、为什么要对单词进行内部编码?其原则是什么?对标识符是如何进行内部编码的? 答:内部编码从“源字符串”中识别单词并确定单词的类型和值;原则:长度统一,即刻画了单词本身,也刻画了它所具有的属性,以供其它部分分析使用。对于标识符编码,先判断出该单词是标识符,然后在类别编码中写入相关信息,以表示为标识符,再根据具体标识符的含义编码该单词的值。 补充: 2、赋值语句:A:= 5 * C的语法和语义指的是什么? 答:语法分析将检查该语句是否符合赋值语句规则,语义是指将 5 * C 的结果赋值为 A 。第二次作业: P38 1、设T1={11,010},T2={0,01,1001},计算:T2T1,T1*,T2+。 T2T1={011,0010,0111,01010,100111,1001010} T1*={ε,11,010,1111,11010,01011,010010……} T2+={0,01,1001,00,001,01001,010,0101……}

概率论与数理统计-学习指导与练习册习题答案

一.填空题 1.ABC 2、50? 3、20? 4、60? 二.单项选择题 1、B 2、C 3、C 4、A 5、B 三.计算题 1.(1)略 (2)A 、321A A A B 、321A A A ?? C 、321321321A A A A A A A A A ?? D 、321321321321A A A A A A A A A A A A ??? 2.解 )()()()(AB P B P A P B A P -+=?= 8 5 812141=-+ 8 3 )()()()(=-=-=AB P B P AB B P B A P 8 7 )(1)(=-=AB P AB P 2 1 )()()])([(=-?=?AB P B A P AB B A P 3.解:最多只有一位陈姓候选人当选的概率为53 14 6 2422=-C C C 4.)()()()()()()()(ABC P BC P AC P AB P C P B P A P C B A P +---++=?? = 85 5.解:(1)n N n A P ! )(= (2)n n N N n C B P ! )(=、 (3)n m n m n N N C C P --=)1()(

一.填空题 1.0.8 2、50? 3、 32 4、73 5、4 3 二.单项选择题 1、D 2、B 3、D 4、B 三.计算题 1. 解:设i A :分别表示甲、乙、丙厂的产品(i =1,2,3) B :顾客买到正品 )/()()(11A B P A P B P =)/()(22A B P A P +)/()(33A B P A P + = 83.065.05 1 85.0529.052=?+?+? 83 34 )()/()()/(222== B P A B P A P B A P 2.解:设i A :表示第i 箱产品(i =1,2) i B :第i 次取到一等品(i =1,2) (1) )/()()(1111A B P A P B P =)/()(212A B P A P +=4.030 18 21501021=?+? (2)同理4.0)(2=B P (3))/()()(121121A B B P A P B B P =)/()(2212A B B P A P + = 19423.029 17301821499501021=??+?? 4856.04 .019423 .0)()()/(12112=== B P B B P B B P (4)4856.04 .019423 .0)()()/(212121=== B P B B P B B P 3. 解:设i A :表示第i 次电话接通(i =1,2,3) 101)(1= A P 10191109)(21=?= A A P 10 1 8198109)(321=??=A A A P

编译原理复习题及答案

编译原理复习题及答案 一、选择题 1.一个正规语言只能对应(B) A 一个正规文法 B 一个最小有限状态自动机 2.文法G[A]:A→εA→aB B→Ab B→a是(A) A 正规文法 B 二型文法 3.下面说法正确的是(A) A 一个SLR(1)文法一定也是LALR(1)文法 B 一个LR(1)文法一定也是LALR(1)文法 4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A) A 必要条件 B 充分必要条件 5.下面说法正确的是(B) A 一个正规式只能对应一个确定的有限状态自动机 B 一个正规语言可能对应多个正规文法 6.算符优先分析与规范归约相比的优点是(A) A 归约速度快 B 对文法限制少 7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B) A 则可能存在移进/归约冲突 B 则可能存在归约/归约冲突 C 则可能存在移进/归约冲突和归约/归约冲突 8.下面说法正确的是(A) A Lex是一个词法分析器的生成器 B Yacc是一个语法分析器 9.下面说法正确的是(A) A 一个正规文法也一定是二型文法 B 一个二型文法也一定能有一个等价的正规文法 10.编译原理是对(C)。 A、机器语言的执行 B、汇编语言的翻译 C、高级语言的翻译 D、高级语言程序的解释执行 11.(A)是一种典型的解释型语言。

A.BASIC B.C C.FORTRAN D.PASCAL 12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。 A. 编译器 B. 汇编器 C. 解释器 D. 预处理器 13.用高级语言编写的程序经编译后产生的程序叫(B) A.源程序 B.目标程序C.连接程序D.解释程序 14.(C)不是编译程序的组成部分。 A.词法分析程序 B.代码生成程序 C.设备管理程序 D.语法分析程序 15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。 A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器16.编译程序绝大多数时间花在(D)上。 A.出错处理B.词法分析C.目标代码生成D.表格管理 17.源程序是句子的集合,(B)可以较好地反映句子的结构。 A. 线性表 B. 树 C. 完全图 D. 堆栈 18.词法分析器的输出结果是(D)。 A、单词自身值 B、单词在符号表中的位置 C、单词的种别编码 D、单词的种别编码和自身值 19.词法分析器不能(D) A. 识别出数值常量 B. 过滤源程序中的注释 C. 扫描源程序并识别记号 D. 发现括号不匹配 20.文法:G:S→xSx | y所识别的语言是(D)。 A、xyx B、(xyx)* C、x*yx* D、x n yx n (n≥0) 21.如果文法G是无二义的,则它的任何句子α(A) A.最左推导和最右推导对应的语法树必定相同 B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同 D.可能存在两个不同的最左推导,但它们对应的语法树相同 22.正则文法(A)二义性的。 A. 可以是 B. 一定不是 C. 一定是 23.(B)这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。 A. 存在 B. 不存在 C. 无法判定是否存在 24.给定文法A→bA | ca,为该文法句子的是(C) A. bba B. cab C. bca D. cba

编译原理课程设计

《编译原理》课程设计大纲 课程编号: 课程名称:编译原理/Compiler Principles 周数/学分:1周/1学分 先修课程:高级程序设计语言、汇编语言、离散数学、数据结构 适用专业:计算机科学与技术专业、软件工程专业 开课学院,系或教研室:计算机科学与技术学院 一、课程设计的目的 课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构表示问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。 要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写。 设计时间: 开发工具: (1) DOS环境下使用Turbo C; (2) Windows环境下使用Visual C++ 。 (3) 其它熟悉语言。 二、课程设计的内容和要求 设计题一:算术表达式的语法分析及语义分析程序设计。 1.目的

通过设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词 法检查和分析。 2.设计内容及要求: 算术表达式的文法: 〈无符号整数〉∷= 〈数字〉{〈数字〉} 〈标志符〉∷= 〈字母〉{〈字母〉|〈数字〉} 〈表达式〉∷= [+|-]〈项〉{〈加法运算符〉〈项〉} 〈项〉∷= 〈因子〉{〈乘法运算符〉〈因子〉} 〈因子〉∷= 〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’ 〈加法运算符〉∷= +|- 〈乘法运算符〉∷= *|/ (1) 分别选择递归下降法、算符优先分析法(或简单优 先法)完成以上任务,中间代码选用逆波兰式。 (2) 分别选择LL(1)、LR法完成以上任务,中间代码选 用四元式。 (3) 写出算术表达式的符合分析方法要求的文法,给出 分析方法的思想,完成分析程序设计。 (4) 编制好分析程序后,设计若干用例,上机测试并通 过所设计的分析程序。 设计题二:简单计算器的设计 1.目的 通过设计、编制、调试一个简单计算器程序,加深对语法及语 义分析原理的理解,并实现词法分析程序对单词序列的词法检 查和分析。 2.设计内容及要求 算术表达式的文法:

南邮通信原理真题

南邮通信原理真题集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

南京邮电大学 2014硕士研究生入学考试初试试题 一.选择填空题 选项在本题末。有些选项可以重复选,也可以从不选。 1.信息量定义的原则,它是消息出现(1)的(2)函数,它还必须满足(3)。 2.模拟信道数学模型是(4);二进制数字信道模型是(5)。 3.若单音调制时,双边带DSB调整值的输出信噪比为SNR=S i/n0f m,其中fm为调制信号带宽,si为接受信号功率,n0为信道噪声功率谱。则下列调制的输出信噪比分别为:调制指数为1的AM调制为(6);SSB调制为(7);调制指数为2的FM调制(8)。 4.时域均衡采用(9)滤波器,以消除(10)。 5.数字已调信号的检测=(11)+(12)。 6.格雷码的作用是在数字调制中使得码字的(13)距离与星座点的(14)距离相适应。 7.在数字通信系统中,控制差错的方法有(15)、(16)和(17)三大类。

8.扩展频谱通信用低速率的(18)序列对高速率的(19)序列进行(20),因而提高信号的(21)能力。在无线信道上传输,它能够提供(22)。尽管它占用的频带增大,但是与(23)相结合,不会降低(24)。 9.载波同步和符号同步都可以采用(25)法和(26)法。 a)(1/3)SNR n)汉明 b) 6SNR o)横向 c) ARQ p)解调 d) FEC q) 抗干扰 e) HARQ r)可加性 f) SNR s)调制 g) s0(t)=f[s i(t)]+n(t) t)码分多址 h) PN u)码间干扰 i)抽样判决 v)欧式 j)单调减 w)频带利用率 k)导频辅助 x)信号变换

《概率论与数理统计》习题册答案

第一章 随机事件与概率 § 随机试验 随机事件 一、选择题 1. 设B 表示事件“甲种产品畅销”,C 表示事件“乙种产品滞销”,则依题意得A=BC .于是对立事件 {}A B C ==甲产品滞销或乙产品畅销,故选D. 2. 由A B B A B B A AB =?????=Φ,故选D.也可由文氏图表示得出. 二 写出下列随机试验的样本空间 1. {}3,420,, 2 []0,100 3. z y x z y x z y x z y x ,,},1,0,0,0|),,{(=++>>>=Ω分别表示折后三段长度。 三、(1)任意抛掷一枚骰子可以看作是一次随机试验,易知共有6个不同的结果.设试验的样本点 ""1,2,3,4,5,6i i i ω==出点点, ;则{}246,,A ωωω=,{}36,B ωω= (2){}135,,A ωωω=,{}1245,,,B ωωωω=,{}2346,,,A B ωωωω=,{}6AB ω=, {} 15,A B ωω= 四、(1)ABC ;(2)ABC ;(3)“A B C 、、不都发生”就是“A B C 、、都发生”的对立事件,所以应记为ABC ;(4)A B C ;(5)“A B C 、、中最多有一事件发生”就是“A B C 、、中至少有二事件发生”的对立事件,所以应记为:AB AC BC .又这个事件也就是“A B C 、、中至少有二事件不发生”,即为三事件AB AC BC 、、的并,所以也可以记为AB AC BC . § 随机事件的概率 一、填空题 1. 试验的样本空间包含样本点数为10本书的全排列10!,设{}A =指定的3本书放在一起,所以A 中包含的样本点数为8!3!?,即把指定的3本书捆在一起看做整体,与其他三本书全排,然后这指定的3本书再全排。故8!3!1 ()10!15 P A ?= =。 2. 样本空间样本点7!5040n ==,设事件A 表示这7个字母恰好组成单词SCIENCE ,则因为C 及C, E 及E 是两两相同的,所以A 包含的样本点数是2!2!4A =?=,故

最新编译原理复习题(经典)

编译原理复习题 一、是非题 1.计算机高级语言翻译成低级语言只有解释一种方式。(×) 3.每个文法都能改写为 LL(1) 文法。 (×) 4.算符优先关系表不一定存在对应的优先函数。 (√) 5.LR分析方法是自顶向下语法分析方法。 (×) 6.“ 用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。(× ) 7.一个句型的句柄一定是文法某产生式的右部。(√) 8.仅考虑一个基本块,不能确定一个赋值是否真是无用的。(√ ) 9.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(× ) 10.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。(×) 11.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。(× ) 12.递归下降分析法是自顶向下分析方法。(√ ) 13.产生式是用于定义词法成分的一种书写规则。(×) 14.在SLR(1)分析法的名称中,S的含义是简单的。(√) 15.综合属性是用于“ 自上而下” 传递信息。(× ) 16.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。(×) 17.程序语言的语言处理程序是一种应用软件。(×) 18.解释程序适用于COBOL 和FORTRAN 语言。(×) 19.一个LL(l)文法一定是无二义的。(√) 20.正规文法产生的语言都可以用上下文无关文法来描述。(√) 21.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。(×) 22.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。(√) 22.逆波兰法表示的表达式亦称后缀式。(√ ) 23.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。(√ ) 24.数组元素的地址计算与数组的存储方式有关。(√) 25.算符优先关系表不一定存在对应的优先函数。(×) 26.编译程序是对高级语言程序的解释执行。(× ) 27.一个有限状态自动机中,有且仅有一个唯一的终态。(×) 28.一个算符优先文法可能不存在算符优先函数与之对应。(√ ) 29.语法分析时必须先消除文法中的左递归。(×) 30.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。(√) 31.逆波兰表示法表示表达式时无须使用括号。(√ ) 32.静态数组的存储空间可以在编译时确定。(√) 33.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。(√) 34.两个正规集相等的必要条件是他们对应的正规式等价。(√) 35.一个语义子程序描述了一个文法所对应的翻译工作。(×) 36.设r和s分别是正规式,则有L(r|s)=L(r)L(s)。(×) 37.确定的自动机以及不确定的自动机都能正确地识别正规集。(√) 38.词法分析作为单独的一遍来处理较好。(× ) 39.构造LR分析器的任务就是产生LR分析表。(√) 40.规范归约和规范推导是互逆的两个过程。(√) 41.同心集的合并有可能产生新的“移进”/“归约”冲突。(× )

编译原理课程设计报告(一个完整的编译器)

编译原理程序设计报告 一个简单文法的编译器的设计与实现专业班级:计算机1406班 组长姓名:宋世波 组长学号: 20143753 指导教师:肖桐 2016年12月

设计分工 组长学号及姓名:宋世波20143753 分工:文法及数据结构设计 词法分析 语法分析(LL1) 基于DAG的中间代码优化 部分目标代码生成 组员1学号及姓名:黄润华20143740 分工:中间代码生成(LR0) 部分目标代码生成 组员2学号及姓名:孙何奇20143754 分工:符号表组织 部分目标代码生成

摘要 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译是从源代码(通常为高阶语言)到能直接被计算机或虚拟机执行的目标代码(通常为低阶语言或机器语言)的翻译过程。 一.编译器的概述 1.编译器的概念 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算机能解读、运行的低阶机器语言的程序。编译器将原始程序作为输入,翻译产生使用目标语言的等价程序。源代码一般为高阶语言如Pascal、C++、Java 等,而目标语言则是汇编语言或目标机器的目标代码,有时也称作机器代码。 2.编译器的种类 编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相同的环境下运行的目标代码,这种编译器又叫做“本地”编译器。另外,编译器也可以生成用来在其它平台上运行的目标代码,这种编译器又叫做交叉编译器。交叉编译器在生成新的硬件平台时非常有用。“源码到源码编译器”是指用一种高阶语言作为输入,输出也是高阶语言的编译器。例如: 自动并行化编译器经常采用一种高阶语言作为输入,转换其中的代码,并用并行代码注释对它进行注释(如OpenMP)或者用语

南京邮电大学期末试题《通信原理》试卷10

XXX本科《通信原理》试题 说明:答案要求简明扼要,全部做在考试题(卷)。 填空题(每空1分,共40分) 系统的有效性用衡量,可靠性用 衡量。 二进制ASK信号非相干解调,再收“0”码时包络检波器输入端信号与噪声服从分布,包络检波器输出服从分布,在收到“1”码时,包络检波器的输入信号与噪声服从分布,包络检波器的输出服从分布。 一载波为20Hz的FM信号,最大频偏为100Hz,当调制信号频率为1KHz时,调制指数为--------------------,信号带宽为------------------,当调制信号频率为50KHz 时,调制指数为---------------,信号带宽为----------------。单边带调制的方式有------------、---------------和-------------,解调方式---------------------------。4.某调幅信号S m(t)=0.2cos2π×104t+0.2cos2π×1.4×104t, 则调幅信号属调制信号频率为 5.已知二进制代码为11000010100000000101,其相应 AMI码为HDB码为。 6.在AM、△M、FM、PSK、MSK、DPSK、SSB、MSK 等信号中,能直接在数字基带系统中传输的有 能直接在数字频带系统中传输的有。 7.二元确知信号在先验等概情况下,无码率 最。 8.已知四个码字:A1=00000000, A2=00001111,A3=11110000, A4=11111111,d0= 。若用于纠错,可纠正位码,若用于检错,可检出位错码。 9.m序列多项式必为。 10.《通信系统原理》P437.2 11.香农公式为。 12.同步可分为、、 和。 13.对信号m()t=2sin800πt v进行简单增量调制编码,

编译原理习题解答

第二章:习题2-4 Table表 var x,y; procedure p; var a; procedure q; var b; begin b:=10; end; procedure s; var c,d; procedure r; var e,f; begin call q; end; begin call r; end; begin call s; end; begin call p; end 根据:Page289,变量table:array[0..txmax] of record 结构体以及block函数得到下表,而表中各部分的含义,

第三章文法和语言 5. 写一文法,使其语言是偶正整数的集合 要求: (1)允许0打头 (2)不允许0打头 解: (1)G[S]=({S,P,D,N},{0,1,2,…,9},P,S) P: S→PD|D P->NP|N D→0|2|4|6|8 N->0|1|2|3|4|5|6|7|8|9 (2)G[S]=({S,P,R,D,N,Q },{0,1,2,…,9},P,S) P: S→PD|P0|D P->NR|N R->QR|Q D→2|4|6|8 N->1|2|3|4|5|6|7|8|9 Q->0|1|2|3|4|5|6|7|8|9 6. 已知文法G: <表达式>::=<项>|<表达式>+<项>|<表达式>-<项> <项>::=<因子>|<项>*<因子>|<项>/<因子> <因子>::=(<表达式>)|i。 试给出下述表达式的推导及语法树。 (1)i; (2)(i) (3)i*i; (4)i*i+i; (5)i+(i+i); (6)i+i*i。 解: (1)v=<表达式>=><项>=><因子>=>i=w (2)v=<表达式>=><项>=><因子>=>(<表达式>)=>(<项>)=>(<因子>)=>(i)=w (3)v=<表达式>=><项>=><项>*<因子>=><因子>*<因子>=>i*i=w (4)v=<表达式>=><表达式>+<项>=><项>+<项>=><项>*<因子>+<项> =><因子>*<因子>+<因子>=>i*i+i=w (5)v=<表达式>=><表达式>+<项>=><项>+<项>=><因子>+<因子>=>i+(<表达式>) => i+(<表达式>+<项>)=>i+(<项>+<项>)=> i+(<因子>+<因子>)=>i+(i+i)=w (6)v=<表达式>=><表达式>+<项>=><项>+<项>=><因子>+<项>=>i+<项> =>i+<项>*<因子>=> i+<因子>*<因子>=> i+i*i=w 语法树见下图:

同济五版习题册 概率论 参考答案-推荐下载

第一章概率论基本概念 一、填空 1.(1)AUBUC (2) (3) A B C A B C A B C -- - - -- ??A B B C AC -- -- -- ??2. 0.7 (注释: P(AUB)=P(A)+P(B)-P(AB)= P(A)+P(B)-P(A)*P(B|A) ) 3. 3/7 (注释: ) ()()()()1()()()()P A B P A P B P A B P A P B P B P AB - - - ?=+-=-+-+4.77 221A ?- 5. 0.75 (注释: , 此时不能直接用BEYES 公式,因为要得到一个划分.)() (|)() P AB P B A P A = [掌握]二、选择 1.A 2.D 3.B 4.D 5.A 三、计算题 1.全概率公式求解: 设能开门记为事件A ,B0为取到0把能开门的锁,B1为取到一把能开门的锁,B2为取到两把能开门的锁 P(A)=P(B0)P(A|B0)+ P(B1)P(A|B1)+ P(B1)P(A|B1)=8/15 2.设3本一套放在一起记为A ,两套各自放在一起记为B ,两套中至少有一套放在一起记为C (1)13783710 101 ()=15 A A A P A A =(2) 35435410 101 ()=210 A A A P B A =(3) 3847354384735410 102 ()=21 A A A A A A A P C A +-=3.设购买空调记为A,购买电脑记为B,购买DVD 记为C (1) P(AUBUC)=P(A)+P(B)+P(C)-P(AB)-P(BC)-P(AC)+P(ABC)=0.15+0.12+0.2+-0.06-0.1-0.05+0.02 =0.28 (2)()()()()-2() P A B B C AC P A B P B C P AC P A B C -- -------- -- --- ??=++ (3)()1() P A B C P A B C --- =-??[掌握]4. 全概率公式求解:设取得正品记为A, 取到的产品来自甲厂记为B1, 取到的产品来自乙厂记为B2, 取到的产品来自丙厂记为B3, ()(1)(|1)(2)(|2)(3)(|3)0.92 P A P B P A B P B P A B P B P A B =++=

哈工大编译原理习题及答案

1.1何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间可能有何种关系? 1.2一个典型的编译系统通常由哪些部分组成?各部分的主要功能是什么? 1.3选择一种你所熟悉的程序设计语言,试列出此语言中的全部关键字,并通过上机使用该语言以判明这些关键字是否为保留字。 1.4选取一种你所熟悉的语言,试对它进行分析,以找出此语言中的括号、关键字END以及逗号有多少种不同的用途。 1.5试用你常用的一种高级语言编写一短小的程序,上机进行编译和运行,记录下操作步骤和输出信息,如果可能,请卸出中间代码和目标代码。 第一章习题解答 1.解:源程序是指以某种程序设计语言所编写的程序。目标程序是指编译程序(或解释程序)将 源程序处理加工而得的另一种语言(目标语言)的程序。翻译程序是将某种语言翻译成另一种语言的程序的统称。编译程序与解释程序均为翻译程序,但二者工作方法不同。解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。即边解释边执行,翻译所得的指令序列并不保存。编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。即先翻译、后执行。 2.解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成 程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。 3.解:C语言的关键字有:auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while。上述关键字在C语言中均为保留字。 4.解:C语言中括号有三种:{},[],()。其中,{}用于语句括号;[]用于数组;()用于函数(定 义与调用)及表达式运算(改变运算顺序)。C语言中无END关键字。逗号在C语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)的值为d)。 5.略 第二章前后文无关文法和语言 21设有字母表A1={a,b,…,z},A2={0,1,…,9},试回答下列问题: (1) 字母表A1上长度为2的符号串有多少个? (2) 集合A1A2含有多少个元素? (3) 列出集合A1 (A1∪A2)*中的全部长度不大于3的符号串。

编译原理结课论文

目录

1.绪论 概述 “编译原理”是一门研究设计和构造编译程序原理课程,是计算机各专业的一门重要的专业课。编译原理这门课程蕴含着计算机学科中解决问题的思路和解决问题的方法,对应用软件和系统软件的设计与开发有一定的启发和指导作用。“编译原理”是一门实践性很强的课程,要掌握这门课程中的思想,就必须要把所学到的知识应用于实践当中。而课程设计是将理论与实践相互联系的一种重要方式。 设计目的 课程设计是对学生的一种全面综合素质训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂很多,但也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构解决问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的能力。 设计题目及要求 基于这个学期所学习的内容以及自己所掌握到的知识,本次我所要设计的题目是赋值语句的四元式生成。

要求: (1)设计语法制导生成赋值语句的四元式的算法; (2)编写代码并上机调试运行通过; (3)输入一赋值语句; (4)输出相应的表达式的四元式; 2.背景知识 语法制导翻译方法 语法制导翻译的方法就是为每个产生式配上一个翻译子程序(称语义动作或语义子程序),并在语法分析的同时执行这些子程序。语义动作是为产生式赋予具体意义的手段,它一方面指出了一个产生式所产生的符号串的意义,另一方面又按照这种意义规定了生成某种中间代码应做哪些基本动作。在语法分析的过程中,当一个产生式获得匹配(对于自顶向下分析)或用于规约(对于自底向上分析)时,此产生式相应的语义子程序就进入工作,完成既定的翻译任务。语法制导翻译分为自底向上语法制导翻译和自顶向下语法制导翻译。 属性文法 属性文法是编译技术中用来说明程序语言语义的工具,也是当前实际应用中比较流行的一种语义描述方法。属性是指与文法符号的类型和值等有关的一些信息,在编译中用属性描述处理对象的特征。属性文法是一种

【南邮通信原理期末考试试题】《通信原理》试卷01

1 XXX 级本科《通信原理》试题(卷) 题 号 1 2 3 4 5 6 7 8 9 总分 分 数 说明:答案要求简明扼要,全部做在考试题(卷)上。 一、 (20分)填 空 1、 数字通信系统的主要优点是 __________ 、_____________、 ________________、________________。 2、 通信系统的主要质量指标通常用_________和________衡量, FSK 系统指标具体用______ _和_ _______衡 量,FM/PM 系统具体指标用______ 和______ _衡量。 3、 PCM 量化可以分为 和 。在线性PCM 中,抽样频率为8 KHZ ,对双极性信号编码时 编码器输出码元速率为72 KB ,则量化信噪比为_______dB 。 4、 ΔM 信号携带着输入信号的_______信息,Σ—ΔM 信号携带着输入信号的_______信息,PCM 信号携带着输入信号的_______信息,。 5、 窄带高斯噪声的一维随机包络服从_________ 分布,其概率密度函数p (x )= ;OOK 信号加窄带 高斯噪声的 一维随机包络服从 分布。 6、 在0—-T 时刻内高度为A 的矩形信号,与之相匹配 姓 名 学 号 期 班 密 封 线

的滤波器的单位冲激响应h(t)图形为,传递函数H(ω)= ,最大输出信噪比r0max= ,最大信噪比出现的时刻t o=。 7、门限效应是;用示波器观察眼图的方法步骤是 (1), (2)。 8、二进制代码1011000000000000101的差分码是;HDB3码是+1 。 9、在ΔM系统中,输入信号f(t)=Acosωk t,抽样速率为f s,量化台阶为δ,要求系统不出现过载现象,而且能正常编码,输入信号f(t)的幅度范围应为。 10、信道带宽为6 MHz,信号功率与噪声谱密度之比为6 MHz,则信道最大传输速率为,当信道带宽B趋向无穷大时,则信道最大传输速率为。二、(15分)已知语音信号的最高频率fm为4kHz,幅度范围为(-5.120V,+5.120V),采用13折线法对其进行PCM,试回答计算下列问题: 1求当采样值为-1.450V时编码器的输出C0C1C2C3C4C5C6C7(设段内码为戈雷码); 2求量化误差为多少(伏); 2

编译原理课后习题答案-清华大学-第二版

第1章引论 第1题 解释下列术语: (1)编译程序 (2)源程序 (3)目标程序 (4)编译程序的前端 (5)后端 (6)遍 答案: (1) 编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。 (2) 源程序:源语言编写的程序称为源程序。 (3) 目标程序:目标语言书写的程序称为目标程序。 (4) 编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶 段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符 号表管理等工作。 (5) 后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。 (6) 遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。 第2题 一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程序的总体结构图。 答案: 一个典型的编译程序通常包含8个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。其各部分的主要功能简述如下。 词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。 语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。 语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。

目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。 表格管理程序:负责建立、填写和查找等一系列表格工作。表格的作用是记录源程序的各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从表格中读取,产生的中间结果都记录在相应的表格中。可以说整个编译过程就是造表、查表的工作过程。需要指出的是,这里的“表格管理程序”并不意味着它就是一个独立的表格管理模块,而是指编译程序具有的表格管理功能。 错误处理程序:处理和校正源程序中存在的词法、语法和语义错误。当编译程序发现源程序中的错误时,错误处理程序负责报告出错的位置和错误性质等信息,同时对发现的错误进行适当的校正(修复),目的是使编译程序能够继续向下进行分析和处理。 注意:如果问编译程序有哪些主要构成成分,只要回答六部分就可以。如果搞不清楚,就回答八部分。 第3题 何谓翻译程序、编译程序和解释程序?它们三者之间有何种关系? 答案: 翻译程序是指将用某种语言编写的程序转换成另一种语言形式的程序的程序,如编译程序和汇编程序等。 编译程序是把用高级语言编写的源程序转换(加工)成与之等价的另一种用低级语言编写的目标程序的翻译程序。 解释程序是解释、执行高级语言源程序的程序。解释方式一般分为两种:一种方式是,源程序功能的实现完全由解释程序承担和完成,即每读出源程序的一条语句的第一个单词,则依据这个单词把控制转移到实现这条语句功能的程序部分,该部分负责完成这条语句的功

相关文档
最新文档