Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2245276.2232088acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Regular corecursion in Prolog

Published: 26 March 2012 Publication History

Abstract

Co-recursion is the ability of defining a function that produces some infinite data in terms of the function and the data itself, and is typically supported by languages with lazy evaluation. However, in languages as Haskell strict operations fail to terminate even on infinite regular data.
Regular co-recursion is naturally supported by co-inductive Prolog, an extension where predicates can be interpreted either inductively or co-inductively, that has proved to be useful for formal verification, static analysis and symbolic evaluation of programs.
In this paper we propose two main alternative vanilla meta-interpreters to support regular co-recursion in Prolog as an interesting programming style in its own right, able to elegantly solve problems that would require more complex code if conventional recursion were used. In particular, the second meta-interpreters avoids non termination in several cases, by restricting the set of possible answers.
The semantics defined by these vanilla meta-interpreters are an interesting starting point to study new semantics able to support regular co-recursion for non logical languages.

References

[1]
D. Ancona, A. Corradi, G. Lagorio, and F. Damiani. Abstract compilation of object-oriented languages into coinductive CLP(X): can type inference meet verification? In FoVeOOS 2010, LNCS. Springer, 2011.
[2]
D. Ancona and G. Lagorio. Coinductive type systems for object-oriented languages. In ECOOP 2009, LNCS, Springer, 2009. Best paper prize.
[3]
D. Ancona and G. Lagorio. Idealized coinductive type systems for imperative object-oriented programs. RAIRO - Theoretical Informatics and Applications, 45(1), 2011.
[4]
J. Barwise and L. Moss. Vicious circles: On the mathematics of non-wellfounded phnenomena. J. of Logic, Lang. and Inf., 6, 1997.
[5]
N. Ghani, M. Hamana, T. Uustalu, and V. Vene. Representing cyclic structures as nested datatypes. In TFP, 2006.
[6]
H.-F. Guo and G. Gupta. A simple scheme for implementing tabled logic programming systems based on dynamic reordering of alternatives. In ICLP, 2001.
[7]
X. Leroy and H. Grall. Coinductive big-step operational semantics. Inf. Comput., 207(2), 2009.
[8]
R. Min and G. Gupta. Coinductive logic programming and its application to boolean sat. In FLAIRS Conference, 2009.
[9]
R. Min and G. Gupta. Coinductive logic programming with negation. In LOPSTR, 2009.
[10]
N. Saeedloei and G. Gupta. Verifying complex continuous real-time systems with coinductive CLP(R). In LATA 2010, LNCS. Springer, 2010.
[11]
L. Simon. Extending logic programming with coinduction. PhD thesis, University of Texas at Dallas, 2006.
[12]
L. Simon, A. Bansal, A. Mallya, and G. Gupta. Co-logic programming: Extending logic programming with coinduction. In ICALP 2007, 2007.
[13]
L. Simon, A. Mallya, A. Bansal, and G. Gupta. Coinductive logic programming. In ICLP 2006, 2006.
[14]
F. A. Turbak and J. B. Wells. Cycle therapy: A prescription for fold and unfold on regular trees. In PPDP, 2001.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '12: Proceedings of the 27th Annual ACM Symposium on Applied Computing
March 2012
2179 pages
ISBN:9781450308571
DOI:10.1145/2245276
  • Conference Chairs:
  • Sascha Ossowski,
  • Paola Lecca
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 March 2012

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

SAC 2012
Sponsor:
SAC 2012: ACM Symposium on Applied Computing
March 26 - 30, 2012
Trento, Italy

Acceptance Rates

SAC '12 Paper Acceptance Rate 270 of 1,056 submissions, 26%;
Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Regular corecursion in PrologComputer Languages, Systems and Structures10.1016/j.cl.2013.05.00139:4(142-162)Online publication date: 20-Dec-2018
  • (2017)Generalizing Inference Systems by CoaxiomsProgramming Languages and Systems10.1007/978-3-662-54434-1_2(29-55)Online publication date: 19-Mar-2017
  • (2013)A Portable and Efficient Implementation of Coinductive Logic ProgrammingProceedings of the 15th International Symposium on Practical Aspects of Declarative Languages - Volume 775210.1007/978-3-642-45284-0_6(77-92)Online publication date: 21-Jan-2013
  • (2012)Corecursive Featherweight JavaProceedings of the 14th Workshop on Formal Techniques for Java-like Programs10.1145/2318202.2318205(3-10)Online publication date: 12-Jun-2012

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media