×

约束泛型的开放和封闭范围。 (英语) 兹比尔1026.68016

摘要:约束泛型是参数多态性的扩展,它允许多态过程中的类型参数被约束为在其上定义某些操作。它是用Ada和Haskell编程语言实现的,如Haskells中的类型类所示。类型类只允许类型类实例的单个全局范围。本文介绍了一种类型系统和语义,它允许在程序中混合此类操作的动态和静态范围。应用程序包括克服受限泛型的作用域问题、支持程序优化以及使用动态数据结构编程。具有“open”作用域的类型类遵循Haskell类型类的通常语义,基于调用方的“类型字典”。具有“封闭”作用域的类型类使用运行时类型描述来调度到实例。支持这一点的类型系统结合了运算符类型、细化类型和单例类型。系统进行了扩展,允许重叠专门的实例类型,以便支持数据结构的专门表示(例如,整数数组、浮点数组和装箱值数组)。此扩展需要结合类型字典和运行时类型信息来进行类型类调度。

MSC公司:

68甲15 编程语言理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] M.Abadi,L.Cardeli,B.Pierce,D.Remy,多态语言中的动态类型,收录于:P.Lee(编辑),Proc。ACM,SIGPLAN ML及其应用研讨会,加利福尼亚州旧金山,卡内基梅隆大学技术报告CMU-CS-93-1051992年6月。;M.Abadi,L.Cardeli,B.Pierce,D.Remy,多态语言中的动态类型,收录于:P.Lee(编辑),Proc。ACM,SIGPLAN ML及其应用研讨会,加利福尼亚州旧金山,卡内基梅隆大学技术报告CMU-CS-93-1051992年6月·Zbl 0819.68142号
[2] M.阿巴迪。;Cardelli,L。;皮尔斯,B。;Plotkin,G.,静态类型语言中的动态类型,ACM Trans。编程语言系统,13,2,237-268(1991)
[3] 阿马迪奥,R。;Cardelli,L.,子类型递归类型,ACM Trans。程序设计语言系统,15,4755-631(1993)
[4] A.W.Appel,Z.Shao,标准ML的基于类型的编译器,收录于:D.Hanson(编辑),Proc。ACM SIGPLAN编程语言设计与实现会议,SIGPLAN通知,第30卷(6),ACM出版社,纽约,1995年6月。;A.W.Appel,Z.Shao,《标准ML的基于类型的编译器》,载:D.Hanson(编辑),Proc。ACM SIGPLAN Conf.on Programming Language Design and Implementation,SIGPLAN Notices,Vol.30(6),ACM出版社,纽约,1995年6月。
[5] Bracha,G。;Odersky,M。;斯塔塔迈尔,D。;Wadler,P.,使未来安全于过去:为Java编程语言添加泛型,(Chambers,C.,Proc.ACM Symp.on Object Oriented programming:Systems,Languages and Applications(1998),ACM:ACM New York)
[6] Breazu-Tannen,V。;Coquand,T。;冈特,C。;Scedrov,A.,《继承作为隐性胁迫》,《知情》。和计算。,93, 1, 172-221 (1991) ·Zbl 0799.68129号
[7] Bruce,K。;Cardelli,L。;Castagna,G.,The Hopkins Objects Group,G.T.Leavens,B.Pierce,《论二进制方法》,《理论实践对象系统》,1,3,221-242(1995)
[8] 坎宁,P。;库克·W·。;西希尔。;Olthoff,W。;Mitchell,J.,面向对象编程的F-bounded多态性,(美国计算机学会功能编程与计算机体系结构研讨会(1989),美国计算机学会:美国计算机学会纽约分会),273-280
[9] Cardelli,L。;Abadi,M.,《关于分型和匹配》,ACM Trans。编程语言系统,8,4,401-423(1996)
[10] Cardelli,L。;Wegner,P.,《关于理解类型、数据抽象和多态性》,ACM Compute。调查,17,4,471-522(1985)
[11] R.Cartwright,G.Steele,《Java编程语言与运行时类型兼容的泛型》,载于:C.Chambers(Ed.),Proc。ACM交响乐团。《面向对象编程:系统、语言和应用》,1998年。;R.Cartwright,G.Steele,《Java编程语言与运行时类型兼容的泛型》,载于:C.Chambers(Ed.),Proc。ACM交响乐团。《面向对象编程:系统、语言和应用》,1998年。
[12] Chen,K。;Hudak,P。;Odersky,M.,参数类型类(扩展抽象),,(ACM Symp.on Lisp and Functional Programming(1992),ACM:ACM New York),170-181
[13] K.Crary,S.Weinrich灵活类型分析,in:P.Lee(Ed.),Proc。ACM内部。功能编程会议,法国巴黎,ACM,纽约,1999年9月。;K.Crary,S.Weinrich灵活类型分析,in:P.Lee(Ed.),Proc。ACM国际。函数编程会议,法国巴黎,ACM,纽约,1999年9月·Zbl 1345.68085号
[14] J.Dean,G.DeFouw,D.Grove,V.Litvinov,C.Chambers,《Vortex:面向对象语言的优化编译器》,摘自:J.Coplian(Ed.),Proc。ACM交响乐团。《面向对象编程:系统、语言和应用》,加利福尼亚州圣何塞,美国计算机学会,纽约,1996年。;J.Dean,G.DeFouw,D.Grove,V.Litvinov,C.Chambers,《Vortex:面向对象语言的优化编译器》,摘自:J.Coplian(Ed.),Proc。ACM交响乐团。《面向对象编程:系统、语言和应用》,加州圣何塞,美国计算机学会,纽约,1996年。
[15] Duggan,D.,多态语言中分布式编程的动态类型,ACM Trans。编程语言系统,21,1,11-45(1999)
[16] Duggan,D。;科马克,G。;Ophel,J.,参数重载的Kinded类型推断,Acta Inform。,33, 21-68 (1996) ·Zbl 0843.68018号
[17] 哈珀,R。;J.米切尔。;Moggi,E.,《高阶模和相位区分》,(Hudak,P.,Proc.ACM Symp.on Principles of Programming Languages(1990),ACM:ACM New York),341-354
[18] R.Harper,G.Morrisett,使用内涵型分析编译多态性,收录于:P.Lee(编辑),Proc。ACM交响乐团。《编程语言原理》,加州旧金山,美国计算机学会,纽约,1995年1月。;R.Harper,G.Morrisett,使用内涵型分析编译多态性,收录于:P.Lee(编辑),Proc。ACM交响乐团。《编程语言原理》,加州旧金山,美国计算机学会,纽约,1995年1月。
[19] Hudak,P。;Fasel,J.,《哈斯克尔简介》。Haskell简介,ACM SIGPLAN通告,第27卷(5)(1992),ACM:ACM纽约
[20] Hudak,P。;Peyton-Jones,S。;Wadler,P。;布特尔,B。;费尔贝恩,J。;仪表板。;Guzman,M.M。;哈蒙德,K。;休斯,J。;Johnsson,T。;基伯茨。;Nikhil,R。;Partain,W。;Peterson,J.,《关于编程语言Haskell的报告》,一种非严格的纯函数语言,1.2版。编程语言Haskell的报告,一种非严格的纯函数语言,1.2版,ACM SIGPLAN通知,第27卷(5)(1992),ACM:ACM纽约
[21] Ichbiach,法学博士。;巴恩斯,J.G.P。;弗斯·R·J。;Woodger,M.,《Ada编程语言设计原理》(特刊)。Ada编程语言的设计原理(特刊),SIGPLAN通告,第14卷(6B)(1979年),ACM:ACM纽约
[22] Intermetrics,马萨诸塞州剑桥,Ada-95参考手册,1995年。国际标准ISO/IEC 8652:1995(E)。;Intermetrics,马萨诸塞州剑桥,Ada-95参考手册,1995年。国际标准ISO/IEC 8652:1995(E)。
[23] M.Jones,ML分型,显式多态性和限定类型,载于:P.Sestoff,H.Sondergaard(编辑),《计算机科学的理论方面》,1994年4月。;M.Jones,ML分型,显式多态性和限定类型,载于:P.Sestoff,H.Sondergaard(编辑),《计算机科学的理论方面》,1994年4月·Zbl 0942.68616号
[24] M.Jones,《无字典过载的部分评估》,载于:M.Hagiya,J.C.Mitchell(编辑),Proc。ACM关于部分评估和基于语义的程序操作的会议,1994年。;M.Jones,《无字典过载的部分评估》,载于:M.Hagiya,J.C.Mitchell(编辑),Proc。ACM关于部分评估和基于语义的程序操作的会议,1994年。
[25] Kaes,S.,多态编程语言中的参数重载,(Sannella,D.,欧洲编程研讨会,计算机科学讲稿,第300卷(1988),Springer:Springer-Berlin),131-144
[26] Kaes,S.,《存在重载、子类型和递归类型时的类型推断》,(Clinger,W.,《ACM Lisp和函数编程交响曲汇编》(1992年),ACM:ACM纽约),193-204年
[27] 勒罗伊,X。;Mauny,M.,《ML动力学》,J.Funct。编程,3,4,431-463(1993)
[28] Meyer,B.,面向对象软件构造(1988),普伦蒂斯·霍尔:普伦蒂斯霍尔·恩格尔伍德·克利夫斯,新泽西
[29] 米尔纳,R。;托夫特,M。;哈珀,R。;MacQueen,D.,《标准ML的修订定义》(1997年),麻省理工学院出版社:麻省理学院出版社,马萨诸塞州剑桥
[30] J.G.Morrisett,《用类型编译》,卡内基梅隆大学博士论文,1995年。;J.G.Morrisett,《用类型编译》,卡内基梅隆大学博士论文,1995年。
[31] T.Nipkow,C.Prehofer,类型类的类型重建,J.Funct。编程5(1995)201-224。(本文的早期版本发表在1993年1月的《美国计算机学会程序设计语言原理研讨会》上,第409-418页);T.Nipkow,C.Prehofer,类型类的类型重构,J.Funct。编程5(1995)201-224。(本文的早期版本发表在1993年1月的《美国计算机学会程序设计语言原理研讨会》上,第409-418页。)·Zbl 0833.68025号
[32] Nipkow,T。;Snelting,G.,通过排序统一实现类型类和重载解决方案,(Hughes,J.,Proc.ACM Symp.on Functional Programming and Computer Architecture,Teach Notes in Computer Science,Vol.523(1991),Springer:Springer Berlin),11-14
[33] Robinson,J.A.,《基于分辨原理的面向机器的逻辑》,J.ACM,12,1,23-29(1965)·Zbl 0139.12303号
[34] C.Stone,R.Harper,《单粒子种类的可判定类型等价性》,载:T.Reps(Ed.),Proc。ACM研讨会。《编程语言原理》,马萨诸塞州波士顿,美国计算机学会,纽约,2000年1月。;C.Stone,R.Harper,《单粒子种类的可判定类型等价性》,载:T.Reps(Ed.),Proc。ACM交响乐团。《编程语言原理》,马萨诸塞州波士顿,美国计算机学会,纽约,2000年1月·Zbl 1323.68163号
[35] D.Tarditi,G.Morrisett,P.Cheng,C.Stone,R.Harper,P.Lee,TIL:面向ML的类型优化编译器,收录于:M.Burke(编辑),Proc。ACM SIGPLAN。编程语言设计与实现会议,宾夕法尼亚州费城,美国计算机学会,纽约,1996年5月。;D.Tarditi,G.Morrisett,P.Cheng,C.Stone,R.Harper,P.Lee,TIL:面向ML的类型优化编译器,收录于:M.Burke(编辑),Proc。ACM SIGPLAN。编程语言设计与实现会议,宾夕法尼亚州费城,美国计算机学会,纽约,1996年5月。
[36] Thatté,S.,重温类型类的语义,(Talcott,C.,Proc.ACM Symp.on Lisp and Functional Programming(1994),ACM:ACM New York),208-219
[37] 沃尔帕诺,D。;Smith,G.,《关于ML类型性与重载的复杂性》,(ACM函数编程与计算机体系结构研讨会论文集,计算机科学讲稿,第523卷(1991),Springer:Springer Berlin),15-28
[38] Wadler,P。;Blott,S.,《如何使自组织多态性更少自组织》(O'Donnell,M.;Fieldman,S.),《美国计算机学会编程语言原理研讨会》(1989年),美国计算机学会:美国计算机学会纽约分会),60-76
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。