Mosel Language can be thought of as both a modeling language and a programming language. Like other modeling languages it offers the required facilities to declare and manipulate problems, decision variables, constraints and various data types and structures like sets and arrays. On the other hand, it also provides a complete set of functionalities proper to programming languages: it is compiled and optimized, all usual control flow constructs are supported and can be extended by means of modules. Although a general modeling system, it is closely interfaced with its own XPress optimizer. A link to a separate constraint programming solver Kalis is offered too. Many modeling examples in Mosel are available from the Fico Site.

I use a small production planning model to illustrate the syntax of Mosel.

   2.7.1 A Tiny Planning Model (tiny-initial)