Mis on järjestuspunkt?

Jadapunkt arvutiprogrammeerimises on hetk, mis ilmneb programmi täitmise ajal, kui muutuja väärtus on täielikult välja arvutatud, ilma eelnevate operatsioonide muudatusteta ja tulevases avaldises pole veel arvutusi tehtud. On mitmeid kohti, kus on olemas jadapunktid – peamiselt defineeritud C-keelestandardis –, näiteks enne koodi täitmist funktsiooni sees, juhtavaldiste lõpus lausetes, nagu “for” ja “if” ning mis tahes täieliku avaldise, näiteks C-koodi lihtsa rea ​​lõpus. Mõned põhjused jadapunkti määratlemiseks on vältida olukordi, mis on mitmetähenduslikud, põhjustavad määratlemata käitumist või võivad kompilaatorit segadusse ajada ja tekitada ettearvamatut koodi. Paljudel juhtudel ei muretse programmeerijad otseselt jadapunkti pärast, kuigi kompilaatori loomisel on see kontseptsioon väga oluline, et tagada koodi korrektne käivitamine.

Programmeerimiskeele C jadapunkti näide on lauses A = A + B;. Selles avaldises on semikoolon jadapunkt; kui avaldis on lõpetatud, hinnatakse A väärtust ja sellele ei tehta jääkarvutusi kuni järgmise avaldise alguseni. Võrdsusmärk ei ole jadapunkt, sest kompilaator võib avaldise jooksul suvalises järjekorras muuta A väärtust.

Jadapunkti põhireegel on see, et muutujale ei pääse punktide vahel juurde rohkem kui üks kord muul eesmärgil kui selle väärtuse muutuse arvutamiseks. Selle reegli rikkumine väljendub kõige paremini massiivi väärtuse määramisel. Kui on olemas muutuja A ja massiiv nimega I, siis grammatiliselt on C-s võimalik kirjutada avaldis I[ A ] = A++. Siin pääseb muutujale juurde rohkem kui üks kord muul eesmärgil kui selle hetkeväärtuse hindamiseks; nimelt kasutatakse seda massiivi I indeksina. See tähendab, et kompilaator võib suurendada A-d enne selle kasutamist indeksina või pärast selle kasutamist, luues ettearvamatu käitumise, millele programmis ei saa tugineda.

Põhimõtteliselt võib jadapunkti vaadelda kui võimalust tagada, et kompilaator saab ja saab järjepidevalt väiteid hinnata ja täita. See võimaldab ka kompilaatoril kasutada optimeerimisstrateegiaid, kuna määratletud käitumine on etteaimatav. C-keelestandardis on kolm peamist jadapunktide esinemist, nimelt kui funktsioon alustab täitmist, loogiliste operaatorite ja komade punktis ning täieliku avaldise lõpus, mis lõpeb semikooloniga, nagu enamik C-lauseid teeb. .