Izraz-orijentisan programski jezik

Izraz-orijentisan programski jezik je programski jezik gde je svaka (ili skoro svaki) konstrukcija izraz i na taj način joj daje vrednost. Tipični izuzetak su makro definicije, preprocesor komande, i deklaracije, koje izraz-orijentisani jezici često tretiraju kao naredbu nego kao izraz. Neki izraz-orijentisani jezici uvode neke vrste praznina da bi se povratak dao izrazima koji samo izazivaju nuspojave.

ALGOL 68 i Lisp su primeri izražavanja-orijentisanih jezika. Paskal nije izraz- orijentisan jezik. Svi funkcionalni programski jezici su izraz-orijentisani.

Zamerka

uredi

Kritičari, uključujući i jezičke dizajnere,[1] krive izraz-orijentaciju za celu klasu programskih grešaka pri čemu programer uvodi zadatak izraz gde znači da testira ravnopravnost. Na primer, dizajneri Ade i Java su bili toliko zabrinuti o ovoj vrsti greške, oni su ograničili kontrolu izraza onima koji procenjuju isključivo bulov tip podataka.[2][3] Dizajneri Pajtona su imali slične brige, ali alternativna strategija zadataka nije sprovođena kao izjava nego kao izraz, tako zabranjuje zadatak da e ugnezdi unutar bilo koje druge izjave ili izražavanja.[4]

Međutim, obeležavanje izaziva takve greške, a ne semantiku. (Uredi) Iz perspektive izražavanja orijentacija, izbor ustupanja oznaka iz, C-stila jezika, znak jednakosti, =, može se smatrati kao loš izbor jer je znak jednakosti sličan sa hazardously malim kucanjem udaljenosti od obeleživača,[nb 1] C-stil jezici su izabrali za operatora jednakosti,==, i zato je pogodna prilika za greške. Izraz-Ness zadatka nije uzrok. Druge porodice jezika čine različite oznake upozorenja izbora za zadatak[5] koji nemaju ovaj problem, kao što su променљиве ← изражавања u APLu, променљиве <- изражавања u OCaml, S, i R, varijable: = izraza u ALGOL 68 i Standard ML, ili (сетк променљива израз) u Lisp i Scheme. Osim toga, mnogi izraz-orijentisani jezici su funkcionalni jezici. U tim jezicima, zadataka je bilo retko, ili, u slučaju potpuno funkcionalnih jezika, nemoguće.

Vidi još

uredi

Beleške

uredi
  1. ^ In fact, considering the automatic repetition feature of typical computer keyboards, the minimum string distance between = and == is effectively zero, the worst possible collision.

Reference

uredi