Operatorrangfolge



Als Operatorrangfolge , -wertigkeit , -priorität oder -präzedenz , bezeichnet man in Mathematik , Logik und Informatik Einer bestimmte Halbordnung , in der Form Betreiber Ein in Infix-Schreibweise vorliegende Ausdruckauszuwerten Ist.

Es ist keine Totalordnung, sondenline Eine Halbordnung, weil es keine strenge Reihenfolge zwischen allen Operatoren gibt. Sie können gerne ganz nach unten gehen. Zum beispiel ist der Rang von Multiplikation und der Division gleich, aber Höher als der Rang von Addition und Subtraktion ( “ Punktrechnung vor Strichrechnung „). Sie wissen vielleicht, dass Rangfolgen eine explizite Klammer speichern. So ist es{\ displaystyle a + b \ cdot c} gleichbedeutend mit {\ displaystyle a + (b \ cdot c)}, Weil der Multiplikationsoperator einen höheren Rang hat. Dies ist jedesmal eine Definitionssache.

Eine Klammerung bietet möglichkeit sterben , wo Bevorrangung Eines Teilstück Eine Kette von notiert Der Betrieb: Der eingeklammerte, auch von Einem Klammerpaar „(…)“ eingeschlossenen Bereich ist rechnerisch hat keinen Einfluss auf auszuführen und Durch die entsprechende Teilergebnis zu ersetzen, war sterben Klammerung obsolet macht, dann sie jetzt keine Operatoren mehr enthält. Die Klammerung Muss stirbt Betreiber und Empfehlung : Ihr Katalog Technischen Operanden Enthält.

Wird {\ displaystyle a \ cdot (b + c)} Beachte, dass ich den Klammerausdruck zu Berechnen, auch die Summe, vorbereite {\ displaystyle (b + c)} zu Bild, bevor {\ displaystyle a} Mit diesem Sum-Multiplikator wird.

Genua kam nicht zum Abschluss des Konvents oder links, rechts, um die Rechenreihenfolge genau zu feiern.

Rangfolge unterschiedlicher Operatoren

Für die Standard Rechenoperation der Mathematik ist folgende Rangfolge nötig: [1] [2] [3]

  1. Potenzierung
  2. Multiplikation und Division („Punktrechnung“)
  3. Addition und Subtraktion

In Programmiersprachen und Computerprogrammen zur Formelauswertung (z. B. sie Unix Dienstprogramm bc ) ist also addition Registerkarte. Eine Davon ist das Vorzeichen , das in der Regel Einer noch Bildende höhere Priorität vor der Potenzierung geniesst. So wird in mathematischen Formeln der Ausdruck{\ displaystyle -a ^ {b}} zwar {\ displaystyle – (a ^ {b})} Im Ausdrücken liest man das Auswertungsprogramm aber oft als {\ displaystyle (-a) ^ {b}}.

In der Logik gibt es keinen Sinn in der Zukunft, und das Operator-Ranking ist definiert. Wo das geschieden wird, wird folgendes erwartet (in absteigender Priorität):

  1. Negation
  2. Konjunktion
  3. Disjunktion
  4. Konditional
  5. Bikonditional

Nach Anwendung der folgenden Operatorrangfolgen wird z. B. der arithmetische Ausdruck{\ displaystyle 3 + 4 \ cdot 5 ^ {- 6}} wie bewertet {\ displaystyle 3+ (4 \ cdot (5 ^ {(- 6)})}}, der logische Ausdruck {\ displaystyle P \ leftrightarrow Q \ rechtsarrow R \ lor S \ country \ neg T} als {\ displaystyle P \ leftrightarrow (Q \ rightarrow (R \ lor (S \ land (\ neg T)))}}}.

Reihenfolge gleichberechtigter Operatoren

In addition Kann für EINE Den Betrieb Assoziativität festgelegt Werden, mit der Bestimmt Wird, in Welcher reihenfolge nebeneinander Stehen, gleichwertigen Operator auszuwerten Ist. Ein Operator heißt linksassoziativ , WENN A op B op C op D ausgewertet Wird als ((A op B) bis C) op D; ein Operator heißt rechtsassoziativ , WENN A op B op C op D ausgewertet Wird als A op (B op (C op D)). Von den genannten arithmetischen Operator Wird Potenzierung als Matrize rechtsassoziativ bestimmt, d H..:

{\ Display a ^ {b ^ {c ^ {d}}} \ = \ a ^ {\ links (b ^ {\ left (c ^ {d} \ right)} \ right)} \ \ NEQ \ \ Überbleibsel (\ links (a ^ {b} \ right) ^ {c} \ rechts) ^ {d}}.

Ebenso der Pfeiloperator :

{\ Display a \ upArrow \ upArrow b \ upArrow \ upArrow c = a \ upArrow \ upArrow \ links (b \ upArrow \ upArrow c \ right) \ NEQ \ left (a \ upArrow \ upArrow b \ right) \ upArrow \ upArrow c}

Die übrigen zweistelligen Betreiber Werden als linksassoziativ bestimmt, d. H. Zum beispiel {\ displaystyle ABCD = ((AB) -C) -D}.

