Un punto di sequenza nella programmazione del computer è un momento che si verifica durante l’esecuzione del programma quando il valore di una variabile è stato completamente calcolato, senza modifiche in sospeso dalle operazioni precedenti e senza che siano ancora eseguiti calcoli in un’espressione futura. Esistono numerosi punti in cui esistono punti di sequenza, definiti principalmente nello standard del linguaggio C, ad esempio 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 di sequenza consistono nell’evitare situazioni ambigue, che comportano un comportamento indefinito o che potrebbero confondere il compilatore e generare codice imprevedibile. In molti casi, i programmatori non si preoccupano esplicitamente di un punto di sequenza, sebbene, nella creazione di un compilatore, il concetto sia molto importante per garantire che il codice venga eseguito correttamente.
Un esempio di punto di sequenza nel linguaggio di programmazione C è nell’istruzione A = A + B;. In questa espressione, il punto e virgola è il punto di sequenza; una volta completata l’espressione, verrà valutato il valore di A e non verranno eseguiti calcoli residui su di esso fino all’inizio dell’espressione successiva. Il segno di uguale non è un punto di sequenza, perché il valore di A potrebbe essere modificato dal compilatore in qualsiasi ordine durante l’espressione.
La regola principale di un punto di sequenza è che non si accederà a nessuna variabile più di una volta tra i punti per scopi diversi dal calcolo di un cambiamento nel suo valore. Una violazione di questa regola si esprime al meglio quando si assegna un valore a un array. Se c’è una variabile A e un array chiamato I, allora 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 che venga utilizzato come indice o dopo che sia stato utilizzato, creando comportamenti imprevedibili su cui non è possibile fare affidamento nel programma.
Un punto di sequenza fondamentalmente può essere visto come un modo per garantire che le istruzioni possano e saranno valutate ed eseguite in modo coerente da un compilatore. Ciò consente anche 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 di 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 .