P-koodi (Pi-koodi) on laitteistosta riippumattoman suoritettavan koodin käsite ohjelmoinnissa, se määritellään usein " assembleriksi hypoteettiselle prosessorille". Termiä käytetään yleisesti viittaamaan Pascal-ohjelmointikielen virtuaalikoneen toteutuksiin (esim. UCSD p-System ), jota joskus käytetään myös synonyyminä termille tavukoodi eri virtuaalikoneita varten (esim. Java -virtuaalikone , CIL :n tavukoodi). .NET-alusta jne.).
Abstraktin konekoodin käsitettä ohjelmointikielille sovellettiin ensimmäisen kerran vuonna 1966 ( O-koodi BCPL :lle ). Termin P-koodi keksi 1970-luvun alussa Niklaus Wirthin johtama tiimi toteuttaessaan kannettavaa kääntäjää Pascalille. Välimuotoisen p-koodin käyttöönotto yksinkertaisti kielen portointia: kääntäjä (kirjoitettu Pascalilla) loi lähdekoodista sekvenssin p-koodeja, jotka voidaan suorittaa p-järjestelmällä (esim. p-koodin tulkki). , kokoonpanossa). Kielen siirtämiseksi uudelle alustalle piti vain mukauttaa p-järjestelmä siihen, mikä tehtiin lyhyessä ajassa alustoille 6502 , 8080 , Z-80 , PDP-11 ja monille muille [1] [ 2] [3] .