×

封闭简单类型(lambda)术语的随机生成:逻辑编程和Boltzmann采样器之间的协同作用。 (英语) 兹比尔1425.68054

概要:软件质量保证的一种自然方法是编写单元测试,以保护程序声明的代码不变量。在整个文献中,大量工作都致力于工具和技术自动化这一劳动密集型过程。一个突出的例子是在测试函数编程编译器(如Glasgow Haskell编译器)时成功地使用了随机性,特别是随机类型{\(\lambda\)}术语。不幸的是,由于典型{\(lambda\)}-项的组合结构本质上很难,因此没有有效的统一抽样方法,这使得它成为随机软件测试方法中的一个基本开放问题。在本文中,我们将Boltzmann采样器框架(随机组合结构生成的强大技术)与当今的Prolog系统相结合,提供逻辑变量之间的协同、与发生检查的统一以及高效回溯。这使我们能够开发一种新的采样机制,能够构造大小为120的均匀随机闭合简单类型{\(\lambda\)}项。我们将我们的技术应用于一致随机闭的简单类型范式的生成,并设计了一个并行执行机制,将可实现的术语大小推进到140。

MSC公司:

68甲18 函数编程和lambda演算
68N17号 逻辑编程
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] 巴伦德雷格特。P.1991年。带有类型的Lambda计算。《计算机科学中的逻辑手册》,第2卷,牛津大学出版社。
[2] 本德科夫斯基。,格里吉尔。,莱斯卡内。和ZaioncM.2016。λ项的自然计数。SOFSEM 2016:计算机科学理论与实践-程序。第42届计算机科学理论与实践当前趋势国际会议,R.M.Freivalds,G.Engels和B.Catania,Eds.计算机科学讲稿,第9587卷。2016年1月23日至28日,捷克共和国哈拉乔夫·斯普林格,183-194·兹比尔1428.68095
[3] 本德科夫斯基。,格里吉尔K。和TarauP.2017。闭合简单型lambda项的Boltzmann采样器。程序中。《声明性语言的实践方面》——2017年PADL第19届国际研讨会。2017年1月16日至17日,法国巴黎。
[4] 博迪尼奥。,加迪·D。和Gittenberger B.2011。有界一元高度的Lambda项。程序中。第八届分析算法和组合学研讨会(ANALCO),23-32·Zbl 1429.68155号
[5] 博迪尼奥。,GenitriniA公司。和RolinN.2015。定点与奇异玻尔兹曼采样器:比较分析。《纯粹数学与应用》25,2,115-131·Zbl 1374.68346号
[6] 克莱森克。和HughesJ.2000。QuickCheck:用于随机测试Haskell程序的轻量级工具。在ICFP’00中:程序。第五届ACM SIGPLAN功能编程国际会议,美国纽约州纽约市ACM,268-279。
[7] 大卫·R。,格里吉尔。,科齐克J。,拉法利克。,他们很聪明。和ZaioncM.2013。几乎所有λ-项都是强正规化的。计算机科学中的逻辑方法9,1:02,1-30·Zbl 1278.03034号
[8] 德布鲁因。1972年政府。带有无名假人的Lambda演算符号,一种用于自动公式操作的工具,应用于Church-Rosser定理。Indagationes Mathematicae34,381-392·Zbl 0253.68007号
[9] 杜雄。,弗拉乔莱特。,卢查德G。和SchaefferG.2004。用于随机生成组合结构的Boltzmann采样器。组合数学、概率与计算13,4-5,577-625.10.1017/S0963548304006315S09635304003415·Zbl 1081.65007号 ·doi:10.1017/S0963548304006315
[10] 弗拉乔利特。和SedgewickR.2009。分析组合数学,第1版,剑桥大学出版社,美国纽约州纽约市·兹比尔1165.05001
[11] 格里吉尔K。和LescanneP.2013。计算并生成lambda项。功能编程杂志23,5,594-628.10.1017/S0956796813000178S09567813000178·Zbl 1311.68045号 ·doi:10.1017/S0956796813000178
[12] 格里吉尔K。和LescanneP.2015。二进制lambda演算中的计数和生成项。功能编程杂志25,1-25.10.1017/S095679681500040·Zbl 06796881号 ·文件编号:10.1017/S0956796815000040
[13] 辛德利J。R.和SeldinJ。第2008页。Lambda-微积分和组合器:简介,第13卷。剑桥大学出版社·Zbl 1149.03016号
[14] 科普曼公司。,AlimarineA、。,特雷特曼斯J。和PlasmeijerR.2003。Gast:通用自动化软件测试。《函数式语言的实现:第14届国际研讨会》,IFL 2002,西班牙马德里,9月16-18日,柏林施普林格,海德堡,84-100。
[15] 科普曼。和PlasmeijerR.2006。功能的系统综合。在尼尔森诺丁汉大学。(ED.),第七届函数编程趋势研讨会论文集,TFP 2006,英国诺丁汉,68-83,Intellect Books。
[16] PałkaM。H.、ClaessenK、。,俄罗斯。和HughesJ.2011。通过生成随机lambda项来测试优化编译器。程序中。第六届软件测试自动化国际研讨会,AST’11。美国纽约州纽约市ACM,91-97。
[17] 斯隆。J.A.2014年。整数序列的在线百科全书。网址:https://oeis.org/。【2017年8月6日访问】。
[18] 塔劳P.2015a。关于lambda项的逻辑编程表示:德布鲁因索引、压缩、类型推理、组合生成、规范化。程序中。第七届声明性语言实用方面国际研讨会PADL’15,E.Pontelli和T.C.Son,Eds.计算机科学讲义,第8131卷。美国俄勒冈州波特兰市斯普林格,115-131。
[19] 塔劳P.2015b。关于lambda术语的类型定向生成。第31届国际逻辑程序设计会议(ICLP 2015),技术通信,M.De Vos,T.Eiter,Y.Lierler和F.Toni,Eds.CEUR,爱尔兰科克。网址:http://ceur-ws.org/Vol-1433/。
[20] 威尔夫。S.2006年。生成功能学。A.K.Peters,Ltd.,美国马萨诸塞州纳蒂克。
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。