Бајт-код — разлика између измена

Без промене величине ,  пре 3 месеца
м (Ranching преместио је страницу Бајткод на Бајт-код)
ознака: уређивање извора (2017)
 
Бајт-код програм може да се изврши рашчлањивањем записа и ''директним'' извршење инструкција, једну по једну. Оваква врста ''бајт-код интерпретатора'' је веома преносива. Неки системи, звани динамички преводиоци, или "[[Just-in-time компилација|just-in-time]]"(ЈИТ) преводиоци, преводе бајт-код у машински језик кад год је то потребно у [[Рантајм|рантајму]]: ово помаже виртуалној машини да побољша хардвер, а да се при томе преносивост бајт-кода не губи. На пример, [[Јава (програмски језик)|Јава]] и [[Smalltalk]] код је форматиран као бајт-код, па га (ЈИТ) преводилац може превести у машински код пре активирања. Ово ствара благи застој пре покретања програма, али значајно повећава брзину рада када се упореди са директном интерпретацијом изворног кода.
 
Због овог побољшања перформанси, данас многи програмски језици покрећу своје програме у две етапе, прво преводе изворни код у бајт-код и после убацују бајт-код у виртуалну машину. Овде су виртуелне машине базиране на бајт-коду, то су Јава, [[Пајтон (програмски језик)|Пајтон]], [[PHP]],<ref>Although PHP opcodes are generated each time the program is launched, and are always interpreted and not Just-In-Time compiled</ref> [[Tcl|Тцл]] и [[Форт (програмски језик)|Форт]] (мада је [[Форт (програмски језик)|Фортова]] виртуелна машина мало другачија, па се и бајт-кодови преводе на својствен начин). Програмски језици као што су [[Перл (програмски језик)|Перл]] и [[Руби (програмски језик)|Рубy 1.8]] користе [[апстрактно синтаксно стабло]] како би расчланилирашчланили изворни код.
 
Недавно су аутори [[V8 (JavaScript машина)|В8]] <ref>{{Cite web|title=Dynamic Machine Code Generation|url = https://developers.google.com/v8/design#mach_code|publisher = Google}}</ref> и [[Дарт (програмски језик)|Дарта]] <ref>{{Cite web|last=Loitsch|first = Florian|title = Why Not a Bytecode VM?|url = http://www.dartlang.org/articles/why-not-bytecode/|publisher = Google}}</ref> закључили да је бајт-код неопходан ако желимо брзу и ефикасну ВМ имплементацију. Имплементација оба горе поменута језика користе директно ЈИТ превођење изворног кода у машински код без кориштења бајт-кода.<ref>{{Cite web|title=JavaScript myth: JavaScript needs a standard bytecode|url = http://www.2ality.com/2012/01/bytecode-myth.html}}</ref>
1.001

измена