The story so far

The year is 1980. The Inescapable Barney Machines Corporation (a.k.a. Big Purple) has developed a computer small enough to fit on a desk top, using the new microprocessor developed by the Mintel Corporation. This new design is quaintly called the ``Personal Computer'' (PC).

Since computers are rather useless without any programs to run, Big Purple has decided to include a BASIC interpreter in the ROM of the computer so that it will always be usable, even if the user has ignorantly stuck their system disk to the refrigerator with a magnet. Then the computer will only become truly unusable when the user has a big project due, in which case it is programmed to crash every five minutes, preferably reformatting the hard drive in the process.

Following the philosophy of ``smaller is better'' that has pervaded the design of the PC computer, the Powers That Be have decreed that the ROM BASIC in the PC should be a considerably stripped down version of the BASIC that has been in common use by computer hobbyists. (If you think that was a stupid decision, you should see the operating system they came up with.) They call it BASIC but BASICer (BBB). Those of you who have never seen a BASIC program might want to look at the BBB programs on the disk that accompanies this document. A complete specification of the BBB language is in a later section.

The Microfluffy Corporation was originally retained to create this interpreter. But the CEO of Microfluffy decided that there was a fortune to be made manufacturing BETA video tapes, and bailed out of the BBB project in favor of that pursuit.

This is where you come in. Deciding that they would be better off doing the project in-house, Big Purple has hired a team of programmers to finish up the project Microfluffy started. Your team has been given the source code that Microfluffy produced, and a ridiculously short time period in which to complete the project.

This may seem like a big project, but don't panic! It's not really that hard, there's just a lot to learn before you get started. We've also already given you most of the code. The remainder of this document will tell you everything you need to know about how the interpreter works, and specifies what you need to do. Don't worry if you don't finish every single little detail described in the specification. Your interpreter can function well even if you don't catch many of the picky details. Your score will be higher the more closely you match the specification, however.

Note: there is a glossary in section 6 if you don't understand what some of the terms mean.



Alyosha Efros
Mon Mar 3 17:43:27 MST 1997