Израз-оријентисан програмски језик
Израз-оријентисан програмски језик је програмски језик где је свака (или скоро сваки) конструкција израз и на тај начин јој даје вредност. Типични изузетак су макро дефиниције, препроцесор команде, и декларације, које израз-оријентисани језици често третирају као наредбу него као израз. Неки израз-оријентисани језици уводе неке врсте празнина да би се повратак дао изразима који само изазивају нуспојаве.
АЛГОЛ 68 и Лисп су примери изражавања-оријентисаних језика. Паскал није израз- оријентисан језик. Сви функционални програмски језици су израз-оријентисани.
Замерка
[уреди | уреди извор]Критичари, укључујући и језичке дизајнере,[1] криве израз-оријентацију за целу класу програмских грешака при чему програмер уводи задатак израз где значи да тестира равноправност. На пример, дизајнери Аде и Јава су били толико забринути о овој врсти грешке, они су ограничили контролу израза онима који процењују искључиво булов тип података.[2][3] Дизајнери Пајтона су имали сличне бриге, али алтернативна стратегија задатака није спровођена као изјава него као израз, тако забрањује задатак да е угнезди унутар било које друге изјаве или изражавања.[4]
Међутим, обележавање изазива такве грешке, а не семантику. (Уреди) Из перспективе изражавања оријентација, избор уступања ознака из, C-стила језика, знак једнакости, =
, може се сматрати као лош избор јер је знак једнакости сличан са hazardously малим куцањем удаљености од обележивача,[nb 1] C-стил језици су изабрали за оператора једнакости,==
, и зато је погодна прилика за грешке. Израз-Несс задатка није узрок. Друге породице језика чине различите ознаке упозорења избора за задатак[5] који немају овај проблем, као што су променљиве ← изражавања
у APLу, променљиве <- изражавања
у OCaml, S, и R, варијабле: = израза у ALGOL 68 и Standard ML, или (сетк променљива израз)
у Lisp и Scheme. Осим тога, многи израз-оријентисани језици су функционални језици. У тим језицима, задатака је било ретко, или, у случају потпуно функционалних језика, немогуће.
Види још
[уреди | уреди извор]Белешке
[уреди | уреди извор]- ^ In fact, considering the automatic repetition feature of typical computer keyboards, the minimum string distance between
=
and==
is effectively zero, the worst possible collision.
Референце
[уреди | уреди извор]- ^ 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. Архивирано из оригинала 06. 01. 2010. г. Приступљено 17. 04. 2010.