族谱网 头条 人物百科

有类型λ演算

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:281
转发:0
评论:0
种类已经研究了各种有类型lambda演算。简单类型lambda演算的类型只是基本类型(或类型变量)和函数类型σσ-->→→-->ττ-->{displaystylesigmat

种类

已经研究了各种有类型 lambda 演算。简单类型lambda演算的类型只是基本类型(或类型变量)和函数类型 σ σ -->→ → -->τ τ -->{\displaystyle \sigma \to \tau }。系统T 向简单类型 lambda 演算扩展了自然数类型和更高阶的原始递归函数;在这个系统中在可证明在皮亚诺算术中是递归函数的所有函数都是可定义的。系统F通过在所有类型上的全称量化允许多态性;从逻辑的观点看它可以描述可证明在二阶逻辑中是全函数的所有函数。有依赖类型的 lambda 演算是直觉类型论,构造演算和逻辑框架(LF)的基础,它是带有依赖类型的纯 lambda 演算。基于 Berardi 的工作,Barendregt 提议了 Lambda立方体来系统化纯有类型 lambda 演算(包括简单类型 lambda 演算,系统 F,LF 和构造演算)之间的关系。

某些有类型 lambda 演算介入“子类型”的概念,就是说如果 A{\displaystyle A} 是 B{\displaystyle B} 的子类型,则类型 A{\displaystyle A} 的所有项也有类型 B{\displaystyle B}。带有子类型的有类型 lambda 演算是带有合取类型和 F≤ ≤ -->{\displaystyle F^{\leq }} (F-sub) 的简单类型 lambda 演算。

迄今提到的所有西,除了无类型 lambda 演算是例外,都是“强规范化”的:所有计算都会终止。结论是他们作为逻辑都是自恰的,就是说这里有无居留(uninhabited)类型。但是存在着不是强规范化的有类型 lambda 演算。比如带有所有类型的一个类型(Type : Type)的依赖类型 lambda 演算由于Girard悖论而不是强规范化的。这个系统也是最简单的纯类型系统,它是推广 Lambda立方体的一种形式化。有明确的递归组合子的系统,比如 Gordon Plotkin 的 PCF,不是规范化的,但是它们不意图被解释为逻辑。实际上,PCF(可计算函数的编程语言)是元典型(prototypical)的有类型的函数式编程语言,这里的类型被用来确保程序是有良好行为的而不必须是终止的。

应用

有类型 lambda 演算在为编程语言设计新类型系统的时候扮演了关键性角色;这里类型能力通常捕获了程序想要的性质,比如程序不会导致内存访问违规。

在编程中,强类型编程语言的例程(函数,过程,方法)密切关联于有类型 lambda 表达式。Eiffel有一个“内线代理”概念,使得有可能直接定义和操纵有类型 lambda 表达式,通过这种表达式如 agent (p: PERSON): STRING do Result := p.spouse.name end,指示表示返回一个人配偶的名字的一个函数的一个对象。

参见

简单类型lambda演算

系统F

逻辑框架

构造演算

直觉类型论


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· λ演算
历史最开始,邱奇试图创制一套完整的形式系统作为数学的基础,当他发现这个系统易受罗素悖论的影响时,就把lambda演算单独分离出来,用于研究可计算性,最终导致了他对判定性问题的否定回答。非形式化的描述在λ演算中,每个表达式都代表一个函数,这个函数有一个参数,并且返回一个值。不论是参数和返回值,也都是一个单参的函数。可以这么说,λ演算中,只有一种“类型”,那就是这种单参函数。函数是通过λ表达式匿名地定义的,这个表达式说明了此函数将对其参数进行什么操作。例如,“加2”函数f(x)=x+2可以用lambda演算表示为λx.x+2(或者λy.y+2,参数的取名无关紧要)而f(3)的值可以写作(λx.x+2)3。函数的应用(application)是左结合的:fxy=(fx)y。考虑这么一个函数:它把一个函数作为参数,这个函数将被作用在3上:λf.f3。如果把这个(用函数作参数的)函数作用于我们先前的...
· 类型安全
定义RobinMilner对于类型安全所喊出的口号:这一口号的涵义,取决于语言形式化语义的类别。在指称语义学里,类型安全意谓者一个表达式的值具有良好类型τ,则表达式是一个属于τ的集合的真正的成员。1994年,AndrewWright和MatthiasFelleisen以操作语义学定义的公式描述:何谓现今的标准定义,以及对于类型安全的检验技术。根据上述方法,类型安全是以编程语言语义中的两个性质所决定的:这些性质不是无中生有的,而是和编程语言所描述出来的语义相连系,而且各式各样的语言存在着可以此基准来充实的广大的空间。因为“类型良好”程序的概念已是静态语义学的一部分,而“卡住”(或者“搞错”)则是动态语义学方面的属性。语言的类型安全性学术研究用途的玩具语言,常会提出类型安全方面的需求。另一方面,许多语言以人工方式所产生的类型安全,证实经常需要上千次的检查。不过,某些语言,如标准ML,其严格定义...
· 祭祀用的祭文有哪些类型
祭文是人死亡之后祭祀的祭品所属。祭文的形式多种多样,体现在很多和祭祀相关的文化和物件中,而由于祭文在中国死亡文化中真正具备文化色彩,占有重要地位。1、祭文祭文作为祭奠死者而写的哀悼文章,是在人死葬后于灵前诵读,或者是死者生忌周年或每年忌日发表的悼念文章。祭文的内容主要包括有:于什么时候,由谁来祭,祭谁;颂扬被祭者生前的优点和功德;最后是结束语。古代的祭文是用文言文写的,用典较多,讲究文辞华丽,并且有一定的格式,一般如下:祭文开关习惯以"维"字开头,占整一行。"维"是助词,作发语词用,无别的意义。紧接"维"字,第二行言明吊唁的时间及祭谁,谁来祭。这是开篇明义,首先要点明的问题。要请注意的是祭文的内容必须简短,语言必须精炼。交代时间和人物后,接着写死者的功德优点,表达祭者的哀痛之情。祭文的结尾,一般用"尚飨"一词结尾,是临祭而望亡灵歆享之词。尚为希望之意,飨为没牲醴以品尝之意。旧祭文虽然有许多...
· 类型论
类型论体系主要简单类型λ演算,一种高阶逻辑;直觉类型论;系统F;LF经常用来定义其他类型论;构造演算及其派生理论。次要Automath(英语:Automath);ST类型论;组合逻辑的一些形式;λ立方体(英语:Lambdacube)中定义的其他;其他有类型λ演算;其他纯类型系统(英语:puretypesystem)。活跃正在研究中的同伦类型论参考文献延伸阅读Andrews,PeterB.,2002.AnIntroductiontoMathematicalLogicandTypeTheory:ToTruthThroughProof,2nded.KluwerAcademicPublishers.Cardelli,Luca,1997,"TypeSystems,"inAllenB.Tucker,ed.,TheComputerScienceandEngineeringHandbook.CRCPres...
· 类型推论
非技术性解说在大多数的编程语言中,所有值都有一个类型,它描述特定值的数据种类。在一些语言中,表达式的类型只在运行时才知道;这些语言被称作动态类型语言。而另一些语言中,表达式的类型在编译时就知道,这些语言叫做静态类型语言。在静态类型语言中,函数的输入和输出与局部变量的类型一般必须用类型标注明确的提供。例如,在C语言中:intaddone(intx){intresult;/*声明整数result(C语言)*/result=x+1;returnresult;}这个函数定义开始处,intaddone(intx)声明了addone是函数,接受一个整数类型的参数,并返回一个整数。intresult;声明了局部变量result是个整数。在支持类型推论的建议的语言中,代码可写为如下:这看起来非常像在动态类型语言中写出的代码,但是提供了一些额外的约束(见下)使得能够在编译时推断出所有变量的类型。在上面的例子...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信