Technical Reports

The ICICS/CS Reading Room

UBC CS TR-79-11 Summary

Three BCPL Machines, January 1979 Harvey Abramson

We describe three virtual BCPL machines designed in the Department of Computer Science at the University of British Columbia. The first machine is the Pica-B which is an Intcode machine with an added interrupt register, plus several execute instructions to manipulate this register, and a modification of the routine calling mechanism so that interrupts can be treated as unexptected routine calls. An inline code command, the \underline{vile} command, allows the writing of interrupt routines in BCPL, and also facilitates the portability of the BCPL library by allowing certain routines such as level, longjump, and aptovec to be written in BCPL. The second machine is the SLIM (\underline{S}tack \underline{L}anguage for \underline{I}ntermediate \underline{M}achine) machine which is a stack machine with an accumulator. This architecture permits the representation of BCPL programs with fewer instructions than the OCODE representation requires. The third machine is the ICE machine which permits highly space-efficent representations of BCPL programs by having a large instruction set which includes many variants of the BCPL operators.

If you have any questions or comments regarding this page please send mail to