Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Operatorassoziativität

Operatorassoziativität bezeichnet vor allem in der Informatik, aber auch Mathematik und Logik die Festlegung, wie komplexere Ausdrücke mit infix-Operatoren, die …

Inhalt4 Abschnitte
  1. 1. Bedeutung der Operatorassoziativität
  2. 2. Linksassoziative Operatoren
  3. 3. Rechtsassoziative Operatoren
  4. 4. Nicht verkettbare Operatoren

Bedeutung der Operatorassoziativität

Operatorassoziativität legt in Informatik, Mathematik und Logik fest, wie komplexe Ausdrücke mit Infix-Operatoren gelesen werden. Infix-Operatoren stehen zwischen zwei Operanden und bezeichnen zweistellige Operationen.

Bei assoziativen Operationen ist die Klammerung gleichgültig. Für Addition und Multiplikation gilt beispielsweise (a+b)+c=a+(b+c) beziehungsweise (a·b)·c=a·(b·c). Das gilt ebenso für Konjunktion (∧) und Disjunktion (∨). Daher kann a+b+c sowohl als (a+b)+c als auch als a+(b+c) verstanden werden.

Bei nicht assoziativen Operationen muss dagegen geregelt werden, ob eine Wiederholung ohne Klammern erlaubt ist und welche Klammerung gemeint ist. Für die Subtraktion gilt a-(b-c)=(a-b)-c nicht allgemein. Der Ausdruck a-b-c bedeutet bei Linksassoziativität (a-b)-c, bei Rechtsassoziativität dagegen a-(b-c).

Linksassoziative Operatoren

Ein binärer Operator * ist linksassoziativ, wenn von links geklammert wird: abc := (ab)c und abcd := ((ab)*c)*d.

Typische Beispiele sind Subtraktion und Division:

  • a-b-c = (a-b)-c
  • a:b:c = (a:b):c
  • a/b/c = (a/b)/c

Bei waagerechten Bruchstrichen bindet jedoch der kürzere Bruchstrich stärker. Daher ist a/(b/c)=a·c/b, während (a/b)/c=a/(b·c) ist.

In vielen Programmiersprachen, unter anderem Haskell, ist die Funktionsanwendung durch Juxtaposition linksassoziativ: f x y z = ((f x) y) z.

Rechtsassoziative Operatoren

Bei rechtsassoziativen Operatoren wird von rechts geklammert: xyz := x*(yz) und wxyz := w*(x*(y*z)).

Die Potenzierung wird als rechtsassoziativ verwendet: x^(y^z) := x^(y^z). Die andere Klammerung (x^y)^z wäre x^(yz). Taschenrechner werten Eingaben der Form x ^ y ^ z jedoch in der Regel linksassoziativ aus, also als (x ^ y) ^ z. Für die gewünschte Rechtsassoziativität muss deshalb x ^ (y ^ z) eingegeben werden.

Auch die Subjunktion wird von den meisten Autoren rechtsassoziativ verwendet: P→Q→R ist als P→(Q→R) zu lesen. In einigen Programmiersprachen wie C ist der Zuweisungsoperator rechtsassoziativ: x = y = z bedeutet x = (y = z). Zuerst erhält y den Wert von z; anschließend wird das Ergebnis dieser Zuweisung, also z, x zugewiesen.

In Haskell ist die Funktionsanwendung mit dem Infix-Operator $ rechtsassoziativ: f $ g $ h $ x = f $ (g $ (h $ x)).

Nicht verkettbare Operatoren

Manche Operatoren sind weder links- noch rechtsassoziativ. Ausdrücke wie a•b•c sind dann verboten, auch wenn die zugehörige Operation assoziativ sein kann.

In Haskell sind beispielsweise die Vergleichsoperatoren ==, <= und > in diesem Sinn nicht-assoziativ. Das gilt, obwohl die Vergleichsoperation zwischen Booleschen Werten, etwa als Funktion 2×2→2, assoziativ ist.

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Mathematik An deutschen Universitäten gehört die Mathematik meistens zur selben Fakultät wie die Naturwissenschaften, und so wird Mathematikern nach der Promotion in der … Logik Jede Aussage hat genau einen von zwei Wahrheitswerten, die meist als wahr und falsch bezeichnet werden. · Der Wahrheitswert einer zusammengesetzten Aussage ist … Assoziativgesetz Eine Verknüpfung ist assoziativ, wenn die Art der Klammerung bei der Ausführung keinen Einfluss auf das Ergebnis hat. Die Klammerung kann also bei einer … Addition Die Addition basiert auf dem Vorgang des Zählens. Deshalb verwendet man für den Vorgang, eine Addition auszuführen, neben Addieren auch den Ausdruck … Multiplikation Obwohl die Multiplikation eine Grundrechenart ist, lässt sie sich durch Addition nachbilden, für die sie eine Verkürzung darstellt. Inhaltsverzeichnis. 1 … Konjunktion (Logik) Gelesen wird die Konjunktion zweier Aussagen A, B meist als „A und B“. In der klassischen Logik ist die Konjunktion zweier Aussagen „A und B“ genau dann wahr, … Subtraktion Die Subtraktion (von lat. subtrahere „wegziehen“, „entfernen“), umgangssprachlich auch Minusrechnen genannt, ist eine der vier Grundrechenarten der … Division (Mathematik) Definition · Dividend durch Divisor gleich Wert des Quotienten. · Dividend : Divisor = Wert des Quotienten (Eselsbrücke: Dividend kommt im Alphabet vor Divisor). Potenz (Mathematik) Eine Potenz (von lateinisch potentia ‚Vermögen, Macht') ist das Ergebnis des Potenzierens (der Exponentiation), das wie das Multiplizieren seinem Ursprung … Subjunktion Für die Subjunktion als unterordnendes Bindewort in der Grammatik siehe Konjunktion (Wortart). Für einen Gesamtüberblick siehe Implikation: Objektsprachliche … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es …