1; s[t] := s[base(l) + a] end; sto: begin s[base(l)+a] := s[t]; writeln(s[t]); t := t - 1 end; cal: begin {generate new block mark} s[t + 1] := base(l); s[t + 2] := b; s[t + 3] := p; b := t + 1; p := a end; int: t := t + a; jmp: p := a; jpc: begin if s[t] = 0 then p := a; t := t - 1 end end {with, case} until p = 0; writeln(' end pl/0'); end {interpret}; This machine was used to run Wirth's PL/0, a Pascal subset compiler used to teach compiler development. Microsoft P-Code P-Code is a name for several of Microsoft's proprietary intermediate languages. They provided an alternate binary format to machine code. At various times, Microsoft have said p-code is an abbreviation for either packed code or pseudo code. Microsoft p-code was used in Visual C++ and Visual Basic. Like other p-code implementations, Microsoft p-code enabled a more compact executable at the expense of slower execution. Other implementations See also Bytecode Intermediate representation Joel McCormack, designer of the NCR Corporation version of the p-code machine Runtime system Token threading City & Guilds Mnemonic Code References Further reading (NB. Has Pascal sources of the P4 compiler and interpreter, usage instructions.) (NB. Has the p-code of the P4 compiler, generated by itself.) , including packaging and pre-compiled binaries; a friendly fork of the (NB. Especially see the articles Pascal-P Implementation Notes and Pascal-S: A Subset and its Implementation.) External links Stack-based virtual machines Pascal (programming language) Programming language implementation Articles with example Pascal code