Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!cmcl2!harvard!husc6!panda!genrad!decvax!bellcore!ulysses!mhuxr!mhuxn!ihnp4!inuxc!pur-ee!uiucdcs!uiucdcsp!johnson From: johnson@uiucdcsp.CS.UIUC.EDU Newsgroups: net.lang.st80 Subject: Re: Native code Smalltalk compilers Message-ID: <9000005@uiucdcsp> Date: Tue, 13-May-86 10:26:00 EDT Article-I.D.: uiucdcsp.9000005 Posted: Tue May 13 10:26:00 1986 Date-Received: Fri, 16-May-86 04:58:19 EDT References: <418@vger.UUCP> Lines: 31 Nf-ID: #R:vger.UUCP:418:uiucdcsp:9000005:000:1931 Nf-From: uiucdcsp.CS.UIUC.EDU!johnson May 13 09:26:00 1986 The best paper on Smalltalk implementations is the one by Peter Deutsch and Allan Schiffman in the 10'th POPL conference. There is also a paper by Suzuki and Terada in that same proceedings that talks about implementation issues. One of the things that is apparent from the Deutsch and Schiffman paper is that interpretation alone is not the reason why Smalltalk is slow, so just compiling Smalltalk to machine language will not improve the speed much. However, certain optimizations can make a big difference. In order to optimize Smalltalk programs the compiler must know the particular methods that are being invoked by a given message. A type system is necessary to do this. Suzuki describes one type system in the 8'th POPL conference proceedings, while Borning and Ingalls described a more complete type system in the 9'th POPL conference proceedings. I am having a paper in the Object-oriented Programming Languages, Applications, and Systems conference next October that explains why these type systems are not suficient for code-optimization and that presents a type system for Smalltalk that (I claim) is. There will probably be a lot of papers on compilation and other implementation techniques at this conference, so anyone who is interested in implementing object-oriented languages should certainly attend. I have been looking at optimizing Smalltalk programs for a couple of years and am in the early stages of an implementation of an optimizing compiler. Smalltalk was not really designed to be optimized because it is typeless. Retrofitting a type system to Smalltalk is tricky and inevitably requires some modification to some of the primitives. It might be better to just start over and design a language that is well integrated with a type system. Building an optimizing compiler for Smalltalk is interesting research but it is by no means obvious that such a project will be a success. Ralph Johnson