2018
DOI: 10.1016/j.future.2017.07.024
|View full text |Cite
|
Sign up to set email alerts
|

Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification

Abstract: Please cite this article as: A.D. Barwell, C. Brown, K. Hammond, Finding parallel functional pearls: Automatic parallel recursion scheme detection in Haskell functions via anti-unification, Future Generation Computer Systems (2017), http://dx. AbstractThis paper describes a new technique for identifying potentially parallelisable code structures in functional programs. Higher-order functions enable simple and easily understood abstractions that can be used to implement a variety of common recursion schemes, su… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
7
0

Year Published

2018
2018
2024
2024

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 13 publications
(7 citation statements)
references
References 38 publications
0
7
0
Order By: Relevance
“…The algorithms described in all of these works can be used to compute what we will call ⊑-common generalizations below in the present paper. Although none of these works develop a general (non-equational) taxonomy allowing to extend the results beyond that simple setting, nor discusses variable-or injectivity-based variants of antiunification operators, their usages do point out other interesting (and recent) applications of anti-unification when focused on unordered goals, namely detection of recursion schemes in functional programs (as explained in [2]) and techniques for learning bugfixes from software code repositories (an example being [27]).…”
Section: Motivation and Objectivesmentioning
confidence: 99%
“…The algorithms described in all of these works can be used to compute what we will call ⊑-common generalizations below in the present paper. Although none of these works develop a general (non-equational) taxonomy allowing to extend the results beyond that simple setting, nor discusses variable-or injectivity-based variants of antiunification operators, their usages do point out other interesting (and recent) applications of anti-unification when focused on unordered goals, namely detection of recursion schemes in functional programs (as explained in [2]) and techniques for learning bugfixes from software code repositories (an example being [27]).…”
Section: Motivation and Objectivesmentioning
confidence: 99%
“…Anti-unification [12,14] is a logicbased method for computing generalizations. Being originally used for inductive and analogical reasoning, some recent applications include recursion scheme detection in functional programs [4], programming by examples in domainspecific languages [13], learning bug-fixing from software code repositories [3,15], automatic program repair [7], preventing bugs and misconfiguration in services [11], linguistic structure learning for chatbots [6], to name just a few.…”
Section: Introductionmentioning
confidence: 99%
“…Anti-unification (generalization), first introduced in the 1970's by Plotkin and Reynolds [22,23], is a process that derives from a set of symbolic expressions a new symbolic expression possessing certain commonalities shared between its members. The concept has been apply to inductive theorem proving based on tree grammars [3], recursion scheme detection in functional programs [6], inductive synthesis of recursive functions [24], learning fixes from software code repositories [16,4], preventing bugs and misconfiguration [19], as well as uses within the fields of natural language processing and linguistics [17,2]. Applications, most related to our work are proof generalization [20] and higher-order term indexing [21], which use anti-unification over typed λ-terms and their extensions [5].…”
Section: Introductionmentioning
confidence: 99%