当前位置:
X-MOL 学术
›
arXiv.cs.PL
›
论文详情
Our official English website, www.x-mol.net, welcomes your
feedback! (Note: you will need to create a separate account there.)
Memoized Pull-Tabbing for Functional Logic Programming
arXiv - CS - Programming Languages Pub Date : 2020-08-27 , DOI: arxiv-2008.11999 Michael Hanus, Finn Teegen
arXiv - CS - Programming Languages Pub Date : 2020-08-27 , DOI: arxiv-2008.11999 Michael Hanus, Finn Teegen
Pull-tabbing is an evaluation technique for functional logic programs which
computes all non-deterministic results in a single graph structure. Pull-tab
steps are local graph transformations to move non-deterministic choices towards
the root of an expression. Pull-tabbing is independent of a search strategy so
that different strategies (depth-first, breadth-first, parallel) can be used to
extract the results of a computation. It has been used to compile functional
logic languages into imperative or purely functional target languages. Pull-tab
steps might duplicate choices in case of shared subexpressions. This could
result in a dramatic increase of execution time compared to a backtracking
implementation. In this paper we propose a refinement which avoids this
efficiency problem while keeping all the good properties of pull-tabbing. We
evaluate a first implementation of this improved technique in the Julia
programming language.
中文翻译:
用于功能逻辑编程的记忆化拉标签
Pull-tabbing 是一种用于功能逻辑程序的评估技术,它在单个图形结构中计算所有非确定性结果。拉选项卡步骤是局部图形转换,用于将非确定性选择移向表达式的根。Pull-tabbing 独立于搜索策略,因此可以使用不同的策略(深度优先、广度优先、并行)来提取计算结果。它已被用于将函数式逻辑语言编译成命令式或纯函数式目标语言。在共享子表达式的情况下,拉选项卡步骤可能会重复选择。与回溯实现相比,这可能会导致执行时间显着增加。在本文中,我们提出了一种改进方法,可以在保持拉动标签的所有良好特性的同时避免这种效率问题。
更新日期:2020-08-28
中文翻译:
用于功能逻辑编程的记忆化拉标签
Pull-tabbing 是一种用于功能逻辑程序的评估技术,它在单个图形结构中计算所有非确定性结果。拉选项卡步骤是局部图形转换,用于将非确定性选择移向表达式的根。Pull-tabbing 独立于搜索策略,因此可以使用不同的策略(深度优先、广度优先、并行)来提取计算结果。它已被用于将函数式逻辑语言编译成命令式或纯函数式目标语言。在共享子表达式的情况下,拉选项卡步骤可能会重复选择。与回溯实现相比,这可能会导致执行时间显着增加。在本文中,我们提出了一种改进方法,可以在保持拉动标签的所有良好特性的同时避免这种效率问题。