skip to main content
10.1145/800017.800542acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Efficient implementation of the smalltalk-80 system

Published: 15 January 1984 Publication History

Abstract

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.

References

[1]
Ammann, U., Nori. Jensen, K., Nageli, H., "The Pascal (P) Compiler Implementation Notes." Institut Fur Informatik, Eidgenossische Technische Hochschule, Zurich, 1975.
[2]
Ammann, U., "On code generation in a Pascal compiler." Software Practice and Experience v7 #3. June/July 1977, pp. 391-423.
[3]
Bell. J. R., "Threaded Code." Communications of the ACM, v16 (1973) pp. 370-372.
[4]
Deutsch, L. P., Bobrow, D. G., "An efficient, incremental, real-time garbage collector." Communications of the ACM, October 1976.
[5]
Goldberg, A., Robson. D., "Smalltalk-80: The Language and its Implementation." Addison-Wesley, Reading, MA, 1983.
[6]
Goldberg. A., "Smalltalk-80: The Interactive Programming Environment." Addison-Wesley, Reading, MA, 1984.
[7]
Krasner, Glenn. Ed., "Smalltalk-80: Bits of History, Words of Advice." Addison-Wesley, Reading, MA, 1983.
[8]
Lampson, B. W., Ed., "The Dorado: A High-Performance Personal Computer." Xerox PARC Report CSL-81-1, Palo Alto, CA, January 1981.
[9]
Mitchell, J. G., "The Design and Construction of Flexible and Efficient Interactive Programming Systems," Ph.D. dissertation. 1971, NTIS AD 712-721, in Outstanding Dissertations in the Computer Sciences, Garland Publishing, New York (1978).
[10]
Moon D., Ed., Maclisp Manual pp. 3-75 to 3-77, MIT AI Laboratory Technical Report (1973).
[11]
Moore, C. H., "FORTH: a New Way to Program a Computer." Astronomy and Astrophysics Supplement, # 15 (1974) pp 497-511.
[12]
Patterson, D., Ed., "Smalltalk on a RISC: Architectural Investigations (Proceedings of CS 292R)." University of California, Berkeley, April 1983.
[13]
Perkins, D. R., Sites, R. I., "Machine independent Pascal code optimization." ACM SIGPLAN Notices v14 #8 (August 1979) pp. 201-207.
[14]
Pittman, T.J., "A Practical Optimizer: Zero-Address to Multi-Address Code." M.S. thesis, University of California, Santa Cruz, June 1980.
[15]
Rau. B. R., "Levels of Representation of Programs and the Architecture of Universal Host Machines." Proceedings of Micro-11, Asilomar, CA. November 1978.
[16]
Richards, M., "The portability of the BCPL. compiler." Software, Practice and Experience vl (1971) pp. 135-146.
[17]
Software Concepts Group, special issue on Smalltalk. BYTE Magazine, volume 6, number 8, August 1981.
[18]
Masinter, L. M., Ed., "Interlisp Reference Manual," Xerox Special Information Systems, Pasadena, CA, 1983.
[19]
Zellweger, P. T., "Machine-Independent Optimization in SOPAIPILLA." The S-1 Project 1979 Annual Report (Chapter 8), Lawrence Livermore Laboratory (1979).

Cited By

View all
  • (2024)The Cost of Profiling in the HotSpot Virtual MachineProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685055(112-126)Online publication date: 13-Sep-2024
  • (2024)Whose Baseline Compiler Is It Anyway?Proceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444855(207-220)Online publication date: 2-Mar-2024
  • (2023)Stub Folding: Retaining Type Specialization to Increase the Efficiency of Highly Polymorphic Inline CachesProceedings of the 33rd Annual International Conference on Computer Science and Software Engineering10.5555/3615924.3615936(113-122)Online publication date: 11-Sep-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '84: Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
January 1984
302 pages
ISBN:0897911253
DOI:10.1145/800017
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 January 1984

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)521
  • Downloads (Last 6 weeks)63
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)The Cost of Profiling in the HotSpot Virtual MachineProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685055(112-126)Online publication date: 13-Sep-2024
  • (2024)Whose Baseline Compiler Is It Anyway?Proceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444855(207-220)Online publication date: 2-Mar-2024
  • (2023)Stub Folding: Retaining Type Specialization to Increase the Efficiency of Highly Polymorphic Inline CachesProceedings of the 33rd Annual International Conference on Computer Science and Software Engineering10.5555/3615924.3615936(113-122)Online publication date: 11-Sep-2023
  • (2023)Array Bytecode Support in MicroJITProceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3623507.3623557(29-38)Online publication date: 18-Oct-2023
  • (2023)Revisiting Dynamic Dispatch for Modern ArchitecturesProceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3623507.3623551(11-17)Online publication date: 18-Oct-2023
  • (2023)Evaluating YJIT’s Performance in a Production Context: A Pragmatic ApproachProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622982(20-33)Online publication date: 19-Oct-2023
  • (2023)CacheIR: The Benefits of a Structured Representation for Inline CachesProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622979(34-46)Online publication date: 19-Oct-2023
  • (2023)Support for Just-in-Time Compilation of WebAssembly for Embedded Systems2023 12th Mediterranean Conference on Embedded Computing (MECO)10.1109/MECO58584.2023.10155088(1-4)Online publication date: 6-Jun-2023
  • (2023)Dynamic code compression for JavaScript engineSoftware: Practice and Experience10.1002/spe.318653:5(1196-1217)Online publication date: 4-Feb-2023
  • (2022)Generating Virtual Machine Code of JavaScript Engine for Embedded SystemsJournal of Information Processing10.2197/ipsjjip.30.67930(679-693)Online publication date: 2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media