ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:33.80KB ,
资源ID:21271336      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21271336.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理与技术练习题汇总Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理与技术练习题汇总Word文档下载推荐.docx

1、(6) (0|1|.|9|A|B|C|D|E)+(t|T)2.8 为下列语言写正规式 所有以小写字母a开头和结尾的串。 所有以小写字母a开头或者结尾(或同时满足这两个条件)的串。(3) 所有表示偶数的串。 所有不以0开始的数字串。 能被5整除的10进制数的集合。 没有出现重复数字的全体数字串。2.9 试构造下列正规式的NFA,并且确定化,然后最小化。 (a|b)*a(a|b) (a|b)*a(a|b) * ab(ba|ab)*(bb|aa)*ab 00|(0|1)*|11 1(0|1)*01 1(1010*|1(010)*1*02.10 请分别使用下面的技术证明(a|b)*,(a*|b*)*以

2、及(a|)b*)*这三个正规式是等价的: 仅用正规式的定义及其代数性质; 从正规式构造的最小DFA的同构来证明正规式的等价。2.11 构造有限自动机M,使得 L(M) = anbn | n 1; L(M) = anbncn | n 1; 它能识别0, 1上0和1的个数都是偶数的串; 它能识别字母表0, 1上的串,但是串不含两个连续的0和两个连续的1; 它能接受形如dd*,d*E和dd的实数,其中d=0,1,2,3,4,5,6,7,8,9。 它能识别a, b上不含子串aba的所有串。2.12 分别将下列NFA确定化,并画出最小化的DFA:(a)(b)(c)2.13 下面是URL的一个极其简化的扩

