Datenfluß (II)

Problem: zur exakten Beantwortung müßte man Code ausführen. (Bsp: Verzweigungen, Schleifen)

while ( .. ) {
  int x = 3;   int y;
  if ( .. ) { x = 2 * y; } // ??
  else      { y = 2 * x; } 
}

Ausweg: Approximation (sichere Vereinfachung) durch abstrakte Interpretation, die Mengen der initialisierten/benutzten/geänderten Variablen je Block berechnet (d. h. als Attribut in Syntaxbaum schreibt)

z. B. bei Verzweigungen beide Wege ,,gleichzeitig`` nehmen

weiteres Beisp. f. abst. Interpretation: Typprüfung



Johannes Waldmann 2005-01-28