1 / 11

Precedence and Associativity

Precedence and Associativity. The sequence in which different operators in an expression are executed is determined by the precedence of the operators. Operators with a higher precedence are executed before operators with a lower precedence.

Download Presentation

Precedence and Associativity

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Precedence and Associativity • The sequence in which different operators in an expression are executed is determined by the precedence of the operators. • Operators with a higher precedence are executed before operators with a lower precedence. • In the following table, operators are in descending order of precedence, so those with the highest precedence are at the top. • Operators within the same group in the table are of equal precedence. tMyn

  2. The sequence of execution of operators with the same precedence in an expression is determined from their associativity. • The associativity of an operator determines how it groups with its operands in an expression. • Operators may be left-associative, right-associative or non-associative. tMyn

  3. All unary operators and all assignment operators are right associative. • Almost all other operators are left associative. • With the throw operator (exception throwing) the associativity is not available. tMyn

  4. Associativity is only needed when the operators in an expression have the same precedence. Usually + and - have the same precedence. Consider the expression 7-4+2. The result could be either (7-4)+2 = 5 or 7-(4+2) = 1. The former result corresponds to the case when + and - are left-associative. The latter result corresponds to the case when + and - are right-associative. Operators with the same precedence always have the same associativity. The operators +, -, * and / are left-associative. tMyn

  5. A left-associative operator can be said to associate "to the left", and similarly a right-associative operator can be said to associate "to the right". To understand the intuition behind these names, consider again the expression 7-4+2. If + and - are left-associative then the middle operand (4) belongs to the operator on its left (hence the name "to the left"). If + and - are right-associative then the middle operand belongs to the operator on its right (hence the name "to the right"). tMyn

  6. A left-associative operator may also be said to have "left to right" associativity, and a right-associative operator may also be said to have "right to left" associativity. This is somewhat counter-intuitive considering the above paragraph. To understand the intuition behind these names consider the expression 1+2+3+4+5. If + is left-associative, the addition operations are carried out left to right, i.e. the result is (((1+2)+3)+4)+5. If + is right-associative, the addition operations are carried out right to left, i.e. the result is 1+(2+(3+(4+5))). tMyn

  7. tMyn

  8. tMyn

  9. tMyn

  10. tMyn

  11. tMyn

More Related