Typed Embedding of a Relational Language in OCaml

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 polymorphic unification, which can be used to unify data structures of arbitrary types. In addition we provide a useful generic p...

Full description

Bibliographic Details
Main Authors: Dmitrii Kosarev, Dmitry Boulytchev
Format: Article
Language:English
Published: Open Publishing Association 2018-12-01
Series:Electronic Proceedings in Theoretical Computer Science
Online Access:http://arxiv.org/pdf/1805.11006v1
id doaj-464c9cdaf8f74b2b855817f105f9880c
record_format Article
spelling doaj-464c9cdaf8f74b2b855817f105f9880c2020-11-25T02:18:59ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802018-12-01285Proc. ML/OCAML 201612210.4204/EPTCS.285.1:2Typed Embedding of a Relational Language in OCamlDmitrii Kosarev0Dmitry Boulytchev1 Saint Petersburg State University Saint Petersburg State University 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 polymorphic unification, which can be used to unify data structures of arbitrary types. In addition we provide a useful generic programming pattern to systematically develop relational specifications in a typed manner, and address the problem of integration of relational subsystems into functional applications.http://arxiv.org/pdf/1805.11006v1
collection DOAJ
language English
format Article
sources DOAJ
author Dmitrii Kosarev
Dmitry Boulytchev
spellingShingle Dmitrii Kosarev
Dmitry Boulytchev
Typed Embedding of a Relational Language in OCaml
Electronic Proceedings in Theoretical Computer Science
author_facet Dmitrii Kosarev
Dmitry Boulytchev
author_sort Dmitrii Kosarev
title Typed Embedding of a Relational Language in OCaml
title_short Typed Embedding of a Relational Language in OCaml
title_full Typed Embedding of a Relational Language in OCaml
title_fullStr Typed Embedding of a Relational Language in OCaml
title_full_unstemmed Typed Embedding of a Relational Language in OCaml
title_sort typed embedding of a relational language in ocaml
publisher Open Publishing Association
series Electronic Proceedings in Theoretical Computer Science
issn 2075-2180
publishDate 2018-12-01
description 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 polymorphic unification, which can be used to unify data structures of arbitrary types. In addition we provide a useful generic programming pattern to systematically develop relational specifications in a typed manner, and address the problem of integration of relational subsystems into functional applications.
url http://arxiv.org/pdf/1805.11006v1
work_keys_str_mv AT dmitriikosarev typedembeddingofarelationallanguageinocaml
AT dmitryboulytchev typedembeddingofarelationallanguageinocaml
_version_ 1724879383030661120