Multiple polymorphism / multi-methods

Michael Richardson mcr at Sandelman.OCUnix.On.Ca
Sun Apr 14 04:03:33 UTC 1991

On Apr 13,  6:38pm, Jecel Mattos Assumpcao Jr wrote:
} >  This is one thing I was discussing with a Smalltalk hacker a couple
} >of days ago. One of the really beautifull things about Lisp and
} >Lisp-like things (assembly language is the only non-Lisp derived
} >language that also has this property) is that program is data and data
} >is program. 
} Actually machine language ( and not in all OSs or machines ), not assembly
} has this property. Back in 1984 I designed ( but never tested ) a

  A subtle, but valid semantic difference. It does reveal what I think
the conflict here is:

} that compiled to objects: message prototype trees. Although most objects
} were not code, all code were objects. Bytecode objects can also be built
} at run time in theory, but somehow it doesn't feel the same.

  The thing that lets you get away with data<->code in Lisp is that
there is basically only your one datatype. The pair. There is
essentially no syntax compared to smalltalk, and things like
'operators' and 'keyword messages' just don't exist.
  In order to build a parser that could parse code (which was in this
case, simply data) the right way would be if it assumed some model of
the operators, etc... You couldn't implement your own language that had
different semantics.

Re: copying

  Your comments concerning object persistence and inadvertent editing
is very true. For an interesting implementation of this in a
class-less OOP environment (I don't think it quite falls under
'language') is (Lambda)MOO. This is a Object Oriented MUD (Multi-User Dungeon).
  The source and manuals are on, and the prototype
is at, port 8888.  I'm currently playing with it
(quite successfully) to do the modelling that I was going to do with
Self while I await a Sun 3 version of 1.3.

More information about the Self-interest mailing list