×

序言中的懒惰流编程。 (英语) 兹伯利07453116

Bogaerts,Bart(ed.)等人,《第35届逻辑编程(技术通信)国际会议论文集》,2019年ICLP,美国拉斯克鲁塞斯,2019月20日至25日。滑铁卢:开放出版协会(OPA)。电子。程序。西奥。计算。科学。(EPTCS)306224-237(2019)。
摘要:近年来,流处理已经成为增量处理大量数据的一种重要方法,在许多编程语言中都有特殊的支持和库。不幸的是,Prolog目前还缺乏支持,大多数现有的方法都是临时的。为了纠正这种情况,我们提出惰性流发生器作为统一的Prolog接口,用于对通过I/O和/或算法增量生成的有限和无限数据序列进行状态计算。
我们以两种方式向应用程序程序员公开流生成器:1)通过抽象序列操作API,方便定义自定义生成器;2)作为惯用惰性列表,与许多现有列表谓词兼容。我们定义了一个流生成器操作代数,该代数通过嵌入式语言解释器扩展Prolog,为组成生成器提供了一个紧凑的符号,并支持在两个同构表示之间移动。
作为一个特殊的例子,我们引入了应答流生成器,它封装了协同处理一级逻辑引擎的工作,并支持前向递归之间的互操作AND流和回溯生成OR流.
有关整个系列,请参见[Zbl 1464.68003号].

MSC公司:

68N17号 逻辑编程
PDF格式BibTeX公司 XML格式引用
全文: arXiv公司 链接

参考文献:

