×

Python中的调试器协同高阶契约系统。 (英语) Zbl 1483.68052号

Igarashi,Atsushi(编辑),《编程语言和系统》。2016年11月21日至23日,第14届亚洲研讨会,2016年APLAS,越南河内。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。10017, 148-168 (2016).
概要:契约编程是增强Python可靠性的最有希望的方法之一,这一点越来越受到人们的青睐。支持完全指定迭代器和函数的行为的高阶契约系统对于Python来说是可取的,但尚未提供。此外,即使有了它们,在Python中使用契约进行调试仍然会很繁重,因为契约检查会延迟。为了解决这个问题,我们提出小怪(Python中的一个高阶契约系统)和ccdb(一个源级调试器,配备了专用于调试延迟契约检查的功能)。小怪和ccdb是基于Python标准设计的,因此对许多Pythons程序员都很友好。我们通过实验证实了小怪通过web框架Bottle和ccdb。
关于整个系列,请参见[Zbl 1347.68009号].

MSC公司:

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

参考文献:

[1] D12.1:高级后端和解释器功能原型。PyPy欧盟报告(2007年)
[2] Carrillo-Castellon,M.,Garcia-Molina,J.,Pimentel,E.,Repiso,I.:在smalltalk中通过合同进行设计。J.面向对象程序7(9),23-28(1996)
[3] Chiš,A.,Gírba,T.,Nierstrasz,O.:可塑调试器:开发特定于域的调试器的框架。摘自:《2015年ACM SIGPLAN软件语言工程国际会议论文集》,SLE 2014,第102–121页。ACM(2014)·Zbl 06461499号 ·数字对象标识代码:10.1007/978-3-319-11245-96
[4] Chitil,O.:实用类型的懒惰合同。摘自:《第17届ACM SIGPLAN函数式编程国际会议论文集》,ICFP 2012,第67-76页。ACM(2012年)·Zbl 1291.68112号 ·doi:10.1145/2364527.2364539
[5] Chugh,R.、Herman,D.、Jhala,R.:JavaScript的依赖类型。摘自:《2012年ACM面向对象编程系统语言和应用国际会议论文集》,OOPSLA 2012,第587-606页。ACM(2012年)·doi:10.1145/2384616.2384659
[6] Chugh,R.,Rondon,P.M.,Jhala,R.:嵌套优化:鸭子类型的逻辑。摘自:第39届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL 2012,第231-244页。ACM(2012年)·Zbl 1321.68189号 ·doi:10.145/2103656.2103686
[7] Dimoulas,C.,Findler,R.B.,Felleisen,M.:期权合同。摘自:2013年ACM SIGPLAN面向对象编程系统语言和应用国际会议记录,OOPSLA 2013,第475-494页。ACM(2013)·doi:10.1145/2509136.2509548
[8] Eby,P.J.:PEP 3333:Python Web服务器网关接口v1.0.1(2010)。https://www.python.org/dev/peps/pep-3333/
[9] Fähndrich,M.、Barnett,M.,Leijen,D.、Logozzo,F.:将一组合同检查工具集成到visual studio中。摘自:《开发工具作为插件的第二次国际研讨会论文集》,TOPI2012,第43-48页。IEEE(2012)·doi:10.1109/TOPI.2012.6229809
[10] Findler,R.B.,Felleisen,M.:高阶函数的契约。摘自:《第七届ACM SIGPLAN函数式编程国际会议记录》,ICFP 2002,第48-59页。ACM(2002)·Zbl 1322.68039号 ·数字对象标识代码:10.1145/581478.581484
[11] 弗拉纳根,C.:混合型检查。摘自:第33届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录,POPL 2006,第245-256页。ACM(2006)·Zbl 1370.68202号 ·数字对象标识代码:10.1145/1111320.1111059
[12] Heidegger,P.、Bieniusa,A.、Thiemann,P.:脚本语言的访问权限合同。摘自:第39届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集,POPL 2012,第111-122页。ACM(2012年)·Zbl 1321.68125号 ·doi:10.1145/2103656.2103671
[13] Heidegger,P.,Thiemann,P.:JavaScript代码的契约驱动测试。收录:Vitek,J.(编辑)TOOLS 2010。LNCS,第6141卷,第154–172页。施普林格,海德堡(2010)。doi:10.1007/978-3642-13953-69·Zbl 05768156号 ·doi:10.1007/978-3642-13953-69
[14] Keil,M.,Thiemann,P.:具有交集和并集的高阶合同的责任分配。摘自:《第20届ACM SIGPLAN函数式编程国际会议论文集》,ICFP 2015,第375–386页。ACM(2015)·Zbl 1360.68365号 ·数字对象标识代码:10.1145/2784731.2784737
[15] Klein,C.,Flatt,M.,Findler,R.B.:高阶有状态程序的随机测试。摘自:《2010年ACM面向对象编程系统语言和应用国际会议论文集》,OOPSLA 2010,第555-566页。ACM(2010)·doi:10.1145/1869459.1869505
[16] Knowles,K.,Flanagan,C.:混合型检查。ACM事务处理。程序。语言系统。32(2), 6:1–6:34 (2010) ·数字对象标识代码:10.1145/1667048.1667051
[17] Meyer,B.:应用“合同设计”。计算机25(10),40–51(1992)·兹比尔05090679 ·doi:10.1109/2.161279
[18] Plösch,R.:Python的合同设计。摘自:《第四届亚太软件工程与国际计算机科学会议论文集》,APSEC 1997,第213-219页。IEEE(1997)·doi:10.1109/APSEC.1997.640178
[19] van Rossum,G.,Lehtosalo,J.,Langa,Ł.:PEP 484-类型提示(2014)。https://www.python.org/dev/peps/pep-0484/
[20] Siek,J.G.,Taha,W.:函数式语言的渐进式键入。In:Scheme and Functional Programming 2006年。TR-2006-06,芝加哥大学(2006)
[21] Strickland,T.S.,Dimoulas,C.,Takikawa,A.,Felleisen,M.:头等舱合同。ACM事务处理。程序。语言系统。35(3), 11:1–11:58 (2013) ·doi:10.145/2518189
[22] Strickland,T.S.,Felleisen,M.:头等舱合同。摘自:《第六届动态语言研讨会论文集》,DLS 2010,第97–112页。ACM(2010)·doi:10.1145/1869631.1869642
[23] Strickland,T.S.,Tobin-Hochstadt,S.,Findler,R.B.,Flatt,M.:助手和模拟者:合理插入的运行时支持。摘自:《2012年ACM面向对象编程系统语言和应用国际会议论文集》,OOPSLA 2012,第943-962页。ACM(2012年)·doi:10.1145/2384616.2384685
[24] Vitousek,M.M.,Kent,A.M.,Siek,J.G.,Baker,J.:Python渐进式键入的设计和评估。摘自:第十届ACM动态语言研讨会论文集,DLS 2014,第45-56页。ACM(2014)·doi:10.145/2661088.2661101
[25] Wei,Y.、Pei,Y..、Furia,C.A.、Silva,L.S.、Buchholz,S.、Meyer,B.、Zeller,A.:合同程序的自动修复。摘自:《第19届软件测试与分析国际研讨会论文集》,ISSTA 2010,第61-72页。ACM(2010)·数字对象标识代码:10.1145/1831708.1831716
[26] Zhang,C.,Yan,D.,Zhao,J.,Chen,Y.,Yang,S.:BPGen:用于调试的自动断点生成器。参见:《第32届ACM/IEEE国际软件工程会议论文集》,ICSE 2010,第2卷,第271-274页。ACM(2010)·数字对象标识代码:10.1145/1810295.1810351
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。