×

COCHIS:稳定且连贯的隐式。 (英语) Zbl 1493.68094号

概要:隐式编程(IP)机制通过类型定向解析推断值,使程序更紧凑、更易于阅读。IP机制的示例包括Haskell的类型类、Scala的隐式、Agda的实例参数、Coq的类型类和Rust的特征。知识产权机制的设计引发了激烈的争论:一个学派的支持者主张强大推理属性的可取性,而另一个学派则主张局部范围或重叠实例的威力和灵活性。目前的事态似乎表明,这两个目标相互矛盾,不容易调和。本文介绍了COHIS,即CoHerent ImplicitS的微积分,它是隐式微积分的一种改进变体,在保留两个关键属性的同时提供了灵活性:一致性类型替换的稳定性.COCHIS支持多态性、局部作用域、重叠实例、一级实例和高阶规则,同时在类型替换下保持类型安全、一致和稳定。我们引入了一个逻辑公式来解决隐含问题,这个公式简单但含糊不清且不连贯,第二个公式不太简单但明确、连贯且稳定。第二种形式的每一个分辨率也是第一种形式的分辨率,但不是相反。第二种公式的部分内容与称为聚焦的标准证据搜索技术非常相似。此外,其连贯性的关键是严格执行决定论。

MSC公司:

68甲18 函数编程和lambda演算
03B70号 计算机科学中的逻辑
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Andreoli,J.-M(1992),《线性逻辑中聚焦证明的逻辑编程》。J.逻辑计算。2、297-347.10.1093/log.com/2.3.297·Zbl 0764.03020号
[2] Barendregt,H.(1981)《兰姆达演算:语法和语义》,《逻辑和数学基础研究》第103卷。霍兰德北部·Zbl 0467.03010号
[3] Barendregt,H.、Dekkers,W.和Statman,R.(2013)《Lambda微积分与类型》。剑桥大学出版社.10.1017/CBO9781139032636·Zbl 1347.03001号
[4] Biernacki,D.&Polesiuk,P.(2018)效果子类型连贯性的逻辑关系。日志。计算方法。科学。14(1),第1-28页·Zbl 1398.68080号
[5] Boehm,H.-J.(1985)部分多态性类型推断是不可判定的。在第26届计算机科学基础年会上。IEEE,第339-345页。
[6] Bottu,G.-J.,Karachalias,G.,Schrijvers,T.,Oliveira,B.&Wadler,P.(2017)量化类约束。第十届ACMSIGPLAN哈斯克尔国际研讨会论文集,哈斯克尔。美国纽约州纽约市:ACM,第148-161页。
[7] Bottu,G.-J.和Simon,P.J.(2018)量化约束-提案[在线]。网址:https://github.com/Gertjan423/ghc-proposes/blob/quantified-constraints/proposes/00000-quantified_constraints.rst#overlap
[8] Brady,E.(2015)Idris中的打字课程[在线]。网址:https://groups.google.com/forum网站/#!主题/idris-lang/OQQ3oc6zBaM
[9] Breazu-Tannen,V.、Coquand,T.、Gunter,C.和Scedrov,A.(1991)《作为隐性胁迫的继承》。通知。计算。93, 172-221.10.1016/0890-5401(91)90055-7 ·Zbl 0799.68129号
[10] Camaráo,C.&Figueiredo,L.(1999)无限制、声明或注释的重载类型推断。在FLOPS中。英国伦敦:Springer-Verlag,第37-52页·Zbl 0988.68532号
[11] Chakravarty,M.、Keller,G.和Peyton Jones,S.L.(2005a)。关联的类型同义词。在ICFP中。纽约:ACM,第241-253页·Zbl 1302.68055号
[12] Chakravarty,M.、Keller,G.、Peyton Jones,S.L.和Marlow,S.(2005b)将类型与类别联系起来。在POPL中。纽约:ACM,第1-13页·Zbl 1369.68089号
[13] Chong,S.(2017)第二讲:逻辑关系第二部分[在线]。网址:https://www.seas.harvard.edu/courses/cs252/2017fa/lectures/lec02-contextual-equiv.pdf
[14] Damas,L.&Milner,R.(1982)功能程序的主要类型模式。在POPL中。纽约:ACM,第207-212页。
[15] Devriese,D.&Piessens,F.(2011)关于类型类的优点:Agda中的实例参数。在ICFP中。纽约:ACM,第143-155页·Zbl 1323.68108号
[16] Dijkstra,A.和Swierstra,S.D.(2005)《显式生成隐式参数》。技术报告。乌得勒支大学。
[17] Dreyer,D.、Harper,R.、Chakravarty,M.和Keller,G.(2007)模块化类型课程。在POPL中。纽约:ACM,第63-70页·Zbl 1295.68061号
[18] Dunfield,J.和Krishnaswami,N.R.(2013)对高秩多态性进行全面且简单的双向类型检查。在ACM SIGPLAN功能编程国际会议上,ICFP'13,Morrisett,G.&Uustalu,T.(编辑),马萨诸塞州波士顿:ACM,第429-442页·Zbl 1323.68204号
[19] Eisenberg,R.A.,Vytiniotis,D.,PeytonJ。S.&Weirich,S.(2014)具有重叠方程的封闭型族。在POPL中。纽约:ACM,第671-683页·Zbl 1284.68130号
[20] Garcia,R.、Jarvi,J.、Lumsdaine,A.、Siek,J.和Willcock,J.(2007)泛型编程语言支持的扩展比较研究。J.函数。程序。17(2),145-205.1017/S095679680606198·Zbl 1125.68019号
[21] GHC。(2017a)Ghc用户指南:重叠实例[在线]。网址:https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#重叠实例
[22] 全球总部。(2017b)量化约束-GHC[在线]。可在https://ghc.haskell.org/trac/ghc/wiki/QuantifiedConstraints网站
[23] Gonthier,G.、Ziliani,B.、Nanevski,A.和Dreyer,D.(2011)如何使特设证明自动化不那么特设。第16届ACM SIGPLAN函数编程国际会议论文集,ICFP'11。纽约:ACM,第163-175页·Zbl 1323.68117号
[24] Gregor,D.、Järvi,J.、Siek,J.G.、Stroustrup,B.、Dos Reis,G.和Lumsdaine,A.(2006)《概念:c++中对泛型编程的语言支持》。在OOPSLA中。纽约:ACM,第291-310页。
[25] Hindley,J.R.(1969)组合逻辑中对象的主要类型方案。事务处理。美国数学。社会地位146、29-60·Zbl 0196.01501号
[26] Hulley,B.(2009)模块化类的展示问题?[在线]。网址:http://lists.seas.upenn.edu/pipermail/types-list/2009/001405.html
[27] Jones,M.P.(1992年)。限定类型理论。《第四届欧洲编程研讨会论文集》(ESOP’92),Krieg-Brückner,B.(ed),英国伦敦:Springer-Verlag,第287-306页。
[28] Jones,M.P.(1995a)《合格类型:理论与实践》。剑桥大学出版社·Zbl 0841.68113号
[29] Jones,M.P.(1995年b)简化和改进合格类型。在第七届函数式编程语言和计算机体系结构国际会议(FPCA’95)的会议记录中。美国纽约州纽约市:ACM,第160-169页。
[30] Jones,S.P.,Vytiniotis,D.,Weirich,S.&Shields,M.(2007)任意秩类型的实用类型推理。功能编程杂志17(1),1-82.1017/S0956796806006006034·Zbl 1107.68030号
[31] Kahl,W.和Scheffczyk,J.(2001)。Haskell类型类的命名实例。2001年ACM SIGPLAN Haskell研讨会的初步会议记录(HW'2001),Hinze,R.(ed),技术报告UU-CS-2001-23。意大利费伦泽:乌得勒支大学信息与计算科学研究所。
[32] Kiselyov,O.和Shan,C.-C.(2004)《功能珍珠:隐含配置——或者说,类型类反映类型的值》。2004年ACM SIGPLAN Haskell研讨会论文集。Haskell’04,ACM,第33-44页。
[33] Kmett,E.(2015)类型课程与世界[在线]。网址:https://www.youtube.com/watch?v=hIZxTQP1ifo网址
[34] Le Botlan,D.&Rémy,D.(2003)MLF:将ML提升到系统F的能力。第八届ACM SIGPLAN函数式编程国际会议论文集。ICFP’03。SIGPLAN不是。49, 4. 第52-63页·Zbl 1315.68051号
[35] Leijen,D.(2008)HMF:一级多态性的简单类型推断。在第13届ACM SIGPLAN函数编程国际会议(ICFP'08)的会议记录中。美国纽约州纽约市:ACM,第283-294页·Zbl 1323.68079号
[36] Lewis,J.、Launchbury,J.,Meijer,E.和Shields,M.(2000)《隐式参数:静态类型的动态范围界定》。在POPL中。纽约:ACM,第108-118.10.1145/325694.325708页·兹比尔1323.68131
[37] Liang,C.&Miller,D.(2009)线性、直觉主义和经典逻辑中的聚焦和极化。西奥。计算。科学。410(46),4747-4768.10.1016/j.tcs.2009.07.041·Zbl 1187.68528号
[38] Manna,Z.和Waldinger,R.(1980)程序综合的演绎方法。Acm事务处理。程序。语言系统。2(1), 90-121.10.1145/357084.357090 ·Zbl 0468.68009号
[39] Marlow,S.(2012)《安全哈斯克尔与实例一致性》[在线]。网址:https://mail.haskell.org/pipermail/haskell-cafe/2012-October/103887.html
[40] Martelli,A.和Montanari,U.(1982年)。一种高效的统一算法。Acm事务处理。程序。语言系统。4(2), 258-282.10.1145/357162.357169 ·Zbl 0478.68093号
[41] Miller,D.(1992)混合前缀下的统一。J.塞姆。计算。14(4),321-358.10.1016/0747-7171(92)90011-R·Zbl 0768.68067号
[42] Miller,D.,Nadathur,G.,Pfenning,F.&Scedrov,A.(1991)作为逻辑编程基础的统一证明。Ann.纯粹应用。逻辑51(1-2),125-157.10.1016/0168-0072(91)90068-W·Zbl 0721.03037号
[43] Milner,R.(1978)编程中的类型多态性理论。J.计算。系统。科学。17(3),348-375.10.1016/0022-0000(78)90014-4·Zbl 0388.68003号
[44] Morris,J.G.&Jones,M.P.(2010)实例链:没有重叠实例的类型类编程。在ICFP中。纽约:ACM,第375-386页·Zbl 1323.68141号
[45] Morris,J.H.,Jr.(1969)编程语言的Lambda-calculus模型。斯隆管理学院博士论文。
[46] MozillaResearch团队。(2017)rust编程语言[在线]。网址:https://www.rust-lang.org/en-US(网址:https://www.rust-lang.org/en-US)/
[47] Norell,U.(2008)Agda中的依赖类型编程。《第六届高级函数编程国际会议论文集》(AFP’08),Koopman,P.,Plasmeijer,R.&Swierstra,D.(eds),柏林,海德堡:Springer-Verlag,第230-266页·Zbl 1263.68038号
[48] nponeccop公司。(2012)破坏数据集的完整性,但没有泛化类型派生[在线]。网址:https://stackoverflow.com/questions/12735274/breaking-data-set-integrantity-withoutgeneralizednewtypederiving
[49] Odersky,M.(2010)《Scala语言规范》2.8版。
[50] Odersky,M.,Blanrolink,O.,Liu,F.,Biboudis,A.,Miller,H.&Stucki,S.(2017)《简明:隐式函数类型的基础和应用》。程序。ACM计划。语言2(POPL),42:1-42:29.10.1145/3158130
[51] Odersky,M.&Läufer,K.(1996)《使类型注释发挥作用》,载于第23届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集(POPL'96)。美国纽约州纽约市:ACM,第54-67页。
[52] 奥列格。(2006)Typeclass与prolog编程[在线]。网址:https://mail.haskell.org/pipermail/haskell-cafe/2006-9月/01850.html
[53] Oliveira,B.C.d.S.,Moors,A.&Odersky,M.(2010)将类作为对象和隐式类型。《ACM面向对象编程系统语言和应用国际会议论文集》(OOPSLA’10)。美国纽约州纽约市:ACM,第341-360.10.1145/1869459.1869489页
[54] Oliveira,B.C.d.S.,Schrijvers,T.,Choi,W.,Lee,W.&Yi,K.(2012)隐式微积分:泛型编程的新基础。PLDI’12。纽约:ACM。
[55] Peyton Jones,S.L.、Jones,M.P.和Meijer,E.(1997)类型课程:设计空间的探索。哈斯克尔研讨会,Launchbury,J.(ed),阿姆斯特丹,第1-16页。
[56] 弗兰克·芬宁(Frank Pfenning)。(1993)关于部分多态性类型重建的不可判定性。芬达姆。通知。19(1/2), 185-199. ·Zbl 0789.03017号
[57] Pierce,B.C.(2002)类型和编程语言。马萨诸塞州剑桥:麻省理工学院出版社·Zbl 0995.68018号
[58] Reynolds,J.C.(1991)语言与交叉类型的连贯性。计算机软件理论方面国际会议论文集。91年TACS。英国伦敦:施普林格出版社,第675-700.10.1007/3-540-54415-1_70页·Zbl 1493.68061号
[59] 哈斯克尔。(2006)实例的约束技巧[在线]。网址:https://www.reddit.com/r/haskell/comments/3afi3t/the_constraint_trick_for_instances/cscb33j/?st=jjcz7zeh&sh=1e5f3c8b
[60] Rouvoet,A.(2016)《免费项目:迈向Scala隐含解析的形式化》。M.Phil论文。荷兰代尔夫特大学。
[61] Scharli,N.、Ducasse,S.、Nierstrasz,O.和Black,A.P.(2003)《特征:可组合的行为单位》。在欧洲面向对象编程会议(ECOOP 2003)上。斯普林格,第248-274.10.07/978-3-540-45070-2_12页
[62] Schrijvers,T.、Peyton Jones,S.L.、Chakravarty,M.和Sulzmann,M.(2008)开放式函数的类型检查。在ICFP中。纽约:ACM·Zbl 1323.68156号
[63] Siek,J.G.(2011)C++0x“概念”*I努力[在线]。网址:http://ecee.colorado.edu/siek/concepts_effort.pdf
[64] Siek,J.G.和Lumsdaine,A.(2005)通用编程的基本语言支持。在PLDI中。纽约:ACM,第73-84页。
[65] Sozeau,M.&Oury,N.(2008)第一类课程。《第21届高阶逻辑定理证明国际会议论文集》(TPHOLs’08),Ait Mohamed,O.,Muñoz,C.&Tahar,S.(编辑),柏林,海德堡:Springer-Verlag,pp.278-293.1007/978-3-540-71067-7_23·Zbl 1165.68475号
[66] Sulzmann,M.、Duck,G.、Peyton Jones,S.L.和Stuckey,P.J.(2007)《通过约束处理规则理解函数依赖性》。J.功能。程序。17、83-129.10.1017/S0956796806006137·Zbl 1107.68031号
[67] Vytiniotis,D.,Peyton Jones,S.,Schrijvers,T.&Suzmann,M.(2011)OutsideIn(X):具有局部假设的模块化类型推理。J.功能。程序。21(4-5),333-412.10.1017/S095679681100098·Zbl 1262.68034号
[68] Vytiniotis,D.、Weirich,S.和Peyton Jones,S.(2008)FPH:Haskell的第一类多态性。第13届ACM SIGPLAN函数编程国际会议论文集。ICFP’08,ACM,第295-306页·Zbl 1323.68173号
[69] Wadler,P.(2015)《命题类型》。Commun公司。ACM58(12),75-84.10.1145/2699407·Zbl 1291.68134号
[70] Wadler,P.L.&Blott,S.(1989)《如何使特殊多态性不那么特殊》。在POPL中。纽约:ACM,第60-76页。
[71] Wehr,S.、Lämmel,R.&Thiemann,P.(2007)JavaGI:java的通用接口。在ECOOP中,Springer Verlag,第347-372页。
[72] White,L.,Bour,F.&Yallop,J.(2014)《模块隐含》。2014年9月4日至5日,瑞典哥德堡,Kiselyov,O.&Garrigue,J.(eds),《ML Family/OCaml用户和开发者研讨会论文集》。EPTCS,第22-63页,第198卷。
[73] Zhang,E.(2014)类型类:融合、连贯和全球唯一性[在线]。网址:http://blog.ezyang.com/2014/07/type-classes-confluence-coherence-global-/university/
[74] Zhang,Y.,Loring,M.C.,Salvaneschi,G.,Liskov,B.&Myers,A.C.(2015)。轻量级、灵活的面向对象泛型。第36届ACM SIGPLAN编程语言设计与实现会议记录,PLDI’15,ACM,第436-445页。
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。