3、展正规式的描述:letter A-Za-zdigit 0-9letgit letter| digit letgit_hyphen letgit | _letgit_hyphen_string letgit_hyphen | letgit_hyphen letgit_hyphen_stringlabel letter (letgit_hyphen_string? letgit)? URL (label.)*label(1) 请将这个URL的扩展正规改写成只含字母表A, B, 0, 1, _, .上符号的正规式;(2) 构造出识别(1)更简化的URL串的有限自动机。2.14 用某种高级语言实现(1

4、) 将正规式转换成NFA的算法;(2) 将NFA确定化的算法;(3) 将DFA最小化的算法。2.15 描述下列语言词法记号的正规表达式:(1) 描述C浮点数的正规表达式。(2) 描述Java表达式的正规表达式。2.16 Pascal语言的注释允许两种不同的形式:花括弧对.,以及括弧星号对(*.*)。(1) 构造一个识别这两种注释形式的DFA;(2) 用Lex的符号构造它的一个正规式。2.17 写一个Lex输入源程序,它将产生一个把C语言程序中(注释除外)的保留字全部大写。练习 33.1对于文法G3.26EE T | E+T | E-TT F | T*F | T/FF (E) | i 证明(i+

5、T)*i是它的一个句型。3.2 给定文法G3.27SS aAcB | BdSB aScA | cAB | b A BaB | aBc | a 试检验下列符号串中哪些是G3.27 S中的句子。(1) aacb (2) aabacbadcd (3) aacbccb (4) aacabcbcccaacdca (5) aacabcbcccaacbca3.3 考虑文法G3.28S S (L) | aL L, S | S(1) 指出该文法的终结符号及非终结符号。(2) 给出下列各句子的语法分析树: (a,a) (a,(a, a) (a, (a, a), (a, a) (3) 分别构造(b)中各句子的一个最

6、左推导和最右推导。3.4 考虑文法G3.29S S aSbS | bSaS |(1) 讨论句子abab的最左推导,说明该文法是二义性的。(2) 对于句子abab构造两个相应的最右推导。(3) 对于句子abab构造两棵相应的分析树。(4) 此文法所产生的语言是什么?3.5 文法G3.30S为:S Ac | aB A ab B bc 写出L(G3.30)的全部元素。3.6 试描述由下列文法GS所产生的语言。(1) S 10S0 | aA AbA | a (2) S SS | 1A0 A1A0 | (3) S 1A | B0 A1A | C BB0 | C C1C0 | (4) S bAdc AAS

7、 | a (5) S aSS Sa(6) A 0B | 1C B 1 | 1A | 0BB C 0 | 0A | 1CC3.7 设已给文法G3.31=(VN,VT,P,S),其中:VN = S VT = a1,a2,an, , , P = Sai| i=1,2,nS S, S SS, S SS,试指出此文法所产生的语言。3.8 已知文法G3.32=(A,B,C,a,b,c,A,P),其中P由以下产生式组成:A abc A aBbcBb bB Bc CbccbC Cb aC aaBaC aa问:此文法表式的语言是什么?3.9 已知文法 G3.33 P:P aPQR |abR RQ QR bQ b

8、b bR bc cR cc 证明 aaabbbccc 是该文法的一个句子。3.10 构造一个文法,使其产生的语言是由算符+, *, (, ) 和运算对象a构成的算术表达式的集合。3.12 已知语言L=anbbn| n1, 写出产生语言L的文法。3.13 写一文法,使其语言是偶正整数的集合。 要求:(1) 允许0打头。 (2) 不允许0打头。3.14 文法G3.34 S为:S Ac|aB, A ab 该文法是否为二义的?为什么?(提示:找一个句子,使之有两棵不同的分析树。) 3.15 证明下述文法G3.35表达式是二义的:表达式 a | (表达式) |表达式运算符表达式 运算符 + | - |

9、* | /3.16 下面的文法产生a的个数和b的个数相等的非空a、b串 S aB | bAB bS | aBB | b A aS | bAA | a其中非终结符B推出b比a的个数多1个的串,A则反之。(1) 证明该文法是二义的。(2) 修改上述文法,不增加非终结符,使之成为非二义文法,并产生同样的语言。3.17 考虑文法G3.36R RR | R | RR | R* | (R) | a | b 其中R R表示R或R;RR表示R与R的连接;R*表示R的闭包。(1) 证明此文法生成=a, b上的除了和的所有正规表达式。(2) 试说明此文法是二义性的。(3) 构造一个等价的无二义性文法,该文法给出*

10、、连接和|等运算符号的优先级和结合规则。3.18 给出产生下述语言的上下文无关文法:(1) an bn am bm | n, m0。(2) 1n 0m1m 0n | n, m0。(3) cT | a, b*,其中T是的逆。(4) w | wa,b+,且w中a的个数恰好比b多1 。(4) w | wa,b+,且|a|b|2|a| 。(5) w | w是不以0开始的奇数集 。3.19 设G=(VN,VT,P,S)为CFG,1,2,n为V上的符号串,试证明:若 12n 则存在V上的符号串1,2,,n,使=12n,且有 aii (i=1,2,n)。3.20 设G=(VN,VT,P,S)为CFG,和都是

11、V上的符号串,且 ,试证明:(1) 当的首符号为终结符号时,的首符号也必为终结符号;(2) 当的首符号为非终结符号时,则的首符号也必为非终结符号。3.21 写出下列语言的3型文法:(a) an | n0(b) anbm | n, m1 (c) anbmck | n, m, k1 3.22 已知文法G3.37 S:S dABA aA|aB |Bb 给出相应的正规式和等价的正规文法。3.23 给出下列文法GA消除左递归后的等价文法:(1) A BaC | CbBB Ac | cC Bb | b (2) A B a | A a | cB B b | A b | d(3) S SA | A A SB

12、| B | (S) | ( ) B S | (4) S AS | b A SA | a (5) S (T) | a | T S | T, S 练习 44.1 证明:含有左递归的文法不是LL(1)文法。4.2 对于文法G4.11SS uBDz B Bv | w D EF E y | F x | (1) 计算文法G4.11各非终结符的FIRST集和FOLLOW集,以及各产生式的SELLECT集。(2) 判断该文法是否是LL(1)文法。(3) 若不是LL(1)文法,则修改此文法 , 使其成为能产生相同语言的 LL(1) 文法。4.3 已知布尔表达式文法G4.12bexpr bexpr bexpr o

13、r bterm | bterm bterm bterm and bfactor | bfactor bfactor not bfactor | (bexpr) | true | false 改写文法G4.12为扩充的巴克斯范式,并为每个非终结符构造递归下降分析子程序。4.4已知用EBNF表示的文法G4.13A A B B X A X (a | b) a | b 试用类 C 或类 PASCAL 语言写出其递归下降子程序。4.5 已知文法G4.14SS (L) | a L L, S | S (1) 消除文法G4.14的左递归,并为每个非终结符构造不带回溯的递归子程序。(2) 经改写后的文法是否是L

14、L(1)文法?给出它的预测分析表。(3) 给出输入串 (a, a)$ 的分析过程,并说明该符号串是否为文法G4.14的句子。4.6 对于文法G4.15RR R | T | T T TF | F F F* | C C (R) | a | b(1) 消除文法的左递归。(2) 计算文法G4.15各非终结符的FIRST集和FOLLOW集。(3) 构造LL(1)分析表。4.7 已知文法G4.16A A aABe | a B Bb | d(1) 判断该文法是否为LL(1) 文法。(2) 写出输入串aade$ 的分析过程。练习 55.1 设文法G5.10E为E E+T | E-T | TT T*F | T/

15、F | FF FP | PP (E) | i求以下句型的短语、直接短语、素短语、句柄和最左素短语:(1)E-T/F+i(2)E+F/T-Pi(3)T*(T-i)+P(4)(i+i)/i-i5.2 根据下列优先关系矩阵计算其优先函数,并说明优先函数是否存在。SABabc5.3 对于文法G5.11SS (R) | a | b R TT S; T | S(1)计算G5.11 S的FIRSTTV和LASTTV;(2)构造G5.11 S的优先关系表,并说明G5.11 S是否为算符优先文法;(3)计算G5.11 S的优先函数。5.4 对于文法G5.12 SS S;G | GG G(T) | HH a |

16、(S)T T+S | S(1)构造G5.12 S的算符优先关系表,并判断G5.12 S是否为算符优先文法;(2)给出句型a(T+S);H;S的短语、直接短语、句柄、素短语和最左素短语;(3)分别给出(a+a)和a;(a+a)的分析过程,并说明它们是否为G5.12 S的句子;(4)给出(3)中输入串的最右推导,分别说明它们是否为G5.12 S的句子;(5)从(3)和(4)说明算符优先分析的优缺点。5.5 对于文法G5.13PP LAd | cdL cA aP | P | a请证明它不存在优先函数。5.6 给定文法G5.14 SS AS | bA SA | a(1)构造它的LR(0)的项集;(2)

17、构造识别该文法所有活前缀的DFA;(3)这个文法是SLR(1)吗?若是,构造出它的SLR(1)分析表。5.7 给定文法G5.15SS AS | A aA | b(1)构造它的LR(1)文法;(3)构造出它的SR(1)分析表;(4)给出字符串abab$的分析过程。5.8 若有定义二进制数的文法G5.16DD L . L | LL LB | BB 0 | 1 (1) 通过构造该文法的无冲突的分析表来说明它是哪类LR文法;(2) 给出输入串101.010的分析过程。5.9 给定文法G5.17SS L = R| RL *R | idR L(2)构造它的LR(0)项集规范族;(3)构造识别该文法所有活前

18、缀的DFA;(4)该文法是SLR(1)、LR(1)以及LALAR(1)?构造相应的分析表。5.10 对于文法G5.18SS AA Ab | bBaB aAc | aAb | a(1)证明它是SLR(1)文法,但不是LR(0)文法;(2)证明所有SLR(1)文法都是LR(1)文法。5.11 证明文法G5.19MM NN Qa | bQc | dc | bdaQ D是LALR(1)文法,但不是SLR(1)文法。5.12 证明文法G5.20SS aAa | aBb | bAb | bBaA cB c是LR(1)文法,但不是LALR(1)文法。5.13 对于文法G5.21SS AaAb | BbBa

19、A B (1)证明它是LL(1)文法,但不是SLR(1)文法;(2)证明所有LL(1)文法都是LR(1)文法。5.14 对于下列各个文法,判断它是哪类最简单的LR文法,并构造相应的分析表。 A AA + | AA* | a S ABA aBa | B bAb | S D; B | BD d | B B; a | a| S (SR | aR . SR | ) S UTa | TbT S | Sc | dU US | e5.15 命题演算的文法G5.22B B B and B | B or B | not B | (B) | true | false | b是二义性文法。(1)为句子b and b

20、 or true构造两个不同的最右推导,以此说明该文法是二义的。(2)为它写一个等价的非二义性文法。(3)给出无二义性规则,构造出LR(0)分析表,并给出句子b and b or true的分析过程。练习 66.1 符号表的作用有哪些?6.2 符号表的表项通常包括哪些属性,主要描述的内容是什么?6.3 符号表组织的数据结构有哪些种?每种组织结构选取的主要依据是什么?6.4 程序块是程序语言的主要构造元素,它允许以嵌套的方式确定局部声明。大多数语言规定,程序块结构的声明作用域使最近嵌套规则,请按照这个规则写出下列声明的作用域。main() /* 开始块B0 */int a = 0;int b =

21、0; /* 开始块B1 */int b = 1; /* 开始块B2 */int a = 2; /* 结束块B2 */ /* 开始块B3 */int b = 3; /* 结束块B3*/ /* 结束块B1*/6.5 C语言中规定变量标识符可以定义为:extern、ertern static、auto、local static和register,请对这5种变量分别说明其作用域。6.6 设散列表为HT13,哈希函数定义为hash(key)=key%13(整数除法取余运算),用链地址法解决冲突对下列关键码12,23,45,57,20,3,31,15,56,78造表。练习 77.1 请考虑过程和活动记录的

22、联系和区别。7.2 请解释下列概念:生存期,过程的活动,活动树,活动记录。7.3 有哪些常见的参数传输方式,请分析和比较它们各自的特点。7.4 对你熟悉的高级程序语言(如C、Pascal、C+、Java或C#),了解它们的参数传输机制。7.5 执行下面Pascal程序的输出a结果分别是什么,如果参数的传递机制是:(1)引用调用方式;(2)值结果调用方式;program copyout (input, output);var a: integer;procedure unsafe (var x: integer);begin x := 2; a := 0 end;begina := 1; uns

23、afe (a); writeln (a)end7.6 执行下面程序时打印的a分别是什么,若参数的传递机制是:(1)按值调用方式;(2)引用调用方式;(3)值结果调用方式;(4)换名调用方式。procedure p(x, y, z);y := y +1;z := zx;end p;b := 3;p(a+b, a, a);print a;end;7.7 设计存储分配时要考虑哪些主要因素?常见的存储分配策略有哪些?简单说明在什么情况下使用哪种存储分配策略。7.8 C+语言中关于变量的存储类型符有4个:auto、register、static和extern,请说明每个说明符所表示的存储方式。7.9 为

24、下面FORTRAN程序的运行时环境构造出一个可能的组织结构,要保证对AVE的调用时存在的一个存储器指针(参考7.4节)。REAL A(SIZE), AVEINTEGER N, I10 READ *, NIF (N .LE. 0 .OR. N .GT. SIZE) GOTO 99READ *, (A(I), I=1, N)PRINT *, AVE = , AVE(A, N)GOTO 1099 CONTINUEENDREAL FUNCTION AVE (B, N)INTEGER I, NREAL B(N), SUMSUM = 0.0DO 20 I=1, N20 SUM = SUM+B(I)AVE = SUM/N7.10考虑C语言中的下列过程:void f ( char c, char s10, double r) int * x;int y 5;.(1)使用标准

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1