首页 > 最新文献

The Journal of Logic Programming最新文献

英文 中文
An approach to declarative programming based on a rewriting logic 一种基于重写逻辑的声明性编程方法
Pub Date : 1999-07-01 DOI: 10.1016/S0743-1066(98)10029-8
J.C. González-Moreno, M.T. Hortalá-González, F.J. López-Fraguas, M. Rodríguez-Artalejo

We propose an approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion. Classical equational logic does not supply a suitable semantics in a natural way. Therefore, we suggest to view programs as theories in a constructor-based conditional rewriting logic. We present proof calculi and a model theory for this logic, and we prove the existence of free term models which provide an adequate intended semantics for programs. We develop a sound and strongly complete lazy narrowing calculus, which is able to support sharing without the technical overhead of graph rewriting and to identify safe cases for eager variable elimination. Moreover, we give some illustrative programming examples, and we discuss the implementability of our approach.

我们提出了一种声明式编程的方法,它通过将可能不确定的惰性函数作为基本概念,集成了函数和关系范式。经典等式逻辑不能以自然的方式提供合适的语义。因此,我们建议将程序视为基于构造函数的条件重写逻辑中的理论。给出了该逻辑的证明演算和模型理论,并证明了自由项模型的存在性,该模型为程序提供了充分的预期语义。我们开发了一种健全的、强完备的惰性缩窄演算,它能够在没有图重写的技术开销的情况下支持共享,并识别出渴望变量消除的安全情况。此外,我们给出了一些说明性的编程示例,并讨论了我们的方法的可实现性。
{"title":"An approach to declarative programming based on a rewriting logic","authors":"J.C. González-Moreno,&nbsp;M.T. Hortalá-González,&nbsp;F.J. López-Fraguas,&nbsp;M. Rodríguez-Artalejo","doi":"10.1016/S0743-1066(98)10029-8","DOIUrl":"https://doi.org/10.1016/S0743-1066(98)10029-8","url":null,"abstract":"<div><p>We propose an approach to declarative programming which integrates the functional and relational paradigms by taking possibly non-deterministic lazy functions as the fundamental notion. Classical equational logic does not supply a suitable semantics in a natural way. Therefore, we suggest to view programs as theories in a constructor-based conditional rewriting logic. We present proof calculi and a model theory for this logic, and we prove the existence of free term models which provide an adequate intended semantics for programs. We develop a sound and strongly complete lazy narrowing calculus, which is able to support sharing without the technical overhead of graph rewriting and to identify safe cases for eager variable elimination. Moreover, we give some illustrative programming examples, and we discuss the implementability of our approach.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"40 1","pages":"Pages 47-87"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10029-8","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91725915","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 99
Semantics of (disjunctive) logic programs based on partial evaluation 基于部分求值的(析取)逻辑程序语义
Pub Date : 1999-07-01 DOI: 10.1016/S0743-1066(98)10030-4
Stefan Brass , Jürgen Dix

We present a new and general approach for defining, understanding, and computing logic programming semantics. We consider disjunctive programs for generality, but our results are still interesting if specialized to normal programs. Our framework consists of two parts: (a) a semantical, where semantics are defined in an abstract way as the weakest semantics satisfying certain properties, and (b) a procedural, namely a bottom-up query evaluation method based on operators working on conditional facts. As to (a), we concentrate in this paper on a particular set of abstract properties (the most important being the unfolding or partial evaluation property GPPE) and define a new semantics D-WFS, which extends WFS and GCWA. We also mention that various other semantics, like Fitting's comp3, Schipf's WFSc, Gelfond and lifschitz' STABLE and Ross and Topor's WGCWA (also introduced independently by Rajasekar et al. (A. Rajasekar, J. Lobo, J. Minker, Journal of Automated Reasoning 5 (1989) 293–307)), can be captured in our framework. In (b) we compute for any program P a residual program res(P), and show that res(P) is equivalent to the original program under very general conditions on the semantics (which are satisfied, e.g., by the well-founded, stable, stationary, and static semantics). Many queries with respect to these semantics can already be answered on the basis of the residual program. In fact, res(P) is complete for D-WFS, WFS and GCWA.

我们提出了一种新的通用方法来定义、理解和计算逻辑编程语义。我们考虑析取程序的普遍性,但我们的结果仍然是有趣的,如果专门针对普通程序。我们的框架由两部分组成:(a)语义,其中语义以抽象的方式定义为满足某些属性的最弱语义,以及(b)过程,即基于操作符的自下而上的查询评估方法。对于(a),我们在本文中集中讨论了一组特定的抽象属性(最重要的是展开或部分求值属性GPPE),并定义了一个新的语义D-WFS,它扩展了WFS和GCWA。我们还提到了各种其他语义,如Fitting的comp3, Schipf的WFSc, Gelfond和lifschitz的STABLE以及Ross和Topor的WGCWA(也由Rajasekar等人独立引入(A. Rajasekar, J. Lobo, J. Minker, Journal of Automated Reasoning 5(1989) 293-307))),可以在我们的框架中捕获。在(b)中,我们计算了任意程序P的残差程序res(P),并证明res(P)在非常一般的语义条件下等价于原程序(例如,由良好的、稳定的、平稳的和静态的语义所满足)。关于这些语义的许多查询已经可以在残差程序的基础上得到回答。实际上,res(P)对于D-WFS、WFS和GCWA是完整的。
{"title":"Semantics of (disjunctive) logic programs based on partial evaluation","authors":"Stefan Brass ,&nbsp;Jürgen Dix","doi":"10.1016/S0743-1066(98)10030-4","DOIUrl":"https://doi.org/10.1016/S0743-1066(98)10030-4","url":null,"abstract":"<div><p>We present a new and general approach for defining, understanding, and computing logic programming semantics. We consider disjunctive programs for generality, but our results are still interesting if specialized to normal programs. Our framework consists of two parts: (a) a <em>semantical</em>, where semantics are defined in an abstract way as the <em>weakest</em> semantics satisfying certain properties, and (b) a <em>procedural</em>, namely a bottom-up query evaluation method based on operators working on <em>conditional facts</em>. As to (a), we concentrate in this paper on a particular set of abstract properties (the most important being the <em>unfolding</em> or <em>partial evaluation property</em> GPPE) and define a new semantics D-WFS, which extends WFS and GCWA. We also mention that various other semantics, like Fitting's comp<sub>3</sub>, Schipf's WFS<sub>c</sub>, Gelfond and lifschitz' STABLE and Ross and Topor's WGCWA (also introduced independently by Rajasekar et al. (A. Rajasekar, J. Lobo, J. Minker, Journal of Automated Reasoning 5 (1989) 293–307)), can be captured in our framework. In (b) we compute for any program <em>P</em> a residual program <em>res(P)</em>, and show that <em>res(P)</em> is equivalent to the original program under very general conditions on the semantics (which are satisfied, e.g., by the well-founded, stable, stationary, and static semantics). Many queries with respect to these semantics can already be answered on the basis of the residual program. In fact, <em>res(P)</em> is <em>complete</em> for D-WFS, WFS and GCWA.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"40 1","pages":"Pages 1-46"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10030-4","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90028483","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 101
An algebraic framework for the definition of compositional semantics of normal logic programs 正则逻辑程序组合语义定义的代数框架
Pub Date : 1999-07-01 DOI: 10.1016/S0743-1066(98)10039-0
Paqui Lucio, Fernado Orejas, Elvira Pino

The aim of our work is the definition of compositional semantics for modular units over the class of normal logic programs. In this sense, we propose a declarative semantics for normal logic programs in terms of model classes that is monotonic in the sense that Mod(P∪P′) ⊆ Mod(P), for any programs P and P′ and we show that in the model class associated to every program there is a least model that can be seen as the semantics of the program, which may be built upwards as the least fix point of a continuous immediate consequence operator. In addition, it is proved that this least model is “typical” for the class of models of Clark-Kunen's completion of the program. This means that our semantics is equivalent to Clark-Kunen's completion. Moreover, following the approach defined in a previous paper, it is shown that our semantics constitutes a “specification frame ” equipped with the adequate categorical constructions needed to define compositional and fully abstract (categorical) semantics for a number of program units. In particular, we provide a categorical semantics of arbitrary normal logic program fragments which is compositional and fully abstract with respect to the (standard) union.

我们工作的目的是定义普通逻辑程序类上的模块单元的组合语义。在这个意义上,我们提出了一个普通逻辑程序的声明性语义,该语义在模(P∪P′)≥Mod(P)的单调意义上,对于任何程序P和P′,我们证明了在与每个程序相关联的模型类中存在一个最小模型,该模型可以看作是程序的语义,它可以向上构建为连续直接推理算子的最小不动点。此外,还证明了该最小模型是Clark-Kunen完成方案的一类模型的“典型”。这意味着我们的语义等价于Clark-Kunen的补全。此外,根据前一篇论文中定义的方法,我们的语义构成了一个“规范框架”,配备了为许多程序单元定义组合和完全抽象(范畴)语义所需的足够的范畴结构。特别地,我们提供了任意标准逻辑程序片段的范畴语义,它是组合的,并且相对于(标准)联合是完全抽象的。
{"title":"An algebraic framework for the definition of compositional semantics of normal logic programs","authors":"Paqui Lucio,&nbsp;Fernado Orejas,&nbsp;Elvira Pino","doi":"10.1016/S0743-1066(98)10039-0","DOIUrl":"https://doi.org/10.1016/S0743-1066(98)10039-0","url":null,"abstract":"<div><p>The aim of our work is the definition of compositional semantics for modular units over the class of normal logic programs. In this sense, we propose a declarative semantics for normal logic programs in terms of model classes that is monotonic in the sense that <span><math><mtext>Mod</mtext><mtext>(P∪P′) ⊆ </mtext><mtext>Mod</mtext><mtext>(P)</mtext></math></span>, for any programs <em>P</em> and <em>P</em>′ and we show that in the model class associated to every program there is a least model that can be seen as the semantics of the program, which may be built upwards as the least fix point of a continuous immediate consequence operator. In addition, it is proved that this least model is “typical” for the class of models of Clark-Kunen's completion of the program. This means that our semantics is equivalent to Clark-Kunen's completion. Moreover, following the approach defined in a previous paper, it is shown that our semantics constitutes a “specification frame ” equipped with the adequate categorical constructions needed to define compositional and fully abstract (categorical) semantics for a number of program units. In particular, we provide a categorical semantics of arbitrary normal logic program fragments which is compositional and fully abstract with respect to the (standard) union.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"40 1","pages":"Pages 89-123"},"PeriodicalIF":0.0,"publicationDate":"1999-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10039-0","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91725916","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
Special issue: synthesis, transformation and analysis of logic programs 特刊:逻辑程序的综合、转换与分析
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(98)10031-6
Annalisa Bossi , Yves Deville
{"title":"Special issue: synthesis, transformation and analysis of logic programs","authors":"Annalisa Bossi ,&nbsp;Yves Deville","doi":"10.1016/S0743-1066(98)10031-6","DOIUrl":"10.1016/S0743-1066(98)10031-6","url":null,"abstract":"","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 1-2"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10031-6","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74959599","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Verification of logic programs 逻辑程序验证
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(98)10035-3
Dino Pedreschi, Salvatore Ruggieri

We present a proof method in the style of Hoare's logic, aimed at providing a unifying framework for the verification of total correctness of logic and Prolog programs. The method, which relies on purely declarative reasoning, has been designed as a trade-off between expresiveness and ease of use. On the basis of a few simple principles, we reason uniformly on several properties of logic and Prolog programs, including partial correctness, call patterns, absence of run-time errors, safe omission of the occur-check, computed instances, termination and modula program development. We finally generalize the method to general programs.

我们提出了一种Hoare逻辑风格的证明方法,旨在为验证逻辑和Prolog程序的完全正确性提供一个统一的框架。该方法依赖于纯粹的陈述性推理,被设计为在表达性和易用性之间进行权衡。基于一些简单的原则,我们对逻辑和Prolog程序的几个特性进行了统一的推理,包括部分正确性、调用模式、无运行时错误、发生检查的安全省略、计算实例、终止和模块化程序开发。最后将该方法推广到一般程序中。
{"title":"Verification of logic programs","authors":"Dino Pedreschi,&nbsp;Salvatore Ruggieri","doi":"10.1016/S0743-1066(98)10035-3","DOIUrl":"10.1016/S0743-1066(98)10035-3","url":null,"abstract":"<div><p>We present a proof method in the style of Hoare's logic, aimed at providing a unifying framework for the verification of <em>total</em> correctness of logic and Prolog programs. The method, which relies on purely declarative reasoning, has been designed as a trade-off between expresiveness and ease of use. On the basis of a few simple principles, we reason uniformly on several properties of logic and Prolog programs, including partial correctness, call patterns, absence of run-time errors, safe omission of the occur-check, computed instances, termination and modula program development. We finally generalize the method to general programs.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 125-176"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10035-3","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130488317","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 20
Abstract diagnosis 抽象的诊断
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(98)10033-X
Marco Comini , Giorgio Levi , Maria Chiara Meo , Giuliana Vitiello

We show how declarative diagnosis techniques can be extended to cope with verification of operational properties, such as computed and correct answers, and of abstract properties, such as depth(k) answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnosis) leads to elegant bottom-up and top-down verification methods, which do not require to determine the symptoms in advance, and which are effective in the case of abstract properties described by finite domains.

我们展示了如何扩展声明性诊断技术以处理操作属性的验证,例如计算和正确的答案,以及抽象属性,例如深度(k)答案和基础依赖关系。扩展是通过使用基于抽象解释的简单语义框架来实现的。由此产生的技术(抽象诊断)导致了优雅的自底向上和自顶向下的验证方法,这些方法不需要事先确定症状,并且在有限域描述的抽象属性的情况下有效。
{"title":"Abstract diagnosis","authors":"Marco Comini ,&nbsp;Giorgio Levi ,&nbsp;Maria Chiara Meo ,&nbsp;Giuliana Vitiello","doi":"10.1016/S0743-1066(98)10033-X","DOIUrl":"10.1016/S0743-1066(98)10033-X","url":null,"abstract":"<div><p>We show how declarative diagnosis techniques can be extended to cope with verification of operational properties, such as computed and correct answers, and of abstract properties, such as <em>depth(k)</em> answers and groundness dependencies. The extension is achieved by using a simple semantic framework, based on abstract interpretation. The resulting technique (abstract diagnosis) leads to elegant bottom-up and top-down verification methods, which do not require to determine the symptoms in advance, and which are effective in the case of abstract properties described by finite domains.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 43-93"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10033-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114347905","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 64
Opium: an extendable trace analyzer for Prolog 一个可扩展的Prolog跟踪分析器
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(98)10036-5
Mireille Ducassé

Traces of program executions are a helpful source of information for program debugging. They, however, give a picture of program executions at such a low level that users often have difficulties to interpret the information. Opium, our extendable trace analyzer, is connected to a “standard” Prolog tracer. Opium is programmable and extendable. It provides a trace query language and abstract views of executions. Users can therefore examine program executions at the levels of abstraction which suit them. Opium has shown its capabilities to build abstract tracers and automated debugging facilities. This article describes in depth the trace query mechanism, from the model to its implementation. Characteristic examples are detailed. Extensions written so far on top of the trace query mechanism are listed. Two recent extensions are presented: the abstract tracers for the LO (Linear Objects) and the CHR (Constraint Handling Rules) languages. These two extensions were specified and implemented within a few days. They show how to use Opium for real applications.

程序执行的跟踪是程序调试的有用信息源。然而,它们在如此低的层次上给出了程序执行的图像,以至于用户常常难以解释这些信息。鸦片,我们的可扩展追踪分析仪,连接到一个“标准”Prolog追踪器。鸦片是可编程和可扩展的。它提供了跟踪查询语言和执行的抽象视图。因此,用户可以在适合他们的抽象层次上检查程序的执行。鸦片已经展示了它构建抽象跟踪器和自动调试设施的能力。本文深入描述了跟踪查询机制,从模型到实现。详细介绍了典型实例。下面列出了迄今为止在跟踪查询机制之上编写的扩展。最近提出了两个扩展:LO(线性对象)和CHR(约束处理规则)语言的抽象跟踪器。这两个扩展是在几天内指定和实现的。他们展示了如何将鸦片用于实际应用。
{"title":"Opium: an extendable trace analyzer for Prolog","authors":"Mireille Ducassé","doi":"10.1016/S0743-1066(98)10036-5","DOIUrl":"10.1016/S0743-1066(98)10036-5","url":null,"abstract":"<div><p>Traces of program executions are a helpful source of information for program debugging. They, however, give a picture of program executions at such a low level that users often have difficulties to interpret the information. Opium, our extendable trace analyzer, is connected to a “standard” Prolog tracer. Opium is programmable and extendable. It provides a trace query language and abstract views of executions. Users can therefore examine program executions at the levels of abstraction which suit them. Opium has shown its capabilities to build abstract tracers and automated debugging facilities. This article describes in depth the trace query mechanism, from the model to its implementation. Characteristic examples are detailed. Extensions written so far on top of the trace query mechanism are listed. Two recent extensions are presented: the abstract tracers for the LO (Linear Objects) and the CHR (Constraint Handling Rules) languages. These two extensions were specified and implemented within a few days. They show how to use Opium for real applications.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 177-223"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10036-5","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114613872","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 71
Automated verification of Prolog programs 自动验证Prolog程序
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(98)10032-8
Baudouin Le Charlier, Christophe Leclère, Sabina Rossi, Agostino Cortesi

Although Prolog is (still) the most widely used logic language, it suffers from a number of drawbacks which prevent it from being truely declarative. The nondeclarative features such as the depth-first search rule are nevertheless necessary to make Prolog reasonably efficient. Several authors have proposed methodologies to reconcile declarative programming with the algorithmic features of Prolog. The idea is to analyse the logic program with respect to a set of properties such as modes, types, sharing, termination, and the like in order to ensure that the operational behaviour of the Prolog program complies with its logic meaning. Such analyses are tedious to perform by hand and can be automated to some extent. This paper presents a state-of-the-art analyser which allows one to integrate many individual analyses previously proposed in the literature as well as new ones. Conceptually, the analyser is based on the notion of abstract sequence which makes it possible to collect all kinds of desirable information, including relations between the input and output sizes of terms, multiplicity, and termination.

尽管Prolog(仍然)是使用最广泛的逻辑语言,但它有许多缺点,这些缺点使它无法真正地声明。然而,深度优先搜索规则等非声明性特性对于提高Prolog的效率是必要的。一些作者提出了一些方法来调和声明式编程和Prolog的算法特性。其思想是根据一组属性(如模式、类型、共享、终止等)来分析逻辑程序,以确保Prolog程序的操作行为符合其逻辑含义。手工执行这样的分析是乏味的,在某种程度上可以自动化。本文提出了一个国家的最先进的分析仪,它允许一个集成许多单独的分析以前提出的文献以及新的。从概念上讲,分析器是基于抽象序列的概念,这使得它可以收集各种所需的信息,包括输入和输出大小之间的关系,多样性和终止。
{"title":"Automated verification of Prolog programs","authors":"Baudouin Le Charlier,&nbsp;Christophe Leclère,&nbsp;Sabina Rossi,&nbsp;Agostino Cortesi","doi":"10.1016/S0743-1066(98)10032-8","DOIUrl":"10.1016/S0743-1066(98)10032-8","url":null,"abstract":"<div><p>Although Prolog is (still) the most widely used logic language, it suffers from a number of drawbacks which prevent it from being truely declarative. The nondeclarative features such as the depth-first search rule are nevertheless necessary to make Prolog reasonably efficient. Several authors have proposed methodologies to reconcile declarative programming with the algorithmic features of Prolog. The idea is to analyse the logic program with respect to a set of properties such as modes, types, sharing, termination, and the like in order to ensure that the operational behaviour of the Prolog program complies with its logic meaning. Such analyses are tedious to perform by hand and can be automated to some extent. This paper presents a state-of-the-art analyser which allows one to integrate many individual analyses previously proposed in the literature as well as new ones. Conceptually, the analyser is based on the notion of abstract sequence which makes it possible to collect all kinds of desirable information, including relations between the input and output sizes of terms, multiplicity, and termination.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 3-42"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10032-8","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126296396","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Author index - Volume 39 (1999) 作者索引-第39卷(1999年)
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(99)00010-2
{"title":"Author index - Volume 39 (1999)","authors":"","doi":"10.1016/S0743-1066(99)00010-2","DOIUrl":"https://doi.org/10.1016/S0743-1066(99)00010-2","url":null,"abstract":"","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Page 245"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(99)00010-2","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"136826696","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Layered modes 分层模式
Pub Date : 1999-04-01 DOI: 10.1016/S0743-1066(98)10037-7
Sandro Etalle , Maurizio Gabbrielli

Modes were introduced in logic programming to differentiate the input arguments of a predicate from its output arguments. This information can be used for verifying the most diverse properties of logic programs notably absence of run-time errors and absence of dead-locks in presence of delay declarations. We introduce here layered modes, an extension of existing mode systems which allow us to enlarge the class of programs which can be verified by using modes. In particular, we show that this extension allows us to better handle programs that employ a dynamic selection rule and programs that use incomplete data structures such as difference-lists.

在逻辑编程中引入了模式来区分谓词的输入参数和输出参数。该信息可用于验证逻辑程序的各种属性,特别是是否存在运行时错误和存在延迟声明时是否存在死锁。我们在这里引入分层模态,这是现有模态系统的一种扩展,它允许我们扩大可以通过使用模态来验证的程序的类别。特别是,我们展示了这个扩展允许我们更好地处理使用动态选择规则的程序和使用不完整数据结构(如差异列表)的程序。
{"title":"Layered modes","authors":"Sandro Etalle ,&nbsp;Maurizio Gabbrielli","doi":"10.1016/S0743-1066(98)10037-7","DOIUrl":"10.1016/S0743-1066(98)10037-7","url":null,"abstract":"<div><p>Modes were introduced in logic programming to differentiate the input arguments of a predicate from its output arguments. This information can be used for verifying the most diverse properties of logic programs notably absence of run-time errors and absence of dead-locks in presence of delay declarations. We introduce here <em>layered modes</em>, an extension of existing mode systems which allow us to enlarge the class of programs which can be verified by using modes. In particular, we show that this extension allows us to better handle programs that employ a dynamic selection rule and programs that use incomplete data structures such as difference-lists.</p></div>","PeriodicalId":101236,"journal":{"name":"The Journal of Logic Programming","volume":"39 1","pages":"Pages 225-244"},"PeriodicalIF":0.0,"publicationDate":"1999-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0743-1066(98)10037-7","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128473247","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
期刊
The Journal of Logic Programming
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1