编译原理词法分析习题集带答案_第1页
编译原理词法分析习题集带答案_第2页
编译原理词法分析习题集带答案_第3页
编译原理词法分析习题集带答案_第4页
编译原理词法分析习题集带答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

编译原理练习(a) 词汇分析第一,真或假(括号内,正确的线,错误的线)1.编译程序是高级语言程序的解释执行。()2.一个有限状态机器人只有一个唯一的终止状态。()9.两个正规集相同,先决条件是他们对应的正规表达式等价物。()二、选择题1.词法输出为_ _ _ _ _ _ _ _ _。A.()符号b .()符号表中相应项目的位置C.()令牌和属性二进制组d .()属性值2.正则M 1和M 2的等价性表示_ _ _ _ _ _ _ _ _ _。A.()m1和M2的状态数等于b. () m1和M2的乳香侧条带数等于C.()m1和M2标识的语言集具有相同的D. () m1和M2状态数和乳香栏数3.语言是A.句子集b .生成集C.符号字符串集d .句型集程序编译的前三个阶段完成的任务如下A.词汇分析、语法分析和代码优化B.代码生成、代码优化和词汇分析C.词汇分析、语法分析、语义分析和中间代码生成D.词汇分析、语法分析和代码优化5.扫描仪执行的任务是在字符串形式的源程序中标识具有独立含义的最小语法单位A.字母b .单词c .句子d .句型生成编译程序必须掌握_ _ _ _ _ _ _ _ _。A.()源代码b .()目标语言C.()编译方法d .()以上三种7.词汇分析的任务是A.单词识别b .句子的语义分析C.句子识别d .生成目标代码三、填空1.计算机运行使用高级语言编写的程序有两种主要方法:_ _ _ _ _解释_ _和_ _编译_ _ _。3.编译过程可以分为五个阶段:(词法分析)、(语法分析)、(语义分析和中间代码生成)、(优化)和(目标代码生成)。6.扫描仪的工作是(在源程序中)标识一个(单词符号)。17.一个变换图形仅包含一个被视为(初始)状态的状态。而且实际上必须至少有一个(最终)状态。1.编译程序必须首先识别源程序中的每个(单词),然后分析每个(句子)并翻译其含义。3.编译过程通常分为分析前端和集成后端两个阶段。词汇、语法和语义分析是源程序的(分析),中间代码生成、代码优化和目标代码生成是源程序的(合成)。5.对于编译器,输入数据是(源程序),输出结果是(目标程序)。四、名词解释问题:1.词汇分析词汇分析的主要任务是从左到右扫描每个源代码的符号,并遵守词汇规则在构成源程序的字符串中识别具有独立含义的最小语法单位。转换为解析程序的集成内部表示法(token)。13.扫描仪-执行词汇分析的程序。五、短答型(a),描述由正则表达式b*(abb*)*(a| e)定义的语言,并绘制接受该语言的最简单DFA。a:定义为正则表达式b*(abb*)*(a| e)的语言是字母a,b中没有子字符串aa的所有字符串的集合。最简单的DFA包括:Start1abb2(b)描述公式b*a(bb*a) *b*定义的语言,并绘制允许该语言的最简单DFA。Start2abb10ab答:公式b*a(bb*a) *b*的特点是,如果a不是第一个字母,则每个a的左侧有多个b。正则表达式定义语言是具有一个或多个a但没有子字符串aa的所有a和b的字符串集。最简单的DFA包括:(c)请写下与字母=a,b,上面的a构成的所有正则集相对应的正则表达式。答:常规a (a | b )*。(4)sigma= a,b,公式a*b|b*a是什么意思?A: (* b | b * a)=a,b,ab,ba,aab,BBA.(e),配置以下常规相应的DFA(显示为状态转换图)(1)0(0 | 1)*1(2)0*10*10*10*1(3)letter(letter | digit)*(1)(2)(3)(6)非决定性NFA M=(A,b,C,0,1,d,A,C)。其中:D (A,0)=C d (A,1)=A,B d (B,1)=C d (C,1)=C绘制状态变换矩阵和状态变换图表。解决方案:状态转换矩阵如下所示:d01aca、bbccc状态转换图为11011(7)编译器和高级语言之间有什么区别?用汇编语言或高级语言编写的程序必须先发送到计算机,然后转换到使用机器语言表示的目标程序(此过程已编译)可以由计算机运行。执行转换过程程序称为编译程序。汇编程序表示未编译的汇编语言源文件。编译器切换目标程序,也就是机器语言。编译器任务有三种类型:装配、解释和编译。汇编编译器根据一对一的对应关系,将用汇编语言编写的程序转换成用机器语言表达的程序。解释型编译器首先将高级语言程序中的一个语句解释为机器语言集中的一个命令然后立即执行,完成执行,删除语句集的解释和执行,直到程序完成停止。解释型编译程序运行速度慢,但人和计算机“对话”随时都可以能够修改高级语言的程序。基本语言是解释高级语言。编译的编译器用级别语言编写的程序一次用机器语言翻译的程序完成,过程很快。在这个过程中,不能进行人机对话修改。fortran语言是编译的高级语言。8)编译程序分为几个步骤?(?词汇分析、语法分析和语义分析是源程序的分析(称为编译器前端),中间代码生成、代码优化和代码生成的三阶段组合称为源代码集成在源代码中间创建与源程序等价的目标程序的编译器后端。(IX),有接受字母s=0,1的可怜机器人m。每个1就在右边有0。创建与最小DFA M和M等价的正则表达式。有天(10),证明格式(ab)*a等于正则表达式a(ba)*(使用构成它们的最小DFA方法)。回答:(11),集S=0,1中的正则集S由结尾第二个字符为1的所有字符串组成。提供该字符集的正则表达式,并配置标识该正则集的DFA。(8点)回答:相应的正则表达式配置:(0|1)*1(0|1) (3分钟)NFA:(两点)1 110432E e e e e 10 0确定:(3点)I0,1,21,21,2,31,21,21,2,31,2,31,2,41,2,3,41,2,41,21,2,31,2,3,41,2,41,2,3,401432100 1 0 00 11 1(/*和*/之间的字符串)构成注释中间没有*/的注释。绘制接受此注释的DFA的状态转换图。(13)具有字母a,b的正规R=(ab|a)*。配置NFA,结晶,简化(2014A)解决方案:(1)0123baa-(2)结果非确定性有限自动机决策(1)ab-011312213ab-0131231231231313123012aaba-(3)简化生成的DFA(2),组合状态0和2为状态2:12aab-(14),给定语法GS:saa | bq;aaa | bb | b;bBD | AQ;qAQ | BD | b;dbb | aa;EaB|bFFbD|aE|b配置相应的最小DFA。解决方法:首先配置NFA。使用子集方法确定NFA。absaqaaBZqqDZBZqdDZabdabbqd重命名s、a、q、BZ、DZ、d和b,每个都表示为0、1、2、3、4、5、6。因为3,4包含z

温馨提示

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

评论

0/150

提交评论