created: 2018-04-15 13:23:15 (+00:00; UTC; UTC)
last modified: 2018-04-15 13:24:21 (+00:00; UTC; UTC)

Synthese von Kontrollfluss f├╝r eine synchrone Datenflusssprache

Die synchrone Datenflusssprache SIG unterst├╝tzt Fallunterscheidungen. Im bisherigen SIG-Compiler werden alle F├Ąlle berechnet und danach die ben├Âtigten Werte ausgew├Ąhlt. Nicht ben├Âtigte Werte werden verworfen. Das Ziel dieser Arbeit ist das ├ťberspringen im konkreten Fall nicht ben├Âtigter Berechnungen indem die Bedingungen, die den Fall bestimmen, vor den Berechnungen ausgewertet werden. Neben der Erstellung der Spr├╝nge ist auch die effiziente Pr├╝fung der Sprungbedingungen wichtig. Dazu werden die Bedingungen vereinfacht und die Spr├╝nge so organisiert, dass weniger Bedingungen gepr├╝ft werden m├╝ssen. Bei den Transformationen auftretende unerw├╝nschte Effekte werden durch Techniken wie Dead Code Elimination und Common Subexpression Elimination entfernt. Weiterhin wird die n├Ąchste Compilerphase vorbereitet, indem berechnet wird, unter welchen Bedingungen Variablen definiert sind und Basic Blocks ausgef├╝hrt werden. Die Evaluation zeigt, dass der erzeugten Kontrollfluss die Struktur der Programme gut abbildet. In bestimmten Situationen ist das Ergebnis nicht optimal, kann jedoch mit Partial Dead Code Elimination ohne ├änderung des Kontrollflusses verbessert werden. Auch die Berechnung der Bedingungen, unter denen die Variablen definiert sind, arbeitet korrekt, jedoch werden logische Zusammenh├Ąnge von Variablen nicht erfasst.