Pointer Rotation

It’s sad how much good material isn’t available on the web. Today I wanted to find a copy of Norihisa Suzuki’s paper Analysis of Pointer “Rotation”. I have access to a good library’s electronic subscriptions; but this paper was printed in 1982 which is too long ago. It appears that if I was an ACM member I could get it. Sigh.

It’s a nice little paper that shows that if you limit your pointer manipulation to rotate and shift you can make the chance of memory leaks less and the programs become more transparent; well they do at least once you get used to this as a programming convention.

For example I think it’s almost impossible for this routine to have a memory leak because the pointers have no way to escape. Rotatef swaps pointers but it can’t lose one.


(defun shuffle-vector (v)
  "Return copy of vector with elements shuffled like a deck of cards."
  (loop
    with result = (copy-seq v)
    finally (return result)
    for i from (length v) downto 1
    as j = (random i)
    do (rotatef (svref result j) (svref result (1- i)))))

Norihisa also wrote a fun paper on extracting 3d objects from 2d line drawings, or at least I think he wrote that paper.

3 thoughts on “Pointer Rotation

  1. rich

    “analysis of pointer rotation” suzuki got that link above as the first link for me as well… interesting idea, though

  2. Ben Hyde

    in a futile attempt to protect my reputation: “if I was an ACM member I could get it.”

    Good news; somebody mailed me a copy.

Leave a Reply

Your email address will not be published.