1979 paper on the inner work of a parser

I found this paper in the 1979 version of MDL Zork. The writer is unknown (but I suspect one Mr. Blank). It’s a detailed discussion on the workings of the parser. This is obviously for the MDL Zork, but much of the mechanics carried over to Infocom. Anyway, I found it interesting…



It’s interesting how much emphasis they put in this paper on the speed of parsing a command.

Like, it’s a good thing we early out if you pass in a cardinal direction because we don’t want the user waiting around while we try to figure out if we have to look up a word or two extra from a table.

CPU time was a limited resource. Zork had a couple of limits for playing. For example you got this message if you tried to start Zork during business hours:

Suddenly, a sinister, wraithlike figure appears before you, seeming
to float in the air.  He glows with an eldritch light.  In a barely
audible voice he says, "Begone, defiler!  Your presence upsets the
very balance of the System itself!"  With a sinister chuckle, he
raises his oaken staff, taps you on the head, and fades into the
gloom.  In his place appears a tastefully lettered sign reading:
At that instant, you disappear, and all your belongings clatter to
the ground.

Another limitation was that if you SAVEd, you had to wait 24h before you RESTOREd.

1 Like

Marc Blank commented on this in the ZIL Facebook-group and seems to agree that he wrote this document…

Consider that when Zork was written, the CPU was a resource shared between a dozen users.

The reason I find it interesting is that we are still doing the same things today. I work in game development, and we spend a crazy amount of engineering effort trying to cut out as much work for the CPU and GPU as possible, though we’re thinking a lot more about draw calls than string manipulation now.