Читать книгу Algorithmen und Datenstrukturen - Gunter Saake - Страница 53

Definition 2.1 Definition von int-Termen

Оглавление

1 Die int-Werte …, − 2, −1, 0, 1, … sind int-Terme.

2 Sind t, u int-Terme, so sind auch (t + u), (t − u), (t · u), (t ÷ u), sign(t), abs(t) int-Terme.

3 Ist b ein bool-Term und sind t, u int-Terme, so ist auch if b then t else u fi ein int-Term.

4 Nur die durch diese Regeln gebildeten Zeichenketten sind int-Terme.


Eine analoge Definition ist auch für bool-Terme notwendig, bei denen dann auch ein Term t < u basierend auf int-Termen ein bool-Term ist. Durch diese Regeln ist für jeden Ausdruck festgelegt, ob er ein korrekter Term ist und welchen Datentyp das Ergebnis seiner Auswertung hat.

Klammereinsparungsregeln

Die Regeln der Definition 2.1 ergeben vollständig geklammerte Ausdrücke und vermeiden daher jede Mehrdeutigkeit in der Auswertungsreihenfolge. Wir verwenden die üblichen aus der Schulmathematik bekannten Klammereinsparungsregeln:

 Es gelten die üblichen Vorrangregeln: Punktrechnung vor Strichrechnung, ¬ vor vor etc. Der if-Konstruktor ist schwächer als alle anderen Operatoren.

 Assoziativgesetze werden in den Fällen, in denen Klammern unnötig sind, da ein identischer Wert als Ergebnis auftritt, ausgenutzt.

Als Resultat können wir für

(((abs((7· 9) + 7) − 6) + 8) − 17)

kurz

abs(7 · 9 + 7) − 6 + 8 − 17

schreiben. Der Multiplikationsoperator wird in der Notation oft ebenfalls eingespart, wenn es keine Verwechslung geben kann:

2 · (2 + 3) wird kurz zu 2(2 + 3)

Algorithmen und Datenstrukturen

Подняться наверх