U računalnom programiranju, naredba se može shvatiti kao najmanji zasebni element imperativnog programskog jezika. Program je oblikovan kao slijed jedne ili više naredbi. Naredbe imaju unutarnje dijelove (npr. izraze).
Mnogi jezici (npr. C ne razlikuju naredbe i definicije, a naredbe samo sadrže izvršivi kod i definiciju koja deklarira identifikator. Razlika se također može načiniti između jednostavnih i složenih naredbi - potonje mogu sadržavati same naredbe kao dijelove.
U hrvatskom se vrlo često naziv naredba koristi i kao sinonim za mikroprocesorsku instrukciju.
Vrste naredbi
Slijede tri glavne općenite vrste naredbi sa primjerima u tipičnim imperativnim jezicima:
Definicije i deklaracije
- definicija:
TYPE PLAĆA = INTEGER
- deklaracija:
VAR A:INTEGER
Jednostavne naredbe
- dodjela:
A := A + 1
- poziv:
CLEARSCREEN()
- return:
return 5;
- goto:
goto 1
- tvrdnja:
assert(ptr != NULL);
Složene naredbe
- blok naredbi:
begin WRITE('Broj? '); READLN(BROJ); end
- if-naredba:
if A > 3 then WRITELN(A) else WRITELN("NOT YET") end
- switch-naredba:
switch (c) { case 'a': alert(); break; case 'q': quit(); break; }
- while-petlja:
while NOT EOF DO begin READLN end
- do-petlja:
do { računaj(&i); } while (i < 10);
- for-petlja:
for A:=1 to 10 do WRITELN(A) end
Izrazi
U većini jezika se naredbe sučeljavaju sa izrazima po tome što naredbe ne vraćaju rezultate i izvršuju se isključivo zbog svojih popratnih rezultata, dok izrazi uvijek vraćaju rezultat i često uopće nemaju popratnih rezultata. Među imperativnim programskim jezicima, ALGOL 68 je jedan od rijetkih u kojima naredbe mogu vratiti rezultat. U jezicima koji miješaju imperativne i funkcijske stilove, kao što je Lisp porodica jezika, se razlikuju izrazi i naredbe: čak se i izrazi izvršeni u slijednim kontekstima isključivo zbog svojih popratnih rezultata i čije se povratne vrijednosti uopće ne rabe smatraju 'izrazima'.
Programski jezici
Sintaksa i semantika naredbi je specificirana definicijom programskog jezika. Većina programskih jezika ne dozvoljava stvaranje novih naredbi za vrijeme izvršavanja programa (Snobol 4 je primjer jezika koji dopušta), ili izmjenu već postojećih naredbi (Lisp je poznat po podršci za samoizmjenjujući kod).
Vidi još
- Izraz (kao suprotnost naredbi)