Citat:
Npr. INC(i) je manje zahtevna od i:=i+1 jer se u drugoj verziji uzima vrednost od i pa se onda radi dodela,
dok se kod INC(i) samo poveca i za jedan.
Ovo je rečeno vrlo proizvoljno, zapravo vešto je izbegnuta analiza kako "se kod INC(i) samo poveca i za jedan".
Gornja tvrdnja je bila tačna pre X godina, kada kompajleri nisu imali nikake naročite optimizacije. Danas, svaki
kompajler ide na optimizaciju, pa je za očekivati da će gornji izrazi biti identično prevedeni.
Dalje, ako bi kompajler i imao optimizaciju, ništa mu to ne bi vredelo ako mašinski kod na koji se prevodi ne bi
imao u sebi ugrađene operatore brzog inkrementira
++ i
--.
Prvi mašinski jezik u kome sam naišao na ove operatore je bio MC68000 (Amiga 500). Nekako, u to vreme
je i bila ekspanzija programskog jezika C, pa mi je postalo 'jasno' otkud ideja za izraze tipa:
i++ i
++i
U Pascal-u, se to rešava sa
INC(i) što ne govori "lepo" o čemu se radi.
Ako je
INC(i) obična funkcija (što nekom C programeru može pasti na pamet), onda će trošiti više nego
i:=i+1, jer bi se radilo o pozivu, stavljanju na stek registara, izvršavanja koda, vraćanja registara sa steka itd.