形式语义-操作语义.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
形式语义-操作语义

另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例2:阶乘程序 另一种语义(结构化操作语义) 例3:整除程序 练习 另一种语义(结构化操作语义) 如何利用结构化操作语义定义语义等价 第二章 操作语义——小结 第二章 操作语义——小结 问题: 历史和发展 操作语义学的基本思想来源于程序设 计语言的实施。1964年1月英国P.J.兰丁使用“栈-环境- 控制-外储” 抽象机器(简称SECD机器),第一次系统 地、严格地陈述了表达式的操作语义。 IBM公司的维也纳实验室 60年代在研究程序设计语 言RL/1的形式定义时,提出描述操作语义的一种元语言 ──维也纳定义语言(简称 VDL)。1974年欧洲计算机 制造商联合会和美国国家标准局正式建议使用 VDL定义 的PL/1语义作为PL/1的标准。 1980年前后,英国爱丁堡大学的计算机科学家提出 结构式操作语义学。它在一般的数学结构(不必是抽象 机器)上用数学的归约关系建立语义的解释系统。这种 方法具有指称语义学的结构式特征,并更多地略去了机 器操作的细节。 基本方法 表达式求值程序设计语言中的算术表达 式用于加工计算机系统中现存的数据,以形成新的数据。 如表达式〔(□□□□□□)+1〕表示将计算机系统中对应变量 □□,□□□的存储单元中数据相乘,再将乘积加1,形成一个 新的数据。计算机系统中保存数据的存储区可以用数据 向量来表示。□个存储单元保存的数据都是□1时,可用□ 维向量(1,1,…,1)表示。计算机系统中还要有保存程序 的区域,和保存加工过程中必要信息的工作区。就此可 提出一种解释执行算术表达式求值的抽象机器的模型。 这个机器的存储区分成三部分:栈区(用作工作区),环 境区(保存数据向量等),控制区(保存程序),整个存储 区记作(□□,□,□),□称为抽象机器的一个大状态。这个抽 象机器具有识别符号,完成算术和逻辑运算,转储信息, 实现大状态之间的转移等基本功能。 这个机器的大状态转移规则分为四类。 □ 第一类规则表示,当控制区中待执行的程序要求完 成表达式(□□op□□)的求值时,□抽象机就转移自己的大状 态,准备先求子表达式□□和□□的值,□然后再按照相应的 运算op(+,-,□或其他算子),求出整个表达式的值, 符号“/”用于分割存放的信息。 第二类规则表示,当求 值的表达式是一个常量时,则其值就是抽象机中表示这 个常量的相应的量(粗体用来区别语言中的符号和在抽 象机中的相应表示)。表达式的值暂存于栈区。 第三类 规则表示,当表达式是一个变量时,则其值就是环境区 中相应单元的当前值。即第 □个变量□□的值就是数据向 量□的第□个分量□□的值。 第四类规则表示,□当运算op的 两个操作数都已经求得,则可按照抽象机中的相应运算 求出op作用于操作数的结果。 在这个抽象机中,表达式(□□□□□)+1(在□□,□□值为 2和3时)的求值是由下述大状态的转移序列完成的,转移 符号□的上方标有实现这一转移依据的转移规则号,设 □=(2,3)。 □ 这个抽象机正确划出算术表达式求值的全过程,故 可作为算术表达式的操作语义。 赋值语句为定义赋值语句(□□:=□)的操作语义,可在 上述抽象机中添加如下转移规则 □ 第五条规则表示,当抽象机执行(□□:=□)时,先求出 表达式□的值,然后再给□□赋值。 第六条规则表示,对□□赋以值□,相当于将数据向量 □的第□□个分量(即保存□□当前值的存储单元)改为□,表 示为□。 在定义程序设计语言的过程语句的操作语义时,由 于不同的过程使用不同的环境、不同的栈区、不同的控 制区,故引入外储区,外储区中保存有当前未调用的所 有过程的全部环境区、栈区和控制区,这种机器就是兰 丁的SECD抽象机。 展望 人们希望语言的语义是独立于实施的,故操 作语义学中使用了抽象机器,但仍不可避免地涉及语言 的实施,这是它的弱点。但现代研究状况表明,操作语 义学对语言的设计和实施仍有其指导作用,如在定义并 发式程序设计语言的语义时,其他语义学方法都遇到了 困难,而结构式操作语义学则提出了带有标号的归约规 则,显示了它独有的长处。 形式语义学的一个分支。 程序设计语言的实施是在 具体的计算机系统中按照语言的语义编制语言的翻译程 序,将语言中各个成分翻译成计算机系统中相应的一组 操作。语言在计算机系统中的一种

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档