Document

Werbung
√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
Herunterladen