Using design patterns for a compiler modeling for posing disjunctive optimization programs - Gil, Juan José (2002)
In this article, we describe the compiler model of a language to express disjunctions and logic propositions into mathematical optimization programs. It is linked to a mathematical modeling system, because the introduction of logic into those programs completes their capabilities. It works as a post-compilation step of the mathematical language compiler. The language for disjunctions and logic propositions is based on the proposal of Vecchietti and Grossmann (2000). In order to accomplish the objectives: independence of the mathematical system, flexibility for introducing changes into the language and easy to maintain; several software design patterns are used such as: Visitor, Composite, State and Adapter have been used for modeling the compiler. This paper describes the adaptations made to the patterns and how they help to get the goals pursued for the compiler. LogMIP is now linked to the mathematical program system GAMS. Several test are performed to check its behavior.