Three BCPL Machines

ID
TR-79-11
Authors
Harvey Abramson
Publishing date
January 1979
Abstract
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.