Can't say I was too surprised. The stackmark implementation was dreamed
up by Rod Burstall in the early days. I don't have my Silver Book in Glasgow,
but I seem to recall that consing up a vector from a specified number of
stacked elements came with POP-11, although there was a precedent in POP-2 of
consword. It is obviously more efficient NOT to use the stackmark approach
for a vector, but it IS tolerably efficient for lists. In any type theory
for POP, stackmark would have to be disjoint from all other types.
Incidentally, I seem to recall that the original dataword function had an
updater, which was intended to allow users to define extended method-suites
for their own records (of course we didn't use the term "method" then..).
It might be useful for OOP extensions of POP. There would be no problem
with standard data-types, whose keys must be updatable anyway (e.g. the
print methods are updatable). It would not have worked for
standard data-types in Multipop, where such key-cells were shared between
multiple users.
Robin.
|