Baitkood
Baitkood (ingl. bytecode, mõnikord ka p-kood, p-kood porditavast koodist, ingl. portable code) on käsustiku vorm, mis on projekteeritud tõhusaks käivitamiseks tarkvaralise interpretaatori poolt. Erinevalt inimloetavast lähtekoodist koosneb baitkood kompaktsetest numberkoodidest, konstantidest ja viidetest (milleks harilikult on numbrilised aadressid), mis kodeerivad kompilaatori parsimise tulemuse ja teostavad semantilist analüüsi programmiobjektide tüübile, skoobile ja pesastamise sügavusele. Tehnilisest vaatenurgast on baitkood lähtekoodist genereeritud ja madala taseme masinast sõltumatu kood. Paljud kaasaegsed programmeerimiskeeled, eriti kompileeritavad, kasutavad baitkoodi kompilaatori töö hõlbustamiseks ja kiirendamiseks. Vormilt sarnaneb baitkood masinakoodiga, kuid see on mõeldud täitmiseks mitte reaalse protsessori, vaid virtuaalmasina poolt. Tavaliselt vastava programmeerimiskeele tõlk (mõnikord täiendab seda JIT- või AOT-kompilaatoriga) toimib virtuaalmasinana. Baitkoodi ja seda teostavate virtuaalmasinate spetsifikatsioonid võivad eri keeltes oluliselt erineda: sageli koosneb baitkood juhendist pinupõhise virtuaalmasina jaoks, kuid saab kasutada ka registripõhiseid masinaid. Siiski on enamus baitkoodide juhendeid tavaliselt võrdsed ühe või mitme assembleri käsuga. Baitkoodi on nime saanud sellest, et iga opkood on traditsiooniliselt ühe baidi suurune. Iga käsk on tavaliselt ühebaidine opcode (0 kuni 255), millele võivad järgneda parameeterid, näiteks registrinumber või mäluaadress.