sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)

sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)

ID:36607635

大小:451.10 KB

页数:60页

时间:2019-05-09

sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)_第1页
sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)_第2页
sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)_第3页
sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)_第4页
sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)_第5页
资源描述:

《sun编译原理第5章语法制导翻译技术和中间代码生成(第19-21讲)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、5.1概述■语义分析的任务首先编译程序审查每个语法结构的静态语义,如果静态语义正确,再生成中间代码。词法分析:分析的预备阶段,输出是单词符号序列;语法分析:分析的主要阶段,输出是语法树。但这样还不能完全确定源程序的正确性,也没有获得翻译时所需的所有信息。注意:有的编译程序不生成中间代码而直接生成实际的目标代码。8/3/20211信息学院孙丽云5.2属性文法词法规则的描述工具:语法规则的描述工具:语义规则的常用描述工具:属性文法正规文法或正规式上下文无关文法属性是编程语言结构的任意特性,如:变量的数据类型表达式的值存储器中变量的位置程序

2、的目标代码数的有效位数■基本概念X.a是与X关联的a的值(X是一个文法符号,a是X的一个属性)。如:X.type(X的类型)、X.place(X的存储位置)、X.val(X的值)8/3/20212信息学院孙丽云■属性文法即:以语法分析为基础,对应文法的每个产生式,确定相应的语义规则。属性文法是在上下文无关文法的基础上,允许每个文法符号X(终结符或非终结符)根据处理的需要,定义与X相关联的属性。一个属性文法形式上定义为一个三元组AG,AG=(G,V,E)。其中G表示一个上下文无关文法;V表示属性的有穷集;E表示属性的断言或谓词的有穷集。

3、其中每个断言与文法某产生式相关联。例:Em+n,则与该产生式相关联的断言为:E.val=m.val+n.val……8/3/20213信息学院孙丽云文法规则语义规则规则1相关的属性等式....规则n相关的属性等式■属性文法一般地,将属性文法写成表格形式,每个文法规则用属性等式的集合或相应规则的语义规则列出。注意:文法规则中同一产生式中某符号出现多次必须使用下标进行区分。例:number1number2digit8/3/20214信息学院孙丽云1)已知无符号数文法如下,请改写成值属性文法。numbernumberdigit

4、digi

5、tdigit0

6、1

7、2

8、3

9、4

10、5

11、6

12、7

13、8

14、9●例如:文法规则语义规则number1number2digitnumber1.val=number2.val*10+digit.valnumberdigitnumber.val=digit.valdigit0digit.val=0digit1digit.val=1digit2digit.val=2digit3digit.val=3digit4digit.val=4digit5digit.val=5digit6digit.val=6digit7digit.val=7

15、digit8digit.val=8digit9digit.val=9解:8/3/20215信息学院孙丽云grammarrulesemanticrulesexp1exp2+termexp1.val=exp2.val+term.valexp1exp2-termexp1.val=exp2.val-erm.valexptermexp.val=term.valterm1term2*factorterm1.val=term2.val*factor.valtermfactorterm.val=factor.valfactor(exp

16、)factor.val=exp.valfactornumberfactor.val=number.val2)简单的整数算术表达式文法如下,请改写成值属性文法。expexp+term

17、exp-term

18、termtermterm*factor

19、factorfactor(exp)

20、number解:8/3/20216信息学院孙丽云1.简单的整数算术表达式文法如下,请改写成值属性文法。EE+T

21、TTT*F

22、FF(E)

23、I2.已知无符号数文法如下,请改写成值属性文法。NND

24、DD0

25、1

26、2

27、3

28、4

29、5

30、6

31、7

32、8

33、9■练习8/3

34、/20217信息学院孙丽云使用属性文法来计算属性值,即把属性等式转化成计算规则可用依赖图(或称相关图)来决定属性值的计算顺序。■属性的计算关键:如何决定属性值的计算顺序例:属性等式number1.val=number2.val*10+digit.val则,文法规则number1number2digit的依赖图:number2.valnumber1.valdigit.val8/3/20218信息学院孙丽云例:已知无符号数属性文法,请画出属性等式及345的依赖图。grammarrulesemanticrulesnumber1numbe

35、r2digitnumber1.val=number2.val*10+digit.valnumberdigitnumber.val=digit.val解:(1)属性等式number1.val=number2.val*10

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。