Che cos'è un punto sequenza?
Un punto di sequenza nella programmazione per computer è un momento che si verifica durante l'esecuzione del programma quando il valore di una variabile è stato completamente calcolato, senza modifiche in sospeso rispetto alle operazioni precedenti e senza calcoli in un'espressione futura ancora eseguita. Esistono diversi punti in cui esistono punti sequenza - definiti principalmente nello standard del linguaggio C - come prima dell'esecuzione del codice all'interno di una funzione, alla fine delle espressioni di controllo in istruzioni come "for" e "if", e alla fine di qualsiasi espressione completa, come una semplice riga di codice C. Alcuni motivi per definire un punto sequenza sono di evitare situazioni ambigue, comportare un comportamento indefinito o confondere il compilatore e generare codice imprevedibile. In molti casi, i programmatori non si preoccupano esplicitamente di un punto sequenza, sebbene, nella creazione di un compilatore, il concetto sia molto importante per garantire che il codice venga eseguito correttamente.
Un esempio di un punto sequenza nel linguaggio di programmazione C è nell'istruzione A = A + B ;. In questa espressione, il punto e virgola è il punto di sequenza; quando l'espressione è completata, verrà valutato il valore di A e non verranno eseguiti calcoli residui fino all'espressione successiva. Il segno di uguale non è un punto di sequenza, perché il valore di A potrebbe essere modificato dal compilatore in qualsiasi ordine nell'espressione.
La regola principale di un punto sequenza è che non sarà possibile accedere a una variabile più di una volta tra i punti per scopi diversi dal calcolo di una variazione del suo valore. Una violazione di questa regola è espressa al meglio quando si assegna un valore a un array. Se c'è una variabile A e un array chiamato I, quindi grammaticalmente in C è possibile scrivere l'espressione I [A] = A ++. Qui, si accede alla variabile più di una volta per uno scopo diverso dalla valutazione del suo valore corrente; vale a dire, viene utilizzato come indice nell'array I. Ciò significa che il compilatore potrebbe incrementare A prima di essere utilizzato come indice o dopo essere stato utilizzato, creando un comportamento imprevedibile sul quale non si può fare affidamento nel programma.
Fondamentalmente un punto di sequenza può essere visto come un modo per garantire che le istruzioni possano e saranno costantemente valutate ed eseguite da un compilatore. Ciò consente inoltre a un compilatore di utilizzare strategie di ottimizzazione, poiché il comportamento definito è prevedibile. All'interno dello standard del linguaggio C, ci sono tre istanze principali di punti sequenza, vale a dire quando una funzione inizia l'esecuzione, nel punto di operatori logici e virgole, e alla fine di un'espressione completa che termina con un punto e virgola, come fanno la maggior parte delle istruzioni C .