[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 …
distinguishing between input and output arguments. Relational programs are remarkably …
miniKanren, live and untagged: Quine generation via relational interpreters (programming pearl)
We present relational interpreters for several subsets of Scheme, written in the pure logic
programming language miniKanren. We demonstrate these interpreters running" …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
miniKanren with disequality constraints) in Haskell. Apart from handling types, our dialect …