Native kood on arvuti programmeerimiskoodi vorm, mis on konfigureeritud töötama koos määratud protsessoriga. Koodi täpne struktuur on seadistatud vastama protsessori poolt väljastatud juhistele. Igat tüüpi tarkvara toimib algkoodiga ja on kirjutatud nii, et see toimiks optimaalse efektiivsusega valitud tüüpi protsessoriga või protsessoritega, mis on toodetud määratletud protsessori konfiguratsiooni peegeldamiseks.
Kuna algkood on kirjutatud nii, et see võimaldaks teatud töötlemiskomponente kasutavas süsteemis töötamisel täielikku funktsionaalsust, on ilma nõutava protsessorita süsteemis tarkvara käitamise valik piiratud juurdepääsuga paketi funktsioonidele. Mõnel juhul ei pruugi tarkvara üldse töötada.
Üks viis ühildumatut algkoodi kasutava tarkvara käitamiseks on kasutada vahendavat tarkvarapaketti, mida nimetatakse emulaatoriks, mis sisuliselt teisendab protsessori signaalid andmeteks, mida kood saab lugeda. Isegi kõige arenenumate emuleerimiskoodide tarkvarapakettide puhul kipub saavutatav reaktsioon ja tõhususe tase siiski olema väiksem kui programmi käivitamisel õige protsessoriga varustatud süsteemis. Sageli on parim võimalus kood ümber kirjutada, et kohaneda praegu kasutusel oleva protsessoriga.
Oluline on märkida, et algkood erineb baitkoodist. Baitkood on kompileeritud töötama virtuaalmasina režiimis, mis suudab teisendada baitkoodi üldised komponendid fokusseeritumaks algkoodiks, mis töötab koos kasutatava protsessoriga. Kuigi baitkoodi saab teisendada, ei ole võimalik seda toimingut sooritada vastupidises järjekorras ja kasutada seda lähenemist võõrprotsessoriga ühilduvuse suurendamiseks.
Omakoodi leidub igat tüüpi programmeerimiskeskkondades. Aja jooksul on selle esinemissagedus, et see erinevate protsessoritega hästi ei tööta, vähenema. See on üldiselt tingitud asjaolust, et erinevad protsessorid on järjest enam konfigureeritud töötama sama tüüpi protokollide ja loogikajadadega.