P-Code is een tussencode voor de programmeertaal Pascal. Vroege implementaties van Pascal vertaalden Pascal-code in een machine-onafhankelijke P-Code-representatie. Deze tussenvorm werd vervolgens geïnterpreteerd door een programma dat specifiek was voor een computerarchitectuur. Het gevolg was dat alleen deze compacte interpreter aan de verschillende architecturen aangepast diende te worden. Nadeel was dat de programma's veel langzamer werden, door de extra interpretatielaag. Latere Pascal-compilers genereerden daarom directe native code in de machinetaal van de CPU. Deze programma's konden veel sneller worden uitgevoerd.
Na vele jaren stilte is het idee van een machine-onafhankelijke tussencode weer opgepakt. De Java Virtual Machine en het .NET-platform van Microsoft zijn op ditzelfde principe gebaseerd. De oude nadelen van langzamere verwerking lijken te zijn opgeheven, enerzijds doordat de processoren een factor 4000 sneller zijn geworden (in de P-Code-tijd was een 6502 Processor op 1 MHz gebruikelijk), anderzijds omdat zowel Java als .NET de machine-onafhankelijke code niet interpreteren maar eerst voorcompileren.