Download PDFOpen PDF in browser

A rewrite-based computational model for functional logic programming

12 pagesPublished: March 27, 2016

Abstract

Functional logic programming extends the functional programming style with two important features: the possibility to define nondeterministic operations with overlapping rules, and the usage of logic variables in both defining rules and expressions to evaluate. Conditional constructor-based term rewrite systems (CB-CTRSs) emerged as a suitable model for functional logic programs, because they can be easily transformed into an equivalent program in a core language where computations can be performed more efficiently.

We consider a recent proposal by Antoy and Hanus, of translating CB-CTRSs into an equivalent class of programs where computation can be performed by mere rewriting. His computational model has the limitation of computing only ground answer substitutions for equations with strict semantics interpreted as joinability to a value.

We propose two adjustments of their computational models, which are capable to compute non-ground answers.

Keyphrases: completeness, functional logic programming, narrowing, soundness, strategies

In: James H. Davenport and Fadoua Ghourabi (editors). SCSS 2016. 7th International Symposium on Symbolic Computation in Software Science, vol 39, pages 95-106.

BibTeX entry
@inproceedings{SCSS2016:rewrite_based_computational_model,
  author    = {Mircea Marin and Temur Kutsia and Besik Dundua},
  title     = {A rewrite-based computational model for functional logic programming},
  booktitle = {SCSS 2016. 7th International Symposium on  Symbolic Computation in Software Science},
  editor    = {James H. Davenport and Fadoua Ghourabi},
  series    = {EPiC Series in Computing},
  volume    = {39},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/KJr},
  doi       = {10.29007/3ks9},
  pages     = {95-106},
  year      = {2016}}
Download PDFOpen PDF in browser