跳到主要内容
10.1145/1088348.1088356acm会议文章/章节视图摘要出版物页面国际货币基金组织会议记录会议集合
第条

让咖喱霍华德发挥作用

出版:2005年9月30日 出版历史

摘要

柯里-霍华德同构说,类型是命题,程序是证明。这允许程序员通过使用类型来声明和强制程序的不变量。不幸的是,当今函数式语言的类型系统不能直接表达程序的有趣属性。为了缓解这个问题,我们建议向函数编程语言(如Haskell)添加三个新特性:广义代数数据类型、可扩展类系统以及静态命题的生成、传播和释放。这三个新特性与现有特性向后兼容,并结合起来为函数式程序员提供了新的编程范例。这种范式使得使用类型系统来声明和执行程序的有趣属性成为可能,并且它以保持函数式编程风格不变的方式做到了这一点,这种风格为各地的函数式程序员所熟知和喜爱。

工具书类

[1]
伦纳特·奥古斯森。Cayenne—一种具有依赖类型的语言。ACM SIGPLAN通知,34(1):239--2501999年1月。]]
[2]
伦纳特·奥古斯森。2000年7月11日,卡宴的平等证明。]]
[3]
伦纳特·奥古斯森和肯特·彼得森。愚蠢类型的家庭。可从以下位置获得:网址:http://www.cs.pdx.edu/~sheard/papers/silly.pdf,1994年。]]
[4]
阿瑟·巴尔斯(Arthur I.Baars)和斯威斯特拉(S.Doaitse Swierstra)。键入动态键入。第七届ACM SIGPLAN函数编程国际会议记录,第157-166页。ACM出版社,纽约,2002年9月。也出现在ACM SIGPLAN通知37/9中。]]
[5]
H.P.巴伦德雷格特。带有类型的Lambda计算。在D.M.Gabbay、Samson Abramsky和T.S.E.Maibaum编辑的《计算机科学逻辑手册》第2卷中。牛津大学出版社,牛津,1992年。]]
[6]
詹姆斯·切尼和拉尔夫·欣兹。一流的幻影类型。技术报告TR2003-1901,康奈尔大学,2003年。也可从以下网站获得:http://www.informatik.uni-bonn.de网站/~ralf/publications/Phantom.pdf.]]
[7]
Catarina Coquand公司。Agda是一个增量开发证明和程序的系统。描述AGDA的网页:网址:http://www.cs.chalmers.se/~catarina/agda/.]]
[8]
T.Coquand和P.Dybjer。归纳定义和类型理论简介(初版)。计算机科学课堂讲稿,880:60--761994年。]]
[9]
罗文·戴维斯(Rowan Davies)。标准ML的改进型检查器。在国际代数方法论和软件技术会议上,计算机科学讲稿第1349卷。Springer-Verlag,1997年。]]
[10]
多米尼克·达根(Dominic Duggan)。多态语言中分布式编程的动态类型。《美国计算机学会编程语言与系统汇刊》,21(1):11-45,1999年1月。]]
[11]
P.Dybjer和A.Setzer。归纳递归定义的有限公理化。计算机科学课堂讲稿,1581:129--1461999。]]
[12]
R.Harper和R.Pollack。使用Universe进行类型检查。理论计算机科学,89(1):107--1361991年10月
[13]
Robert Harper、Furio Honsell和Gordon Plotkin。定义逻辑的框架。美国医学会杂志,40(1):143--1841993年1月。]]
[14]
拉尔夫·欣泽(Ralf Hinze)和詹姆斯·切尼(James Cheney)。泛型和动力学的轻量级实现。Manuel Chakravarty,编辑,ACM SIGPLAN 2002 Haskell Workshop会议记录,第90-104页。ACM SIGPLAN,2002年10月。]]
[15]
Infopipe网站:。http://www.cs.pdx.edu/~walpole/infopies.html,以及http://woodom.cs.uml.edu/~rprice/ep/koster/.]]
[16]
马克·P·琼斯。构造函数类系统:重载和隐式高阶多态。函数编程语言和计算机体系结构会议记录,丹麦哥本哈根,1993年6月。]]
[17]
西蒙·佩顿·琼斯和马克·希尔兹。任意库类型的实用类型推断。技术报告,微软研究院,2003年12月。http://research.microsoft.com/Users/simonpj/。]]
[18]
西蒙·佩顿·琼斯(Simon Peyton Jones)、杰弗里·沃什本(Geoffrey Washburn)和斯蒂芬妮·威里奇(Stephanie Weirich)。摇摆类型:泛化代数数据类型的类型推断。http://research.microsoft.com/Users/simonpj/, 2004.]]
[19]
A.J.Kfoury和Said Jahama。存在多态递归和递归类型时的类型重建。技术报告,2000年3月21日。]]
[20]
罗朝晖和罗伯特·波拉克。乐高证明开发系统:用户手册。技术报告ECS-LFCS-92-211,LFCS,爱丁堡大学计算机科学系,The King’s Buildings,Edinburgh EH9 3JZ,1992年5月。更新版本。]]
[21]
康纳·麦克布莱德。Epigram:具有相关类型的实用编程。2004年8月,第五届高级函数式编程国际暑期学校的笔记。网址:http://www.dur.ac.uk/CARG/epigram/epigram-afpnotes.pdf .]]
[22]
G.Morrisett、D.Walker、K.Crary和N.Glew。从系统F到类型化汇编语言。美国计算机学会程序设计语言与系统汇刊(TOPLAS),21(3):528--5691999年5月。]]
[23]
本特·诺德斯特龙。ALF校对编辑,1996年3月20日。]]
[24]
埃米尔·帕萨利克。类型相等在元编程中的作用。2004年10月,OHSU OGI科学与工程学院博士论文。可从以下位置获得:http://www.cs.rice.edu/~pasalic/论文/body.pdf.]]
[25]
埃米尔·帕萨利克和内森·林格。具有类型化对象语言表示的元编程。在生成性编程和组件工程(GPCE’04)中,第136-167页,2004年10月。LNCS卷3286。]]
[26]
劳伦斯·保尔森(Lawrence C.Paulson)。伊莎贝尔:接下来的700个定理证明者。《逻辑与计算机科学》编辑P.Odifreddi,第361-386页。学术出版社,1990年。]]
[27]
弗兰克·普芬宁(Frank Pfenning)。LF逻辑框架中的逻辑编程。Gérard Huet和Gordon Plotkin,《逻辑框架》编辑,第149-181页,英国剑桥,1991年。剑桥大学出版社。]]
[28]
Frank Pfenning和Carsten Schurmann。系统描述:Twelf-演绎系统的元逻辑框架。哈拉尔德·甘津格(Harald Ganzinger),编辑,《第16届自动扣除国际会议论文集》(CADE-16),LNAI第1632卷,第202-206页,柏林,1999年7月7日至10日。施普林格-弗拉格。]]
[29]
蒂姆·谢尔德(Tim Sheard)。未来的语言。前进轨道,OOPSLA’04。转载于:ACM SIGPLAN通知,2004年12月,39(10):116--1192004年10月。]]
[30]
蒂姆·谢尔德(Tim Sheard)、詹姆斯·胡克(James Hook)和内森·林格(Nathan Linger)。GADTs+可扩展类系统=依赖编程。技术报告,波特兰州立大学,2005年。http://www.cs.pdx.edu/~剪了。]]
[31]
蒂姆·谢尔德和内森·林格。在Omega中使用静态不变量编程,2004年9月。可从以下位置获得:http://www.cs.pdx.edu/~剪切/.]]
[32]
蒂姆·谢尔德和埃米尔·帕萨利奇。内置类型相等的元编程。在逻辑框架和元语言研讨会上,2004年7月。网址:http://cs-www.cs.yale.edu/homes/carsten/lfm04/。]]
[33]
Vincent Simonet和Francois Pottier。保护代数数据类型的基于约束的类型推断。可从以下位置获得:http://cristal.inria.fr/~simonet/publis/index.en.html.]]
[34]
Peter J.Stuckey和Martin Sulzmann。保护递归数据类型的类型推断,2005年2月。可从以下位置获得:http://www.comp.nus.edu.sg网站/~sulzmann/.]]
[35]
亚伦·斯塔姆。必要的LF元编程。在逻辑框架和元语言研讨会上,2004年7月。网址:http://cs-www.cs.yale.edu/homes/carsten/lfm04/。]]
[36]
马丁·苏尔兹曼和蒙·王。保护递归数据类型到存在类型的系统转换,2005年2月。可从以下位置获得:http://www.comp.nus.edu.sg网站/~sulzmann/.]]
[37]
Coq开发团队。考证助理参考手册,7.4版。INRIA,2003年。http://pauillac.iria.fr/coq/doc/main.html。]]
[38]
斯蒂芬妮·威里奇。类型安全铸件:(功能珍珠)。ACM SIGPLAN通知,35(9):58--672000年9月。]]
[39]
西宏伟。实际编程中的依赖类型。卡内基梅隆大学博士论文,1997年。]]
[40]
西宏伟。通过依赖类型消除死代码。计算机科学课堂讲稿,1551:228--2421999.]]
[41]
Xi Hongwei、Chen Chiyan和Gang Chen。受保护的递归数据类型构造函数。在POPL:第30届ACM SIGACT-SIGPLAN编程语言原理研讨会,2003年
[42]
Xi洪伟和Frank Pfenning。通过依赖类型消除数组绑定检查。ACM SIGPLAN通知,33(5):249--2571998年5月。]]
[43]
Xi洪伟和Frank Pfenning。实际编程中的依赖类型。在ACM,编辑,POPL’99。1999年1月20日至22日,第26届ACM SIGPLAN-SIGCT程序设计语言原理会议记录,德克萨斯州圣安东尼奥,ACM SIGPLAN通知,第214至227页,美国纽约州纽约市,1999年。ACM出版社。]]

引用人

查看全部

索引术语

  1. 让咖喱霍华德发挥作用

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片ACM会议
    Haskell'05:2005年ACM SIGPLAN Haskell研讨会会议记录
    2005年9月
    126页
    国际标准图书编号:159593071倍
    内政部:10.1145/1088348
    如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

    赞助商

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史

    出版:2005年9月30日

    权限

    请求对此文章的权限。

    检查更新

    作者标记

    1. GADT公司
    2. 咖喱-霍华德同构
    3. 可拓类系统
    4. 哈斯克尔
    5. 逻辑

    限定符

    • 第条

    会议

    哈斯克尔05
    Haskell05:Haskell研讨会2005
    2005年9月30日
    爱沙尼亚塔林

    接受率

    总体接受率143份提交文件中的57份,40%

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章度量标准

    • 下载次数(过去12个月)7
    • 下载次数(最近6周)1
    反映截至2024年9月18日的下载量

    其他指标

    引文

    引用人

    查看全部

    视图选项

    获取访问权限

    登录选项

    完全访问权限

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用联机查看电子阅读器.

    电子阅读器

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享