Naredba (programiranje)

Naredba (ili iskaz[1]) u programiranju je najmanji samostalni element imperativnog programskog jezika koji izražava neku akciju koja treba biti iznesena. To je instrukcija napisana u jeziku visokog-nivoa koji naređuje računaru da izvrši određenu akciju.[2] Program napisan u ovakvom jeziku je formiran preko sekvence od jedne ili više naredbi. Naredba može imate interne komponente (npr., ekspresije).

Mnogi jezici (npr. S) pravi razliku između naredbi i definicija, sa time da naredba sadrži samo izvršiv kod , a definicija deklariše identifikatora, dok izraz dobija samo vrednost vrednosti.[3] Razlika može postojati i između jednostavnih i složenih naredbi; kasnije mogu sadržati naredbe kao komponente.

Vrste naredbi uredi

U nastavku je dato nekoliko vrsti naredbi sa primerima tipičnog imperativnog jezika:

Jednostavne naredbe uredi

Kompleksne naredbe uredi

  • blok: begin integer NUMBER; WRITE('Number? '); READLN(NUMBER); A:= A*NUMBER end
  • do-petlja: do { computation(&i); } while (i < 10);
  • for-petlja: for A:=1 to 10 do WRITELN(A) 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
  • with-naredba: with open(filename) as f: use(f)

Sintaksa uredi

Pojava izjava oblikuje izgled programa. Programski jezici se odlikuju ukusima naredbi koje koriste (npr kovrdžava zagrada porodice jezika). Mnoge naredbe uvodene preko identifikatora kao što je if,  while ili repeat . Često naredbe ključnih reči su zadržane tako da se ne mogu koristiti kao imena promenljivih ili funkcija. Imperativni jezici obično koriste posebnu sintaksu za svaku izjavu, koja izgleda sasvim drugačije od funkcija poziva. Zajedničke metode koje bi opisale sintaksu naredbi sue Bakus–Naurova forma i sintaksa dijagrama.

Semantika uredi

Semantički mnoge naredbe se razlikuju od potprogramskih poziva svojim rukovanjem parametara. Obično stvarni parametar potprograma se procenjuje jednom pre nego što potprogram se zove. Ovo je u suprotnosti sa mnogim izveštajima parametara koji se može oceniti nekoliko puta (npr stanje while petlje), ili ne uopšte (npr telo petlje while petlje). Tehnički takvi parametri naredbe nazivaju po imenu parametri. Poziv-za-ime parametra se vrednuje po potrebi (vidi lenju procena). Kada je poziv-za-ime parametra su dostupan naredba poput ponašanja može biti realizovana uz potprogram (vidi Lisp). Za jezike bez poziv-bez-mena parametara semantički opis petlje ili uslova obično prevazilazi mogućnosti jezika. Stoga standardni dokumenti se često odnose na semantičke opise u prirodnom jeziku.

Ekspresije  uredi

U većini jezika, naredbe kontrasta sa izrazima u naredbama ne vraćaju rezultate i izvršavaju se isključivo za svoje Neželjeni efekat (informatika)neželjene efekte, dok izrazi uvek vraćaju rezultat i često nemaju neželjene efekte za sve. Među imperativniim programskim jezicima, Algol 68 je jedan od retkih u kojima naredba može da vrati rezultat. U jezicima koji mešaju imperativ i funkcionalne stilove, kao što je Lisp porodica, razlika između izraza i naredba nije napravljena: čak izraze izvršeni u sekvencijalnim kontekstima isključivo za svoje neželjene efekate i čije vraćanje vrednosti se ne koristi već se smatraju „izrazima". U čistom funkcionalnom programiranju, ne postoje naredbe; sve je izraz. 

Rastegljivost uredi

Većina jezika je popravila grupu naredbi definisanih preko jezika, ali postojali su eksperimenti sa rastegljivim jezicima koji dozvoljavaju programeru da definiše nove naredbe.

Vidi još uredi

Reference uredi

  1. ^ Steven Holzner, PHP 5, Beograd, 2006.
  2. ^ "statement". webopedia.
  3. ^ Anders Kaseorg (2014-10-31).

Spoljašnje veze uredi