Efficient Implementation of the Smalltalk-80 System
This paper is under a licence that does not allow it to be reproduced, so what is here is its front matter and a short abstract. Read it at the publisher's page.
Allan M. Schiffman Fairchild Laboratory for Artificial Intelligence Research
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.
*Smalltalk-80 is a trademark of the Xerox Corporation.
Triển khai hiệu quả hệ thống Smalltalk-80
L. Peter Deutsch Xerox PARC, Software Concepts Group
Allan M. Schiffman Fairchild Laboratory for Artificial Intelligence Research
TÓM TẮT
Ngôn ngữ lập trình Smalltalk-80* bao gồm cấp phát lưu trữ động, full upward funargs và các thủ tục đa hình toàn cục; hệ thống lập trình Smalltalk-80 có thực thi tương tác với biên dịch tăng dần và khả năng chuyển đổi triển khai. Những đặc điểm này của các hệ thống lập trình hiện đại thuộc số những đặc điểm khó triển khai hiệu quả nhất, ngay cả khi xét riêng lẻ. Một triển khai mới của hệ thống Smalltalk-80, được lưu trữ trên một máy tính dựa trên bộ vi xử lý nhỏ, đạt được hiệu năng cao trong khi vẫn duy trì khả năng tương thích hoàn toàn (mã đối tượng) với các triển khai hiện có. Bài báo này thảo luận về các kỹ thuật tối ưu hóa quan trọng nhất được phát triển trong quá trình của dự án, nhiều kỹ thuật trong số đó có thể áp dụng cho các ngôn ngữ khác. Ý tưởng then chốt là biểu diễn một số trạng thái thời gian chạy nhất định (cả mã và dữ liệu) dưới nhiều dạng, và chuyển đổi giữa các dạng khi cần thiết.
*Smalltalk-80 là một nhãn hiệu của Xerox Corporation.
Background
This section is missing here.
Special Difficulties
This section is missing here.
Implementation Outline
This section is missing here.
Code Translation
This section is missing here.
Performance Issues
This section is missing here.
Dynamic Translation
This section is missing here.
Mapping State at Runtime
This section is missing here.
Multiple Representations of Contexts
This section is missing here.
In-line Caching of Method Addresses
This section is missing here.
Experiments
This section is missing here.
Context Representations
This section is missing here.
In-line Cache and Linked Sends
This section is missing here.
Dynamic Code Translation
This section is missing here.
Conclusions and Related Work
This section is missing here.
Acknowledgments
This section is missing here.
References
- [Ammann 75] Ammann, U., Nori, Jensen, K., Nageli, H., "The Pascal (P) Compiler Implementation Notes." Institut Fur Informatik, Eidgenossische Technische Hochschule, Zurich, 1975.
- [Ammann 77] Ammann, U., "On code generation in a Pascal compiler." Software Practice and Experience v7 #3, June/July 1977, pp. 391-423.
- [Bell 73] Bell, J. R., "Threaded Code." Communications of the ACM, v16 (1973) pp. 370-372.
- [Deutsch & Bobrow 76] Deutsch, L. P., Bobrow, D. G., "An efficient, incremental, real-time garbage collector." Communications of the ACM, October 1976.
- [Goldberg 83] Goldberg, A., Robson, D., "Smalltalk-80: The Language and its Implementation." Addison-Wesley, Reading, MA, 1983.
- [Goldberg 84] Goldberg, A., "Smalltalk-80: The Interactive Programming Environment." Addison-Wesley, Reading, MA, 1984.
- [Krasner 83] Krasner, Glenn, Ed., "Smalltalk-80: Bits of History, Words of Advice." Addison-Wesley, Reading, MA, 1983.
- [Lampson 81] Lampson, B. W., Ed., "The Dorado: A High-Performance Personal Computer." Xerox PARC Report CSL-81-1, Palo Alto, CA, January 1981.
- [Mitchell 71] 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).
- [Moon 73] Moon D., Ed., MacLisp Manual pp. 3-75 to 3-77, MIT AI Laboratory Technical Report (1973).
- [Moore 74] Moore, C. H., "FORTH: a New Way to Program a Computer." Astronomy and Astrophysics Supplement, #15 (1974) pp 497-511.
- [Patterson 83] Patterson, D., Ed., "Smalltalk on a RISC: Architectural Investigations (Proceedings of CS 292R)." University of California, Berkeley, April 1983.
- [Perkins 79] Perkins, D. R., Sites, R. I., "Machine independent Pascal code optimization." ACM SIGPLAN Notices v14 #8 (August 1979) pp. 201-207.
- [Pittman 80] Pittman, T.J., "A Practical Optimizer: Zero-Address to Multi-Address Code." M.S. thesis, University of California, Santa Cruz, June 1980.
- [Rau 78] Rau, B. R., "Levels of Representation of Programs and the Architecture of Universal Host Machines." Proceedings of Micro-11, Asilomar, CA, November 1978.
- [Richards 75] Richards, M., "The portability of the BCPL compiler." Software, Practice and Experience v1 (1971) pp. 135-146.
- [SCG 81] Software Concepts Group, special issue on Smalltalk. BYTE Magazine, volume 6, number 8, August 1981.
- [XSIS 83] Masinter, L. M., Ed., "Interlisp Reference Manual." Xerox Special Information Systems, Pasadena, CA, 1983.
- [Zellweger 79] Zellweger, P. T., "Machine-Independent Optimization in SOPAIPII.LA." The S-1 Project 1979 Annual Report (Chapter 8), Lawrence Livermore Laboratory (1979).
Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8.
Read off the page by a vision model reading the page images using olmOCR-2-7B-1025-FP8. Translated into Tiếng Việt by gpt-5, against glossary version 7. Translated from the English.