Conversion to Tail Recursion in Term Rewriting

Abstract

NOTICE: this is the author’s version of a work that was accepted for publication in "Journal of Logic and Algebraic Programming". Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Journal of Logic and Algebraic Programming , vol. 83 issue 1, 2014 DOI 10.1016/j.jlap.2013.07.001Tail recursive functions are a special kind of recursive functions where the last action in their body is the recursive call. Tail recursion is important for a number of reasons (e.g., they are usually more efficient). In this article, we introduce an automatic transformation of first-order functions into tail recursive form. Functions are defined using a (first-order) term rewrite system. We prove the correctness of the transformation for constructor-based reduction over constructor systems (i.e., typical first-order functional programs). © 2013 Elsevier Inc. All rights reservedThis work has been partially supported by the Spanish Ministerio de Ciencia e Innovacion (Secretaria de Estado de Investigation) under grant TIN2008-06622-C03-02, by the Generalitat Valenciana under grant PROMETEO/2011/052, and by MEXT KAKENHI #21700011.Nishida, N.; Vidal Oriola, GF. (2014). Conversion to Tail Recursion in Term Rewriting. Journal of Logic and Algebraic Programming. 83(1):53-63. https://doi.org/10.1016/j.jlap.2013.07.001S536383

    Similar works

    Full text

    thumbnail-image

    Available Versions