Израз-оријентисан програмски језик

Израз-оријентисан програмски језик је програмски језик где је свака (или скоро сваки) конструкција израз и на тај начин јој даје вредност. Типични изузетак су макро дефиниције, препроцесор команде, и декларације, које израз-оријентисани језици често третирају као наредбу него као израз. Неки израз-оријентисани језици уводе неке врсте празнина да би се повратак дао изразима који само изазивају нуспојаве.

АЛГОЛ 68 и Лисп су примери изражавања-оријентисаних језика. Паскал није израз- оријентисан језик. Сви функционални програмски језици су израз-оријентисани.

Критичари, укључујући и језичке дизајнере,[1] криве израз-оријентацију за целу класу програмских грешака при чему програмер уводи задатак израз где значи да тестира равноправност. На пример, дизајнери Аде и Јава су били толико забринути о овој врсти грешке, они су ограничили контролу израза онима који процењују искључиво булов тип података.[2][3] Дизајнери Пајтона су имали сличне бриге, али алтернативна стратегија задатака није спровођена као изјава него као израз, тако забрањује задатак да е угнезди унутар било које друге изјаве или изражавања.[4]

Међутим, обележавање изазива такве грешке, а не семантику. (Уреди) Из перспективе изражавања оријентација, избор уступања ознака из, C-стила језика, знак једнакости, =, може се сматрати као лош избор јер је знак једнакости сличан са hazardously малим куцањем удаљености од обележивача,[nb 1] C-стил језици су изабрали за оператора једнакости,==, и зато је погодна прилика за грешке. Израз-Несс задатка није узрок. Друге породице језика чине различите ознаке упозорења избора за задатак[5] који немају овај проблем, као што су променљиве ← изражавања у APLу, променљиве <- изражавања у OCaml, S, и R, варијабле: = израза у ALGOL 68 и Standard ML, или (сетк променљива израз) у Lisp и Scheme. Осим тога, многи израз-оријентисани језици су функционални језици. У тим језицима, задатака је било ретко, или, у случају потпуно функционалних језика, немогуће.

  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.

Референце

[уреди | уреди извор]