Backtrackable State with Linear Assumptions, Continuations and Hidden Accumulator Grammars

A set of executable speciications and eecient implementations of backtrackable state persisting over the current AND-continuation is investigated. At speciication level, our primitive operations are a variant of linear and intu-itionistic implications, having as consequent the current continuation. On top of them, we introduce a form of hypothetical assumptions which use no explicit quan-tiiers and have an easy and eecient implementation on top of logic programming systems featuring backtrackable destructive assignment, global variables and simple speciications in term of translation to side-eeect free Prolog. A variant of Extended DCGs handling multiple streams without the need of a preprocessing technique, Hidden Accumulator Grammars (HAGs), are speciied in terms of linear assumptions. For HAGs, eeciency comparable to that of pre-processing techniques is obtained through a WAM-level implementation of back-trackable destructive assignment, supporting non-deterministic execution based on value-trailing, while collapsing to a form of in-place update in case of deterministic execution. Not restricted to Prolog, the techniques described in the paper are portable to alternative logic programming languages like Life, Lolli and Prolog.

[1]  Gopalan Nadathur,et al.  Some Uses of Higher-Order Logic in Computational Linguistics , 1986, ACL.

[2]  Paul Tarau,et al.  Prolog Meta-Programming with Soft Databases , 1988, META.

[3]  Peter Van Roy A useful extension to Prolog's definite clause grammar notation , 1989, SIGP.

[4]  Dale Miller,et al.  A Logical Analysis of Modules in Logic Programming , 1989, J. Log. Program..

[5]  Dale Miller,et al.  Representing Objects in a Logic Programming Langueage with Scoping Constructs , 1990, ICLP.

[6]  P. Wadler Is there a use for linear logic? , 1991, PEPM '91.

[7]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[8]  Dale Miller,et al.  Logic programming in a fragment of intuitionistic linear logic , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[9]  Joshua S. Hodas,et al.  Specifying Filler-Gap Dependency Parsers in a Linear-Logic Programming Language , 1992, JICSLP.

[10]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[11]  E. Belin,et al.  The Architecture of an Implementation of Prolog : Prolog / Mali , 1992 .

[12]  Henry G. Baker,et al.  Lively linear Lisp: “look ma, no garbage!” , 1992, SIGP.

[13]  David S. Warren Continuations in λProlog , 1993 .

[14]  Andreas Podelski,et al.  Towards a Meaning of LIFE , 1991, J. Log. Program..

[15]  Dale Miller,et al.  Logic Programming in a Fragment of Intuitionistic Linear Logic , 1994, Inf. Comput..

[16]  Philip Wadler,et al.  Monads and composable continuations , 1994, LISP Symb. Comput..

[17]  Paul Tarau,et al.  User Guide , 2013, Andrology.

[18]  John W. Lloyd Backtracable State with Linear Assumptions, Continuations and Hidden Accumulator Grammars , 1995 .

[19]  J. S. Hodas Logic programming in intuitionistic linear logic: theory, design, and implementation , 1995 .