×

用于声明性调试的核心Erlang语义。 (英语) 兹比尔1431.68016

摘要:声明性语言的主要优点之一是其明确建立的形式语义,它允许程序员对程序的属性进行推理,并确定工具的正确性。特别是,声明性调试是一种分析计算证明树以定位程序中的错误的技术。然而,在商业声明语言(如函数语言Erlang)的情况下,有时语义只是非正式定义的,这排除了这些可能性。此外,为这些语言定义语义远非易事,因为它们包含实际应用程序所需的复杂特性,如并发性。在本文中,我们定义了核心Erlang的语义,这是Erlang程序的中间语言。我们将重点放在并发性问题上,并展示如何使用一个中等大小的演算来定义一个可靠且完整的算法调试器,该演算避免了小步语义的细节,但仍然捕获了最常见的程序错误。

MSC公司:

68甲18 函数编程和lambda演算
68问题55 计算理论中的语义学
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Shapiro,E.Y.,《算法程序调试》(1983),麻省理工学院出版社,ACM杰出论文
[2] 卡巴列罗,R。;Riesco,A。;Silva,J.,算法调试调查,ACM Compute。调查。,50, 4, 60:1-60:35 (2017)
[3] Insa,D。;Silva,J.,《广义算法调试》,J.Log。代数方法程序。,97, 85-104 (2018) ·Zbl 1395.68094号
[4] 卡巴列罗,R。;Martin-Martin,E。;Riesco,A。;Tamarit,S.,EDD:顺序Erlang程序的声明性调试器,(Al brahám,E.;Havelund,K.,第20届系统构建和分析工具和算法国际会议,TACAS 2014。第20届系统构建和分析工具和算法国际会议,TACAS 2014,LNCS,第8413卷(2014),Springer),581-586
[5] 卡巴列罗,R。;Martin-Martin,E。;Riesco,A。;Tamarit,S.,连续Erlang程序的缩放分离调试器,科学。计算。程序。,110, 104-118 (2015)
[6] 卡巴列罗,R。;Martin-Martin,E。;Riesco,A。;Tamarit,S.,并发Erlang程序的声明性调试,J.Log。代数方法程序。,101, 22-41 (2018) ·Zbl 1400.68052号
[7] 拉内斯,我。;Nishida,N。;Palacios,A。;Vidal,G.,《Erlang的可逆性理论》,J.Log。代数方法程序。,100,71-97(2018)·兹比尔1400.68046
[8] Carlsson,R.,核心Erlang简介,(2001年Erlang研讨会论文集,与PLI 2001(2001)相关),5-18
[9] 卡尔森,R。;古斯塔夫森,B。;Johansson,E。;Lindgren,T。;S.-O.Nyström。;Pettersson,M。;Virding,R.,Core Erlang 1.0.3语言规范(2004年11月),在线阅读
[10] 弗拉纳根,C。;Sabry,A。;杜巴,B.F。;Felleisen,M.,《带延续的编译的本质》(《1993年ACM SIGPLAN编程语言设计与实现会议论文集》,1993年ACM-SIGPLAN程序语言设计与实施会议论文集,PLDI’93(1993),ACM:美国纽约州纽约市ACM),237-247
[11] 弗雷德伦德,L.奥勒。,《Erlang代码推理框架》(2001年8月),皇家理工学院:瑞典皇家理工大学博士论文
[12] Huch,F.,使用抽象解释和模型检查验证Erlang程序,(第四届ACM SIGPLAN函数编程国际会议论文集。第四届AC M SIGPLA函数编程国际大会论文集,ICFP 1999(1999),ACM:美国纽约州纽约市ACM),261-272·Zbl 1345.68060号
[13] Farrugia,A。;Francalanza,A.,《走向Erlang故障和故障检测的形式化》(扩展摘要)(2012年),马耳他大学,wICT,技术代表。
[14] Vidal,G.,《通过术语重写实现Erlang验证》(Gupta,G.;Peña,R.,Proc.第23届基于逻辑的程序合成与转换国际研讨会(LOPSTR 2013),修订论文集。程序。第23届基于逻辑的程序合成与转换国际研讨会(LOPSTR 2013),修订论文集,LNCS,第8901卷(2014),Springer国际出版公司,109-126·Zbl 1453.68032号
[15] Armstrong,J.,《在存在软件错误的情况下建立可靠的分布式系统》(2003年12月),皇家理工学院:瑞典皇家理工大学博士论文
[17] Svensson,H。;Fredlund,L.-A.,《分布式erlang应用程序编程:陷阱和方法》,(2007年SIGPLAN erlang研讨会论文集。2007年SIGPLAN ERLANGWorkshop研讨会论文集,erlang'07(2007),ACM:美国纽约州纽约市ACM),37-42
[18] Fidelman,M.,《关于消息传递的问题》(2017年9月),2019年2月18日查阅
[20] Svensson,H。;弗雷德隆德,洛杉矶。;Benac Earle,C.,《未来erlang的统一语义》,(第九届ACM SIGPLAN erlang研讨会论文集。第九届AC M SIGPLA erlang会议论文集,erlang’10(2010),ACM:美国纽约州纽约市ACM),23-32
[21] 拉内斯,我。;Nishida,N。;Palacios,A。;Vidal,G.,CauDEr:Erlang的因果一致可逆调试器(Gallagher,J.P。;Sulzmann,M.,《函数和逻辑编程——第14届国际研讨会》。功能和逻辑编程——第14届国际研讨会,2018年5月9日至11日,日本名古屋,FLOPS 2018,会议记录。功能和逻辑编程——第14届国际研讨会。功能和逻辑编程——第14届国际研讨会,2018年5月9日至11日,日本名古屋,FLOPS 2018,LNCS,第10818卷(2018),Springer),247-263·Zbl 1507.68066号
[22] Nishida,N。;Palacios,A。;Vidal,G.,《Erlang的可逆语义》,(Hermenegildo,M.V.;López-GarcíA,P.,《基于逻辑的程序合成与转换——第26届国际研讨会》。基于逻辑的编程合成与转换,第26届国际研讨会,2016年9月6日至8日,英国爱丁堡,LOPSTR。基于逻辑的程序合成与转换——第26届国际研讨会。基于逻辑的程序合成与转换——第26届国际研讨会,2016年LOPSTR,2016年9月6日至8日,英国爱丁堡,LNCS,第10184卷(2016),Springer),259-274,修订论文集·兹比尔1485.68032
[23] Nilsson,H.,如何在一如既往地懒惰的同时看起来很忙:懒惰函数调试器的实现,J.Funct。程序。,1629-671(2001年)·Zbl 1037.68039号
[24] 卡巴列罗,R。;Riesco,A。;Verdejo,A。;Martí-Oliet,N.,《通过转换证明树简化Maude声明式调试器中的问题》,(Vidal,G.,《第21届基于逻辑的程序合成和转换国际研讨会论文集》,第21届国际基于逻辑的程序合成和转换研讨会论文集,LOPSTR 2011。第21届基于逻辑的程序合成与转换国际研讨会论文集。第21届基于逻辑的程序合成和转换国际研讨会论文集,2011年LOPSTR,LNCS,第7225卷(2012),Springer),73-89·Zbl 1377.68072号
[25] Insa,D。;席尔瓦,J。;Riesco,A.,《使用平衡执行树加速算法调试》,(Veanes,M.;Vigan,L.,《第七届国际测试与证明会议论文集》,第七届测试与证明国际会议论文集,TAP 2013。第七届国际检验与证明会议记录。第七届国际测试与证明会议记录,TAP 2013,LNCS,第7942卷(2013),Springer),133-151
[26] Papadakis,M。;Sagonas,K.,《PropEr类型和功能规范与基于性能的测试的集成》(2011年ACM SIGPLAN Erlang研讨会论文集(2011年),ACM出版社),39-50
[27] 克莱森,K。;Hughes,J.,QuickCheck:Haskell程序随机测试的轻量级工具,(ACM SIGPLAN通知(2000),ACM出版社),268-279
[28] Gotovos,A。;Christakis,M。;Sagonas,K.,《使用Concuerror进行并发程序的测试驱动开发》,(第十届ACM SIGPLAN Erlang研讨会论文集。第十届AC M SIGPLA Erlang会议论文集,Erlang’11(2011),ACM:美国纽约州纽约市ACM),51-61
[29] Christakis,M。;Gotovos,A。;Sagonas,K.,检测Erlang程序并发错误的系统测试,(2013年IEEE第六届软件测试、验证和确认国际会议(2013)),154-163
[30] Insa,D。;佩雷斯,S。;席尔瓦,J。;Tamarit,S.,《Erlang,Sci中跨代码版本的行为保护》。程序。(2018)
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。