Što je točka sekvence?

Točka slijeda u računalnom programiranju je trenutak koji se događa tijekom izvršavanja programa kada je vrijednost varijable u potpunosti izračunata, bez promjena na čekanju iz prethodnih operacija i bez izvođenja izračuna u budućem izrazu. Postoji niz mjesta na kojima postoje točke sekvence — prvenstveno definirane u standardu jezika C — kao što je prije izvršenja koda unutar funkcije, na kraju kontrolnih izraza u izjavama kao što su “for” i “if”, i na kraju bilo kojeg cjelovitog izraza, kao što je jednostavan redak C koda. Neki razlozi za definiranje točke sekvence su izbjegavanje situacija koje su dvosmislene, rezultiraju nedefiniranim ponašanjem ili bi mogle zbuniti prevodilac i generirati nepredvidljiv kod. U mnogim slučajevima, programeri se izričito ne brinu o točki slijeda, iako je, u stvaranju kompajlera, koncept vrlo važan kako bi se osiguralo da se kod ispravno izvršava.

Primjer točke sekvence u programskom jeziku C je u izjavi A = A + B;. U ovom izrazu točka-zarez je točka slijeda; kada je izraz dovršen, vrijednost A će biti procijenjena i na njoj se neće izvoditi nikakvi preostali izračuni sve dok sljedeći izraz ne počne. Znak jednakosti nije točka sekvence, jer vrijednost A može biti modificirana od strane prevoditelja bilo kojim redoslijedom kroz izraz.

Glavno pravilo točke sekvence je da se nijednoj varijabli neće pristupiti više od jednom između točaka za bilo koju drugu svrhu osim za izračunavanje promjene njezine vrijednosti. Kršenje ovog pravila najbolje je izraženo kada se nizu dodjeljuje vrijednost. Ako postoji varijabla A i niz nazvan I, onda je gramatički u C moguće napisati izraz I[ A ] = A++. Ovdje se varijabli pristupa više puta u svrhu koja nije evaluacija njezine trenutne vrijednosti; naime, koristi se kao indeks u nizu I. To znači da bi prevodilac mogao povećati A prije nego što se koristi kao indeks ili nakon što se koristi, stvarajući nepredvidivo ponašanje na koje se ne može osloniti u programu.

Točka slijeda u osnovi se može promatrati kao način da se osigura da prevodi mogu i da će biti dosljedno evaluirani i izvršeni od strane prevoditelja. To također omogućuje prevodiocu da koristi strategije optimizacije, jer je definirano ponašanje predvidljivo. Unutar standarda jezika C postoje tri glavne instance točaka slijeda, naime kada funkcija počinje izvršavanje, na mjestu logičkih operatora i zareza i na kraju potpunog izraza koji završava točkom-zarezom, kao što to čini većina C izjava .