Smalltalk-80: bits of history, words of advice
Smalltalk-80: bits of history, words of advice
Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
The design and evaluation of a high performance SMALLTALK system
The design and evaluation of a high performance SMALLTALK system
Swamp: a fast processor for Smalltalk-80
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Reduced instruction set computers
Communications of the ACM - Special section on computer architecture
Architecture of the Symbolics 3600
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
Creating efficient systems for object-oriented languages
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Architecture of SOAR: Smalltalk on a RISC
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
SOAR Architecture
Compiling Smalltalk-80 to a RISC
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
TS: an optimizing compiler for smalltalk
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Implementation strategies for continuations
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
A Buffer-Based Method for Storage Allocation in an Object-Oriented System
IEEE Transactions on Computers
CLOStrophobia: its etiology and treatment
ACM SIGPLAN OOPS Messenger
CONS should not CONS its arguments, or, a lazy alloc is a smart alloc
ACM SIGPLAN Notices
Implementation Strategies for First-Class Continuations
Higher-Order and Symbolic Computation
Do Object-Oriented Languages Need Special Hardware Support?
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Proceedings of the 2007 ACM symposium on Applied computing
Counting messages as a proxy for average execution time in pharo
Proceedings of the 25th European conference on Object-oriented programming
Hi-index | 0.00 |
We have implemented Smalltalk-80 on an instruction-level simulator for a RISC microcomputer called SOAR. Measurements suggest that even a conventional computer can provide high performance for Smalltalk-80 by abandoning the 'Smalltalk Virtual Machine' in favor of compiling Smalltalk directly to SOAR machine code, linearizing the activation records on the machine stack, eliminating the object table, and replacing reference counting with a new technique called Generation Scavenging. In order to implement these techniques, we had to find new ways of hashing objects, accessing often-used objects, invoking blocks, referencing activation records, managing activation record stacks, and converting the virtual machine images.