Operatorassoziativität



Operatorsoziativität bezeichnet alle in Informatik , aber auch in Mathematik und Logik :

    1. im Betten Sinn Eigenschaft Eines sterben Operatoren that stirbt reihenfolge, mit der Mehrere Vorkommnissen of this Operatoren in Einem Ausdruck ausgewertet Werden, Kein einfluss auf dem Plan Ergebnis der Auswertung hat, das heißt, Dass für Ihn das Assoziativgesetz (a ∘ b) ∘ c = a ∘ (b ∘ c) vergoldet;
    2. Ich sende Ihnen die Idee, auf welche Weise und ich freue mich darauf.

Zum Beispiel sind die Addition und Multiplikation Assoziation Operators, weil{\ displaystyle (a + b) + c = a + (b + c)} und {\ displaystyle (ein \ cdot b) \ cdot c = ein \ cdot (b \ cdot c)}ist. Im logischen Verstand, der Beispiel Konjunktion und Disjunktion Assoziativ, weil Einerseits{\ displaystyle (ein \ land b) \ land c} und {\ displaystyle a \ country (b \ country c)} und andere Orte {\ displaystyle (a \ lor b) \ lor c} und {\ displaystyle a \ lor (b \ lor c)}gleichwertige Meinung. Nicht assoziativ sind zum Beispiel Abteilung und Subjunktion , weil im Allgemeinen{\ displaystyle (a: b): c \ neq a: (b: c)} ist und weil {\ displaystyle (P \ rightarrow Q) \ rightarrow R} und {\ displaystyle P \ rightarrow (Q \ rightarrow R)} Nichte äquivalent Geist.

Ernst bei nicht assoziativen Verknüpfungen hängt Ihr Ergebnis von der Betreiberassoziativität ab. Um zu verstehen, dass Ausdrücke mit nebeneinander stehenden, gleichwertigen Operatoren ohne Klammerung mehrdeutig sind, wird eine Assoziativität pro Konvention festgelegt:

  • Ein Linker Fahrer wird von links nach rechts ausgewertet. [1] [2] [3] [4] [5]
    • Ein Beispiel ist die Subtraktion : Es ist{\ displaystyle abc = (ab) -c}.
    • Auch de Division ist linksassoziativ: {\ displaystyle a: b: c = (a: b): c}
  • Ein Legal Officer Operator wird von rechts na links ausgewertet. Beispiele hierfür: [6]
    • Die Potenzierung in der Mathematik: {\ displaystyle a ^ {b ^ {c}} = a ^ {(b ^ {c}}}}, ZB bei den Fermat-Zahlen ; angeblicher Mann Scharniere{\ displaystyle (a ^ {b}) ^ {c}} Kann das auch zu {\ displaystyle a ^ {bc}} schlug.
    • Das Subjunction in the Logic wird von den meisten Autoren rechtassociative verwendet, das heißt, dass{\ displaystyle P \ rightarrow Q \ rightarrow R} als {\ displaystyle P \ rightarrow (Q \ rightarrow R)} Es ist zu lesen.
    • Der Zuweisungsbediener Programmiersprachen wie zB C :
      {\ displaystyle a = b = c} ist gleichbedeutend mit {\ displaystyle a = (b = c)}, das heißt, der Variablen {\ displaystyle b} wird zunachst der Wert von {\ displaystyle c} zugestellt und das Ergebnis dieser Zuwendung ist {\ displaystyle a} zugewiesen.

In Programmiersprachen, sterben Seiteneffekte in Ausdrücken erlaub, ist sterben reihenfolge, in der this Seiteneffekte ausgeführt / Wirksam Werden, von bedeutung. Einige Programmiersprachen Arzt this Auswertungsreihenfolge strenge party, andere (Wie z. B. C oder C ++ ) Lassens sterben Auswertungsreihenfolge bei den meisten Infix-Operanden undefiniert. beispiel:

int f1 ( void );
int f2 ( void );
int f3 ( void );
int g ( int );
int h ( void ) {
 return g ( f1 () - f2 () - f3 ());
}
Dies ist kein eindeutiges Ergebnis, f1, f2 oder f3 ausgeführt wurden (und damit ihre Seiteneffektwirksamkeit). Der Tag wird gefeiert, das erste Mal, der f1, der f2 und der f3 (mit ihren Seitennen Effekt) die Köpfe. Dieses Argument ist identisch mit diesem (f1()-f2()) - f3().

Siehe auch

  • Operatorrangfolge

Einzelstunden

  1. Hochspringen↑ Rochester Institute of Technology : Reihenfolge der Operationen
  2. Hochspringen↑ Bildungsort: Der Operationsbefehl
  3. Hochspringen↑ Khan Academy : Der Operationsbefehl ( Video, ab 05:40 )
  4. Hochspringen↑ Virginia Department of Education : Verwendung der Reihenfolge der Operationen und Exploration Eigenschaften , Absatz 9
  5. Hochspringen↑ Technische Universität Chemnitz : Vorrangregeln und Assoziativität
  6. Hochspringen↑ Western Michigan University : Regeln für Exponenten und die Gründe für sie