×

将G转换为\(\text{C}^{sharp}\):面向对象语言中广义代数数据类型的表示性。 (英文) Zbl 1397.68025号

概要:广义代数数据类型(GADT)是函数编程社区中的一个热门话题。前面我们展示了面向对象的语言,例如\(\text{C}^\sharp)和Java可以使用泛型来表示GADT声明,但只能使用一些GADT程序。在类型参数上添加等式约束可以恢复表达能力。现在,我们通过将早期的从SystemF到\(\text{C}^\sharp\)的转换扩展到处理GADT,来更深入地研究这种表达能力差距。我们的努力揭示了泛型的一些令人惊讶的局限性,并为等式约束提供了进一步的理由。

MSC公司:

68甲15 编程语言理论
第68页第19页 其他编程范式(面向对象、顺序、并发、自动等)
第68季度第65季度 抽象数据类型;代数规范
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] J.切尼。;Hinze,R.,第一类模型类型,(2003),康奈尔大学,1901年技术报告
[2] 埃米尔,伯拉克;安德鲁·肯尼迪(Andrew J.Kennedy)。;拉索、克劳迪奥;Yu,Dacchuan,C#泛型的方差和广义约束,(欧洲面向对象编程会议(ECOOP),2006年7月)
[3] Hejlsberg,A。;Wiltamuth,S。;Golde,P.,C#2.0版规范,(2005),可从
[4] 肯尼迪,A.J。;Russo,C.,《广义代数数据类型和面向对象编程》,(OOPSLA’05:第20届ACM SIGPLAN面向对象编程系统、语言和应用年会,(2005),ACM出版社)
[5] 肯尼迪,A.J。;Syme,D.,《的泛型设计与实现》。NET公共语言运行时,(编程语言设计与实现,(2001),ACM)
[6] 肯尼迪,A.J。;Syme,D.,将F转换为\(\text{C}^\sharp\):面向对象语言中参数多态性的表现力,Concurr。计算。,16, 707-733, (2004)
[7] 阿里·米德尔科普;阿泽·迪杰斯特拉(Atze Dijkstra);Swierstra,S.,GADT的精益规范:具有一流等式证明的系统F,High-订购符号。计算。,23, 145-166, (2010) ·Zbl 1232.68029号
[8] 米那米,Y。;莫里塞特,G。;Harper,R.,类型闭包转换,(美国计算机学会编程语言原理研讨会,佛罗里达州圣彼得堡,(1996年1月)),271-283
[9] Odersky,M。;Läufer,K.,《使用类型注释》(ACM编程语言原理研讨会,(1996),ACM)
[10] S.Peyton Jones,G.Washburn,S.Weirich,《摇摆类型:广义代数数据类型的类型推断》,Draft,2004年7月。;S.Peyton Jones,G.Washburn,S.Weirich,《摇摆类型:广义代数数据类型的类型推断》,Draft,2004年7月。
[11] Peyton Jones,Simon,GHC编译器6.4版(2005年3月),下载地址:
[12] Pottier,F。;Gauthier,N.,Polymorphic typed defonfunctionalization,(第31届ACM编程语言原理研讨会,POPL'04,意大利威尼斯,(2004年1月)),89-98·Zbl 1325.68049号
[13] Pottier,F。;Régis-Gianas,Y.,《迈向高效类型LR解析器》(ACM ML研讨会,电子注释理论计算科学,(2005年9月),149-173
[14] Pottier,F。;Régis-Gianas,Y.,广义代数数据类型的分层类型推理,(第33届ACM编程语言原理研讨会论文集,POPL'06,南卡罗来纳州查尔斯顿,(2006年1月))·Zbl 1369.68114号
[15] 马丁·苏尔兹曼(Martin Sulzmann);Manuel M.T.Chakravarty。;西蒙·佩顿(Simon Peyton)琼斯(Jones);Kevin Donnelly,System F with type equality corecions,(2007年ACM SIGPLAN语言设计与实现类型国际研讨会论文集,TLDI’07,(2007),美国纽约州纽约市ACM),53-66
[16] Stephanie Weirich,从非类型化源生成类型化项的类型检查员,Lennart Augusson在Dagstuhl’04设置的挑战响应,在ghc回归套件中(
[17] Xi,H。;陈,C。;Chen,G.,Guarded recursive datatype constructors,(POPL'03:第30届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,(2003),ACM出版社),224-235·Zbl 1321.68161号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。