- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、填空(每题2分,共20分)
1.从功能上说,程序语言的语句大体可分为( 执行性 )语句和( 说明性 )语句两大类。
2.扫描器的任务是从( 源程序 )中识别出一个个( 单词符号 )。
3.所谓最左派生是指( 任何一歩α→β都是对α中最左非终结符进行替换的 )。
4.语法分析最常用的两类方法是( 自顶向下 )和( 自底向上 )分析法。
5.一个上下文无关文法所含的四个组成部分是(一组终结符号,一组非终结符号、一个开始符号、一组产生式为每个产生式配上一个翻译子程序,并在语法分析的同时执行这些子程序所谓最右推导是指:任何一步αβ都是对α中最右非终结符进行替换的。一个过程相应的DISPLAY表的内容为现行活动记录地址和所有外层最新活动记录的地址。符号表中的信息栏中登记了每个名字的有关的性质,如类型、种属、所占单元大小、地址等等。4.运行时的DISPLAY表的内容是什么?它的作用是什么?
答:DISPLAY表是嵌套层次显示表。每当进入一个过程后,在建立它的活动记录区的同时建立一张嵌套层次显示表diaplay.假定现在进入的过程层次为i,则它的diaplay表含有i+1个单元,自顶向下每个单元依次存放着现行层、直接外层、…、直至最外层(主程序,0层)等每层过程的最新活动记录的起始地址。通过DISPLAY表可以访问其外层过程的变量。
二、名词解释(每题3分,共15分)
编译器预处理:对于一个编译器,如果要处理的输入是对原编译器的输入的扩充,就把输入中的扩充部分转换成原输入的形式,然后把其结果交给原编译器处理,也就是把扩展的部分转换成标准形式,这就是编译器预处理
LL(K)文法――(P89)
歧义文法――(p71)
正则表达式――(P47) :每个正则表达式定义一个正则集。若用RE表示∑上的正则表达式,并用L(RE)所表示的正则集,则RE的语法定义和相应正则集如下面所述,其中A和B表示正则表达式,并且а表示字母表∑中的任一符号。
属性文法――(P260)
三、简答题(每题5分,共15分)
设有L(G)={a2n+1b2m+1c2p | n=1, m=1, p=1}
给出它的正则表达式。
构造识别该语言的DFA。
生成语言L(G)={apbmcpanbn | p=0, m=1, n=2}的文法G是什么?它是chomsky的哪型文法。
解:G(3)文法为
S-AC
A-aAc|B
B-bB|b
C-aCb|ab
它是乔姆斯基2型文法
已知文法G(S): S→a|b|(T) T→T,S|S 写出句子((a,b),b)的规范规约过程及每一步的句柄。
解:句型 规约 句柄
((a,b),b)
((S,b),b) S-a a
((T,b),b) T-S S
((T,S),b) S-b b
((T),b) T-T,S T,S
(S,b) S-(T) (T)
(T,b) T-S S
(T,S) S-b b
(T) T-T,S T,S
S S-(T) (T)
四、计算题(每题10分,共20分)
已知文法G(E)
E→T|E+T
T→F|T*F
F→(E)|i
给出句型α=(T*F+i)的最右派生及画出语法树。
解:1. (4分)
E(T(F((E) ((E+T) ((E+F)
((E+i) ((T+i) ((T*F+i)
2. (4分)
短语:(T*F+i), T*F+i, T*F, i
直接短语:T*F, i
句柄:T*F
素短语:T*F, i
2.说明下面的文法不是SLR(1)文法,并重写一个等价的SLR(1)文法。
S ( M a | b M c | d c | b d a
M ( d
解:S’ ( S S ( M a | b M c | d c | b d a M ( d
因为a是M的后继符号之一,因此在上面最右边一个项目集中有移进(归约冲突。
等价的SLR(1)文法是
S ( d a | b d c | d c | b d a
五、设计题(每题15分,共30分)
1.下面的文法定义语言L = { anbncm | m, n ( 1}。写一个语法制导定义,其语义规则的作用是:对不属于语言L的子集L1= { anbncn | n ( 1}的句子,打印出错信息。
S ( D C D ( a D b | a b C ( C c | c
解:语法制导的定义如下:
S ( D C if D.length ( C.length then print (“error”)
D ( a b D.length := 1
D ( a D1 b D.length := D1.length +
文档评论(0)