Come costruire un blocco di base in un flusso di controllo grafico

June 16

Come costruire un blocco di base in un flusso di controllo grafico


Grafici di controllo di flusso sono una tecnica per garantire che i programmi per computer funzionano correttamente. Computer codice è complicato ed è lavorato e rielaborato prima che sia pronto per il rilascio finale. Ci possono essere un codice che non verrà mai eseguita e ci possono essere il codice che porterà alle reti da cui non si può mai uscire. Grafici di controllo di flusso sono un modo di trovare questo codice male. Innanzitutto il codice è suddiviso in blocchi di controllo, quindi grafi - alberi, davvero - sono costruite per garantire che ogni blocco è raggiungibile e che nessun blocco loop all'infinito.

istruzione

1 Nome di tutti i blocchi di controllo. Un blocco di controllo è una sezione di codice - alcune istruzioni - che ha una strada e una via d'uscita. Un programma è una sequenza di istruzioni. Salvo un'istruzione dice "saltare" ad un'altra istruzione, la prossima istruzione da eseguire sarà quella successiva nella sequenza. Un blocco di controllo inizia perché è la prima istruzione dopo la fine di un altro blocco di controllo, o perché è stato saltato a. Un blocco di controllo termina quando salta o la sezione è in estremità.

2 Disegnare un albero dall'inizio del programma per ciascun blocco di controllo del programma. Se vi è un blocco di controllo che non è in questo albero, dovrebbe essere rimosso dal programma. Non sarà mai eseguito, in quanto non è raggiungibile dal blocco di partenza. Prima di essere rimosso, si dovrebbe vedere se serve alcuna funzione utile. In caso contrario, rimuoverlo. Se non hanno una funzione utile - e nessun altro codice fa questa funzione - prendere in considerazione mantenere il blocco, ma assicurarsi che sia raggiungibile dal blocco di partenza.

3 Costruire un altro albero dove la radice è il blocco di uscita del programma e il resto dell'albero è tutti i blocchi di controllo. Se ci sono blocchi che non sono in questo albero, ma erano nella struttura precedente, questi blocchi sono raggiungibili dal blocco di partenza, ma non portano al blocco di uscita. Questi blocchi sono luoghi in cui il controllo può rimanere bloccato. Come in precedenza, si dovrebbe verificare questi blocchi per vedere se essi dovrebbero essere eliminati o riscritti per assicurarsi che il controllo può uscire da loro.

Consigli e avvertenze

  • La CFG può essere notevolmente semplificata se il programma è scritto in una raccolta di pagine dimensioni o meno moduli. Questa è una pratica di programmazione standard nella maggior parte delle lingue. Con i moduli, si avrà solo bisogno di disegnare gli alberi in un modulo alla volta. Una volta che tutti i moduli sono verificati, sarà solo necessario stabilire che il flusso di controllo tra i moduli è suono.
  • CFG funziona molto meglio in alcune lingue che in altri. Funziona meglio in linguaggi procedurali come il C, BASIC, Fortran e Matlab. È un po 'più complicato in linguaggi funzionali come Lisp, Scheme e Lua. E 'del tutto inutile in linguaggi orientati agli oggetti come C ++ e Java.