《编译原理习题课(词法分析).ppt》由会员分享,可在线阅读,更多相关《编译原理习题课(词法分析).ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、词法分析习题课一、填空题1.设文法G的产生式是a|b|c|a|c|0|1则文法的终结符号集合VT=_,非终结符号集合VN=_。2.高级程序设计语言的翻译主要有两种方式:_和_。二者的根本区别在于_。a,b,c,0,1 a,b,c,0,1 编译方式编译方式编译方式编译方式 解释方式解释方式解释方式解释方式是否生成目标代码是否生成目标代码是否生成目标代码是否生成目标代码3.一个文法GZ若存在推导Z=Z则称GZ是_文法,这类文法所产生的句子有_个。4.编译过程中扫描器所完成的任务是从字符串形式的_中识别出一个个具有独立意义的最小语法单位-_。5.高级语言程序设计的单词通常分为五类,它们是_、_、_、
2、_、_。6.词法分析程序的输出形式为_,每一个_由_和_两部分组成。+递归递归递归递归 无穷无穷无穷无穷源程序源程序源程序源程序 单词单词单词单词保留字保留字保留字保留字标识符标识符标识符标识符常量常量常量常量 运算符运算符运算符运算符 界符界符界符界符单词单词单词单词单词单词单词单词 单词种别码单词种别码单词种别码单词种别码 单词自身值单词自身值单词自身值单词自身值二.判断题()1.编译程序的输入是高级语言程序,输出是机器语言程序。()2.每一个编译程序都由词法分析、语法分析、语义分析、代码优化、代码生成五部分组成。()3.可以使用相同的编译程序在不同类型的计算机上对同一种高级语言的程序进行
3、翻译。()4.一个语言的文法是唯一的。()5.若一个语言的句子有无穷多个,则对应的文法必定是递归的。()6.正规文法不能产生语言L=anbn|n1。()7.上下文无关文法可以产生语言L=anbnci|i1,n1。()8.一个句型对应的一棵语法树包括了该句型的所有推导。()9.对每一个左线性文法G1,一定存在一个右线性文法G2,使得L(G1)=L(G2)。()10.存在这样一些语言,它们能被确定的有穷自动机识别,但不能用正规式表示。()11.每一个DFA都对应有唯一的一个NFA。()12.每一个NFA都对应有唯一的一个最小化的DFA。三.选择题1.文法G所描述的语言是_的集合。a.文法G的字母表
4、中所有符号组成的符号串。b.文法G的字母表的闭包V*中所有符号串。c.由文法的识别符号推出的所有符号串。d.由文法的识别符号推出的所有终结符号串。2.设文法G的产生式是 a|b|c|a|c|0|1则下列符号串中为该文法句子的是_。a.ab.ab0c.a0c01d.0ae.11f.aaad da,c,fa,c,f3.如果一个文法满足如果一个文法满足_,则称该文法是二义文法。,则称该文法是二义文法。a.文法的某一个句子存在两棵以上的语法树。文法的某一个句子存在两棵以上的语法树。b.文法中存在某个句子,它有两个以上的最右(或最左)文法中存在某个句子,它有两个以上的最右(或最左)推导。推导。c.文法中
5、存在某个句子,它有两个以上的最右(或最左)文法中存在某个句子,它有两个以上的最右(或最左)归约。归约。d.在进行归约时,文法的某些规范句型的句柄不唯一。在进行归约时,文法的某些规范句型的句柄不唯一。4.下述正规表达式中,下述正规表达式中,_描述了字母表描述了字母表a,b上长度上长度不为不为3的符号串。的符号串。a.(|0|1|00|01|10|11)(0|1)(0|1)*)b.|0|1|00|01|10|11|(0|1)(0|1)+c.|0|1(00|01|10|11)+(0|1)*d.|0|1(00|01|10|11)*e.没有一个没有一个a,b,c,da,b,c,de e5.有文法 GS=
6、(S,A,B ,a,b,P,S)其中P为:SAB|ASAa|aABb|bb则图所示的语法树中,_正确的描述了对符号串“aaabb”的推导过程。b b6.下列工作中,由编译程序扫描器完成的任务有下列工作中,由编译程序扫描器完成的任务有_.a.组织源程序的输入组织源程序的输入b.按词法规则分割出单词,识别出其属性按词法规则分割出单词,识别出其属性c.删除注解删除注解d.删除空格以及无用字符删除空格以及无用字符e.行计数、列计数行计数、列计数f.发现并定位词法错误发现并定位词法错误g.建立符号表建立符号表7.假设正在为假设正在为PASCAL语言构造编译程序,下述单词中,语言构造编译程序,下述单词中,
7、_不需要超前搜索即可识别。不需要超前搜索即可识别。a.endb.casec.:=agagc c8.下述正规表达式中下述正规表达式中_与与(a*+b)*(c+d)等价。等价。a.a*(c+d)+b(c+d)b.a*(c+d)*+b(c+d)*c.a*(c+d)+b*(c+d)d.(a+b)*c+(a+b)*de.(a*+b)*c+(a*+b)*d9.已知文法已知文法G定义为:定义为:G=(S,W,X,Y,Z,x,y,z,P,S)与该文法描述相同语言的正规表达式有与该文法描述相同语言的正规表达式有_。其中其中P为为 SWZa.xx*|yy*|zz*WX|Yb.(xx*|yy*)zz*Xx|xXc.
8、xx*(yy*|zz*)Yy|yYd.(xx|yy)*zz*Zz|zZe.xx*yy*zz*d,ed,eb b10.设有穷自动机的状态图如图所示,其中,状态为开始状态,状态为终止状态。下述正规表达式中_不可被该有穷自动机接受。a.0(10)*0b.11(01)*1c.1(101)*00c c四.解答题1.已知语言求文法(1).构造语言L(GS)=(n)n|n0 的文法。句子结构特征:L=,(),(),(),文法为:GS:S(S)|(2).构造语言L(G)=am bn|nm0 的文法。单独生成am 或bn 可以用 AAa|a BBb|b要考虑句子中b的个数大于a的个数,因此文法为GS:SAb|S
9、bAaAb|ab(3).L=w|w0,1+,且w不含两个相邻的1GS:S0|1|0S|1AA0S|0(4).L(G)=|a,b+,且中含相同个数的a和bGS:SaSbS|bSaS|ab|ba|或GS:SaSb|bSa|abS|Sab|baS|Sba|ab|ba(5).已知语言L=x|xa,b,c*,且x中符号的排列是对称的。例如:aabcbaa,aabbaa 。GS:SaSa|bSb|cSc|a|b|c|2.把下面的文法改写成无二义性文法。SSS|(S)|()原因:SSS 对于()()()存在两棵语法树改写:SAS|(S)|()A(S)|()3.化简文法:GS:SBab|cC化简为:SBab
10、Bb|bSBb|bSCDaDCb|CDa4.构造自动机A,使得它识别字母表a,b上的符号串,但符号串不能含有两个相邻的a,也不能含有两个相邻的b。解:正规文法为:SaB|bA|a|b|AaB|aBbA|b5.构造自动机A,使得它识别字母表0,1上的符号串,这些符号串由任意的1、0和随后任意的11、00对组成。解:正规表达式为 (1|0)*(11|00)*6.构造文法GZ的自动机,该自动机是确定的吗?写出相应的语言。GZ:ZA0AA0|Z1|0解:左线性文法,其NFA为:该自动机不确定,语言为:L(GZ)=a|a是由0和1组成的以0开头结尾的符号串,并且该符号串不含有两个连续的1正规式为:0(0|01)*0S SA AZ Z0 00 00 01 1=7.五、课堂作业构造下述正规表达式的最小化DFA:xy*|yx*y|xyx(注意:最小化DFA 为6个状态)