您所在位置: 网站首页 / 文档列表 / 软件工程 / 文档详情
北航编译原理课件 09语法制导翻译技术.ppt 立即下载
上传人:yy****24 上传时间:2024-09-09 格式:PPT 页数:48 大小:327KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

北航编译原理课件 09语法制导翻译技术.ppt

北航编译原理课件09语法制导翻译技术.ppt

预览

免费试读已结束,剩余 38 页请下载文档后查看

16 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第九章语法制导翻译技术9.0本章导言9.1翻译文法和语法制导翻译1.E→E+T@+4.T→F2.E→T5.F→(E)3.T→T*F@*6.F→i@i下面给出输入文法和翻译文法的概念:输入文法:未插入动作符号时的文法。由输入文法可以通过推导产生输入序列。翻译文法:插入动作符号的文法。由翻译文法可以通过推导产生活动序列。输入序列动作序列用相应的翻译文法推导,可得:ETT*F@*F*F@*(E)*F@*(E+T@+)*F@*定义9.1翻译文法是上下文无关文法,其终结符号集由输入符号和动作符号组成。由翻译文法所产生的终结符号串称为活动序列。上例题中的翻译文法为:GT=(Vn,Vt,P,E)Vn={E,T,F}Vt={i,+,*,(,),@+,@*,@i}P={E→E+T@+,E→T,T→T*F@*,T→F,F→(E),F→i@i}语法导制翻译的实现方法:9.2属性翻译文法9.2.1综合属性根据给定的文法,可写出该输入序列的语法树说明:p,q,r为属性变量名。属性变量名局部于每个产生式,也可使用不同的名字。考虑下列文法:G[<说明>]:1.<说明>→Typeid<变量表>2.<变量表>→,id<变量表>3.<变量表>→ε翻译文法:1.<说明>→Typeid@set_table<变量表>2.<变量表>→,id@set_table<变量表>3.<变量表>→εTypett中放类型值idnn中放变量名填表动作符号也可带有属性:@set_table↓t1,n1↓t1,n1可从前面得到,所以称为继承属性,继承前面的值<变量表>↓t2↓t2同上例:intA,BCTypeintidA,idBC语法树:<说明>TypeintidA@set_table↓int,A<变量表>↓int,idBC@set_table↓intBC<变量表>↓intε符号表9.2.3(1)L-属性翻译文法(L-ATG)这是属性翻译文法中较简单的一种。其输入文法要求是LL(1)文法,可用自顶向下分析构造分析器。在分析过程中可进行属性求值。属性的求值规则:综合属性:(1)产生式右部非终结符号的综合属性值,取其下部产生式左部同名非终结符号的综合属性值。(2)产生式左部非终结符号的综合属性值,用该产生式左部符号的继承属性或某个右部符号的属性进行计算。(3)动作符号的综合属性用该符号的继承属性或某个右部符号的属性进行计算。例:A→BC求值顺序:(2)简单赋值形式的L_属性翻译文法(SL-ATG)一般属性值计算:x:=f(y,z)SL-ATG属性值计算:x:=某符号的属性值或常量。例x:=y,x,y,z:=17——称为复写规则定义9.4一个L-ATG被定义为简单赋值形式的(SL-ATG),当且仅当满足如下条件:1.产生式右部符号的继承属性是一个常量,它等于左部符号的继承属性值或等于出现在所给符号左边符号的一个综合属性值。2.产生式左部非终结符号的综合属性是一个常量,它等于左部符号的继承属性值或等于右部符号的综合属性值。L-ATGSL-ATG给定一个L-ATG,如何找一个等价的赋值形式的L-ATG?第一步:设动作符号“@f”表示函数f求值,该动作符号有两个继承属性和一个综合属性。@fI1,I2S1且S1:=f(I1,I2)注意:无参函数过程作为常数处理,如<A>→<B>x<C>yx,y:=NEWT9.3.1翻译文法的自顶向下翻译——递归下降翻译器9.3.2属性翻译文法的自顶向下翻译的实现——递归下降属性翻译器例:输入文法1.<S>a<A><S>2.<S>b3.<A>c<A><S>b4.<A>ε主程序ifCLASS=aorbthenPROCS;ifCLASS≠右界符thenERROR;ACCEPT;过程PROCScaseCLASSofa:P1;b:P2;其它:ERROR;endofcase;P1:/*产生式1的代码*/NEXTSYM;PROCA;PROCS;RETURN;P2:/*产生式2的代码*/NEXTSYM;RETURN;过程PROCA…方法:对于每个非终结符号都编写一个翻译子程序(过程)。根据该非终结符号具有的属性数目,设置相应的参数。过程调用语句的实参:继承属性:继承属性值综合属性:属性变量名(传地址,返回时有值)下面通过一个例子,较详细地介绍如何构造属性文法的递归下降翻译器。1.<S>↓R→aT<A>Q@x↓T,R<S>↓Q2.<S>↓R→b@z↓R,3.<A>P→Cu@y↓u<A>Q<
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

北航编译原理课件 09语法制导翻译技术

文档大小:327KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用