√0 INFO 1 (A-136) Evaluierung von Ausdrücken: BF-Diagramme die generelle Auswertungsstruktur folgt dem Formelaufbau der zu reduzierenden Ausdrücke analog: • Belegung: setze die Werte für die Basisterme (Inputs) ein • Termreduktion: werte jene Teilausdrücke aus, deren unmittelbare Eingangsgrößen bekannt sind und ersetze die Teilausdrücke durch die errechneten Ergebnisse • Termination: alle Teilausdrücke sind ausgewertet (reduziert) und das Resultat liegt vor (Output) graphische Darstellung: Berechnungsfolgediagramm Beispiel: a – (a ÷ b) * b D E ÷ 5HGXNWLRQVHEHQH * − ,QSXW2SHUDQGHQ(EHQH 5HGXNWLRQVHEHQH 5HGXNWLRQVHEHQH 2XWSXW(UJHEQLV K.A.Fröschl 2001 INFO-1 ♦ 15.1 √0 INFO 1 (A-136) Termreduktion: BFD-Folge Datenfluss: Folge von markierten BF-Diagrammen • Belegung: Markierung der Operanden in BFD0 • Termreduktion: Reduktionsschritte, Markierungen • Termination: Wert an letzter Marke Beispiel (Fortsetzung): a – (a ÷ b) * b Initialisierung: BFD0 D E 1. Schritt: BFD1 D E ÷ ÷ * − * − 2. Schritt: BFD2 3. Schritt: BFD3 D − * − K.A.Fröschl 2001 INFO-1 ♦ 15.2 √0 INFO 1 (A-136) BFD: Datenfluss-Graph Knotenmenge V: Menge der Basisterme (Input-Operanden) des Ausdrucks zzgl. Menge der Operationen (Operatorsymbole) des Ausdrucks Kantenmenge E: von einem Knoten geht immer dann eine (orientierte) Kante hin zu einem anderen Knoten (Konsumenten), wenn letzterer den Wert des ersteren in einer Operation einbezieht („konsumiert“) • die Knoten zur Repräsentation der Basisterme heißen Inputs, alle übrigen Knoten heißen Produzenten; Resultat heißt jener Produzent, der schlussendlich den Wert des gesamten Ausdrucks bereithält • mit Ausnahme des Resultats haben alle Knoten in V einen positiven Ausgangsgrad; mit Ausnahme der Inputs haben alle Knoten (d.h. die Produzenten) positiven Eingangsgrad • die Eingangskanten (Argumente) der Produzenten sind geordnet (i.d.R. implizit von links nach rechts) ein BFD ist ein azyklischer orientierter Graph (dag), dessen Knoten in Reduktionsebenen geschichtet sind • die „unterste“ Schicht wird aus den Inputs gebildet • die nächste Schicht wird durch jene Konsumenten gebildet, die unmittelbar auf die Inputs folgen, usw. • die „oberste“ Schicht enthält nur (mehr) das Resultat K.A.Fröschl 2001 INFO-1 ♦ 15.3 √0 INFO 1 (A-136) Kanonische BFD Ein BFD soll kanonisch heißen, wenn • für alle Inputs v der Menge V gilt, daß der Ausgangsgrad d+(v) = 1 (d.h. jedem Input ist genau ein Konsument zugeordnet) • für alle Produzenten v der Menge V gilt, dass der Ausgangsgrad d+(v) ≤ 1 (genauer: für das Resultat r ist d+(r) = 0, ansonsten gilt d+(v) = 1) ggf. sind dann einzelne Input-Operanden mehrfach durch Inputs im BFD darzustellen ODER es ist eine „Datenverteilungsebene“ dem BFD vorzuschalten kanonische BFD mit binären (2-stelligen) Operationen: Darstellung durch sog. Binärbäume Beispiel (Fortsetzung): a – (a ÷ b) * b − * ÷ D K.A.Fröschl 2001 D E E INFO-1 ♦ 15.4