资源描述:
《编译原理词法分析习题集带答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《编译原理》习题(一)——词法分析一、是非题(请在括号内,正确的划√,错误的划×)1.编译程序是对高级语言程序的解释执行。(×)2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)9.两个正规集相等的必要条件是他们对应的正规式等价。(×)二、选择题1.词法分析器的输出结果是_____。 A.()记号 B.()相应条目在符号表中的位置 C.()记号和属性二元组 D.()属性值2.正规式M1和M2等价是指_____。 A.()M1和M2的状态数相等 B.()M1和M2的有向边条数相等 C.()M1和M2所识
2、别的语言集相等 D.()M1和M2状态数和有向边条数相等3.语言是A.句子的集合B.产生式的集合C.符号串的集合D.句型的集合4.编译程序前三个阶段完成的工作是A.词法分析、语法分析和代码优化B.代码生成、代码优化和词法分析C.词法分析、语法分析、语义分析和中间代码生成D.词法分析、语法分析和代码优化5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A.字符B.单词C.句子D.句型6.构造编译程序应掌握______。A.()源程序 B.()目标语言 C.()编译方法 D.(
3、)以上三项都是7.词法分析的任务是A.识别单词B.分析句子的含义C.识别句子D.生成目标代码三、填空题1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。3.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。3.通常把
4、编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。5.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。四、名词解释题:1.词法分析词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位,并转换成统一的内部表示(token),送给语法分析程序。13.扫描器------执行词法分析的程序。五、简答题(一)、描述由正规式b*(abb*)*(a
5、e)定义的语言,并画出接
6、受该语言的最简DFA。答:由正规式b*(abb*)*(a
7、e)定义的语言是字母表{a,b}上不含子串aa的所有串的集合。最简DFA如下:start1abb2(二)、描述由正规式b*a(bb*a)*b*定义的语言,并画出接受该语言的最简DFA。start2abb10ab答:正规式b*a(bb*a)*b*体现的特点是,每个a的左边都有若干b,除非a是第一个字母。该正规式定义的语言是:至少含一个a,但不含子串aa的所有a和b的串集。最简DFA如下:(三).一字母表Σ={a,b},试写出Σ上所有以a为首的字组成的正规集相对应的正规式。答:正规
8、式a(a
9、b)*。(四).令Σ={a,b},则正规式a*b
10、b*a表示的正规集是什么?答:.(a*b
11、b*a)={a,b,ab,ba,aab,bba……}(五)、构造下列正规式相应的DFA(用状态转换图表示)(1)0(0
12、1)*1(2)0*10*10*10*1(3)letter(letter
13、digit)*(1)(2)(3)(六).设有非确定的有自限动机NFAM=({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}。请画出状态转换距阵和状态转换图
14、。解:状态转换距阵为:d01ACA,BBÆCCÆC状态转换图为11011(七).编译程序和高级语言有什么区别?用汇编语言或高级语言编写的程序,必须先送入计算机,经过转换成用机器语言表示的目标程序(这个过程即编译),才能由计算机执行。执行转换过程的程序叫编译程序。汇编程序是指没有编译过的汇编语言源文件。编译程序转换过的叫目标程序,也就是机器语言。编译程序的工作情况有三种:汇编型、解释型和编译型。汇编型编译程序用来将汇编语言编写的程序,按照一一对应的关系,转换成用机器语言表示的程序。解释型编译程序将高级语言程序的一个语句,先解释成为一组机
15、器语言的指令,然后立即执行,执行完了,取下一组语句解释和执行,如此继续到完成一个程序止。用解释型编译程序,执行速度很慢,但可以进行人和计算机的"对话",随时可以修改高级语言的程序。BASIC语言就是解释型高级语言。编译型