迈克尔·哈纳斯 从逻辑到功能逻辑程序。 (英语) Zbl 07595324号 理论与实践。日志。程序。 22,第4期,538-554(2022). 概要:逻辑编程是一种灵活的编程范式,因为它使用谓词而没有固定的数据流。为了用函数编程的紧凑表示法扩展逻辑语言,有各种建议将可计算函数映射到谓词中,以保持在逻辑编程框架中。由于合并的函数逻辑语言提供了灵活高效的计算策略,我们在本文中提出了一种相反的方法。通过将逻辑程序映射为基于推断函数依赖的转换的函数逻辑程序,我们开发了一种全自动转换,这种转换保持了逻辑编程的灵活性,但可以通过将无限搜索空间减少为有限搜索空间来改进计算。 MSC公司: 68N17号 逻辑编程 关键词:功能逻辑编程;转型;分辨率;缩小战略范围 软件:咖喱;哈斯克尔;水银;KiCS2系列;玩具 PDF格式BibTeX公司 XML格式引用 \textit{M.Hanus},理论与实践。日志。程序。22,编号4,538--554(2022;Zbl 07595324) 全文: 内政部 arXiv公司 参考文献: [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的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。