版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
语义处理(1)在编译程序中的逻辑位置词法分析语法分析静态语义分析中间代码生成中间代码优化(可选)目标代码生成目标代码优化(可选)语义处理(2)语义处理的工作静态语义分析类型检查控制流检查名字的作用域分析一致性检查中间或目标代码生成从 生成,个别编译程序可能直接生成目标代码语义处理跨
和
两个阶段语义处理(3)语义处理技术语法制导的语义处理编译程序的设计中,
语义分析和中间代码(目标代码)
生成的实现多采用许多时候直接称之为完成一旦 出来一个,,立即对其翻译技术的基础应用属性文法属性文法(Attribute
grammar)也称作
,syntax-directed
definitions
–
SDD语义分析与语法制导翻译的在
的基础上,
为每个配备若干相关的
“ ”
(称为
)属性的例子:数值,符号表属性文法的定义A=
(G,
V,F)G:上下文无关文法V:属性的有穷集F:
关于属性的断言和谓词,类型,代码序列E
E+
T
|
TT
T
*
F
|
FF
digit
|
id
|
(
E
)语义规则在一个属性文法中,对每个产生式都配备了一组––语义规则的形式产生式 语义规则,其中f
是一个函数属性
b
属性
c1,
c2,
…,ck综合属性,synthesized
attributeb
是 的一个属性,
且
c1,
c2,
…
,
ck是产生式文法符号的属性
或
A的其他属性,称b
是A
的一个继承属性
,
inherited
attributeb
是产生式 某文法符号
X
的一个属性,
且c1,c2,
…
,
ck是 或
产生式
文法符号
的属性,称
b
是
X
的一个例:计算器求值需求算术表达式的求值设计编制算术表达式的文法引入将表示作为下列文法符号的:表达式E项T因子F用描述表达式的求值L
EE
E
+
TE
TT
T
*
FT
FF
(
E)F
digit3
*
5+4
的分析树与属性计算print(E.val)产生式L
EE
E1
+TE
TT
T1
*
FT
FF
(
E
)F
digit语义规则print(
E.val)E.val
:=
E1.val
+
T.valE.val
:=
T.valT.val
:=
T1.val
*
F.valT.val
:=
F.valF.val
:=
E.valF.val
:=
digit.lexvallexval
=3val
=3lexval
=5val
=3val
=5val
=15val
=15val
=4val
=4lexval
=4val
=1919计算器的属性文法产生式L
EE
E +
TE
TT
T1
*
FT
FF
(
E
)F
digit语义规则print(
E.val)E.val
:=
E
.val
+
T.valE.val
:=
T.valT.val
:=
T1.val
*
F.valT.val
:=
F.valF.val
:=
E.valF.val
:=
digit.lexvallexval
是单词
digit
的属性--固有属性print(val)是输出函数,作为L的虚属性E.val
是还是?例:说明语句的类型信息统计说明语句的作用支持语义分析,提供语义检查的依据设计编写说明语句的文法将类型信息作为类型描述
的属性变量表
的属性目的分析说明语句D获取变量的类型信息D
T
LT
intT
realL
L,
idL
idint
a,
breal
id1,id2,id3
的分析树和属性计算产生式语义规则D
T
LL.in
:=
T.typeT
intT.type
:=
‘integer’T
realT.type
:=
‘real’L
L1
,idL1.in
:=L.inaddtype(
id.entry,
L.in
)L
idaddtype(
id.entry,
L.in)addtype(id.entry,
L.in
)addtype(id.entry,
L.in
)addtype(id.entry,
L.in
)type
=realin
=realin
=realin
=real描述类型信息提取的属性文法产生式D
T
LT
intT
realL
L1,
id语义规则L.in
:=
T.typeT.type
:=
‘integer’T.type
:=
‘real’L1.in
:=
L.inaddtype(
id.entry,
L.in
)addtype(
id.entry,
L.in
)L
identryaddtype单词
id
的属性(符号表
)在符号表中为变量填加类型信息的子程序属性文法的作用描述语义处理的要求语义信息及其计算关系适用于各种语义处理(分析、翻译、计算)语义处理的步骤属性求值计算、断言检查语义处理算法的描述方法一种通用的语义处理算法设计方法属性的计算(1)构造
,
应用综合属性计算属性一个结点的的值由其及
的属性值确定按照语义规则来计算各结点的综合属性值AA属性的计算(2)继承属性一个结点的
由其的某些属性确定需要探讨计算次序和/或XiXib属性的计算(3)固有属性单词属性归类于语言中的标识符、常数(数值的、符号的)、常量,
它们的属性是用户给定的、不变的例:F
digitF.val
:=
digit.lexval3
*
5+4
的分析树与属性计算print(E.val)产生式L
→
EE
→
E1
+
TE
→
TT
→
T1
*
FT
→
FF
→
(E
)F
→digit语义规则print(
E.val)E.val
:=
E1.val
+
T.valE.val
:=
T.valT.val
:=
T1.val
*
F.valT.val
:=
F.valF.val
:=
E.valF.val
:=
digit.lexvallexval
=3val
=3lexval
=5val
=3val
=5val
=15val
=15val
=4val
=4lexval
=4val
=1919注释分析树Annotated
parse
tree带有
和的lexvalprint(E.val)lexval
=3val
=3lexval
=5val
=15val
=3val
=5val
=15val
=4val
=4val
=1919依赖图Dependency
graph一个有向图描述特定分析树中print(E.val)lexval
=3val
=3lexval
=5val
=15val
=3val
=5val
=15val
=4val
=4lexval
=4val
=1919real
id1,id2,id3
的分析树和属性计算产生式语义规则D
T
LL.in
:=
T.typeT
intT.type
:=
‘integer’T
realT.type
:=
‘real’L
L1
,idL1.in
:=L.inaddtype(
id.entry,
L.in
)L
idaddtype(
id.entry,
L.in)addtype(id.entry,
L.in
)addtype(id.entry,
L.in
)addtype(id.entry,
L.in
)type
=realin
=realin
=realin
=realS-属性文法仅包括对于所有A
X1
X2
…Xn
,A的属性计算仅用X1,X2,…,Xn或A的属性例算术表达式求值的属性文法计算方法可以在分析输入符号的同时,
由
的语法分析程序来计算L-属性文法(1)一个属性文法称为要么是
,要么是满足下列限制的,
如果每个属性:假设存在一个产生式A
X1
X2
…Xn
,是Xi
的一个A的产生式中XiXi自身的成(1≤i
≤n),
且
仅依赖于;符号X1,
X2
,
…
,Xi-1
的
;,
且Xi的属性不会导致 中形XiaL-属性文法(2)例说明语句的属性文法计算方法可以在
的语法分析的同时实现的计算翻译模式属性文法可以看作是关于语言翻译的隐去了实现细节—翻译顺序(translation
schemes)的另一种描述方式适合特征规定在语法分析中
的保证当动作使用某属性时,该属性必须是可用的实现方法将
到例:建立说明语句的翻译方案(1)将语义动作中的计算向前移,使继承属性的计算出现在其文法符号之前产生式D
T
LT
intT
realL
L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东司法警官职业学院《社会治理》2023-2024学年第一学期期末试卷
- 广东省外语艺术职业学院《环境地学》2023-2024学年第一学期期末试卷
- 广东轻工职业技术学院《工商管理基础》2023-2024学年第一学期期末试卷
- 广东茂名健康职业学院《清洁能源技术原理与应用》2023-2024学年第一学期期末试卷
- 三年级数学计算题专项练习及答案
- 大学美育(河南财经政法大学)学习通测试及答案
- 2025年人教版八年级数学寒假复习 专题02 全等三角形(4个知识点回顾+5大题型归纳+过关检测)
- 【名师一号】2021年新课标版历史-必修3-双基限时练15
- 《糖尿病运动疗法》课件
- 2021高考英语安徽黄山市语法填空及阅读类自选练习(1)及答案
- GB/T 1041-2008塑料压缩性能的测定
- 超实用的发声训练方法
- 《第六课 从传统到现代课件》高中美术湘美版美术鉴赏
- 英语四六级讲座课件
- Unit 3 On the move Understanding ideas(Running into a better life)课件- 高一上学期英语外研版(2019)必修第二册
- 白假丝酵母菌课件
- SCA自动涂胶系统培训讲义课件
- 折纸艺术欣赏及步骤课件
- 立法学讲义教案
- 施工现场临时建筑验收表
- iPad使用手册简体中文版1章-10章
评论
0/150
提交评论