第九章 指称语义的原理与应用 16.5 程序失败的语义描述 sum: Integer × Integer→ Integer sum (int1,int2) = if abs(int1+int2) =maxint then int1+int2 else ⊥ sum (⊥,int2)= ⊥ sum (int1,⊥) = ⊥ evaluate 〖E1 + E2〗 env sto = let integer int1 = evaluate E1 env sto in let integer int2 = evaluete E2 env sto in integer (sum (int1,int2)) * * 代数语义学 理论基础 函数式描述方法 程序设计语言 形式语义 指称语义学 操作语义学 公理语义学 代数 功能 执行 逻辑 关系 模型 离散数学 程序设计语言 形式语义 编译原理 程序设计语言 理论基础 语义形式化 语法形式化 软件开发方法 程序设计语言 形式语义 程序设计方法 程序设计语言理解 抽象能力 Formal Method Formal Specification Formal Verification 指称语义学是Christopher Strachey和Dana Scott在1970年提出的。 指称语义学的一个显著特征是: 程序中的每一个短语(表达式、命令、声明等)都有其意义。它是与语言的语法结构平行的。每个短语的语义函数就是短语的指称意义。其现代名称为指称语义学。 16.1 指称语义原理 从数学的观点,一个程序可以看作是从输入到输出的映射P(I)→O,即输入域(domain)上的值,经过程序P变为输出域(range)的值。 φ〖p〗→d (p∈P,d∈D)。 语义域D中的数学实体d, 或以辅助函数表达的复杂数学实体d,称为该短语的数学指称物,即短语在语义函数下的指称语义。 指称语义描述的是语义函数映射的后果,不反映如何映射的过程,更没有过程的时间性。而程序设计语言的时间性只能反映到值所表达的状态上。 ● 语义函数和辅助函数 描述二进制数的语义 二进制数 Numeral ::= 0 (16.1-a) | 1 (16.1-b) | Numeral 0 (16.1-c) | Numeral 1 (16.1-d) 我们给出求值的语义函数:将Numeral集合中的对象映射为自然数: valuation: Numeral→Natural (16.2) 按语法的产生式,我们给出以下语义函数: valuation 〖0〗= 0 valuation 〖1〗 = 1 valuation 〖N0〗 = 2 × valuation 〖N〗 ∥N∈Numeral valuation 〖N1〗 = 2 × valuation 〖N〗+ 1 valuation〖1101〗 = 2 × valuatioin 〖110〗+ 1 = 2 × (2 × valuation 〖11〗) + 1 = 2 × (2 ×(2 × valuation 〖1〗+ 1)) + 1 = 2 × (2 ×(2 ×1 + 1)) + 1 = 13 计算器命令的语义描述 计算器命令的抽象语法: Com ::= Expr= (16.3) Expr ::= Num (16.4-a) | Expr + Expr (16.4-b) | Expr - Exp (16.4-c) | Expr * Expr (16.4-d) Num ::= Digit|Num Digit (16.5) Digit ::= 0|1|2|3|4|5|6|7|8|9 (16.6) execute : Com →lnte
您可能关注的文档
最近下载
- DB31T 1104-2018 城市轨道交通导向标识系统设计规范.docx VIP
- GB50461-2024:石油化工静设备安装工程施工质量验收规范.pptx VIP
- 2023年浙江省军队转业干部录用考试试题.docx VIP
- 口渴了-朋友帮你.ppt VIP
- Xikong西莱克低温机控制板SHXK814用户手册.pdf
- 爱迪生牛顿大发明攻略.doc VIP
- 重庆天齐锂电新材料有限公司新建1000吨_年高能锂电材料电池级金属锂项目环评报告.pdf VIP
- 朗文3A复习资料及垃圾分类作文8篇.doc VIP
- DB65T 3694-2015 现行哈萨克文与西里尔哈萨克文编码字符转换规则.docx VIP
- 华为云服务登录.doc VIP
原创力文档

文档评论(0)