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 * Memory is fixed and limited * It is impossible or impractical to stage data to disk * Dynamic data can be classified into a small number of homogeneous items 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 * adding a new item to a table * deleting an item to a table * accessing the ith item in a table Fancy implementations additionally provide * creating and removing a table * maintaining sort order of elements in a table * managing tables consisting of variable length items (of a known format) -------- 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