[1] Sergio Antoy(2005):函数逻辑编程的评估策略。J.塞姆。计算。40(1),第875-903页,doi:10.1016/j.jsc.2004.12.007·Zbl 1129.68019号 ·doi:10.1016/j.jsc.2004.12.007
[2] Brian Babcock、Shivnath Babu、Mayur Datar、Rajeev Motwani和Jennifer Widom(2002):数据流系统中的模型和问题。摘自:第二十届ACM SIGMOD-SIGACT-SIGART数据库系统原理研讨会论文集,PODS’02,美国纽约州纽约市ACM,第1-16页,doi:10.1145/543613.543615·数字对象标识代码:10.1145/543613.543615
[3] David M.Beazley(2009):Python基本参考,第4版。Addison Wesley专业版。
[4] Harald Beck、Minh Dao-Tran、Thomas Eiter和Michael Fink(2015):LARS:基于逻辑的流推理分析框架。摘自:《第二十届AAAI人工智能会议论文集》,AAAI'15,AAAI出版社,第1431-1438页,doi:10.1016/j.artint.2018.04.003·Zbl 1448.68395号 ·doi:10.1016/j.artint.2018.04.003
[5] Amadeo Casas、Daniel Cabeza和Manuel V.Hermenegildo(2006):LP系统中结合功能符号、懒惰评估和高阶的句法方法。在Masami Hagiya和Philip 9https://github.com/Anniepo/enron ·Zbl 1185.68151号
[6] Wadler,编辑:《函数和逻辑编程》,第八届国际研讨会,FLOPS 2006,Fuji-Susono,日本,2006年4月24-26日,《计算机科学论文集》,3945,Springer,第146-162页,doi:10.1007/11737414 11·Zbl 1185.68151号 ·doi:10.1007/11737414_11
[7] Amadeo Casas、Daniel Cabeza Gras和Manuel V Hermenegildo(2005):Ciao中的函数记谱和惰性评估。CICLOPS 2005年。https://cliplab.org/papers/lazy-functions-ciclops05.pdf。
[8] Christian Holzbaur(1992):可扩展统一背景下的元结构与属性变量。Maurice Bruynooghe和Martin Wirsing主编:《编程语言实现和逻辑粗粒度》,Springer Berlin Heidelberg出版社,柏林,海德堡,第260-268页,doi:10.1007/3-540-55844-6 141·doi:10.1007/3-540-55844-6_141
[9] 保罗·哈达克(Paul Hudak)、约翰·休斯(John Hughes)、西蒙·佩顿·琼斯(Simon Peyton Jones)和菲利普·沃德勒(Philip Wadler)(2007):《哈斯克尔的历史:懒惰上课》。摘自:《第三届ACM SIGPLAN编程语言历史会议论文集》,HOPL III,美国纽约州纽约市ACM,第12-1-12-55页,doi:10.1145/123844.1238856·数字对象标识代码:10.1145/1238844.1238856
[10] Yan-Nei Law、Haixun Wang和Carlo Zaniolo(2011):序列和数据流上连续查询的关系语言和数据模型。ACM事务处理。数据库系统。36(2),第8:1-8:32页,doi:10.1145/1966385.1966386·doi:10.1145/1966385.1966386
[11] 尤金尼奥·莫吉(1991):计算和单数概念。信息与计算93,第55-92页,doi:10.1016/0890-5401(91)90052-4·Zbl 0723.68073号 ·doi:10.1016/0890-5401(91)90052-4
[12] Guido van Rossum和Fred L.Drake(2011):《Python语言参考手册》。网络理论有限公司。
[13] Tom Schrijvers、Bart Demoen、Benoit Desouter和Jan Wielemaker(2013):专业日志的定界延续。逻辑编程理论与实践13(4-5),第533-546页,doi:10.1017/S1471068413000331·Zbl 1312.68037号 ·doi:10.1017/S1471068413000331
[14] Tom Schrijvers、Bart Demoen、Markus Triska和Benoit Desouter(2014):Tor:带可钩析取的模块化搜索。《计算机编程科学》84,第101-120页,doi:10.1016/j.scico.2013.05.008·Zbl 1283.68318号 ·doi:10.1016/j.scico.2013.05.008
[15] 保罗·塔劳(2000):《Fluents:A Refactoring of Prolog for Uniform Reflection and Interoperation with External Objects》。约翰·劳埃德(John Lloyd)主编:《计算逻辑CL 2000:第一届国际会议》(Computational Logic-CL 2000:First International Conference),英国伦敦,doi:10.1007/3-540-44957-482。LNCS 1861,Springer-Verlag·Zbl 0983.68749号 ·doi:10.1007/3-5440-44957-4_82
[16] Paul Tarau(2012):BinProlog体验:持续通过Prolog和一流逻辑引擎的架构和实现选择。逻辑编程理论与实践12(1-2),第97-126页,doi:10.1017/S1471068411000433·Zbl 1244.68022号 ·文件编号:10.1017/S1471068411000433
[17] Paul Tarau(2013):Prolog术语的紧凑序列化(使用加泰罗尼亚语骨架、Cantor Tu-pling和哥德尔编号)。逻辑编程理论与实践13(4-5),第847-861页,doi:10.1017/S1471068413000537·Zbl 1286.68059号 ·doi:10.1017/S1471068413000537
[18] Paul Tarau和Arun Majumdar(2009):互操作逻辑引擎。摘自:《声明性语言的实用方面》,第11届国际研讨会,2009年PADL,Springer,LNCS 5418,佐治亚州萨凡纳,第137-151页,doi:10.1007/978-3-540-92995-6 10·doi:10.1007/978-3-540-92995-6_10
[19] 菲利普·沃德勒(1993):《单曲和可组合续集》。Lisp和符号计算,第1-17页,doi:10.1007/BF01019944·doi:10.1007/BF01019944
[20] Jan Wielemaker(2003):SWI-Prolog中的本机抢占线程。在Catuscia Palamidessi中,编辑:《声明性语言的实用方面》,Springer Verlag,德国柏林,第331-345页,doi:10.1007/978-3-540-24599-5 23。LNCS 2916·Zbl 1204.68063号 ·doi:10.1007/978-3-540-24599-5_23
[21] Jan Wielemaker、Tom Schrijvers、Markus Triska和Torbjorn Lager(2012年):SWI-Prolog。逻辑编程理论与实践12,第67-96页,doi:10.1017/S1471068411000494·Zbl 1244.68023号 ·网址:10.1017/S1471068411000494
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。