Байт-код
Байт-код або байтко́д (англ. byte-code), іноді також використовується термін псевдокод — машинно-незалежний код низького рівня, що генерується транслятором і виконуваний інтерпретатором. Більшість інструкцій байт-кода еквівалентні одній або кільком командам асемблера. Трансляція в байт-код займає проміжне положення між компіляцією в машинний код і інтерпретацією.
Байт-код називається так, тому що довжина кожного коду операції — один байт, але довжина коду команди різна. Кожна інструкція є однобайтовим кодом операції від 0 до 255, за яким слідують такі параметри, як регістри або адреси пам'яті. Це в типовому випадку, але специфікація байт-кода значно розрізняється в мові.
Програма на байт-коді зазвичай виконується інтерпретатором байт-кода (зазвичай він називається віртуальною машиною, оскільки подібний до комп'ютера). Перевага — в портованості, тобто один і той байт-код може виконуватися на різних платформах і архітектурі. Ту ж саму перевагу дають мови, що інтерпретуються. Проте, оскільки байт-код зазвичай менш абстрактний, компактніший і більш «комп'ютерний» чим початковий код, ефективність байт-кода зазвичай вища, ніж чиста інтерпретація початкового коду, призначеного для правки людиною. З цієї причини багато сучасних інтерпетованих мов насправді транслюють в байт-код і запускають інтерпретатор байт-кода. До таких мов відносяться Perl, PHP і Python. Програми на Java зазвичай передаються на цільову машину у вигляді байт-кода, який перед виконання транслюється в машинний код «на льоту» — за допомогою JIT-компіляції. У стандарті відкритих завантажувачів Open Firmware фірми Sun Microsystems байт-код представляє оператори мови Forth.
В той же час можливе створення процесорів, для яких даний байт-код є безпосередньо машинним кодом (такі процесори існують, наприклад, для Java і Forth).
Також деякий інтерес представляє p-код (p-code), який схожий на байт-код, але фізично може бути менш лаконічним і сильно варіюватися по довжині інструкції. Він працює на дуже високому рівні, наприклад «надрукувати рядок» або «очистити екран». P-код використовується в деяких реалізаціях BASIC і Паскаля.
Мови і середовища програмування, що використовують байткод [ред.]
- Байткод Java виконується віртуальною машиною Java (Java virtual machine).
- Smalltalk
- Python
- Віртуальна машина Parrot
- Платформа Microsoft .NET використовує Intermediate Language (IL), що виконується за допомогою Common Language Runtime (CLR). Дивись Керований код.
- PHP
- Forth
- EiffelStudio для мови програмування Eiffel
- Objective Caml
- Erlang
Посилання [ред.]
- http://www.osp.ru/cw/2001/06/9339/
- http://easyelectronics.ru/virtualnaya-mashina-i-bajt-kod.html
- http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci211722,00.html
- http://www.byte-code.com/portal/
Дивись також [ред.]
| Це незавершена стаття про комп'ютери. Ви можете допомогти проекту, виправивши або дописавши її. |
