Co je to sekvenční bod?
Pořadový bod v počítačovém programování je okamžik, ke kterému dochází během provádění programu, když byla hodnota proměnné zcela vypočtena, aniž by byly provedeny žádné změny z předchozích operací a nebyly provedeny žádné výpočty v budoucím výrazu. Existuje řada míst, kde existují sekvenční body - primárně definované ve standardu jazyka C - například před provedením kódu uvnitř funkce, na konci řídících výrazů v příkazech jako „for“ a „if“ a na konci každého úplného výrazu, například jednoduché řádky kódu C. Některé důvody pro definování bodu sekvence jsou, aby se zabránilo situacím, které jsou nejednoznačné, mají za následek nedefinované chování nebo by mohly zmást kompilátor a vygenerovat kód, který je nepředvídatelný. V mnoha případech se programátoři výslovně nebojí o sekvenční bod, i když při vytváření kompilátoru je tento koncept velmi důležitý pro zajištění správného spuštění kódu.
Příkladem bodu sekvence v programovacím jazyce C je příkaz A = A + B ;. V tomto výrazu je středník středníkem; po dokončení výrazu bude vyhodnocena hodnota A a nebudou provedeny žádné zbytkové výpočty, dokud nezačne další výraz. Rovné znaménko není bod sekvence, protože hodnota A může být kompilátorem modifikována v libovolném pořadí v celém výrazu.
Hlavním pravidlem bodu sekvence je, že k žádné proměnné nebude přistupována více než jednou mezi body za jakýmkoli jiným účelem než pro výpočet změny její hodnoty. Porušení tohoto pravidla se nejlépe vyjádří při přiřazení hodnoty matici. Pokud existuje proměnná A a pole nazvané I, pak gramaticky v C je možné napsat výraz I [A] = A ++. Zde je proměnná zpřístupněna vícekrát za jiným účelem, než je vyhodnocení její aktuální hodnoty; jmenovitě se používá jako index do pole I. To znamená, že kompilátor může zvýšit A před tím, než se použije jako index nebo po jeho použití, čímž se vytvoří nepředvídatelné chování, na které se v programu nelze spolehnout.
Pořadový bod lze v zásadě chápat jako způsob, jak zajistit, aby příkazy byly a budou důsledně vyhodnocovány a prováděny kompilátorem. To také umožňuje kompilátoru použít optimalizační strategie, protože definované chování je předvídatelné. Ve standardu jazyka C existují tři hlavní případy sekvenčních bodů, a to při zahájení funkce, v bodě logických operátorů a čárkách a na konci úplného výrazu, který končí středníkem, jako většina příkazů C .