Managed Tables

ManagedTables was a storage management technique used in GordonLetwin's 8080 Basic interpreter. It also was a standard library component in the Purdue Mace OS and used in many utilities.

These days software generally relies on large amounts of real or virtual memory and usually manages all dynamic storage out of a single heap. Managed tables may still be suitable where

Where it makes sense, managed tables have a lot less storage overhead, as the overhead is constant per table rather than per item.

Managed Tables are implemented in a contiguous section of RAM. Typically all the spare RAM after loading your program is allocated to managed tables. Within that, each of the tables (data types) to be managed are assigned a fixed relative order. The table manager maintains a pointer or index to the start of each individual table. When a table grows in size, all the following tables are block-moved down to make room. Usually, the moved tables move down so that all the available free space is now part of the table which most recently grew.

The table manager provides functions for

Fancy implementations additionally provide


GregMansfield wrote a managed table package for the CDC6000 series. It's hard these days to think of managed tables as an achievement. You have to remember that back then machine words were long and scarce. A UniversalDataStructure? had to deal with BitPacking? and do so quickly with word addressing.

I suspect Gordon picked up the ideas from Greg's package, possibly through RossGarmoe? who was a DualMace heavy. Gordon later brought Ross into the os group at Microsoft.

-- WardCunningham


The SinclairZX81 and SinclairSpectrum Basic's also managed memory in this way. The SinclairZX81 even used ManagedTables for its display file. If there was nothing on the screen, the machine would store just one newline for each screen line. When text was added to the screen, it would expand the ManagedTables character by character.

-- JamesNoble


Venn implemented, as part of their set-theoretic database software for the PC, a library called Space Manager. Space Manager used a couple of dedicated pages of PC memory to provide access to a very large collection of tables. Tables could grow and shrink, and could be added and removed. Space Manager was basically ManagedTables with disk-based virtual memory.

The reason you never heard of this is that we only had a very small number of very happy customers. Next time I'll partner with a sales guy, not another techie. --RonJeffries


EditText of this page (last edited May 29, 1998) or FindPage with title or text search