×

从逻辑到功能逻辑程序。 (英语) Zbl 07595324号

概要:逻辑编程是一种灵活的编程范式,因为它使用谓词而没有固定的数据流。为了用函数编程的紧凑表示法扩展逻辑语言,有各种建议将可计算函数映射到谓词中,以保持在逻辑编程框架中。由于合并的函数逻辑语言提供了灵活高效的计算策略,我们在本文中提出了一种相反的方法。通过将逻辑程序映射为基于推断函数依赖的转换的函数逻辑程序,我们开发了一种全自动转换,这种转换保持了逻辑编程的灵活性,但可以通过将无限搜索空间减少为有限搜索空间来改进计算。

MSC公司:

68N17号 逻辑编程
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] At-Kaci,H.1991。沃伦的抽象机器。麻省理工学院出版社。
[2] Antoy,S.1992年。定义树。第三届代数和逻辑程序设计国际会议论文集。LNCS,第632卷。斯普林格,143-157。
[3] Antoy,S.1997年。最佳非确定性函数逻辑计算。《代数和逻辑程序设计国际会议论文集》(ALP'97)。LNCS,第1298卷。施普林格,16-30·Zbl 0886.68034号
[4] Antoy,S.、Echahed,R.和Hanus,M.2000。一个必要的缩小战略。美国医学会杂志47,4,776-822·Zbl 1327.68141号
[5] Antoy,S.和Hanus,M.2000。将多段声明性程序编译到Prolog中。《组合系统前沿国际研讨会论文集》(FroCoS’2000)。LNCS,第1794卷。施普林格,171-185·Zbl 0969.68667号
[6] Antoy,S.和Hanus,M.2009。设置功能逻辑编程的功能。在第11届ACM SIGPLAN国际声明性编程原则和实践会议(PPDP'09)的会议记录中。ACM出版社,73-82。
[7] Antoy,S.和Hanus,M.2010。功能逻辑编程。ACM通信53、4、74-85。
[8] Antoy,S.和Hanus,M.2017。咖喱的默认规则。逻辑程序设计的理论与实践17,2,121-147·Zbl 1379.68037号
[9] Baader,F.和Nipkow,T.1998。术语重写和所有这些。剑桥大学出版社·Zbl 0948.68098号
[10] Barbosa,J.、Florido,M.和Santos Costa,V.2021。逻辑编程的数据类型推断。在第31届基于逻辑的程序合成和转换国际研讨会(LOPSTR 2021)的会议记录中。LNCS,第13290卷。施普林格,16-37·Zbl 1521.68028号
[11] Barbuti,R.、Bellia,M.、Levi,G.和Martelli,M.1984。关于逻辑编程和函数编程的集成。IEEE逻辑编程国际研讨会论文集。大西洋城,160-166。
[12] Braßel,B.,Fischer,S.和Huch,F.2008。声明数字。理论计算机科学电子笔记216111-124·Zbl 1283.68133号
[13] Braßel,B.,Hanus,M.,Peemöller,B.和Reck,F.2011。KiCS2:从Curry到Haskell的新编译器。第20届函数和(约束)逻辑编程国际研讨会论文集(WFLP 2011)。LNCS,第6816卷。施普林格,1-18。
[14] Bruynooghe,M.、De Schreye,D.和Krekels,B.1989。编译控件。逻辑编程杂志6135-162·Zbl 0668.68025号
[15] Bry,F.和Schaffert,S.2002。面向XML和半结构化数据的声明性查询和转换语言:模拟统一。《逻辑程序设计国际会议论文集》(ICLP'02)。LNCS,第2401卷。施普林格,255-270·Zbl 1045.68509号
[16] Casas,A.、Cabeza,D.和Hermenegildo,M.2006年。在LP系统中结合函数表示法、惰性求值和高阶的语法方法。在第八届函数和逻辑编程国际研讨会(FLOPS 2006)的会议记录中,LNCS,第3945卷。斯普林格,146-162·Zbl 1185.68151号
[17] González Moreno,J.、Hortalá-González,M.、López Fraguas,F.和Rodrguez Artalejo,M.1999。基于重写逻辑的声明性编程方法。逻辑编程杂志40,47-87·Zbl 0942.68060号
[18] 哈努斯,M.1995。剩余逻辑程序分析。逻辑程序设计杂志24,3,161-199·Zbl 0866.68019号
[19] 哈努斯,M.2011。半结构化web数据的声明性处理。第27届逻辑程序设计国际会议技术通信,第11卷。莱布尼茨国际信息学论文集(LIPIcs),198-208·Zbl 1245.68074号
[20] 哈努斯,M.2013。函数逻辑编程:从理论到Curry。编程逻辑-纪念哈拉尔德·甘津格的论文。LNCS,第7797卷。施普林格,123-168·Zbl 1383.68017号
[21] Hanus,M.(编辑),2016年。Curry:一种集成函数逻辑语言(版本0.9.0)。网址:http://www.curry-lang.org。
[22] Hermenegildo,M.、Bueno,F.、Carro,M.,López-Garca,P.、Mera,E.、Morales,J.和Puebla,G.2012。Ciao及其设计理念概述。逻辑程序设计的理论与实践12,1-2,219-252·Zbl 1244.68019号
[23] Huet,G.和Lévy,J.-J.1991年。正交重写系统中的计算。《计算逻辑:纪念艾伦·罗宾逊、J.-L.拉塞兹和G.普罗特金的论文》,麻省理工学院出版社编辑,395-443。
[24] Hughes,J.1990年。为什么函数式编程很重要。在函数编程的研究主题中,D.Turner,Ed.Addison Wesley,17-42·Zbl 0709.68003号
[25] Jiménez-Martin,J.、Marino-Carballo,J.和Moreno-Navarro,J.1992。将懒惰收缩有效编译为Prolog。逻辑程序合成与转换国际研讨会论文集(LOPSTR'92)。Springer计算机系列研讨会,253-270。
[26] Launchbury,J.1993年。惰性评估的自然语义。第20届美国计算机学会程序设计语言原理研讨会论文集(POPL'93)。ACM出版社,144-154。
[27] 劳埃德,J.1987。《逻辑编程基础》,第二版扩充版,施普林格出版社·Zbl 0668.68004号
[28] Loogen,R.、López Fraguas,F.和Rodrguez Artalejo,M.1993。用于延迟收缩的需求驱动计算策略。第五届程序设计语言实现和逻辑程序设计国际研讨会论文集。LNCS,第714卷。斯普林格,184-200·Zbl 0791.68021号
[29] López-Fraguas,F.和Sánchez-Hernández,J.1999。TOY:多参数声明系统。《RTA’99会议记录》。LNCS,第1631卷。施普林格,244-247。
[30] 奈什,L.1991。向NU-Prolog添加方程式。第三届程序设计语言实现和逻辑程序设计国际研讨会论文集。LNCS,第528卷。施普林格,15-26岁。
[31] Narain,S.1986年。在逻辑中进行惰性计算的技术。逻辑编程杂志3,259-276·Zbl 0613.68014号
[32] 帕坦,W.1993。Haskell程序的nofib基准套件。1992年格拉斯哥函数编程研讨会论文集。斯普林格,195-202年。
[33] Peyton Jones,S.,2003年版。Haskell 98语言与图书馆修订报告。剑桥大学出版社。
[34] Reddy,U.1985。缩小为函数式语言的操作语义。《IEEE逻辑编程国际研讨会论文集》,波士顿,138-151。
[35] Schrijvers,T.、Santos-Costa,V.、Wielemaker,J.和Demoen,B.2008。朝向键入的Prolog。第24届逻辑程序设计国际会议(ICLP 2008)。斯普林格。LNCS,第5366卷,693-697页·兹比尔1185.68181
[36] 斯拉格,J.1974。为具有简化器、交换性和结合性的理论提供自动化理论证明。美国医学会杂志21,4,622-642·Zbl 0296.68092号
[37] Somogyi,Z.、Henderson,F.和Conway,T.1996。Mercury的执行算法,这是一种高效的纯声明逻辑编程语言。逻辑编程杂志29,1-3,17-64·Zbl 0877.68015号
[38] Sterling,L.和Shapiro,E.1994。《序言艺术》,麻省理工学院出版社第二版·Zbl 0850.68137号
[39] 2003.术语重写系统。剑桥理论计算机科学丛书,第55卷。剑桥大学出版社·Zbl 1030.68053号
[40] Van Roy,P.和Despain,A.1990。全局数据流分析对优化prolog编译器的好处。1990年北美逻辑编程会议记录。麻省理工学院出版社,501-515。
[41] Wadler,P.1997年。如何声明命令行。ACM计算调查29、3、240-263。
[42] Wadler,P.和Blott,S.1989。如何使即席多态性不那么即席。《89年POPL会议记录》,60-76。
[43] 沃伦,D.1983。抽象Prolog指令集。技术说明309,斯坦福SRI国际。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。