Байт-код або байткод ( англ. byte-code ), Іноді також використовується термін псевдокод - машинно-незалежний код низького рівня, що генерується транслятором і виконуваний інтерпретатором. Більшість інструкцій байт-коду еквівалентні одній або кільком командам ассемблера. Трансляція в байт-код займає проміжне положення між компіляцією в машинний код і інтерпретацією.

Байт-код називається так, тому що довжина кожного коду операції - один байт, але довжина коду команди різна. Кожна інструкція являє собою однобайтових код операції від 0 до 255, за яким слідують такі параметри, як регістри або адреси пам'яті. Це в типовому випадку, але специфікація байт-коду значно різниться в різних мовах.

Програма на байт-коді зазвичай виконується інтерпретатором байт-коду (зазвичай він називається віртуальною машиною, оскільки подібний комп'ютера). Перевага - в портіруемості, тобто один і той же байт-код може виконуватися на різних платформах і архітектурах. Те ж саме перевага дають інтерпретовані мови. Однак, оскільки байт-код зазвичай менш абстрактний, більш компактний і більш "комп'ютерний", ніж вихідний код, ефективність байт-коду зазвичай вище, ніж чиста інтерпретація вихідного коду, призначеного для правки людиною. З цієї причини багато сучасних інтерпретовані мови насправді транслюють в байт-код і запускають інтерпретатор байт-коду. До таких мов відносяться Perl, PHP, Ruby (починаючи з версії 1.9) і Python. Програми на Java зазвичай передаються на цільову машину у вигляді байт-коду, який перед виконанням транслюється в машинний код "на льоту" - за допомогою JIT-компіляції. У стандарті відкритих завантажувачів Open Firmware фірми Sun Microsystems байт-код являє оператори мови Forth.

У той же час можливе створення процесорів, для яких даний байт-код є безпосередньо машинним кодом (такі процесори існують, наприклад, для Java і Forth).

Також деякий інтерес представляє p-код (p-code), який схожий на байт-код, але фізично може бути менш лаконічним і сильно варіюватися по довжині інструкції. Він працює на дуже високому рівні, наприклад "надрукувати рядок" або "очистити екран". P-код повсюдно використовується в СУБД і деяких реалізаціях BASIC і Паскаля.


Мови і середовища програмування, що використовують байткод