Семинар по типобезопасному встраиванию реляционного языка

Семинар по типобезопасному встраиванию реляционного языка

OCanren [1] -- это библиотека для встраивания реляционного языка программирования miniKanren в OCaml. OCanren предоставляет типобезопасный интерфейс для создания логических значений, проведения вычислений и получения ответов на запросы к реляционной программе. Ключевой особенностью является полиморфная унификация - единый примитив для осуществления унификации логических значений. Первая наивная реализация унификации была типобезопасной, но вносила некоторые накладные расходы при создании термов, которые проявлялись при унификации. Таким образом полученная реализация работала несколько медленнее, чем эталонная реализация (microKanren [2]) на Scheme. В дальнейшем представление термов было изменено, вследствие чего накладные расходы на типобезопасное представление логических значений исчезли. В докладе будет рассказано про особенности представления термов при полиморфной унификации, в чем заключались накладные расходы на представление логических значений, и показаны изменения в реализации, которые решили проблемы с производительностью унификации.

Материалы к докладу:

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

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

Докладчик: Дмитрий Косарев

17.04.2017, 17:15.

Место: ауд. 3248, мат-мех. факультет СПбГУ, Старый Петергоф, Университетский пр-т, д. 28