文档详情

语法制导翻译中间代码生成.pptx

发布:2025-05-10约3.01万字共10页下载文档
文本预览下载声明

第八章语法制导翻译和中间代码生成8.1概述8.2属性文法和语法制导翻译8.3语义分析8.4中间代码8.5一些语句的翻译

概述语义处理程序设计语言的语义静态语义是对程序约束的描述,这些约束无法通过抽象语法规则来妥善地描述,实质上就是语法规则的良形式条件,它可以分为类型规则和作用域/可见性规则两大类类型相容性变量先声明后引用名称相关要求动态语义程序单位描述的计算编译程序的语义处理工作静态语义审查解释执行动态语义(计算)生成代码...语法分析后的源程序T语义处理令式或操作式模型-----操作语义学应用式模型-----指称语义学公理式模型-----公理语义学文法模型----属性文法语义形式化语义建模概述

属性文法表达式文法E—T+T|TorT

T—n|bE?T1+T2{T1.type=intT2.type=T1.type E.type:=int}E?T1orT2{T1.type=bool T2.type=T1.typeE.type:=bool}T?n{T.type:=int}T?b{T.type:=bool}

操作语义描述一段程序的含义是通过执行该段程序所改变的计算机(虚拟计算机)状态来反映。这个计算机的状态与程序执行时的状态相对应:包括变量的所有值,可执行程序本身,各种系统定义的内部数据结构。计算机里所有的寄存器的值和存储单元的值作为计算机的状态,用一组形式定义的操作来说明执行一条指令相应的状态怎样变化。For(expr1;expr2;expr3){expr1;...Loop:ifexpr2=0gotoout}…expr3;gotoloopout:...

公理语义公理语义概念是随着程序正确性的证明而发展的。当正确性证明能构造时表明程序执行它的规格说明所描述的计算。在一个证明中,每一个语句之前之后都有一个逻辑表达式对程序的变量进行约束,以此说明这个语句的含义。一个语言的每个语法成分的含义定义为公理和演绎规则,用于推导出该成分执行的效果。如果在语句S执行前P为真,则在语句S执行并终止后Q为真。一般的记号{P}S{Q}

演绎规则的例子规则前驱后继赋值:x:=expr{P(expr)}x:=expr{P(x)}While:{P∧B}S{P}{P}whileBdoSend{P∧(notB)}if--then--else {B∧P}S1{Q},{(notB)∧P}S2{Q}{P}ifBthenS1elseS2{Q}

指称语义指称语义的基本概念是给每一段程序实体定义一个数学意义上的对

显示全部
相似文档