A Third-Generation SELF Implementation: Reconciling Responsiveness with Performance

Programming systems should be both responsive (to support rapid development) and efficient (to complete computations quickly). Pure object-oriented languages are harder to implement efficiently since they need optimization to achieve good performance. Unfortunately, optimization conflicts with interactive responsiveness because it tends to produce long compilation pauses, leading to unresponsive programming environments. Therefore, to achieve good responsiveness, existing exploratory programming environments such as the Smalltalkenvironment rely on interpretation or non-optimizing dynamic compilation. But such systems pay a price for their interactiveness, since they may execute programs several times slower than an optimizing system. SELF-93 reconciles high performance with responsiveness by combining a fast, non-optimizing compiler with a slower, optimizing compiler. The resulting system achieves both excellent performance (two or three times faster than existing Smalltalk systems) and good responsiveness. Except for situations requiring large applications to be (re)compiled from scratch, the system allows for pleasant interactive use with few perceptible compilation pauses. To our knowledge, SELF93 is the first implementation of a pure object-oriented language achieving both good performance and good responsiveness. When measuring interactive pauses, it is imperative to treat multiple short pauses as one longer pause if the pauses occur in short succession, since they are perceived as one pause by the user. We propose a definition of pause clustering and show that clustering can make an order-of-magnitude difference in the pause time distribution. PermiSSiOn to copy without fee all or part of this material is granted provided that the copies are not made or distributed for +ct Commercial advantage, the ACM copyright notice and the title Of the publication and Its date appear, and notice is given that copying is by permission of the Association of Computing Machinery. TO copy otherwise, or to republish, requires a fee and/or specific permission. OOPSLA 9410194 Portland, Ore on USA @ 1994 ACM B o-89791-688-3194 0010..$3.50 David Ungar Sun Microsystems Laboratories 2550 Garcia Avenue, Building 29 Mountain View, CA 940431100 ungar@eng.sun.com