In Byte Magazine Vol. 3 Nos. 9, 10, and 11 (Sep 1978,
Nov 1978) there is an article written by Kin-Man Chung and
Herbert Yuen describing a "Tiny Pascal" compiler. Tiny Pascal
compiles a subset of pascal to p-code, and then translates that
p-code into 8080 assembly. The compiler is written in North
Circa 1973, Bill Gord and I wrote a BBN-LISP to p-code
compiler and interpreter on a Burroughs B6500 for the
UCSD (University of California, San Diego) Computer Center,
on a contract for DARPA.
(BBN-LISP is the precursor to InterLISP.)
BBN-LISP didn't have the p-code stuff. Our DARPA
contract was to port BBN-LISP to the B6500; once we got the
LISP interpreter running, we then decided to improve the
speed by doing the UCSD-unique enhancement of the
IIRC, this pre-dated UCSD Pascal p-code, but there's
an obvious relationship: Bill and I worked for Ken Bowles,
and both p-codes (and Java byte code :) resemble the B6500
My recollection is that I wrote the LISP-to-p-code compiler
(in LISP, of course :), and Bill designed the p-code
and wrote the p-code interpreter (in Burroughs ALGOL).
When interpreting a LISP function, we would jump to the
p-code interpreter if the function had been compiled,
otherwise we'd stay in the LISP interpreter code.
We talked about writing a p-code to machine code translator,
but in those days the Burroughs B6500 MCP code/data separation
would have made aspects of the implementation inefficient,
so we never did that.
sieler at allegro.com