Free the Conqueror! (Refactoring divide-and-conquer functions)
summary
A refactoring pipeline statically finds divide‑and‑conquer candidates and applies a sequence of semantics‑preserving transformations to reach a divide-and-conquer canonical form and finally replace ad hoc recursion with a higher‑order DC call. Implementations live in RefactorErl (part of the paraphrase project) for Erlang; examples include turning a hand‑written mergesort and minimax variants into DC-based code. Some transforms are implemented and working, others are partial, and layout and comments are preserved where possible.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:10What is divideandconquer
- 2:05Pseudocode
- 2:38Highorder functions
- 3:19Motivation
- 4:23Example code
- 5:14ScalingHLP
- 6:04Sequential implementation
- 6:29Limit parallelism
- 8:03The central
- 8:18Standard refactorings
- 8:47Transformations
- 10:06What is a DC
- 11:45Minimax example
- 14:22Group creates branches
- 16:07Introduce function
- 16:22Minimax
- 16:41Conclusion
related talks
49mMetaphorisms Deriving Divide and Conquer Recursive Programs
34mDiscovering Parallel Pattern Candidates
01h 04mRefactoring Is Not Just Clickbait
01h 03mRefactoring Recursion
50mDomain-Driven Transformation
40mConquering Complexity: Refactoring JavaScript Projects
57mUnlocking The Awesome Power of Refactoring
45mConquering complexity: refactoring JavaScript projects
