中文
相关论文

相关论文: Typed Embedding of a Relational Language in OCaml

200 篇论文

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 extends standard relational combinator repertoire with…

编程语言 · 计算机科学 2024-09-02 Nikolai Kudasov , Artem Starikov

We present a miniKanren-based type inferencer for an educational programming language with first-class functions, S-expressions, and pattern-matching. The language itself is untyped which adds a certain specificity to the problem and…

编程语言 · 计算机科学 2024-09-02 Eridan Domoratskiy , Dmitry Boulytchev

We present Walrus, a functional relational programming language embedded in Haskell that extends the miniKanren model with type-polymorphic unification, on-demand laziness, and a range of usability features aimed at practical development.…

编程语言 · 计算机科学 2025-10-30 Santiago Cuéllar , Naomi Spargo , Jonathan Daugherty , David Darais

Relational programming enables program synthesis through a verifier-to-solver approach. An earlier paper introduced a functional conversion that mitigated some of the inherent performance overhead. However, the conversion was inelegant: it…

编程语言 · 计算机科学 2025-11-04 Igor Engel , Ekaterina Verbitskaia

This work presents a new approach for implementing polymorphism for bottom-up relational languages, without monomorphization. We begin by introducing semiringKanren, a bottom-up weighted relational programming language. We extend this base…

编程语言 · 计算机科学 2026-05-18 Dmitri Volkov

We propose semiringKanren, a relational programming language where each relation expression denotes a semiring array. We formalize a type system that restricts the arrays to finite size. We then define a semantics that is parameterized by…

编程语言 · 计算机科学 2025-09-29 Dmitri Volkov , Yafei Yang , Chung-chieh Shan

Over the past decade, reactive frameworks and languages have become the dominant programming paradigm in front-end web development. In this paradigm, user actions change application state, and those changes propagate reactively to derived…

编程语言 · 计算机科学 2024-09-02 Evan Donahue

Polymorphic variants are a useful feature of the OCaml language whose current definition and implementation rely on kinding constraints to simulate a subtyping relation via unification. This yields an awkward formalization and results in a…

编程语言 · 计算机科学 2016-07-06 Giuseppe Castagna , Tommaso Petrucciani , Kim Nguyen

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…

编程语言 · 计算机科学 2020-09-18 Dmitry Rozplokhas , Andrey Vyatkin , Dmitry Boulytchev

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…

编程语言 · 计算机科学 2022-03-07 Dmitry Rozplokhas , Dmitry Boulytchev

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…

编程语言 · 计算机科学 2021-09-08 Ekaterina Verbitskaia , Daniil Berezun , Dmitry Boulytchev

We present {Kanren} (read: set-Kanren), an extension to miniKanren with constraints for reasoning about sets and association lists. {Kanren} includes first-class set objects, a functionally complete family of set-theoretic constraints…

编程语言 · 计算机科学 2025-10-06 Rafaello Sanna , William E. Byrd , Nada Amin

We present a study of unification for rational trees in the context of miniKanren. We give the definition of rational trees, specify the unification algorithm and prove some of its properties. We also introduce a number of heuristic…

计算机科学中的逻辑 · 计算机科学 2025-10-07 Eridan Domoratskiy , Dmitrii Kosarev , Dmitry Boulytchev

Linear type systems have a long and storied history, but not a clear path forward to integrate with existing languages such as OCaml or Haskell. In this paper, we study a linear type system designed with two crucial properties in mind:…

编程语言 · 计算机科学 2017-11-09 Jean-Philippe Bernardy , Mathieu Boespflug , Ryan R. Newton , Simon Peyton Jones , Arnaud Spiwack

In this article, we give a brief overview of the current state and future potential of symbolic computation within the Python statistical modeling and machine learning community. We detail the use of miniKanren as an underlying framework…

编程语言 · 计算机科学 2020-06-01 Brandon T. Willard

OCaml is an industrial-strength, multi-paradigm programming language, widely used in industry and academia. OCaml is also one of the few modern managed system programming languages to lack support for shared memory parallel programming.…

Pattern-matching programming is an example of a rule-based programming style developed in functional languages. This programming style is intensively used in dialects of ML but is restricted to algebraic data-types. This restriction limits…

编程语言 · 计算机科学 2009-12-25 Julien Cohen

Instead of a monolithic programming language trying to cover all features of interest, some programming systems are designed by combining together simpler languages that cooperate to cover the same feature space. This can improve usability…

编程语言 · 计算机科学 2018-04-13 Gabriel Scherer , Max New , Nick Rioux , Amal Ahmed

We present modular implicits, an extension to the OCaml language for ad-hoc polymorphism inspired by Scala implicits and modular type classes. Modular implicits are based on type-directed implicit module parameters, and elaborate…

编程语言 · 计算机科学 2015-12-08 Leo White , Frédéric Bour , Jeremy Yallop

Haskell is a popular choice for hosting deeply embedded languages. A recurring challenge for these embeddings is how to seamlessly integrate user defined algebraic data types. In particular, one important, convenient, and expressive feature…

编程语言 · 计算机科学 2022-08-01 Trevor L. McDonell , Joshua D. Meredith , Gabriele Keller
‹ 上一页 1 2 3 10 下一页 ›