6533b832fe1ef96bd129ac35

RESEARCH PRODUCT

Multi-pass execution of functional logic programs

Jukka Paakki

subject

Scheme (programming language)Theoretical computer scienceComputer scienceSemantics (computer science)Programming languageStatic analysiscomputer.software_genrePartition (database)Operational semanticsTree (data structure)Tree traversalRule-based machine translationcomputercomputer.programming_language

description

An operational semantics for functional logic programs is presented. In such programs functional terms provide for reduction of expressions, provided that they ground. The semantics is based on multi-pass evaluation techniques originally developed for attribute grammars. Program execution is divided into two phases: (1) construction of an incomplete proof tree, and (2) its decoration into a complete proof tree. The construction phase applies a modified SLD-resolution scheme, and the decoration phase a partial (multi-pass) traversal over the tree. The phase partition is generated by static analysis where data dependencies are extracted for the functional elements of the program. The method guarantees that all the functional terms of a program can be evaluated, and no dynamic groundness checks are needed.

https://doi.org/10.1145/174675.177965