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

Index Terms

  1. Efficient implementation of the smalltalk-80 system

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • 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

      Copyright © 1984 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 15 January 1984

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate824of4,130submissions,20%

      Upcoming Conference

      POPL '25

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader