Pコードマシン
(実機の)機械語コードに直接変換するのに比べ、途中でpコードを経由してインタプリタや実行時コンパイラでpコードを実行する方式にはいくつかの利点がある。
移植性が高い。コンパイラを他のプラットフォームに移植する際、小さなpコードインタプリタを移植するほうが簡単である。そうすれば、コンパイラ本体は修正なしで移行できる(再コンパイルは必要)。
実装が単純化される。コンパイラ作成にあたっては、機械語生成部分は最も複雑な部分の1つである。その点で、pコードを生成する方が簡単である。それによりコンパイラ開発が早くなる。
コードのサイズが小さくなる。pコードは理想的な仮想機械に基づいているため、多くの場合、生成されたpコードは実機の機械語コードよりも小さくなる。
デバッグしやすい。pコードはインタプリタで実行されるため、インタプリタに各種実行時チェックを入れることで本来の機械語では困難なデバッグが可能となる。
Pascalのいくつかの実装では、pコードの解釈実行にジャストインタイムコンパイル方式を利用している。ニクラウス・ヴィルトは Pascal の後継である Modula-2 向けの m-code について言及している 。1980年代、イギリスでpコードのプログラムを実行するクロスプラットフォームのオペレーティングシステム Business Operating System (BOS) が開発された。UCSD p-System はpコードを使ったマシン非依存の移植性の高いオペレーティングシステムであった。