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
urediKritič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š
urediBeleške
uredi- ^ 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- ^ Java Code Conventions "10.4 Variable Assignments"
- ^ Java Language Specification "14.9 The if Statement"
- ^ Introducing Ada
- ^ The Python Language Reference "6.2. Assignment statements"
- ^ Rigaux, Pascal (29. 08. 2008). „Syntax Across Languages: Assignment or Declaration”. Language Study. SourceForge. Arhivirano iz originala 06. 01. 2010. g. Pristupljeno 17. 04. 2010.