×

细化类型以定位强制严格性对自由定理的影响。 (英语) Zbl 1237.68051号

摘要:自由定理仅从参数多态函数的类型出发,建立了它们有趣的性质,并作为一个很好的证明工具。对于纯函数编程语言和惰性函数编程语言,它们可以在很少的前提条件下使用。不幸的是,在像Haskell这样的语言中存在选择性严格的情况下,它们的原始强度会降低。在本文中,我们提出了一种在特定情况下克服这一弱点的方法。使用一个精确类型系统来跟踪强制严格求值的使用,我们排除了其他出现的不必要的限制。此外,我们提供(并实现)一个算法来确定给定术语的所有精确类型。

MSC公司:

68甲18 函数编程和lambda演算
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 奥古斯特松:让库里-霍华德工作(特邀演讲)。At:归纳编程的方法和应用(2009)
[2] Bernardy J.-P.,Jansson P.,Claessen K.:测试多态性。收录于:Gordon,A.(编辑)《欧洲编程研讨会》,《会议录》,LNCS第6012卷,第125-144页。施普林格,海德堡(2010)。doi:10.1007/978-3-642-11957-68·Zbl 1260.68084号
[3] Crary,K.:逻辑关系和等价性检查的案例研究。在:[22],第6章,第223–244页(2005年)
[4] Day,N.、Launchbury,J.、Lewis,J.:Haskell中的逻辑抽象。收录:Meijer,E.(编辑)Haskell Workshop,Proceedings。乌得勒支大学UU-CS-1999-28技术报告(1999)
[5] Dyckhoff R.:直觉逻辑的无收缩序列计算。J.塞姆。日志。57(3), 795–807 (1992). doi:10.2307/2275431·Zbl 0761.03004号 ·doi:10.2307/2275431
[6] Fernandes J.,Pardo A.,Saraiva J.:循环程序计算的快捷融合规则。收录于:Keller,G.(编辑)Haskell Workshop,Proceedings,pp.95-106。ACM,纽约(2007年)。数字对象标识代码:10.1145/1291201.1291216
[7] Gill A.,Launchbury J.,Peyton Jones S.:砍伐森林的捷径。摘自:Arvind(编辑),《函数编程语言与计算机体系结构》,《会议录》,第223-232页。ACM,纽约(1993年)。doi:10.1145/165180.165214
[8] Holdermans S.,Hage J.:使“严格性”更具相关性。收录于:Gallagher,J.、Voigtländer,J.(编辑)《部分评估和程序操作》,《会议录》,第121-130页。ACM,纽约(2010年)。数字对象标识代码:10.1145/1706356.1706379·Zbl 1232.68026号
[9] Hudak P.、Hughes R.、Peyton Jones S.、Wadler P.:哈斯克尔的历史:懒惰上课。收录于:Ryder,B.,Hailpern,B.(编辑)编程语言历史,会议录,第12-1–12-55页。ACM,纽约(2007年)。数字对象标识代码:10.1145/1238844.1238856
[10] Hughes R.:非平面域中的严格检测。收录于:Ganzinger,H.,Jones,N.(编辑)Programs as Data Objects 1985,Proceedings,volume 217 of LNCS,pp.112-135。斯普林格,海德堡(1986)。doi:10.1007/3-540-16446-47
[11] 约翰·P:捷径融合是正确的。J.功能。程序。13(4), 797–814 (2003). doi:10.1017/S0956796802004409·Zbl 1111.68406号 ·doi:10.1017/S0956796802004409
[12] Johann P.:基于高阶多态计算的自由定理证明程序转换的正确性。数学。结构。计算。科学。15(2), 201–229 (2005). doi:10.1017/S0960129504004578·兹比尔1063.68033 ·doi:10.1017/S0960129504004578
[13] Johann P.,Voigtländer J.:存在seq的自由定理。收录于:Leroy,X.(编辑)《程序设计语言原理》,《程序集》,ACM SIGPLAN第39(1)卷。,第99–110页。ACM,纽约(2004年)。数字对象标识代码:10.1145/982962.964010
[14] Johann P.,Voigtländer J.:seq对基于自由理论的程序转换的影响。芬丹。通知。69(1–2), 63–102 (2006) ·Zbl 1096.68026号
[15] Launchbury J.,Paterson R.:参数化和未上色类型的拆箱。收录:Riis Nielson,H.(编辑)《欧洲编程研讨会》,《会议录》,LNCS第1058卷,第204-218页。斯普林格,海德堡(1996)。doi:10.1007/3-540-61055-3_38
[16] 迈克罗夫特A.:将呼叫者需求转化为呼叫者价值的理论和实践。摘自:Robinet,B.(编辑)《国际学术讨论会议程》,《会议录》,LNCS第83卷,第269-281页。斯普林格,海德堡(1980)。doi:10.1007/3-540-09981-6_19·Zbl 0435.68015号
[17] 尼尔森F.,里斯·尼尔森H.:类型和效果系统。收录于:Olderog,E.-R.,Steffen,B.(编辑)Festschrift to Hans Langmaack:Correct System Design,Recent Insight and Advances,第1710卷,LNCS,第114-136页。斯普林格,海德堡(1999)。doi:10.1007/3-540-48092-76·Zbl 0925.68293号
[18] Oliveira B.、Schrijvers T.、Cook W.:有效建议:具有明确效果的训练有素的建议。收录于:Jézéquel,J.-M.,Südholt,M.(编辑)面向方面的软件开发,论文集,第109-120页。ACM,纽约(2010年)。doi:10.1145/1739230.1739244
[19] Peyton Jones S.:函数式编程语言的实现。Prentice-Hall,Englewood Cliffs(1987)·Zbl 0712.68017号
[20] Peyton Jones,S.(编辑):Haskell 98语言与图书馆:修订报告。剑桥大学出版社,剑桥(2003)。doi:10.2277/0521826144·Zbl 1067.68041号
[21] 皮尔斯B:类型和编程语言。麻省理工学院出版社,剑桥(2002)·Zbl 0995.68018号
[22] Pierce,B.(编辑):类型和编程语言高级主题。麻省理工学院出版社,伦敦(2005)·兹比尔1080.68009
[23] Pitts,A.:打字操作推理。参见:[22],第7章,第245-289页(2005年)
[24] Plasmeijer,R.,van Eekelen,M.:清洁2.1版语言报告(2002)。http://clean.cs.ru.nl/download/Clean20/doc/CleanLangRep.2.1.pdf
[25] 雷诺兹J.:走向类型结构理论。摘自:Robinet,B.(编辑)《规划环境下的学术讨论》,《会议录》,LNCS第19卷,第408-423页。斯普林格,海德堡(1974)·Zbl 0309.68016号
[26] Reynolds J.:类型、抽象和参数多态性。收录于:Mason,R.(编辑)《信息处理》,《会议录》,第513-523页。Elsevier,阿姆斯特丹(1983)
[27] Schmidt D.:指称语义学:语言发展的方法论。Allyn和Bacon,波士顿(1986)
[28] Seidel,D.,Voigtländer,J.:缓和选择性严格。技术报告TUD-FI09-06,德累斯顿理工大学(2009)。http://www.iai.uni-bonn.de/jv/TUD-FI09-06.pdf
[29] Seidel D.,Voigtländer J.:缓和选择性严格。收录于:Dosch,W.,Hanus,M.(编辑)Arbeitstagung Programmiersprachen,《会议录》,LNI第154卷,第2916–2930页。Gesellschaft für Informatik,波恩(2009)
[30] Seidel D.,Voigtländer J.:自动生成朴素自由定理的反例。收录于:Blume,M.,Vidal,G.(编辑)《函数和逻辑编程》,《程序集》,LNCS第6009卷,第175-190页。施普林格,海德堡(2010)。doi:10.1007/978-3642-12251-414·Zbl 1284.68200号
[31] Sveningsson J.:累积参数的快捷融合;类似拉链的功能。摘自:Peyton Jones,S.(编辑)《函数编程国际会议论文集》,ACM SIGPLAN第37卷(9)。,第124-132页。ACM,纽约(2002年)。电话:10.1145/583852.581491·Zbl 1322.68050号
[32] Voigtländer J.:关于两个问题,有很多争论:并行前缀计算的一颗明珠。摘自:Wadler,P.(ed.)《编程语言原理》,《程序集》,ACM SIGPLAN第43卷(1)。,第29-35页。ACM,纽约(2008)。数字对象标识代码:10.1145/1328897.1328445·Zbl 1295.68070号
[33] Voigtländer J.:通过自由定理证明正确性:破坏/构建规则的例子。收录于:Glück,R.,de Moor,O.(编辑)《部分评估和基于语义的程序操作》,《会议录》,第13-20页。ACM,纽约(2008)。数字对象标识代码:10.1145/1328408.1328412
[34] Voigtländer J.:新捷径融合规则的语义和语用。收录于:Garrigue,J.,Hermenegildo,M.(编辑)《函数和逻辑编程》,《程序集》,LNCS第4989卷,第163-179页。施普林格,海德堡(2008)。doi:10.1007/978-3-540-78969-7_13·Zbl 1137.68347号
[35] Voigtländer J.:免费双向化!。摘自:Pierce,B.(ed.)《程序设计语言原理》,《程序集》,ACM SIGPLAN第44(1)卷。,第165-176页。ACM,纽约(2009年)。doi:10.1145/1594834.1480904
[36] Voigtländer J.:涉及类型构造函数类的自由定理。收录:Tolmach,A.(编辑)《函数编程国际会议论文集》,ACM SIGPLAN第44(9)卷。,第173-184页。ACM,纽约(2009年)。数字对象标识代码:10.1145/1631687.1596577·Zbl 1302.68094号
[37] Voigtländer J.,Hu Z.,Matsuda K.,Wang M.:结合句法和语义双向化。收录于:Weirich,S.(编辑)《函数编程国际会议论文集》,ACM SIGPLAN Not.第45(9)卷。,第181-192页。ACM,纽约(2010年)。doi:10.1145/1932681.1863571·Zbl 1323.68170号
[38] Wadler P.:免费定理!。摘自:MacQueen,D.(编辑)《函数编程语言与计算机体系结构》,《会议录》,第347-359页。ACM,纽约(1989)。doi:10.1145/99370.99404
[39] Wadler,P.,Blott,S.:如何使特殊多态性不那么特殊。摘自:《程序设计语言原理》,《会议录》,第60-76页。ACM,纽约(1989年)。doi:10.1145/75277.75283
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。