Un punto di sequenza (sequence point) è un punto nell'esecuzione di un programma informatico nel quale è garantito il fatto che tutti gli effetti collaterali delle istruzioni precedenti siano stati realizzati e nessun effetto collaterale delle istruzioni seguenti sia stato realizzato. I punti di sequenza sono un concetto chiave in linguaggi come C e C++, nei quali sono importanti per determinare la validità di una certa istruzione. L'aggiunta di ulteriori punti di sequenza nel codice può essere necessaria, ad esempio, per rendere un'espressione ben definita e garantire l'unicità dell'ordine di valutazione delle operazioni in essa contenute. In C++11 l'espressione sequence point è stata sostituita da sequencing. Date due espressioni, vi sono tre possibili casi di sequencing: 1. * la valutazione di un'espressione può essere "sequenced before" rispetto ad un'altra espressione o, equivalentemente, l'altra espressione è "sequenced after". 2. * le espressioni sono "indeterminately sequenced", ovvero una delle due è "sequenced before" rispetto all'altra, ma l'ordine è indefinito. 3. * la valutazione è "unsequenced". Mentre nel primo caso la semantica del programma è ben definita, gli altri due casi sono problematici. In particolare, la valutazione di espressioni unsequenced può sovrapporsi e, se le due espressioni dipendono da uno stato condiviso, il risultato è e può avere effetti catastrofici. Tale situazione è un problema che si può incontrare facilmente in calcolo parallelo (corsa critica), ma può verificarsi anche in programmi strettamente sequenziali. Ad esempio, nella valutazione dell'espressione (a = 1) + (b = a) parte dell'assegnamento a = 1 (es. metà dei bit) può essere completato prima di b = a e parte dopo, per cui al termine della valutazione b può contenere uno stato intermedio di a, totalmente privo di significato.
Abstract from DBpedia / Wikipedia · CC BY-SA
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).