当前位置: 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

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
down
wechat
bug