10 citations · 45 across the 26 of their papers we have counts for
23 papers · 1 filter
Let a Thousand Flowers Bloom: An Algebraic Representation for Edge Graphs
Jack Liell-Cock, Tom Schrijvers
Context: Edge graphs are graphs whose edges are labelled with identifiers, and nodes can have multiple edges between them. They are used to model a wide range of systems, including…
From High to Low: Simulating Nondeterminism and State with State
Wenhao Tang, Tom Schrijvers
Some effects are considered to be higher-level than others. High-level effects provide expressive and succinct abstraction of programming concepts, while low-level effects allow mo…
Automatic Differentiation in Prolog
Tom Schrijvers, Birthe van den Berg, Fabrizio Riguzzi
Automatic differentiation (AD) is a range of algorithms to compute the numeric value of a function's (partial) derivative, where the function is typically given as a computer progr…
A Calculus for Scoped Effects & Handlers
Roger Bosman, Birthe van den Berg, Wenhao Tang +1
Algebraic effects & handlers have become a standard approach for side-effects in functional programming. Their modular composition with other effects and clean separation of syntax…
A Framework for Higher-Order Effects & Handlers
Birthe van den Berg, Tom Schrijvers
Algebraic effects & handlers are a modular approach for modeling side-effects in functional programming. Their syntax is defined in terms of a signature of effectful operations, en…
Forward- or Reverse-Mode Automatic Differentiation: What's the Difference?
Birthe van den Berg, Tom Schrijvers, James McKinna +1
Automatic differentiation (AD) has been a topic of interest for researchers in many disciplines, with increased popularity since its application to machine learning and neural netw…
Structured Handling of Scoped Effects: Extended Version
Zhixuan Yang, Marco Paviotti, Nicolas Wu +2
Algebraic effects offer a versatile framework that covers a wide variety of effects. However, the family of operations that delimit scopes are not algebraic and are usually modelle…
Latent Effects for Reusable Language Components: Extended Version
Birthe van den Berg, Tom Schrijvers, Casper Bach-Poulsen +1
The development of programming languages can be quite complicated and costly. Hence, much effort has been devoted to the modular definition of language features that can be reused…
Disjunctive Delimited Control
Alexander Vandenbroucke, Tom Schrijvers
Delimited control is a powerful mechanism for programming language extension which has been recently proposed for Prolog (and implemented in SWI-Prolog). By manipulating the contro…
Resolution as Intersection Subtyping via Modus Ponens
Koar Marntirosian, Tom Schrijvers, Bruno C. d. S. Oliveira +1
Resolution and subtyping are two common mechanisms in programming languages. Resolution is used by features such as type classes or Scala-style implicits to synthesize values autom…
Disjunctive Delimited Control
Alexander Vandenbroucke, Tom Schrijvers
Delimited control is a powerful mechanism for programming language extension which has been recently proposed for Prolog (and implemented in SWI-Prolog). By manipulating the contro…
Explicit Effect Subtyping
Georgios Karachalias, Matija Pretnar, Amr Hany Saleh +2
As popularity of algebraic effects and handlers increases, so does a demand for their efficient execution. Eff, an ML-like language with native support for handlers, has a subtypin…
PaSe: An Extensible and Inspectable DSL for Micro-Animations
Ruben P. Pieters, Tom Schrijvers
This paper presents PaSe, an extensible and inspectable DSL embedded in Haskell for expressing micro-animations. The philosophy of PaSe is to compose animations based on sequential…
Coherence of Type Class Resolution
Gert-Jan Bottu, Ningning Xie, Koar Marntirosian +1
Elaboration-based type class resolution, as found in languages like Haskell, Mercury and PureScript, is generally nondeterministic: there can be multiple ways to satisfy a wanted c…
Lazy Stream Programming in Prolog
Paul Tarau, Jan Wielemaker, Tom Schrijvers
In recent years, stream processing has become a prominent approach for incrementally handling large amounts of data, with special support and libraries in many programming language…
Bidirectional Type Class Instances (Extended Version)
Koen Pauwels, Georgios Karachalias, Michiel Derhaeg +1
GADTs were introduced in Haskell's eco-system more than a decade ago, but their interaction with several mainstream features such as type classes and functional dependencies has a…
Tabling with Sound Answer Subsumption
Alexander Vandenbroucke, Maciej Piróg, Benoit Desouter +1
Tabling is a powerful resolution mechanism for logic programs that captures their least fixed point semantics more faithfully than plain Prolog. In many tabling applications, we ar…
Integrating Datalog and Constraint Solving
Benoit Desouter, Tom Schrijvers
LP is a common formalism for the field of databases and CSP, both at the theoretical level and the implementation level in the form of Datalog and CLP. In the past, close correspon…
Extended Report: The Implicit Calculus
Bruno C. d. S. Oliveira, Tom Schrijvers, Wontae Choi +2
Generic programming (GP) is an increasingly important trend in programming languages. Well-known GP mechanisms, such as type classes and the C++0x concepts proposal, usually combin…
Approximating Constraint Propagation in Datalog
Dario Campagna, Beata Sarna-Starosta, Tom Schrijvers
We present a technique exploiting Datalog with aggregates to improve the performance of programs with arithmetic (in)equalities. Our approach employs a source-to-source program tra…
As time goes by: Constraint Handling Rules - A survey of CHR research from 1998 to 2007
Jon Sneyers, Peter Van Weert, Tom Schrijvers +1
Constraint Handling Rules (CHR) is a high-level programming language based on multi-headed multiset rewrite rules. Originally designed for writing user-defined constraint solvers,…
TCHR: a framework for tabled CLP
Tom Schrijvers, Bart Demoen, David S. Warren
Tabled Constraint Logic Programming is a powerful execution mechanism for dealing with Constraint Logic Programming without worrying about fixpoint computation. Various application…
Improving PARMA Trailing
Tom Schrijvers, Maria Garcia de la Banda, Bart Demoen +1
Taylor introduced a variable binding scheme for logic variables in his PARMA system, that uses cycles of bindings rather than the linear chains of bindings used in the standard WAM…