on 3/30/01 3:21 AM, Alan Kay at Alan.Kay@disney.com wrote:
There's Dan's classic POPL paper from 1978 which contains a one page diagram that shows the whole story.
I don't have the URL handy, but this paper is available on line and I'm sure someone in the Squeak list will furnish the URL.
Also, Pierre Cointe has often used the ST-76 metasystem as his model for his ObjVLisp work. There are some good descriptions there.
If you want I have a complete implementation and tutorial of ObjVlisp is Smalltalk:
http://www.iam.unibe.ch/~scg/Teaching/Reflective/
Dan has threatened to get ST-76 going (and in fact the rebirth of Thinglab required some of it to be done). One of these days it will live again (this was my favorite of the post -72 Smalltalks). Every feature really paid its way.
Hi Alan
The problem with ObjVlisp like model is that the composition of metaclasses is really THE BIG problem. In fact, this is true that with current Smalltalk implicit metaclass we lose the possibility to reuse metaclasses but at least the composition is safe and people have been buidling great software with it. I'm not convinced that with the simple ObjVLisp model we could do something. Anyway interested readers can read the excellent paper of Noury Bouraqui in OOPSLA 98 on Safe Metaclass Composition. All the problems and solutin are explained.
Cheers,
Alan
At 6:42 PM -0500 3/29/01, Stephen Pair wrote:
Are there any papers (or code) for Smalltalk-76 on the web? I'm sure they've been announced before (and wasn't there an implementation of it for Squeak?), but I've forgotten.
- Stephen
-----Original Message----- From: Alan Kay [mailto:Alan.Kay@disney.com] Sent: Thursday, March 29, 2001 5:22 PM To: squeak@cs.uiuc.edu Subject: Re: [newbie] how does Object implement new?
Or look to see how Smalltalk-76 did it ....
Cheers,
Alan
At 5:40 PM -0500 3/29/01, Jecel Assumpcao Jr wrote:
On Thursday 29 March 2001 14:37, Karl Wilson wrote:
why doesn't it say something like:
ProtoObject class subclass #Object class
instanceVariableNames: ''
When you do "ProtoObject subclass: #Object ..." this method takes care of all these little details automatically.
and why can't you spawn a class side heirarchy?
Behavior ClassDescription Class ProtoObject class Object class
Ooops - I had said you would reach "Behavior class" but that was wrong. Since the system created all these metaclasses behind your back and doesn't even bother to give them proper names, showing them like this would probably cause more confusion. It is easy to patch the tools to do this, but I don't think it is a good idea.
I am sure this will all make sense after awhile. Thanks again.
Others have given a lot of great pointers to more information about this than most people want to know. I prefer the alternative adopted by the Self dialect of Smalltalk - simply design this complication out of the language! http://www.sun.com/research/self/
-- Jecel
squeak-dev@lists.squeakfoundation.org