COMEFROM: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Elninopanza (discussione | contributi)
m Comefrom grammatica
Riga 3:
<code>COMEFROM</code> è a grandi linee l'opposto di <code>[[GOTO]]</code> in quanto può acquisire lo stato di esecuzione da un punto arbitrario del codice verso una istruzione <code>COMEFROM</code>. Il punto del codice dal quale lo stato attivo viene trasferito è usualmente passato come [[parametro (informatica)|parametro ]] di <code>COMEFROM</code>. Il fatto che il trasferimento avvenga prima o dopo l'istruzione indicata al punto di origine dipende dal linguaggio utilizzato. Sempre dipendente dal linguaggio, la possibilità di riferire più istruzioni <code>COMEFROM</code> alla stessa origine nel codice può risultare non valida, essere non deterministica, richiamare i vari punti del codice in sequenza o avviare processi in [[Calcolo parallelo|parallelo]] o [[Programmazione concorrente|concorrente]].
 
Un semplice esempio di istruzione "<code>COMEFROM x</code>" prevede l'utilizzo di un'[[Etichetta (informatica)|etichetta]], posizionata in un punto del codice altro rispetto al relativo <code>COMEFROM</code>, che agisce come una sorta di "trappola". Quando l'esecuzione del codice raggiunge l'etichetta, l'esecuzione si trasferisce all'istruzione successiva al <code>COMEFROM</code>. L'effetto principale è di rendere il debugging (e la compressione del flusso del software) estremamente difficile, dato che non c'è alcuna indicazione in prossimità dell'etichetta che il l'esecuzione misteriosamente possa saltare da un'altra parte del programma.
 
== Storia ==