编译原理期末题型

简单

1.Chomsky把文法分为几种类型?什么是文法的二义性?

1)分成四种类型,即0型、1型、2型和3型。(1)0型文法:设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)且至少含有一个非终结符,而
β∈(VN∪VT)
,则G是一个0型文法。(2)1型文法:若P中的每一个产生式α→β均满足|β|>=|α|,仅仅S->ε除外,则文法G是1型。(3)若P中的每一个产生式α→β满足:α是非终结符,β∈(VN∪VT),则此文法称为2型的。(4)若P中的每一个产生式的形式都是A→aB或A→a,其中A和B都是非终结符,a∈VT,则G是3型文法。
2)如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的

2. 简述DFA与NFA的区别:DFA每次输入只对应一个结果,而NFA的依次输入可能对应多个结果,形成一个结果集。
3.什么是算符文法?并举例说明

设有文法G,如果G中没有形如A->…BC…的产生式,其中B,C为非终结符,则称G为算符文法。
例如:对于表达式的二义性文法E->E|E-E|E*E|E/E|E↑E|(E)|i
其中任何一个产生式中都不包含两个非终结符相邻的情况,因此该文法为算符文法。

4.什么是3型文法?什么是文法的语言?

(1)若P中的每一个产生式的形式都是A→aB或A→a,其中A和B都是非终结符,a∈VT*,则G是3型文法。
(2)文法的语言:文法是用于描述语言的语法结构的形式规则。文法描述的语言是该文法一切句子的集合。一个文法所描述的语言是唯一的。

5. 什么是文法的二义性?给出一个二义性文法实例

(1)如果文法G中的某个句子存在不只一棵语法树,则称该句子是二义性的。如果文法含有二义性的句子,则称该文法是二义性的
书上:若一个文法中存在某个句子,有两个不同的最左(最右)推导,则该文法是二义的。 (2)文法G=({E},{+, * , i , (,)
}, P, E),其中P为:E->i ; E->E+E ; E->EE ; E->(E) ;
这里的非终结符E表示一类算术表达式,i表示程序设计语言中的变量。该文法定义了由变量,+,
,(和)组成的算术表达式的语法结构。

6.常见的代码优化技术有哪些?依据优化所涉及的范围分为那些级别?

删除多余运算、代码外提、强度削弱、变换控制条件、合并已知量和复写传播、删除无用赋值。局部优化、循环优化、全局优化

7.用实例说明简单栈式存储分配的过程:

对于没有分程序结构,过程定义不允许嵌套但允许过程递归调用的语言,我们可以采用一:种简单的栈式存储分配策略。其分配策略是将整个程序的数据空间设计为一个栈,每当调用一个过程时就将其活动记录压入栈,在栈顶形成该过程工作时的数据区,而当过程结束时再将其活动记录弹出栈。

递归调用的例子(C语言):

void q(int n){
p(n);
}
void p(int m){
if (m> 1){
 	q(m-1);
p(m-1);}
}
main( ){ int x=2;
 p(x); 
}

调用main,main的活动记录入栈,main中调用p函数,p的活动记录P1入栈,m>1,p调用q,q的活动记录入栈,q中调用p,p活动记录P2入栈,P2执行完毕,P2出栈,q执行完毕,q的活动记录出栈,此时运行到P1的活动记录,p又调用本身p函数,p的活动记录P3入栈,P3执行完毕出栈,P1执行完出栈,main执行完毕,main活动记录出栈。

8.简述符号表的总体组织方法。

第一种:把属性种类完全相同的那些符号组织在一起,构造出表项是分别为等长的多个符号表。这样组织的最大优点是每个符号表的属性个数和结构完全相同。
第二种:把所有语言中的符号都组织在一张符号表中。组成一张包括了所有属性的庞大的符号表。这样组织方式的最大优点是总体管理非常集中单一,且不同种类符号的共同属性可一致地管理和处理。
第三种:折衷方式是根据符号属性相似程度分类组织成若干张表,每张表中记录的符号都有比较多的相同属性。这种折衷的组织方式在管理复杂性及时空效率方面都取得折衷的效果,并且对复杂性和效率的取舍可由设计者根据自己的经验和要求及目标系统的客观环境和需求进行选择和调整。

计算题:

一.构造一个文法,使其描述的语言L(G)是{ 0n1n|n≥1}。

G[S]:G: S→0S1, S→01

二、已知文法G[A]:
A → aABl | a
B → Bb | d
给出与G[A]等价的LL(1)文法并构造该文法的预测分析表。

答:把文法变为G’[A]:
在这里插入图片描述
此时
在这里插入图片描述 在这里插入图片描述
由于
在这里插入图片描述
所以,G’[A]即为所求等价的LL(1)文法。构造的预测分析表为:

占位符而已abld#
A$1600
手机$12在这里插入图片描述在这里插入图片描述
导管在这里插入图片描述
1在这里插入图片描述在这里插入图片描述

二.试构造与正规式R = (a|b)*b等价的状态最少的DFA。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三.已知文法G[S]:S→a||(T)
                                 T→T,S|S
对文法消除左递归,然后判断是不是LL(1)文法?若是,构造该文法预测分析表。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲲志说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值