Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
433197 | Science of Computer Programming | 2015 | 34 Pages |
In this paper we present two type extensions for the modeling 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 modeling 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.