Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Operatorrangfolge

Rangfolge unterschiedlicher Operatoren · Potenzierung · Multiplikation und Division („Punktrechnung“) · Addition und Subtraktion („Strichrechnung“).

Inhalt5 Abschnitte
  1. 1. Begriff und Zweck
  2. 2. Prioritäten verschiedener Operatoren
  3. 3. Anwendung der Rangfolge
  4. 4. Assoziativität gleichrangiger Operatoren
  5. 5. Klammern, andere Schreibweisen und Auswertungsreihenfolge

Begriff und Zweck

Die Operatorrangfolge, auch Operatorwertigkeit, Operatorpriorität oder Präzedenz genannt, ist in Mathematik, Logik und Informatik eine festgelegte Halbordnung für Operatoren in Infix-Schreibweise. Sie bestimmt, wie ein Ausdruck ohne vollständig ausgeschriebene Klammern zu gliedern ist.

Sie ist keine Totalordnung: Nicht zwischen allen Operatoren muss eine strikte Rangfolge bestehen, und mehrere Operatoren können denselben Rang haben. Beispielsweise besitzen Multiplikation und Division in der Arithmetik denselben Rang; beide stehen über Addition und Subtraktion. Daher gilt „Punktrechnung vor Strichrechnung“.

Die Rangfolge spart Klammern: a+b·c bedeutet a+(b·c), weil die Multiplikation stärker bindet als die Addition. Für andere Anwendungen derselben Operatorsymbole können jedoch andere Rangordnungen gelten. Bei nicht-kommutativen Operatoren muss zusätzlich bestimmt werden, wie aufeinanderfolgende gleichrangige Operationen geklammert werden.

Prioritäten verschiedener Operatoren

Für die üblichen Rechenoperationen gilt in absteigender Priorität:

  • Potenzierung
  • Multiplikation und Division („Punktrechnung“)
  • Addition und Subtraktion („Strichrechnung“)

Programmiersprachen und Programme zur Formelauswertung, etwa das Unix-Dienstprogramm bc, verwenden weitere Kategorien. Das Vorzeichen hat dort gewöhnlich eine höhere Priorität als die Potenzierung. Deshalb wird -a^b in mathematischen Formeln als -(a^b), in solchen Auswertungsprogrammen jedoch häufig als (-a)^b gelesen.

In der Logik wird nicht immer eine Rangfolge festgelegt. Wenn eine verwendet wird, lautet sie meistens in absteigender Priorität:

  • Negation, also logisches NICHT
  • Konjunktion, also logisches UND
  • Disjunktion, also logisches ODER
  • Konditional
  • Bikonditional

Diese Reihenfolge gilt auch für Boolesche Operatoren vieler Programmiersprachen.

Anwendung der Rangfolge

Der arithmetische Ausdruck 3+4·5^(-6) wird nach den üblichen Prioritäten als 3+(4·(5^(-6))) ausgewertet.

Beim logischen Ausdruck P↔Q→R∨¬S∧T bindet zuerst die Negation, danach die Konjunktion, dann die Disjunktion, das Konditional und zuletzt das Bikonditional. Die vollständige Gliederung lautet daher P↔(Q→(R∨((¬S)∧T))).

Assoziativität gleichrangiger Operatoren

Die Assoziativität bestimmt die Richtung der impliziten Klammerung, wenn gleichrangige Operatoren nebeneinanderstehen. Ein Operator heißt linksassoziativ, wenn A op B op C op D als ((A op B) op C) op D gelesen wird. Er heißt rechtsassoziativ, wenn der Ausdruck A op (B op (C op D)) bedeutet.

Die Potenzierung ist rechtsassoziativ: a^(b^(c^d)) ist nicht gleich ((a^b)^c)^d. Auch der Doppel-Pfeiloperator ist rechtsassoziativ: a↑↑b↑↑c bedeutet a↑↑(b↑↑c) und nicht (a↑↑b)↑↑c.

Addition und Subtraktion werden linksassoziativ behandelt. Beispielsweise gilt a-b+c=(a-b)+c. Außerhalb der Mathematik, etwa in Programmiersprachen oder Microsoft Excel, können andere Konventionen gelten.

Klammern, andere Schreibweisen und Auswertungsreihenfolge

Gliederungszeichen verändern eine festgelegte Operatorrangfolge oder machen einen Ausdruck eindeutig, wenn keine Rangfolge definiert ist. In Mathematik und moderner Logik verwendet man dafür Klammern.

In älteren logischen Schreibweisen kamen Punktierungssysteme vor. Im durch die Principia Mathematica verbreiteten System ersetzten Punkte gedachte Klammern an Junktoren, also logischen Verknüpfungszeichen. So konnte (A∨B)∧(C∨D) als A∨B .∧. C∨D geschrieben werden. Trafen mehrere gedachte Klammern zusammen, verwendete man mehrere Punkte. Ein anderes System setzte Punkte über Junktoren: Je mehr Punkte ein Operator trug, desto schwächer war seine Bindungsstärke und desto niedriger seine Priorität.

Programmiersprachen legen häufig Priorität und Assoziativität für alle Operatoren fest, damit Ausdrücke auch ohne Klammern syntaktisch eindeutig bleiben. Die Operatorrangfolge betrifft normalerweise nur die Infix-Notation. In der polnischen und der umgekehrten polnischen Notation sind Ausdrücke auch ohne Klammern und Rangfolgeregeln eindeutig. Das gilt ebenfalls für die Begriffsschriftnotation und graphische Schreibweisen wie die Existential Graphs.

Von der syntaktischen Operatorrangfolge zu unterscheiden ist die Auswertungsreihenfolge: Sie bestimmt, wann Teilausdrücke tatsächlich ausgeführt werden und ihre Nebenwirkungen („side effects“) eintreten. Java legt diese Reihenfolge strikt fest; C und C++ lassen sie bei den meisten Infix-Operanden undefiniert. Im Ausdruck f3(f1() * f2()) ist daher nicht festgelegt, ob f1 oder f2 zuerst ausgeführt wird. Fest steht aber, dass f3 erst aufgerufen wird, nachdem f1 und f2 beendet sind.

Weiterlesen

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 … Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Infixnotation So wird zum Beispiel Punktrechnung (Multiplikation, Division) vor der Strichrechnung (Addition, Subtraktion) ausgeführt. Treffen mehrere Punktrechnungen oder … Punktrechnung vor Strichrechnung Die Regel Punktrechnung vor Strichrechnung, kurz auch Punkt vor Strich genannt, ist eine Konvention in der Operatorrangfolge der Mathematik. Vorzeichen (Zahl) Eine negative Zahl wird immer mit dem Minuszeichen versehen, während einer positiven Zahl ein Pluszeichen optional vorangestellt werden kann. Die Zahl Null wird … Negation Negation (von lateinisch negare ‚verneinen') ist Ablehnung, Verneinung oder Aufhebung; verneint werden können zum Beispiel Aussagen, abgelehnt werden können … 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, … Implikation Als Varianten einer deduktionmäßigen formalen Implikation können auch die intuitionistische Implikation bzw. Subjunktion innerhalb der dialogischen Logik sowie … Boolescher Operator Ein boolescher Operator (englisch Boolean operator) ist ein logischer Operator, also ein Operator, der auf Wahrheitswerten operiert. 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 … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es …