- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形式语义教材-Ch1 基本理论
第一章 理 论 基 础
§ 1.1 引 言
1941年Church创建了Lambda演算理论。它是一个形式系统,可作为计算模型,如同Turing机可作为计算模型一样。Lambda演算形式系统主要由两部分组成:其一是合法表达式的形式系统,其二是变换规则的形式系统.
Lambda演算系统可有多种。其主要区别在于构成Lambda演算形式系统的两个组成部分的具体定义上。不同的Lambda演算系统会得到一些不同的定理。Lambda演算系统如同Turing机系统一样,可描述任何一部分递归函数的计算过程。因此,Lambda演算系统也可视为一种算法语言系统。其中的Lambda表达式相当于语言的一个程序。程序如何执行,由Lambda演算系统的机制来确定。Lambda演算理论是函数式语言的基础,也是指称语义学的理论基础。
§1.2 Lambda 演算
纯Lambda表达式(以后简称λ表达式)是最小的一种表达式,主要由变量名和抽象符号λ以及括号等符号构成。若用X表示变量,用Exp表示纯Lambda表达式之集,则Exp集的定义如下。
定义 1.2.1. λ表达式
(1) x ∈Exp, 其中x是变量名。
(2) 若E1∈Exp, E2∈Exp, 则E1 E2 ∈Exp。
(3) 若E ∈Exp, x是变量, 则(x.E ∈Exp。
(4) 若E ∈Exp, 则 (E ) ∈Exp。
若用BNF表示法,则可描述如下(x ∈Var, E ∈Exp ):
E ::= x | E1 E2 | (x.E | ( E )
从上述定义可知纯(_表达式是非常小的表达式,以致于不能再小。但它将成为(_演算系统的基础。那么一个作为计算模型的形式系统应具备什么样的条件呢?很显然它起码应具备二个条件:其一是它有很强的功能,以致于能够描述复杂的计算过程;其二是它应非常小,以致于其语义是非常清楚的。当然实用性的系统,则应根据需求扩充相应的内容,但其前提是它们可变换为纯(_表达式的形式。
在我们这里Lambda演算系统主要是作为函数式语言和指称语义描述语言的基础。设L为被描述的语言,L0为描述L语义的语言,则我们称L0为元语言。显然,元语言不能是很复杂的,否则又可提出L0语言的语义是什么?因此,元语言的基础应非常简单。而所使用的实际元语言则应从简单语言逐步扩充而来,而且其语义是很清楚的。
在我们的(_表达式中没有常量部分,而且变量是广义的,即它代表的也可以是一函数。称形如(E1E2)的表达式为施用型表达式,称形如( x .E的表达式为抽象型表达式。表达式(E1E2)相当于通常的函数调用f(E),其中f是函数名。现在不一样的是E1不一定是一个函数名,可以是复杂的表达式,但必须是抽象表达式或代表函数的变量名,如((X.f(X))(((Y.Y)20 ),其中有三个施用型子表达式;
▲ ((Y.Y)20 ▲ f(X) ▲ ((X.f(X))( ((Y.Y)20 )
抽象表达式主要是用来表示无名函数。通常的方法是首先定义函数名,然后再使用它,因此函数都有名,而抽象表达式则表示一无名函数。假设有函数说明func f(X)=X+1,则显然也可把上述函数的定义写成:f=(X.X+1,并且也能方便地表示哪个是函数名,哪个是形参名,哪部分是函数体,其中(表示其后的变量为形参变量。这种说明是定义了一个函数名f。如果不想定义函数名,那么应该怎么办?这好办,只要直接用表达式(X.X+1即可了。这就是抽象表达式的直接出因。我们称(x.E中的E表达式为上述抽象表达式的体部分。
为了简单起见,以后将(XY)简写成XY。严格说的话,不能写成XY形式,因为这种写法,使实现系统将无法识别XY是一个标识符还是两个标识符。但如果假设变量名均由一个字母组成,则写成XY形式也能够分辨出来是X和Y的两个名字。因此我们以后在一般情况下将写成XY的形式。
定义 1.2.2. (记法约定)
(1) E1 E2 E3...En 〓 (((E1 E2)E3)...)En (左结合规则)
(2) (x1...(.xn.E 〓 (x1.(...((xn.En)...))
(3) (x1 x2...xn.E 〓 (x1.(x2....(.xn.E
(4) (x1...(.xn.E1 E2...En 〓 (x1...(.xn.(E1 E2...En)
例 1.2.1. 下面是一些简单的(_表达式例:
(x.(y.xy ((x.xy)y (x.x
(xy.x (
您可能关注的文档
- 《机械制造基础》试卷.doc
- 基于Lonworks技术的空调自控系统..doc
- 巧用变形工具为漂亮女孩削骨瘦脸.docx
- 2013年机械制造工艺学期末考试试卷答案 -.doc
- 基于LPC2124的直流电机调速系统Proteus仿真..docx
- 离散数学答案 第三章 谓词逻辑.doc
- 《离散数学》第二章 一阶逻辑 讲稿.doc
- 基于matlabGUI的平面四杆机构的运动分析..docx
- 2013-2014学年度苏锡常镇四市高三教学情况调研物理试卷及参考答案.doc
- 形位公差换算.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)