Die Datenflussanalyse erfolgt über ein Kontrollflussdiagramm. Wenn eine betrachtete Sprache Ausnahmen unterstützt, kann das Kontrollflussdiagramm explodieren.
Was sind die Standardtechniken für den Umgang mit dieser Explosion? Können wir ausnahmsweise hervorgerufene Kanten ignorieren? Datenflussanalysen berechnen ohnehin Übernäherungen, sodass wir eine weniger genaue, aber solide Lösung erhalten würden. Ist das wahr?
Update : Hier sind einige nützliche Links, die ich am Ende ausgraben konnte:
Antworten:
Das Ignorieren von Ausnahmen ist nicht sinnvoll. Beispiel:
Bei der Analyse
f
müssen Sie die Tatsache berücksichtigen, dassg
eine Ausnahme ausgelöst wird. Andernfalls würden Sie fälschlicherweise den Schluss ziehen, dassx
bei der Rückkehr von immer 0 istf
.Ich weiß nicht, dass es eine „Standard“ -Technik für den Umgang mit Ausnahmen gibt. Es gibt Literatur zu diesem Thema. Ich habe keine bessere Vorstellung davon, welche Artikel relevant sind, als ich mit einer Google-Suche finden kann.
Formal können Ausnahmen in bedingte Anweisungen umgewandelt werden, die die Aufrufkette weitergeben, was natürlich das Kontrollflussdiagramm in die Luft sprengt. In vielen konkreten Fällen ist der Ausnahmefall der weniger interessante Fall, wo eine Menge von Daten getötet wird, so dass es in einem vorderen Ansatz träge verarbeitet werden (keine Notwendigkeit , die Vitalitäts zu analysieren auf Ausnahme Pfad , wenn der Handler die Daten kills) .
quelle