Ho notato che l'analisi del flusso di dati utilizza approssimazioni di passi di un programma simulando il flusso di valori in qualche modo (che non comprendo ancora completamente). Lo descrivono bene qui . A pagina 4 dicono:
Because the analysis is not tracking the exact values of variables, but rather approximations, it will inevitably be imprecise in certain situations. However, in practice well-designed approximations can often allow dataflow analysis to compute quite useful information.
Wikipedia lo dice anche bene:
A simple way to perform data-flow analysis of programs is to set up data-flow equations for each node of the control flow graph and solve them by repeatedly calculating the output from the input locally at each node until the whole system stabilizes, i.e., it reaches a fixpoint.
Mi chiedo perché non eseguano semplicemente il programma con combinazioni specifiche di variabili per testarlo e determinare se è "corretto" in questo modo (come i vantaggi / gli svantaggi). Chiedendosi inoltre quali sono gli altri approcci e tecniche per simulare un programma diverso dall'analisi del flusso di dati.