×

变量对象类型的类型推断。 (英语) Zbl 1012.68046号

摘要:现有的对象计算类型系统基于不变的子类型。在存在方法重写的情况下,静态类型的稳定性需要子类型不变性,但这通常会影响类型系统的表达能力。静态类型的灵活性可以通过不同的方式恢复:在一阶系统中,通过采用带有方差注释的对象类型,在二阶系统中,通过求助于Self类型。对于有限和递归对象类型的一阶系统,类型推理已知是(P)-完全的,而对于限制版本的Self类型,类型推理是(NP)-完整的。对于带有方差注释的系统,类型推理的复杂性尚不清楚。本文基于Split类型的概念提出了一个新的对象类型系统,这是一种对象类型的形式,其中每个方法都被分配了两种类型,即更新类型和选择类型。拆分类型产生的子类型关系是可变的,因此,可以在宽度和深度上执行子类型。新的类型系统针对对象概括了所有现有的一阶类型系统,包括基于方差注释的系统。有趣的是,额外的表达能力并不影响类型推理问题的复杂性,正如我们通过提出一个O(n^3)推理算法所示。

MSC公司:

68甲19 其他编程范式(面向对象、顺序、并发、自动等)
03B70号 计算机科学中的逻辑
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] 阿马迪奥,R。;Cardelli,L.,子类型递归类型,ACM Trans。程序。语言系统,15575-631(1993)
[2] M.阿巴迪。;Cardelli,L.,《对象理论》(1996),《Springer-Verlag:Springer-Verlag Berlin》·Zbl 0876.68014号
[3] 布鲁斯,K.B。;Crabtree,J。;Murtagh,T.P。;范根特,R。;迪莫克,A。;Muller,R.,面向对象语言中的安全和可判定类型检查,《OOPSLA’93论文集》(1993),第29-46页
[4] Cardone,F。;Coppo,M.,递归类型的类型推理:语法和语义,Inform。和计算。,92,48-80(1991年)·Zbl 0722.68076号
[5] Duggan,D。;Compagnoni,A.,对象类型构造函数的子类型,Proc。第六届面向对象语言基础国际研讨会(FOOL6)(1999)
[6] 艾弗里·J。;史密斯,S。;Trifonov,V.,对象的声音多态性类型推断,《OOPSLA’95年论文集》(1995),第169-184页
[7] 艾弗里·J。;史密斯,S。;Trifonov,V.,递归约束类型的类型推断及其在OOP中的应用,Proc。1995年编程语义数学基础Conf(1995),Elsevier:Elsevier Amsterdam·Zbl 0910.68143号
[8] Flanagan,C.,《通过基于组件集的分析进行有效的静态调试》(1997),莱斯大学
[9] 高斯林,J。;乔伊,B。;Steele,G.,Java语言规范(1996),Addison-Wesley:Addison-Whesley阅读·Zbl 0865.68001号
[10] Henglein,F.,《突破(n^3)障碍:更快的对象类型推断》,Proc。第四届面向对象语言基础国际研讨会(FOOL4)(1997年)
[11] Hindley,J.R.,组合逻辑中对象的主要类型模式,Trans。阿默尔。数学。《社会学杂志》,146,29-60(1969)·Zbl 0196.01501号
[12] McAllester,D.1996,推断递归数据类型,http://www.ai.mit.edu/people/dam/rectypes.ps; McAllester,D.1996,推断递归数据类型,http://www.ai.mit.edu/people/dam/rectypes.ps
[13] Milner,R.,《编程中的类型多态性理论》,J.Compute。系统科学。,17, 348-375 (1978) ·Zbl 0388.68003号
[14] 米尔纳,R。;托夫特,M。;哈珀,R。;MacQueen,D.B.,标准ML的定义(修订版)(1990年),麻省理工学院出版社:麻省理工学院出版社剑桥
[15] Palsberg,J.,对象类型的有效推理,Inform。和计算。,123, 198-209 (1995) ·Zbl 0849.68018号
[16] Palsberg,J。;Jim,T.,简单自型的类型推断是np-complete,Nordic J.Compute。,4, 259-286 (1997) ·Zbl 1034.68528号
[17] Peyton Jones,S.L。;霍尔,C。;哈蒙德,K。;Partain,W。;Wadler,P.,《格拉斯哥-哈斯克尔编译器:技术概述》,Proc。英国信息技术联合框架(JFIT)技术会议(1993年)
[18] Pottier,F.,《亚型化存在下的类型推断:从理论到实践》(1998年),巴黎第七大学
[19] 皮尔斯,B。;Sangiorgi,D.,移动进程的类型和子类型,Proc。LICS 93(1996),IEEE计算。Soc.出版社:IEEE计算。Soc.Press Los Alamitos出版社,第409-454页·Zbl 0861.68030号
[20] Reynolds,J.C.1996,《Forsythe编程语言的设计》,报告CMU-CS-96-146,卡内基梅隆大学,匹兹堡,宾夕法尼亚州。;Reynolds,J.C.1996,《Forsythe编程语言的设计》,报告CMU-CS-96-146,卡内基梅隆大学,匹兹堡,宾夕法尼亚州。
[21] 雷米·D·。;Vouillon,J.,《目标ml:ml的有效面向对象扩展》,《对象系统的理论与实践》。,4, 25-70 (1998)
[22] 史密斯,S。;Wang,T.,带约束类型的多元流分析,(Smolka,G.,ESOP2000:第九届欧洲编程研讨会,ETAPS 2000联合会议(2000),Springer-Verlag:Springer-Verlag Berlin),382-396·兹伯利0971.68626
[23] Trifonov,V。;Smith,S.,子类型约束类型,(Cousot,R.;Gaudel,D.A.,SAS’96:静态分析,第三届国际研讨会(1996),Springer-Verlag:Springer-Verlag Berlin/纽约),349-365·Zbl 1482.68096号
[24] Tiuryn,J。;Wand,M.,用递归类型和原子子类型重建类型,(Gaudel,M.-C;Jouannaud,J.-P,TAPSOFT’93:软件开发的理论与实践,CAAP/FASE联合会议第四届实习生会议(1993),Springer-Verlag:Springer-Verlag Berlin),686-701·Zbl 1497.68127号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。