The
O-code machine was developed by Martin Richards in the late
1960s to give machine independence to
BCPL, the low-level forerunner to C and C++. The idea was that the BCPL compiler created O-code output (O stands for Object). The O-code was then either interpreted or, more normally, compiled to machine specific code. This idea was used in later compilers. For instance
P-code for some
Pascal compilers; the
JVM code for
Java compilers. O-code allowed Richards to separate general compilation issues from machine specific implementation issues when writing the BCPL compiler. Its use in the BCPL compiler made the compiler easy to port and as a result BCPL quickly became available for many machines.
For references see
- The Portability of the BCPL Compiler, Martin Richards, Software - Practice and Experience, Vol. 1, No. 2, pp.135-146, 1971
- BCPL - the language and its compiler, M. Richards and C. Whitby-Stevens, Cambridge University Press, Cambridge, 1980
/Talk