Baitkood on tarkvara arvutiobjektkood, mida saab tõlgendada ainult tarkvaraprogramm, mida tavaliselt kirjeldatakse virtuaalmasinana. Paljudel kaasaegsetel tarkvaraarendusplatvormidel eelistatakse baitkoodi madala taseme masinkoodile, kuna see asetab tõlgi tarkvaraprogrammi ja arvuti riistvara vahele. Masinakood on platvormist sõltuv, mis nõuab igal riistvaraplatvormil kompileerimist, et sellel konkreetsel platvormil korralikult käitada.
Kuna tarkvaraarenduse paradigmad on aja jooksul küpsed, on ka väliste tõlgenduskihtide kasutamine arvuti riistvara ja arvutis töötava tarkvara vahel. Varase tarkvara loomise alguses sõltusid arendajad arvuti riistvarast, draiveritest ja aluseks olevatest operatsioonisüsteemidest. See sõltuvus sundis arendajaid mõistma konkreetsete arvutite paljusid aspekte, mis muutis platvormi sõltumatuse väga keeruliseks ja tarkvara kasvu tihedalt seotud konkreetsete riist- ja tarkvaramüüjatega.
Baitkoodi loomine on loonud tarkvaraarenduse kogukonnas platvormist sõltumatu keskkonna. Seda metafoori kasutades saavad tarkvaraarendajad kirjutada ühe korra ja kasutada kõikjal. Arendajad ei ole sunnitud mõistma konkreetse arvuti natiivseid draivereid ega muretse ka selle aluseks oleva operatsioonisüsteemi pärast, milles tarkvara töötab.
Virtuaalmasin on Java™ programmeerimiskeeles kasutatav termin, mis tähistab tarkvaraprogrammi, mis tõlgendab baitkoodi. See virtuaalmasin teisendab baitkoodi vastavalt vajadusele, et suhelda arvuti aluseks oleva riistvara ja operatsioonisüsteemiga. Virtuaalse masina genereeritud masinkood on Java™ tarkvaraprogrammi arendaja eest peidetud ja võib täielikult toimida mitmel platvormil, ilma et oleks vaja iga platvormi tarkvararakendust ümber kirjutada.
Baitkoodi sisemised osad on pigem eelteema ja enamikul arendajatel pole tavaliselt vaja neid mõista. Baitkood ei ole inimesele loetav keel ja koosneb klasside, meetodite ja objektide ulatuse numbriliselt kodeeritud esitustest ning nende pesastumisest klassides. Iga baidikoodi opkood on ühe baidi pikkune.
Kaasaegsete arvutite jaoks käskude alusel töötamiseks vajalik masinakeel on müüja oma olemuselt patenteeritud. Igal riistvaral ja operatsioonisüsteemil on ainulaadne viis protsesside käsitlemiseks, mälu eraldamiseks ja ülesannete kasutamiseks. Baitkoodi tarkvaraarendusrakendust kasutades vastutab virtuaalmasina tõlk masinkoodi loomise eest, mida on vaja patenteeritud platvormil töötamiseks.