Path: utzoo!attcan!uunet!cs.utexas.edu!rutgers!uwvax!tank!uxc!uxc.cso.uiuc.edu!m.cs.uiuc.edu!p.cs.uiuc.edu!johnson From: johnson@p.cs.uiuc.edu Newsgroups: comp.lang.smalltalk Subject: Re: Polymorphism Message-ID: <80500056@p.cs.uiuc.edu> Date: 25 Apr 89 17:30:00 GMT References: <1546@cfa.cfa.harvard.EDU> Lines: 14 Nf-ID: #R:cfa.cfa.harvard.EDU:1546:p.cs.uiuc.edu:80500056:000:784 Nf-From: p.cs.uiuc.edu!johnson Apr 25 12:30:00 1989 Smalltalk does not have name bindings and scopes as first-class objects. At least, not in what I would consider a reasonable way. Given a method, you can find out the names of its temporaries, and given a context, you can find out the method that invoked it, but it is not very convenient. Smalltalk has a very shallow name-space (method, object, class, global) so scoping is not really a problem, but it would be very difficult to modify that without modifying the compiler. Of course, the compiler is all written in Smalltalk, and it is easy to modify. One of my students added modules (a new scoping mechanism) to Smalltalk as a class project. However, being able to rewrite the compiler is quite a bit different from having name bindings and scopes as first-class objects.