Authors:  Bell Laboratories, Inc.
Robert Fourer David M. Gay Brian W. Kernighan Bell Laboratories, Inc.

Description
AMPL is a comprehensive and powerful algebraic modeling language for linear and nonlinear optimization problems, in discrete or continuous variables.
Language features
Broad support for sets and set operators. AMPL models can use sets of pairs, triples, and longer tuples;
Collections of sets indexed over sets; unordered, ordered, and circular sets of objects; and sets of numbers.
General and natural syntax for arithmetic, logical, and conditional expressions; familiar conventions for summations and other iterated operators.
Nonlinear programming features such as initial primal and dual values, userdefined functions, fast automatic differentiation, and automatic elimination of "defined" variables.
Convenient alternative notations including node and arc declarations for network problems, a special syntax for piecewiselinear functions, and columnwise specification of linear coefficients.
Reference