- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航研究课程_程序语言设计原理教程_第17章
第16章 指称语义的原理与应用; ● 语义函数和辅助函数
描述二进制数的语义
二进制数
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 →lnteger
evaluate: Expr →lnteger
sum : Integer × Integer → Integer
difference : Integer × Integer → Integer
product : Integer × Integer → Integer ;以下定义每个短语的语义函数:
execute 〖C〗 = execute 〖E=〗 = evaluate 〖E〗
其中C∈Com,E∈Expr。
evaluate 〖N〗= valuation 〖N〗 (N∈Num)
evaluate 〖E1 + E2〗 = sum (evaluate 〖E1〗,evaluate 〖E2〗)
evaluate 〖E1 - E2〗 = difference (evaluate 〖E1〗,evaluate〖E2〗)
evaluate 〖E1 * E2〗 = product (evaluate 〖E1〗, evaluate 〖E2〗)
再定义Num的两个表达式:
valuation 〖D〗 = D’ (D∈Digit,D’∈Natural)
valuation 〖ND〗= 10 × valuation 〖N〗+ D’
execute 〖40-3*9=〗
=evaluate 〖40-3*9〗
=product (evaluate〖40-3〗,evaluate〖9〗)
=product (difference (evaluate 〖40〗,evaluate 〖3〗),
evaluate〖9〗)
=product (difference (valuation〖40〗,valuation〖3〗),
valuation〖9〗)
=product (difference (40,3),9)
=333;16.1.2 语义域
· 基本域
Character / lnteger / Natural / Trut
文档评论(0)