编译原理(第2版)陈意云+张昱编著课后答案(1)_第1页
编译原理(第2版)陈意云+张昱编著课后答案(1)_第2页
编译原理(第2版)陈意云+张昱编著课后答案(1)_第3页
编译原理(第2版)陈意云+张昱编著课后答案(1)_第4页
编译原理(第2版)陈意云+张昱编著课后答案(1)_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,编译原理习题,2003.4,2,目录,chap 1 基本知识 chap 3 词法分析 chap 4 语法分析 chap 5 语法制导翻译 chap 6 运行时刻环境 chap 7 中间代码生成 chap 8 代码生成,3,第一章 练习,1.1 文法 S ( L ) | a L L , S | S (a) 指出文法的终结符号, 非终结符号, 开始符号.,文法的四个组成部分: 终结符号 VT : 语言不可再分的基本符号 非终结符号VN : 语法范畴(语法概念) 开始符号 S : 最终感兴趣的语法范畴 产生式 P : 定义语法范畴的一种书写形式,终结符号: ( , ) a 非终结符号: S L 开始符号: S,元语言符号: 表示“定义为” | 表示“或”,4,(b) 给出句子的分析树,分析树: (推导树) 表示一个句型的推导, (a, (a,a),S ( L ) L , S S ( L ) a S a,5,(c) 给出句子的最左推导 给出每次推导后得到的句型的短语, 直接短语,最左推导 : 推导中任何一步 都是对中的最左非终结 lm 符号进行替换的推导. 短语 是文法的句型(S * ) S * A且A + 则是关于A的句型的短语. 直接短语 是文法的句型(S * ) S * A且A 则是关于A的句型的直接短语. 句柄: 一个句型的最左直接短语称为句柄.,6,S ( L ) ( L, S ) ( S, S ) ( a, S ) ( a, ( L ) 短语 ( L ) L, S S a a ( L, S ) S,S a, S a, ( L ) ( S, S ) (a, S) ( a, ( L ) ( L ) 直接 ( L ) L, S S a a 短语 ( L ) ( a, ( L, S ) ( a, ( S, S) ( a, (a, S) ( a, (a, a) 短语 a a a a a, ( L, S ) a, ( S, S) a, (a, S) a, (a, a) ( a, ( L, S ) ( a, ( S, S) ( a, (a, S) ( a, (a, a) L, S S a a (L, S) S, S a, S a, a ( S, S) ( a, S) ( a, a) 直接 a a a a 短语 L, S S a a a,7,(d) 构造各个句子的最右推导. 最右推导(规范推导) (e) 这个文法产生的语言是什么? a (a) (a,a) (a,a),a) a和数据元素为a的广义表全体,8,1.2 考虑文法 S aSbS | bSaS | (a) 试说明此文法是二义性的. (定义1.5) 如果一文法的句子存在两棵分析树, 则该句子是二义性的 . 如果一文法包含二义性的句子,则这个文法是二义性的. 可以从句子abab有两个不同的最左推导来说明. S aSbS abS abaSbS ababS abab lm lm lm lm lm S aSbS abSaSbS abaSbS ababS abab lm lm lm lm lm 句子abab有两个不同的最左推导, 该句子是二义性的 . 所以此文法是二义性的.,9,(b) 对于句子abab构造两个相应的最右推导. S aSbS aSb abSaSb abSab abab rm rm rm rm rm S aSbS aSbaSbS aSbaSb aSbab abab rm rm rm rm rm (c)对于句子abab构造两个相应的分析树. S S a S b S a S b S b S a S a S b S (d) 此文法产生的语言是什么? 由相同个数的a和b组成的字符串.,10,1.3 考虑文法 bexpr bexpr or bterm | bterm bterm bterm and bfactor | bfactor bfactor not bfactor | ( bfactor ) | true | false (a) 请指出此文法的终结符号, 非终结符号和开始符号.,终结符号: or, and, not, (, ), true, false 非终结符号: bexpr, bterm, bfactor 开始符号: bexpr,11,(b) 试对于句子 not ( true or false) 构造一棵分析树.,bexpr bterm bfactor not bfactor ( bexpr ) bexpr or bterm bterm bfactor bfactor false true,12,(c) 试说明此文法产生的语言是全体布尔表达式.,13,练习: 长度为n的字符串, 分别有多少个 前缀, 后缀, 子串, 真前缀, 子序列 ?,前缀: n+1 后缀: n+1 子串: 1+ n+(n-1)+.+1 = 1+n(n+1)/2 真前缀: n 子序列: 1+Cn1+Cn2+Cn3+.+Cnn = 2n,14,E E + T T * F i,给出句型E+T*i的短语, 直接短语和句柄,E E + T F T * F,给出句型F+T*F的短语, 直接短语和句柄,短语: i, T*i, E+T*i 直接短语: i 句柄: i,短语: F, T*F, F+T*F 直接短语: F, T*F 句柄: F,15,第三章 练习,3.3 试描述下列正规表达式所表示的语言: (a) 0 ( 0 | 1)* 0,(b) ( ( | 0 ) 1* ) *,由0和1组成且以0开始和结束的符号串全体.,(c) ( 0 | 1 )* 0 ( 0 | 1) ( 0 | 1),由0和1组成的符号串全体.,由0和1组成且以000,001,010或011结束的符号串全体. 长度大于等于3且倒数第3个字符为0的01符号串全体.,16,(d) 0*10*10*10*,(e) ( 00 | 11)* ( ( 01 | 10 ) ( 00 | 11)* ( 01 | 10 ) ( 00 | 11)* )*,有且只有3个1的0、1字符串全体.,带有偶数个0和偶数个1的由0和1组成的符号串全体.,带有偶数个a和偶数个b的符号串全体. ( (aa|bb) | (ab|ba) (aa|bb)* (ab|ba) )*,17,3.4 对于下列语言分别写出它们的正规表达式: (a) 英文字母组成的所有符号串, 要求符号串中顺序包含 五个元音字母.,令letter=非元音的英文字母 letter* (a|A) letter* (e|E) letter* (i|I) letter* (o|O) letter* (u|U) letter*,(b) 英文字母组成的所有符号串, 要求符号串中的字母依 照字典序排列.,( a | A)* ( b | B)* ( c | C)* ( z | Z)*,18,(c)没有重复出现的数字的数字符号串全体.,(d) 最多有一个重复出现的数字的数字符号串全体,令 ri = i | , i=0,1,2,.,9 R0|R1|R2|.|R9记为 Ri i(0,1,2.,9) P(0,1,2.,9)表示0,1,2.,9的全排列 ri0ri1.ri9 i0i1. i9P(0,1,2.,9), i ri0ri1.ri9 i(0,1,2.,9) i0i1. i9P(0,1,2.,9),19,(e) 带有偶数个0和奇数个1的由0和1组成的符号串全体.,E为带有偶数个0和1的由0和1组成的符号串全体. 即 ( 00 | 11)* ( ( 01 | 10 ) ( 00 | 11)* ( 01 | 10 ) ( 00 | 11)* )* E 1 E | E 0 E 1 E 0 E,(f) 不包含子串011的由0和1组成的符号串全体.,(g) 不包含子序列011的由0和1组成的符号串全体,1*0*10* |,1*( 0* | (10)* )*,20,练习: 1. 令A,B和C是任意正规式,证明以下关系成立: A|A=A (A*)*=A* A*=|AA* (AB)* A =A(BA)* (A|B)*=(A*B*)*=(A*|B*)* A=b|aA当且仅当A=a*b,21,3.6 给出接受下列在字母表0,1上的DFA。 (a)所有以00结束的符号串的集合;,(1|0)*00,22,(b)所有具有三个0的符号串的集合。,1*01*01*01*,23,3.7 构造等价于下列正规表达式的有限自动机. (a) 10|(0|11)0*1,24,(b) (0|1)* |(11)*,25,3.8 给定右线性文法G: S 0S | 1S | 1A | 0B A 1C | B 0C | 1 C 0C | 1C | 0 | 1 试求一个等价的左线性文法G.,26,3.9-3.11 (d) (a|b)*abb(a|b)*,27,3.13 对于下列正规表达式构造最小状态的DFA. (b) (a|b)*a(a|b)(a|b),28,4.4 考虑文法 R R | R | RR | R* | (R) | a | b (a)试说明此文法生成在符号a和b之上的所有正规表达式. (b)试说明此文法是二义性的. (c)试构造一个等价的无二义性文法.,(b) 句子a|aa的两种最左推导. 句子aa*的两种最左推导.,29,4.5 dangling-else文法: stmt if expr then stmt | matched-stmt matched-stmt if expr then matched-stmt else stmt | other 试说明此文法是二义性的。,句子 if e1 then if e2 then s1 else if e3 then s2 else s3 if e1 then if e2 then s1 else if e3 then s2 else s3,30,4.3 对于下面的每一个语言设计一个文法。试问其中哪些语言是正规的? (a) 使得在每一个0后至少立即跟随一个1的由0和1组成的符号串的全体。,(b) 具有相同数目的0和1的由0和1组成的符号串的全体。,(c) 具有不同数目的0和1的由0和1组成的符号串的全体。,S 1S | 01S | (1|01)*,S 0S1S | 1S0S | 非正规语言,S SAS S 0S1S | 1S0S | A B | C 非正规语言 B 1B | 1 C 0C | 0 S A | B A 0 | 0A | A0 | 10A | 01A| A10 | A01| 1A0 | 0A1 B 0 | 0B | B0 | 10B | 01B| B10 | B01| 1B0| 0B1,31,(d) 所有形如xy而xy的由0和1组成的符号串。,S 0E | 1E | LBR E 00E | 01E | 10E | 11E | B I I1B | OO1B | IO1C | OI1C C IO1C | OI1C | I1 O OI1 O1I IO1 I1I I I1 O1O OO1 L I 1L LO 0L I1R R1 O1R R0 LR ,所有形如xy而x=y的由0和1组成的符号串。 S 0S0| 1S1| ,32,4.5 (a) 给出一个上下文无关产生式的集合, 使它与A B*a (C|D) 生成同样的 符号串集合。 A B a E B B B | E C | D (b) 是否可以把E T | E+T写为: E T +T 是否可以把E T | E+T | E-T写为: E T (+|-T) E T +T 等价于 E T T T +TT |,33,4.7对于文法S aSbS | bSaS | 构造一个带有回溯的递归下降分析器. 问能否构造一个预测分析器.,procedure match(t:token); begin ifkahead = t then end; procedure S; begin if match,34,4.9 对于文法 bexpr bexpr or bterm | bterm bterm bterm and bfactor | bfactor bfactor not bfactor | (bexpr) | true | false 构造一个预测分析器。 1. 消除左递归 bexpr bterm bexpr bexpr or bterm bexpr | bterm bfactor bterm bterm and bfactor bterm | bfactor not bfactor | (bexpr) | true | false 2. First(bexpr) = First(bterm) = First(bfactor) =not, (, true, false First(bexpr) = or, First(bterm) = and, Follow(bexpr) = $, ) Follow(bexpr) = $, ) Follow(bterm) = or, $, ) Follow(bterm) = or, $, ) Follow(bfactor) = or, and, $, ),35,(1) bexpr bterm bexpr (2) bexpr or bterm bexpr (3) bexpr (4) bterm bfactor bterm (5) bterm and bfactor bterm (6) bterm (7) bfactor not bfactor (8) bfactor (bexpr) (9) bfactor true (10) bfactor false,First(bexpr) = First(bterm) = First(bfactor) =not, (, true, false First(bexpr) = or, First(bterm) = and, Follow(bexpr) = $, ) Follow(bexpr) = $, ) Follow(bterm) = or, $, ) Follow(bterm) = or, $, ) Follow(bfactor) = or, and, $, ),or and not true false ( ) $ bexpr (1) (1) (1) (1) synch synch bexpr (2) (3) (3) bterm synch (4) (4) (4) (4) synch synch bterm (6) (5) (6) (6) bfactor synch synch (7) (9) (10) (8) synch synch,36,4.11试说明没有一个左递归文法可以是LL(1)的。 (1) 直接左递归文法中存在产生式: A A1 | A2 |.| Am | 1 | 2 |.| n, 其中 1 2 . n均不以A开头 First(Ai) First( j) = First( j) 若 j *, First(A i) Follow(A) = First( i) , 不是LL(1)文法. (2) 间接左递归文法中存在产生式集合: A B1 1 | 1 | 2 |.| n B1 B2 2 . Bm A First(B1 1) = First(A m . 1) First( j) First(B1 1) , j=1,.,n First( j) First(B1 1) , j=1,.,n 若 j *, First(B1 1) Follow(A) = First( m . 1) , 不是LL(1)文法.,37,4.12试说明没有一个LL(1)文法可以是二义性的。 若有一个LL(1)文法是二义性的, 则存在句子w 有两种不同的最左推导: S * A 1 * w S * A 2 * w 对于文法中的产生式 A 1 | 2 , 其中1 , 2 First(1) First(2) = First(w) 与LL(1)文法矛盾.,38,4.15 文法 S (L) | a L L, S | S 的算符优先关系由表4.20给出。建立与 表相应的算符优先函数并用算符优先分 析法分析句子(a, (a, a)及(a, (a,a), (a,a)。,算符优先关系表 a ( ) , $ a ( = ) , $ ,句子(a, (a, a)的分析过程 栈 输入 动作 $ (a,(a,a)$ $( shift $( a,(a,a)$ (a shift $(a ,(a,a)$ a, reduce $(S ,(a,a)$ (, shift $(S, (a,a)$ ,( shift $(S,( a,a)$ (a shift $(S,(a ,a)$ a, reduce $(S,(S ,a)$ (, shift $(S,(S, a)$ ,a shift $(S,(S,a )$ a) reduce $(S,(S,S )$ ,) reduce $(S,(L )$ (=) shift $(S,(L) )$ ) reduce $(S,S )$ ,) reduce $(L )$ (=) shift $(L) $ )$ reduce $S $ accept,39,4.16 试为下列各文法建立算符优先关系表。 (a) S a S b S | b S a S | ,a b $ a = b = $ acc,设G是一个运算符文法, R和S是G中任何 两个终结符, 定义: (1) R=S当且仅当G中存在产生式 .RS. 或 .RS. (2) R .R., 其中 + S. 或 + S. (3) RS当且仅当G中存在产生式 . S., 其中 + .R 或 + .R,最左终结符: S.或 S., S是的最左终结符 ., 则的最左终结符是的最左终结符 对于文法中 R.的产生式, R的最左终结符.,40,(b) bexpr bexpr or bterm | bterm bterm bterm and bfactor | bfactor bfactor not bfactor | (bexpr) | true | false,41,4.18 给出文法LR(0)项目集族及相应的识别活前缀的自动机的状态转移图. S S C cC S CC C d,42,4.19 利用图4.31画出文法4.27的识别活前缀的自动机的状态转移图. (P.200),I0: S .S S .iSeS S .iS S .a I1: S S. I2: S i.Ses S i.S S .iSeS S .iS S .a0,I3: S a. I4: S iS.eS S iS. I5: S iSe.S S .iSeS S .iS S .a I6: S iSeS.,43,4.21 考虑文法 S A S | b A S A | a (1) 构造文法的LR(0)项目集规范族及相应的DFA. (2) 如果把每一个LR(0)项目看成一个状态, 并从每个形如B.X的状态出发画一条标记为X的弧到状态BX., 且从从每个形如B.A的状态出发画一条标记为的弧到所有形如A.的状态.这样就得到了一个NFA. 说明这个NFA和(1)的DFA是等价的. (3) 构造文法的SLR分析表. (4) 对于输入串bab, 给出SLR分析器的动作. (5) 构造文法的LR(1)分析表和LALR分析表.,44,I0: S .S S .AS S .b A .SA A .a I1:(I0,S) S S. A S.A A .SA A .a S .AS S .b I2: (I0,A) (I2,A) (I6,A) S A.S S .AS S .b A .SA A .a I3: (I0,b) (I1,b) (I2,b) (I5,b) (I6,b) (I7,b) S b. I4: (I0,a) (I1,a) (I2,a) (I5,a) (I6,a) (I7,a) A a.,I5: (I1,S) (I5,S) (I7,S) A S.A A .SA A .a S .AS S .b I6: (I1,A) (I5,A) (I7,A) A SA. S A.S S .AS S .b A .SA A .a I7 : (I2,S) (I6,S) S AS. A S.A A .SA A .a S .AS S .b,45,First(S) = First(S) = First(A) = b, a Follow(S) = $ Follow(S) = a, b, $ Follow(A) = a, b SLR分析表,STATE ACTION GOTO a b $ S A 0 s4 s3 1 2 1 s4 s3 acc 5 6 2 s4 s3 7 2 3 r3 r3 r3 4 r5 r5 5 s4 s3 5 6 6 s4/r4 s3/r4 7 2 7 s4/r2 s3/r2 r2 5 6,SLR分析表存在移入-归约冲突.为消除二义性,假设a的优先级高于b,则遇到a时移入,遇到b时归约。,输入串bab, SLR分析器的动作: 栈 输入 动作 0 bab$ shift3 0b3 ab$ reduce S b 0S1 ab$ shift4 0S1a4 b$ reduce A a 0S1A6 b$ shift-reduce collision,输入串bab, SLR分析器的动作: 栈 输入 动作 0 bab$ shift3 0b3 ab$ reduce S b 0S1 ab$ shift4 0S1a4 b$ reduce A a 0S1A6 b$ reduce A SA 0A2 b$ shift3 0A2b3 $ reduce S b 0A2S7 $ reduce S AS 0S1 $ accept,46,LR(1)项目集规范族 I0: S .S, $ S .AS, $/a/b S .b, $/a/b A .SA, a/b A .a, a/b I1:(I0,S) S S., $ A S.A, a/b A .SA, a/b A .a, a/b S .AS, a/b S .b, a/b I2: (I0,A) (I2,A) S A.S, $/a/b S .AS, $/a/b S .b, $/a/b A .SA, a/b A .a, a/b I3: (I0,b) (I2,b) S b., $/a/b I4: (I0,a) (I1,a) (I2,a) (I5,a) (I6,a) (I8,a) (I9,a) (I10,a) A a., a/b,I5: (I1,S) (I5,S) (I8,S) (I10,S) A S.A, a/b A .SA, a/b A .a, a/b S .AS, a/b S .b, a/b I6: (I1,A) (I5,A) (I8,A) (I10,A) A SA., a/b S A.S, a/b S .AS, a/b S .b, a/b A .SA, a/b A .a, a/b I7 : (I1,b) (I5,b) (I6,b) (I8,b) (I9,b) (I10,b) S b., a/b I8 : (I2,S) S AS., $/a/b A S.A, a/b A .SA, a/b A .a, a/b S .AS, a/b S .b, a/b,I9: (I6,A) (I9,A) S A.S, a/b S .AS, a/b S .b, a/b A .SA, a/b A .a, a/b I10: (I6,S) (I9,S) S AS., a/b A S.A, a/b A .SA, a/b A .a, a/b S .AS, a/b S .b, a/b,47,STATE ACTION GOTO a b $ S A 0 s4 s3 1 2 1 s4 s7 acc 5 6 2 s4 s3 8 2 3 r3 r3 r3 4 r5 r5 5 s4 s7 5 6 6 s4/r4 s7/r4 10 9 7 r3 r3 8 s4/r2 s7/r2 r2 5 6 9 s4 s7 10 9 10 s4/r2 s7/r2 5 6,LR(1)分析表,该文法的LR(1)分析表中存在移入-归约冲突,文法具有二义性。 为消除二义性,假设a的优先级高于b,则遇到a时移入,遇到b时归约。,s4,r4,r2,48,该文法不是LR(1)文法.具有二义性.对于句子abab,存在两颗不同的分析树.,S,A,S,a,A,S,S,A,b,b,a,S,A,S,a,S,A,b,b,a,A,S,49,4.22 构造文法 S a S S b | a S S S | c 的LR(0)项目集规范族及识别活前缀的自动机.,50,4.25 证明下面文法是SLR(1)文法, 并构造其SLR分析表. E E + T (1) F F* (5) E T (2) F a (6) T T F (3) F b (7) T F (4),Follow(E) = +, $ Follow(T) = +, $, a, b Follow(E) = +, $, *, a, b,51,4.26 证明每一个LL(1)文法都是LR(1)文法.,52,4.27 证明下面文法是LL(1)的但不是SLR(1)文法. S A a A b | B b B a A B ,First(AaAb)=a First(BbBa)=b First(AaAb) First(BbBa) = 文法是LL(1)的.,构造SLR(1)项目集: I0: S .S S .AaAb S .BbBa A . B . Follow(A) = Follow(B) = a, b 存在归约-归约冲突, 该文法不是SLR(1)文法.,53,4.28 证明任何一个LR(1)文法都是无二义文法.,54,4.29 证明任何SLR(1)文法都是LR(1)文法.,假设文法G是SLR(1)文法, 则 对于文法的状态i: 对于A.X, XVT, , XFollow(B), i中没有项目B. 对于A.和B ., Follow(A) Follow(B) = 构造G的LR(1)项目集, 若G是LR(1)文法, 则项目集i必须满足条件: (1)对于A.X, a, XVT, , XFollow(B), i中没有项目B., X. (显然成立) (2)没有A., a和B .,a的两个项目. 由closure(I)的构造A.B,a, B., First(a)可得知, 项目A.的向前搜索符号Follow(A) 对于一个项目集中的不同归约项目A2.搜索符A, B3.,搜索符A 搜索符A 搜索符A = 不存在归约-归约冲突, 所以条件(2)成立.,55,4.31 为下面的文法构造它的LR(1)项目集规范族,并判断它是否为LR(1)文法? 若是,构造它的分析表. S E S S S E (1) E E + T | T E E + T (2) E T (3) T ( E ) | a T ( E ) (4) T a (5),I0: S .S $ S .E $ E .E+T $/+ E .T $/+ T .(E) $/+ T .a $/+ I1: S S. $ I2: S E. $ E E.+T $/+ I3: E T. $/+ I4: T (.E) $/+ E .E+T )/+ E .T )/+ T .(E) )/+ T .a )/+ I5: T a. $/+,I6: E E+.T $/+ T .(E) $/+ T .a $/+ I7: T (E.) $/+ E E.+T )/+ I8: E T. )/+ I9: T (.E) )/+ E .E+T )/+ E .T )/+ T .(E) )/+ T .a )/+ I10:T a. )/+ I11:E E+T. $/+ I12: T (E). $/+,I13:E E+.T )/+ T .(E) )/+ T .a )/+ I14: T (E.) )/+ E E.+T )/+ I15: E E+T. )/+ I16: T (E). )/+,LR(1)项目集规范族:,56,action goto + ( ) a $ S E T 0 s4 s5 1 2 3 1 acc 2 s6 r1 3 r3 r3 4 s9 s10 7 8 5 r5 r5 6 s4 s5 11 7 s13 s12 8 r3 r3 9 s9 s5 14 8 10 r5 r5 11 r2 r2 12 r4 r4 13 s9 s10 15 14s13 s16 15r2 r2 16r4 r4,LR(1) 分析表:,57,LALR(1)分析表:,action goto + ( ) a $ S E T 0 s4 9 s5 10 1 2 3 8 1 acc 2 s6 13 r1 3 8 r3 r3 r3 4 9 s4 9 s5 10 7 14 3 8 5 10 r5 r5 r5 6 13 s4 9 s5 10 11 15 7 14 s6 13 s12 16 11 15 r2 r2 r2 12 16 r4 r4 r4,LALR(1)分析表不存在冲突, 所以该文法是LALR(1)文法.,58,证明文法G: ad bd ae be c c 是LR(1)文法, 但不是LALR(1)文法.,59,5.1 对于输入的表达式(4*7+1)*2, 根据表5.1的语法制导定义建立 一棵带注释的分析树.,60,5.2 试根据 (a) 表5.3中的语法制导定义, 和 (b) 图5.17的翻译模式 来建立表达式(a)+(b)的分析树和语法树. (a),E T ( E nptr ) E + T T ( E ) ( E ) T nptr T nptr id id,id,entry to a,id,entry to a,+,61,(b),E T R ( E nptr ) T R ( E ) + T i R s T nptr R ( E ) id Tnptr R id ,id,entry to a,id,entry to a,+,62,5.4 E E+T | T T num.num | num (a) 给出一个语法制导定义以确定每个子表达式的类型. 5.7 (b) 扩充(a)中的语法制导定义把表达式翻译成前缀形式, 并且决定 类型.,(a) E E1+T if ( E1.type=real or T.type=real ) then E.type=real else E.type=integer E T E.type = T.type; T num.num T.type = real; T num T.type = integer;,63,(b) S E S.type = E.type; S.code = E.code; E E1+T if ( E1.t ype = real and T.type = integer ) then begin E.type = real; E.code = + | E1 .code | inttoreal(T.code) end else if ( E1.t ype = integer and T.type = real ) then begin E.type = real; E.code = + | inttoreal(E1 .code) | T.code end else begin E.type = E1.t ype; E.code = + | E1 .code | T.code end E T E.type = T.type ; E.code = T.code T num.num T.type = real; T.code = (num.num).lexval T num T.type = integer; T.code = num.lexval,64,E T E.type = T.type ; E.code = T.code T num.num T.type = real; T.code = (num.num).lexval T num T.type = integer; T.code = num.lexval,65,S t c E t c E t c + T t c E t c + T t c num.num T t c num num,66,5.5 S L.L | L L L B | B B 0 | 1 (a) 试用各有关综合属性决定S.val.,引入L的属性b记录2的L的位数次幂值 S L1.L2 S.val = L1.val +L2.val / L2.b; S L S.val = L.val; L L1 B L.val = L1.val *2 + B.val; L.b = L.b*2; L B L.val = B.val; L.b = 2; B 0 B.val = 0; B 1 B.val = 1;,67,S val L v . L b v L v B v L b v B v B v 0 L b v B v 1 1 B v 0 1,68,(b) 试用一个语法制导定义来决定S.val, 在这个定义中B仅有综合 属性c,给出由B生成的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论