*GNU MathProg* is a modeling language intended for describing linear
mathematical programming models.^{1}

Model descriptions written in the GNU MathProg language consist of a set of statements and data blocks constructed by the user from the language elements described in this document.

In a process called translation, a program called the model translator analyzes the model description and translates it into internal data structures, which may be then used either for generating mathematical programming problem instance or directly by a program called the solver to obtain numeric solution of the problem.

The GNU MathProg language is a
subset of the AMPL language. Its GLPK implementation is mainly based on
the paper: *Robert Fourer*, *David M. Gay*,
and *Brian W. Kernighan*, “A Modeling Language for
Mathematical Programming.” *Management Science* 36 (1990)
pp. 519-54.