Semi-Automated Direction-Driven Functional Conversion
summary
A semi-automated pipeline converts miniKanren relations into functional code that preserves search completeness by normalizing goals, running mode analysis to order conjuncts, and emitting stream-based code with user-supplied generator arguments for free variables. An intermediate language maps relational binds and sums to monadic stream operations, and a translator emits Haskell/OCaml code. Evaluations show multi-fold improvements—roughly 2× on logic-form generation and up to 200× speedup on multiplication in one direction—while work continues on determinism checks and partial deduction.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:07Relational programming benefits
- 6:07Motivation for conversion
- 7:14Conversion examples and goals
- 15:32Conversion scheme overview
- 17:41Mode analysis and ordering
- 28:47Eager’s translation
- 31:16Generating functional code
- 32:02Performance evaluation
- 35:01Conclusion and future work
- 35:48Q&A
related talks
43mAn Imperishable Wonderland of Infinite Fun
46mminiKanren
50mFrom Javascript to Haskell : Functional Programming made simple
01h 01mLearning Propositional Logic with Logic Programming
48mDiagrammatic Execution Models for Functional Languages
49mFunctional Design Explained
26mtypedKanren: Statically Typed Relational Programming with Exhaustive Matching in(…)
58mKeynote: Why Functional Programming Matters
