Domain-specific Languages in a Finite Domain Constraint Programming System

08/30/2011
by   Markus Triska, et al.
0

In this paper, we present domain-specific languages (DSLs) that we devised for their use in the implementation of a finite domain constraint programming system, available as library(clpfd) in SWI-Prolog and YAP-Prolog. These DSLs are used in propagator selection and constraint reification. In these areas, they lead to concise specifications that are easy to read and reason about. At compilation time, these specifications are translated to Prolog code, reducing interpretative run-time overheads. The devised languages can be used in the implementation of other finite domain constraint solvers as well and may contribute to their correctness, conciseness and efficiency.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/30/2016

Devito: automated fast finite difference computation

Domain specific languages have successfully been used in a variety of fi...
research
06/06/2022

Easy, adaptable and high-quality Modelling with domain-specific Constraint Patterns

Domain-specific constraint patterns are introduced, which form the count...
research
07/08/2023

Comparing EventB, {log} and Why3 Models of Sparse Sets

Many representations for sets are available in programming languages lib...
research
11/24/2021

CircuitFlow: A Domain Specific Language for Dataflow Programming (with appendices)

Dataflow applications, such as machine learning algorithms, can run for ...
research
09/11/2022

Eiger: Auditable, executable, flexible legal regulations

Despite recent advances in communication and automation, regulations are...
research
02/26/2021

LazyTensor: combining eager execution with domain-specific compilers

Domain-specific optimizing compilers have demonstrated significant perfo...
research
10/16/2020

Really Embedding Domain-Specific Languages into C++

Domain-specific languages (DSLs) are both pervasive and powerful, but re...

Please sign up or login with your details

Forgot password? Click here to reset