Content deleted Content added
More to the point (better flow, coherence, correctness, and less redundancy). |
More tidying up and better examples. |
||
Line 2:
{{Unreferenced|date=August 2009}}
{{Cleanup-reorganize|date=July 2007}}
In [[programming languages]], [[scientific calculator]]s and similar '''common operator notation''' or '''operator grammar''' is a way to define and analyse mathematical and other formal expressions. In this model a linear sequence of tokens are divided into two classes: [[operator (programming)|operator]]s and operands.
Operands are objects upon which the operators operate. These include literal [[number]]s and other constants as well as identifiers (names) which may represent anything from simple scalar variables to complex aggregated structures and objects, depending on the complexity and capability of the language at hand as well as usage context. One special type of operand is the parenthesis group. An expression enclosed in parentheses is typically recursively evaluated to be treated as a single operand on the next evaluation level.
Each operator is given a position, precedence, and an associativity. The '''operator precedence''' is a number (from high to low or vice versa) that defines which operator that takes an operand surrounded by two operators of different precedence (or priority). Multiplication normally has higher precedence than addition, for example, so 3+4×5 = 3+(4×5) ≠ (3+4)×5.
In terms of operator position, an operator may be prefix, postfix, or infix. A prefix operator immediately precedes its operand, as in
'''[[Operator associativity]]''',
Unary prefix operators such as − (negation) or sin (trigonometric function) are typically associative prefix operators, for example. When more than one associative prefix or postfix operator of equal precedence precedes or succeeds an operand, the operators closest to the operand goes first. So −sin x = −(sin x), and sin -x = sin(-x).
Mathematically oriented languages (such as on [[scientific calculator]]s) often allow implicit multiplication with higher priority than prefix operators (such as sin). Therefore, sin 2x+1 = (sin(2x))+1, for instance, just as in mathematics.
The rules for expression evaluation are usually three-fold:
Line 31 ⟶ 24:
Examples:
:<tt>1 + 2 + 3 * 4 * 5 + 6 + 7 =
:<tt>4 + -x + 3 =
==Generalizations of Common Operator Notation==
|