Two type extensions for the constraint modelling language MiniZinc

In this paper we present two type extensions for the modelling language MiniZinc that allow the representation of some problems in a more natural way. The first proposal, called MiniZinc? , extends existing types with additional values. The user can specify both the extension of a predefined type wi...

Full description

Bibliographic Details
Authors: Caballero Roldán, Rafael, Stuckey, Peter J., Tenorio Fornés, Ámbar
Format: article
Publication Date:2015
Country:España
Repository:Docta Complutense
Language:English
OAI Identifier:oai:docta.ucm.es:20.500.14352/24376
Online Access:https://hdl.handle.net/20.500.14352/24376
Access Level:Open access
Keyword:004.438MiniZinc
Constraint Programming
NULL values
Union Types
Lenguajes de programación
1203.23 Lenguajes de Programación
Description
Summary:In this paper we present two type extensions for the modelling language MiniZinc that allow the representation of some problems in a more natural way. The first proposal, called MiniZinc? , extends existing types with additional values. The user can specify both the extension of a predefined type with new values, and the behavior of the operations with relation to the new types. We illustrate the usage of MiniZinc? to model SQL-like problems with integer variables extended with NULL values. The second extension, MiniZinc+, introduces union types in the language. This allows defining recursive types such as trees, which are very useful for modelling problems that involve complex structures. A new case statement is introduced to select the different components of union type terms. The paper shows how a model defined using these extensions can be transformed into a MiniZinc model which is equivalent to the original model.