Програмски језик високог нивоа — разлика између измена
Садржај обрисан Садржај додат
м Уклањање сувишних унутрашњих веза |
м Бот: исправљена преусмерења |
||
Ред 1:
{{loš seminarski}}
'''Програмски језик високог нивоа''' је [[програмски језик]] са јаком апстракцијом у односу на базично коришћење [[
Први програмски језик високог нивоа који је дизајниран за рачунаре је [[Plankalkül|Планкалкул]], креиран од стране [[Конрад Цузе|Конрада Цузеа]].<ref>Giloi, Wolfgang, K. (1997). "Konrad Zuse's Plankalkül: The First High-Level "non von Neumann" Programming Language". IEEE Annals of the History of Computing, vol. 19, no. 2, pp. 17–24, April-June, 1997. [http://doi.ieeecomputersociety.org/10.1109/85.586068 (abstract)], Приступљено 24. 4. 2013.</ref>
== Карактеристике ==
"Језик високог нивоа“ односи се на виши ниво апстракције од машинског језика. Уместо да се манипулише [[Регистар (рачунарство)|регистрима]], меморијским адресама и позивима [[Стек (апстрактни тип података)|стека]], на високом нивоу програмски језици раде са [[
== Цена апстракције ==
Ред 17:
Појмови ''висок ниво'' и ''низак ниво'' (апстракције програмских језика) су у суштини релативни. Пре неколико деценија, [[C (програмски језик)|програмски језик С]], и слични језици, су најчешће сматрани језицима на „високом нивоу“, јер подржавају концепте као што су евалуација израза, параметаризонане рекурзивне функције, и типове података и структуре, док је [[Асемблер|асемблерски језик]] сматран за језик „ниског нивоа“. Многи програмери данас сматрају програмски језик С као језик ниског нивоа, јер нема разне карактеристике многих модерних језика (нема [[Објектно-оријентисано програмирање|објектно-оријентисан приступ]], [[Сакупљач смећа|систем за сакупљања смећа]], итд), у основи подржава само скаларне операције, и пружа [[Меморијско адресирање|директно меморијско адресирање]]. То се лако уклапа са [[Асемблер|асемблерским језиком]] и машинском нивоу [[Процесор|процесора]], а и [[Микроконтролер|микроконтролера]].
[[Асемблер|Асемблерски језик]] се може сматрати за виши ниво представљања [[Машински језик|машинског кода]], јер подржава концепте као што су константе и (делимично) изразе, понекад чак и [[
== Начини извршавања ==
Ред 23:
; Интерпретирани ({{јез-ен|Interpreted}}): [[Интерпретиран језик]] се чита, а потом директно извршава. Програм назван [[Интерпретатор (рачунарство)|интерпретатор]] врши ово извршавање. У овакве језике се обично убрајају: [[Пајтон (програмски језик)|Пајтон]], [[Руби (програмски језик)|Руби]], [[Перл (програмски језик)|Перл]], [[Бејсик]], ...
; Компилирани ({{јез-ен|Compiled}}): [[Компилиран језик]] се трансформише у извршни облик пре него што се покрене. Програм који то обавља зове се [[компилатор]] (програмски преводилац). Постоје две врсте компилације:
:; Стварање машинског кода ({{јез-ен|Machine code generation}}): Неки компилатори претварају [[изворни код]] директно у [[Машински језик|машински код]]. Ово је првобитни начин компилације, а језици чији се код директно и потпуно трансформише у машински код, могли би се назвати „прави“ компилирани језици. Пример оваквих језика су: [[
:; Стварање међукода ({{јез-ен|Intermediate representations}}): Када се изворни код претвори у међукод, у том облику може бити оптимизован или сачуван за касније извршење без потребе да се поново учитава изворна датотека. Ако се међукод чува у датотеци, он се често налази у облику [[бајт-код]]. Међукод затим мора да се интерпретира или да се даље компилира да би се избршио. [[Виртуелна машина]] тада извршава бајт-код директно или га трансформише у машински код. Пример: [[Јава (програмски језик)|Јава]], Icon, [[R (програмски језик)|R]]...
; Преведени ({{јез-ен|Translated}}): Код написан у језику високог нивоа може се превести у језик нижег ниво за који постоје већ развијени компилатори. [[C (програмски језик)|Програмски језик С]] је типичан избор циљног језика за такве преводиоце.
|