1. 30
  1. 2

    Interesting history. Based on a conversation with @mjn, it appears that Weizenbaum’s SLIP was the first programming language to use reference counting. Finally I get to see a SLIP program.

    More context: SLIP was a list processing language, created a few years after LISP. LISP used a tracing garbage collector (a first, published 1960), and SLIP used reference counting (seems to be the first programming language to use this technique, published 1963).

    1. 1

      Does the divergence in garbage collection methods have anything to do with SLIP being a Fortran extension? I have to imagine the garbage collector was still implemented in machine code.

      1. 2

        Here’s the abstract for Weizenbaum’s paper:

        Symmetric list processor; J Weizenbaum - Communications of the ACM, 1963; A list processing system in which each list cell contains both a forward and a backward link as well as a datum is described. This system is intended for imbedding in higher level languages capable of calling functions and subroutines coded in machine language. The presentation is in the form of FORTRAN programs depending on only a limited set of “primitive” machine language subroutines which are also defined. Finally, a set of field, particularly character, manipulation primitives are given to round out the system.

        Based on this, it sounds like SLIP is implemented in machine language. This would have been normal and expected in 1963. I don’t have access to the full paper. Also note that in the ELIZAGEN article, this version of SLIP is embedded in MAD, not FORTRAN.