形式语义教材-ch1基本理论

形式语义教材-ch1基本理论

ID:23192768

大小:620.99 KB

页数:28页

时间:2018-11-04

形式语义教材-ch1基本理论_第1页
形式语义教材-ch1基本理论_第2页
形式语义教材-ch1基本理论_第3页
形式语义教材-ch1基本理论_第4页
形式语义教材-ch1基本理论_第5页
资源描述:

《形式语义教材-ch1基本理论》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第一章理论基础§1.1引言1941年Church创建了Lambda演算理论。它是一个形式系统,Af作为计算模型,如同Turing机可作为计算模彻一样。Lambda演算形式系统主要由两部分纟11成:其一是合法表达式的形式系统,其二是变换规则的形式系统.Lambda演算系统可有多种。其主要区别在于构成Lambda演算形式系统的两个组成部分的具体定义上。不同的Lambda演算系统会得到一些不同的定理。Lambda演算系统如同Turing机系统一样,可描述任何一部分递归函数的计算过程。因此,Lambda演算系统也可视为一种算法语言系统。其•屮的La

2、mbda表达式相当于语言的一个程序。程序如何执行,由Lambda演算系统的机制來确定。Lambda演算理论是函数式语言的基础,也是指称语义学的理论基础。§1.2Lambda演算纯Lambda表达式(以后简称X表达式)是最小的一种表达式,主要由变量名和抽象符号入以及括号等符号构成。若用X表示变量,用Exp表示纯Lambda表达式之集,则Exp集的定义如下。■定义1.2.1.X表达式(1)xEExp,其中x是变量名。(2)若EieExp,E2EExp,贝ijElE2[Expy(3)若EeExp,x是变量,WJXx.EGExp。⑷若EEExp,贝

3、(J(E)EExp。若用BNF表示法,则可描述如下(xEVar,EEExp):E::=x

4、E1E2

5、Xx.E

6、(E)从上述定义可知纯表达式是非常小的表达式,以致于不能再小。但它将成为人_演算系统的基础。那么一个作为计算模型的形式系统应具备什么样的条件呢?很显然它起码应具备二个条件:其一是它有很强的功能,以致于能够描述复杂的计算过程;其二是它应非常小,以致于其语义是非常清楚的。当然实用性的系统,则应根据需求扩充相应的内容,但其前提是它们可变换为纯?1_表达式的形式。在我们这里Lambda演算系统主要是作为函数式语言和指称语义描述语言的基础。没

7、L为被描述的语言,L0为描述L语义的语言,则我们称L0为元语言。显然,元语言不能是很复杂的,否则又可提山L0语言的语义是什么?因此,元语言的基础应非常简单。而所使用的实际元语言则应从简单语言逐步扩充而来,而且其语义是很清楚的。在我们的人_表达式屮没有常量部分,而且变量是广义的,即它代表的也可以是一函数。称形如(E1E2)的表达式为施用型表达式,称形如Xx.E的表达式为抽象型表达式。表达式(E1E2)相当于通常的函数调用f(E),其中f是函数名。现在不一样的是E1不一定是一个函数名,可以是S杂的表达式,但必须是抽象表达式或代表函数的变量名,如

8、(ZX.f(X))((?iY.Y)20),其中有三个施用型子表达式;▲(入Y.Y)20▲f(X)▲(XX.f(X))((XY.Y)20)抽象表达式主要是用來表示无名蚋数。通常的方法是首先定义蚋数名,然后再使用它,因此函数都有名,而抽象表达式则表示一无名函数。假设有函数说明fuiKf(X)=X+l,则显然也可把上述函数的定义写成:f=XX.X+l,并且也能方便地表示哪个是函数名,哪个是形参名,哪部分是函数体,其中X表示其后的变量为形参变量。这种说明是定义了一个函数名f。如果不想定义函数名,那么应该怎么办?这好办,只要直接用表达式XX.X+1即

9、可了。这就是抽象表达式的直接出因。我们称Xx.E中的E表达式为上述抽象表达式的体部分。为了简单起见,以后将(XY)简写成XY。严格说的话,不能写成XY形式,因为这种写法,使实现系统将无法识别XY是一个标识符还是两个标识符。但如果假没变量名均由一个字母组成,则写成XY形式也能够分辨出来是X和Y的两个名字。因此我们以后在一般情况下将写成XY的形式。■定义1.2.2.(记法约定)(1)ElE2E3...En=(((ElE2)E3)…)En(左结合规则)(2)入xl..A.xn.E=Xx1.(...(Xxn.En)...))(3)入xlx2...x

10、n.E=Xxl.Xx2....X.xn.E(4)Xxl..A.xn.E1E2…En=Xxl...X.xn.(ElE2...En)Xx.x(Xx.xx)(Xx.xx)x(入x.xy)例1.2.1.下面是一些简单的表达式例:Xx.Xy.xy(Xx.xy)y入xy.x人xy.y入xy.x(y)xy单从表达式看,看不出任何意义,因力其中既没有常量也没有函数名,不知道是如何计算的。但不久我们将会看到这样一个非常简单的系统能够描述杂的计算和推理过程。■定义1.2.3.子表达式设E是表达式,并用SUB(E)表示E的子表达式集,则定义SUB(x)={x}S

11、UB(E1E2)=SUB(E1)USUB(E2)U{E1E2}SUB(Xx.E)={Xx.E}USUB(E)SUB((E))={E}USUB(E)■定义1.2.4.作用域设有X表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。