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...
| Autores: | , , |
|---|---|
| Tipo de documento: | artigo |
| Data de publicação: | 2015 |
| País: | España |
| Repositório: | Docta Complutense |
| Idioma: | inglês |
| OAI Identifier: | oai:docta.ucm.es:20.500.14352/24376 |
| Acesso em linha: | https://hdl.handle.net/20.500.14352/24376 |
| Access Level: | Acceso aberto |
| Palavra-chave: | 004.438MiniZinc Constraint Programming NULL values Union Types Lenguajes de programación 1203.23 Lenguajes de Programación |
| Resumo: | 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. |
|---|