Seminar on Typed Embedding of a Relational Language

Seminar on Typed Embedding of a Relational Language

Ocanren [1] is a library, which embeds relational programming language in OCaml. It provides a type-safe interface for creating logic values, running computations and querying relational programs. The main feature of OCanren is polymorphic unification - the single primitive, which performs unification of two logic values. The first naive implementation was type-safe, but it introduced some abstraction cost for logic values. It is the main reason why current implementation was slower, that minimal implementation of miniKanren (called microKanren [2]) in Scheme. Later the abstraction cost for a value representation was removed. In the talk we will discuss the peculiarities of term representation, the origins of abstraction cost and the techniques, which made the unification faster.

Supplementary materials:

[1] https://github.com/dboulytchev/OCanren

[2] http://webyrd.net/scheme-2013/papers/HemannMuKanre...

Presenter: Dmitry Kosarev

Date: April 17, 2017

Time: 17:15

Venue: room 3248, Faculty of Mathematics and Mechanics, Saint Petersburg State University, Stary Peterhof, Universitetski pr., 28