Logik Werden In der Junktoren meistens bestimmt linksassoziativ, Es Gibt aber Auch Durchaus Autoren, sterben zumindest das Konditional rechtsassoziativ Verwenden.

Ez gibt auch Programmiersprachen, wie z. B. Occam , sterben und alle Betreiber auf den Gleichen Rang setzen von nach rechts auswerten verbindet.

Gliederungszeichen

Um Innerhalb Eines Ausdruck sterben bestimmt Operatorrangfolge zu Verändern! Und um bei fehlender Definition Einer Rangfolge Ausdrücke Eindeutig zu gestalten, Wurde Unterschiedlich Form von Gliederungszeichen used. In der Mathematik und Geschichte in der Moderne Logik Sind das Klammern.

In der Geschichte der Logik wurde vor allem die Tatsache verdorben, dass die Mehrdeutigkeit von Ausdrücken zu hindinder bzw. von Ihre definierten Operator Rankings ändern sich. Ein Punktierungssystem, das Durch das Grundlagenwerk Principia Mathematica Eine Gewiss Gewinnung : erlangte, Krieg Bis in die 1970er Jahre in Unterschiedlich abgewandelter Formular Auch in einführenden Logikbüchern Haufe anzutreffen. Bei diesem System wird der Fehler behoben. die Gedanken des Kletterers waren auf einen einzigen Punkt beschränkt. Zum Beispiel würde statt

{\ displaystyle (A \ B oder B) \ country (C \ lor D)}

Der folgende Ausdruck geschrieben:

{\ displaystyle A \ lor B. \ land. C \ lor D}

Lerne mehr Klammer Klammern zusammen, dann wird ein einzelnes Punktes zwei oder mehr Poller gesetzt, sodas zum Beispiel Vorschläge von

{\ displaystyle ((A \ rightarrow B) \ lor C) \ country D}

Der folgende Ausdruck geschrieben wurde:

{\ displaystyle A \ rightarrow B. \ or C: \ country D}

Ein anderes System wiegt das in einem einzigen Druck . Sie sind mehr als nur ein Operator, aber Sie können gerne das Priority Network sehen. Nach diesem System – Würde zum beispiel Eine Konjunktion Mit zwei Punkten Schwächen binden als Eine Konjunktion mit Einem Punkt, this wiederum Schwächen als Eine Konjunktion ohne Punkte.

Sonstiges

In Programmiersprachen Wird Eine meist Wertigkeit und Assoziativität für alle Betreiber festgelegt, sterben DAMIT Struktur sehr Ausdrücke Auch Dann Eindeutig ist, WENN keine Klammern used Werden. Dies führt dazu, dass die Ausgabe eines Ausdrucks ohne Seiteneffekte erfolgt.

Die Operator Rankings sind normalerweise in Infix-Notation von Bedeutung verfügbar . Schreibweisen Wie die polnische Notation oder sterben umgekehrte polnische Notation gerechnet werden Entwickelt, DAMIT Ausdrücke ohne Rangfolge und Klammern frei Eindeutig Sind sterben. Auch bei der Ersten prädikatenlogischen Schreibweise wo Begriffsschriftnotation und bei GRAPHISCHE Schreibweisen Wie die Existentielle Graphen ist sterben Lesarts Eines Ausdrucks Eindeutig Bestimmt und Bedarf keiner Gliederungszeichen oder -konventionen.

In Programmierersprachen, die Nebenwirkungen in Ausdrücken, sind die Reihenfolge, in der ausgeführt wird, von der Bedeutung. Einige Programmiersprachen Arzt this Auswertungsreihenfolge strenge party, andere (Wie z. B. Coder C ++ ) Lassens sterben Auswertungsreihenfolge bei den meisten Infix-Operanden undefiniert. beispiel:

int f1 ( void );
int f2 ( void );
int f3 ( int );
int g ( void ) { gib f3 zurück ( f1 () * f2 () ); }

Das ist keine definitive, aber es ist egal, wenn Sie ein Pech haben. Der Tag wird gefeiert, ebenso wie die Treue der Treue, die Treue von f1 und f2 (meine Nebenwirkungen).

Literatur

  • Florian Cajori: Eine Geschichte mathematischer Notationen. Offenes Gericht, Chicago 1928-1929, Dover, New York 1993. Internationale Standardbuchnummer 0-486-67766-4 .
  • William Kneale , Martha Kneale : Die Entwicklung der Logik. Clarendon Press, Oxford 1962, ISBN 0-19-824773-7 .

Einzelstunden

  1. Hochspringen↑ Jürgen Weiß: Taschenbuch der Mathematik ( Verlag Harri Deutsch und BG Teubner Verlagsgesellschaft ), ISBN 3-87144-492-8 , Tier 1, S. 115-120, Kapitel 2.4.1.1
  2. Hochspringen↑ George Mark Bergman: Reihenfolge der arithmetischen Operationen
  3. Hochspringen↑ Bildungsort: Der Operationsbefehl