Publication | Closed Access
Efficient implementation of the smalltalk-80 system
585
Citations
7
References
1984
Year
Unknown Venue
EngineeringHigh Performance Computer NetworkCompiler TechnologySignificant Optimization TechniquesComputer ArchitectureSoftware EngineeringSoftware AnalysisCommunication ArchitectureEfficient ImplementationParallel ComputingDynamic CompilationProgramming LanguagesSmalltalk-80 Programming SystemHigh-level Programming LanguageComputer EngineeringProgramming Language ImplementationSystem Area NetworkComputer ScienceOptimizing CompilerSoftware DesignProgram AnalysisDynamic Storage AllocationParallel ProgrammingSystem Software
Smalltalk‑80 offers dynamic storage, full upward funargs, polymorphic procedures, interactive execution, incremental compilation, and portability, yet these advanced features are notoriously difficult to implement efficiently. The paper presents key optimization techniques developed during the project, many of which are applicable to other languages. The authors implemented a high‑performance Smalltalk‑80 system on a microprocessor, preserving full object‑code compatibility by representing runtime state in multiple forms and converting between them as needed.
The Smalltalk-80* programming language includes dynamic storage allocation, full upward funargs, and universally polymorphic procedures; the Smalltalk-80 programming system features interactive execution with incremental compilation, and implementation portability. These features of modern programming systems are among the most difficult to implement efficiently, even individually. A new implementation of the Smalltalk-80 system, hosted on a small microprocessor-based computer, achieves high performance while retaining complete (object code) compatibility with existing implementations. This paper discusses the most significant optimization techniques developed over the course of the project, many of which are applicable to other languages. The key idea is to represent certain runtime state (both code and data) in more than one form, and to convert between forms when needed.
| Year | Citations | |
|---|---|---|
Page 1
Page 1