Skip to main content

Showing 1–7 of 7 results for author: Boulytchev, D

Searching in archive cs. Search in all archives.
.
  1. Reimplementing the Wheel: Teaching Compilers with a Small Self-Contained One

    Authors: Daniil Berezun, Dmitry Boulytchev

    Abstract: We report on a one-semester compiler construction course based on the idea of implementing a small self-contained compiler for a small model language from scratch, not using other compiler construction frameworks. The course is built around an evolving family of languages with increasing expressiveness and complexity, which finally is crowned by a language with first-class functions, S-expressions… ▽ More

    Submitted 26 July, 2022; originally announced July 2022.

    Comments: In Proceedings TFPIE 2021/22, arXiv:2207.11600

    Journal ref: EPTCS 363, 2022, pp. 22-43

  2. arXiv:2202.08511  [pdf, other

    cs.PL

    Scheduling Complexity of Interleaving Search

    Authors: Dmitry Rozplokhas, Dmitry Boulytchev

    Abstract: miniKanren is a lightweight embedded language for logic and relational programming. Many of its useful features come from a distinctive search strategy, called interleaving search. However, with interleaving search conventional ways of reasoning about the complexity and performance of logical programs become irrelevant. We identify an important key component -- scheduling -- which makes the reason… ▽ More

    Submitted 4 March, 2022; v1 submitted 17 February, 2022; originally announced February 2022.

  3. An Empirical Study of Partial Deduction for miniKanren

    Authors: Ekaterina Verbitskaia, Daniil Berezun, Dmitry Boulytchev

    Abstract: We study conjunctive partial deduction, an advanced specialization technique aimed at improving the performance of logic programs, in the context of relational programming language miniKanren. We identify a number of issues, caused by miniKanren peculiarities, and describe a novel approach to specialization based on partial deduction and supercompilation. The results of the evaluation demonstrate… ▽ More

    Submitted 6 September, 2021; originally announced September 2021.

    Comments: In Proceedings VPT 2021, arXiv:2109.02001

    Journal ref: EPTCS 341, 2021, pp. 73-94

  4. arXiv:2106.01250  [pdf, ps, other

    cs.PL

    Generic Programming with Combinators and Objects

    Authors: Dmitrii Kosarev, Dmitry Boulytchev

    Abstract: We present a generic programming framework for OCAML which makes it possible to implement extensible transformations for a large scale of type definitions. Our framework makes use of objectoriented features of OCAML, utilising late binding to override the default behaviour of generated transformations. The support for polymorphic variant types complements the ability to describe composable data ty… ▽ More

    Submitted 2 June, 2021; originally announced June 2021.

  5. arXiv:2005.01018  [pdf, ps, other

    cs.PL

    Certified Semantics for Relational Programming

    Authors: Dmitry Rozplokhas, Andrey Vyatkin, Dmitry Boulytchev

    Abstract: We present a formal study of semantics for the relational programming language miniKanren. First, we formulate a denotational semantics which corresponds to the minimal Herbrand model for definite logic programs. Second, we present operational semantics which models interleaving, the distinctive feature of miniKanren implementation, and prove its soundness and completeness w.r.t. the denotational… ▽ More

    Submitted 16 September, 2020; v1 submitted 3 May, 2020; originally announced May 2020.

  6. Typed Embedding of a Relational Language in OCaml

    Authors: Dmitrii Kosarev, Dmitry Boulytchev

    Abstract: 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 addres… ▽ More

    Submitted 30 December, 2018; v1 submitted 28 May, 2018; originally announced May 2018.

    Comments: In Proceedings ML/OCAML 2016, arXiv:1812.10891

    Journal ref: EPTCS 285, 2018, pp. 1-22

  7. arXiv:1802.01930  [pdf, ps, other

    cs.PL

    Code Reuse With Transformation Objects

    Authors: Dmitri Boulytchev

    Abstract: We present an approach for a lightweight datatype-generic programming in Objective Caml programming language aimed at better code reuse. We show, that a large class of transformations usually expressed via recursive functions with pattern matching can be implemented using the single per-type traversal function and the set of object-encoded transformations, which we call transformation objects. Obj… ▽ More

    Submitted 6 February, 2018; originally announced February 2018.

    Comments: 21 pages