[HTML][HTML] Relational programming in miniKanren: techniques, applications, and implementations

WE Byrd - 2009 - search.proquest.com
The promise of logic programming is that programs can be written relationally, without
distinguishing between input and output arguments. Relational programs are remarkably …

miniKanren, live and untagged: Quine generation via relational interpreters (programming pearl)

WE Byrd, E Holk, DP Friedman - … of the 2012 Annual Workshop on …, 2012 - dl.acm.org
We present relational interpreters for several subsets of Scheme, written in the pure logic
programming language miniKanren. We demonstrate these interpreters running" …

Typed embedding of a relational language in OCaml

D Kosarev, D Boulytchev - arXiv preprint arXiv:1805.11006, 2018 - arxiv.org
We present an implementation of the relational programming language miniKanren as a set
of combinators and syntax extensions for OCaml. The key feature of our approach is …

Compiled, Extensible, Multi-language DSLs (Functional Pearl)

M Ballantyne, M Gamburg, J Hemann - Proceedings of the ACM on …, 2024 - dl.acm.org
Implementations of domain-specific languages should offer both extensibility and
performance optimizations. With the new syntax-spec metalanguage in Racket …

A framework for extending microKanren with constraints

J Hemann, DP Friedman - arXiv preprint arXiv:1701.00633, 2017 - arxiv.org
We present a framework for building CLP languages with symbolic constraints based on
microKanren, a domain-specific logic language shallowly embedded in Racket. We rely on …

Improving refutational completeness of relational search via divergence test

D Rozplokhas, D Boulytchev - … of the 20th International Symposium on …, 2018 - dl.acm.org
We describe a search optimization technique for implementation of relational programming
language miniKanren which makes more queries converge. Specifically, we address the …

Declarative modeling of finite mathematics

P Tarau - Proceedings of the 12th international ACM SIGPLAN …, 2010 - dl.acm.org
A common foundation of finite arithmetic, hereditarily finite sets and sequences, binary trees
and graphs is described as a progressive refinement of Haskell type classes. We derive as …

On computing with types

P Tarau, D Haraburda - Proceedings of the 27th Annual ACM …, 2012 - dl.acm.org
We express in terms of binary trees seen as Gödel System T types (with the empty type as
the only primitive type) arithmetic computations within time and space bounds comparable to …

[PDF][PDF] klogic: miniKanren in Kotlin

Y Kamenev, D Kosarev, D Ivanov… - … papers presented at …, 2023 - toolchain-labs.com
There are plenty of relational libraries for JVM languages, eg for Scala (Scalogno [1]) and
Core. Logic. However, according to TIOBE [2], Kotlin is the most popular JVM language …

typedKanren: Statically Typed Relational Programming with Exhaustive Matching in Haskell

N Kudasov, A Starikov - arXiv preprint arXiv:2408.03170, 2024 - arxiv.org
We present a statically typed embedding of relational programming (specifically a dialect of
miniKanren with disequality constraints) in Haskell. Apart from handling types, our dialect …