Програмски језик високог нивоа — разлика између измена

Садржај обрисан Садржај додат
Релативно значење
Модели извршавања
Ред 19:
 
[[Асемблер|Асемблерски језик]] се може сматрати за виши ниво представљања [[Машински језик|машинског кода]], јер подржава концепте као што су константе и (делимично) изразе, понекад чак и [[Променљива (рачунарство)|променљиве]], [[Процедурални језик|процедуре]] и [[структура података|структуре података]]. [[Машински језик|Машински код]], са своје стране, је на нешто вишем нивоу него микро-код или микро-операција које се користе интерно у многим [[Процесор|процесорима]].
 
== Модели извршавања ==
Постоје три модела извршавања савремених високих језика:
; Интерпретед ([[Енглески језик|енгл]]. ''Interpreted'' ): [[Интерпретиран језик]] се чита, а потом се одмах директно извршава, без фазе превођења. Програм назван [[Интерпретатор|преводилац]] чита сваку програмску линију програмског тока, конвертује је у машински код, и извршава је. Машински код се затим одбацује, и изнова се тумачити ако се линија програмског кода поново извршава.
; Компаилед ([[Енглески језик|енгл]]. ''Compiled'' ): [[Компилиран језик]] се трансформише у извршни облик пре него што се покрене. Програм који то обавља зове се [[Компилатор|компајлер]](преводилац). Постоје две врсте компилације:
:; Машина за генерисање кода ([[Енглески језик|енгл]]. ''Machine code generation'' ): Неки [[Компајлер|компајлери]] компајлирају [[изворни код]] директно у [[Машински језик|машински код]]. Ово је оригинални начин компилације, а језици који се директно и потпуно трансформишу у нативни машински код на овај начин би се могли назвати "прави" компајлирани језици.
:; Средња репрезентација ([[Енглески језик|енгл]]. ''Intermediate representations'' ): Када је језик компајлиран на средњој репрезентацији, та репрезентација може бити оптимизована или сачувана за касније извршење без потребе да поново учитава изворна датотека. Када се средња репрезентација сачува, она се често представља као [[бајт-код]]. Средња репрезентација затим мора се интерпретира или да се даље компајлира да би се извршила. [[Виртуелна машина]] тада извршава [[бајт-код]] директно или га трансформише се даље у [[Машински језик|машински код]].
; Превод ([[Енглески језик|енгл]]. ''Translated '' ): Језик се може превести у нижи ниво програмског језика за који нативни [[Компилатор|компајлери]] су већ широко доступни. [[C (програмски језик) | Програмски језик С]] је типичан одабир за такве преводилаце.