Option–operand separation

Option–operand separation is a principle of imperative computer programming. It was devised by Bertrand Meyer as part of his pioneering work on the Eiffel programming language.

It states that an operation's arguments should contain only operands &mdash; understood as information necessary to its operation &mdash; and not options &mdash; understood as auxiliary information. Options are supposed to be set in separate operations.

The motivations for this are:
 * 1) Ease of learning: Beginners do not have to concern themselves with setting options.
 * 2) Wide spectrum coverage:  Experts can still set options using the auxiliary operations.
 * 3) Evolution. Options are more likely to change than operands, so the parameter list to the operation remains more stable.