Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

The runtime environment for Scheme, a Scheme implementation on the 88000

Published: 01 April 1989 Publication History
  • Get Citation Alerts
  • Abstract

    We are implementing a Scheme development system for the Motorola 88000. The core of the implementation is an optimizing native code compiler, together with a carefully designed runtime system. This paper describes our experiences with the 88000 as a target architecture. We focus on the design decisions concerning the runtime system, particularly with respect to data type representations, tag checking, procedure calling protocol, generic arithmetic, and the handling of continuations. We also discuss rejected design alternatives, and evaluate the strengths and weaknesses of the instruction set with respect to our constraints.

    References

    [1]
    Bird, P.B.L., Code Generation and Instruction Scheduling for Pipelined S~SD Machines, PhD thesis, University of Michigan (1987).
    [2]
    Brooks, R.A., Gabriel, R.P., and Steele, G.L., Jr., "An Optimizing Compiler for Lexically Scoped LISP," Proc. SIGPLAN '82 Symposium on Compiler Construction, pp. 261-275 (June 1982).
    [3]
    Brooks, R.A. et al., "Design of an Optimizing, Dynamically Retargetable Compiler for Common Lisp," Proc. 1986 A CM Conference on Lisp and Functional Programming, pp. 67-85 (August 1986).
    [4]
    Clinger, W.D., Hartheimer, A.H., and Ost, E.M., "Implementation Strategies for Continuations," Proc. 1988 A CM Conference on Lisp and Functional Programming, pp. 124-131 (July 1988).
    [5]
    Gross, T., Code Optimization of Pipeline Constraints, Technical Report No. 83-255, Stanford University Computer Systems Laboratory (December 1983).
    [6]
    Hill, M. et al., "Design Decisions in SPUR," IEEE Computer, Vol. 19(10), pp. 8-22 (November 1986).
    [7]
    Kranz, D., Kelsey, R., Rees, J., Hudak, P., Philbin, J., and Adams, N., "ORBIT: An Optimizing Compiler for Scheme," Proc. SIGPLAN '86 Symposium on Compiler Construction, pp. 219-233 (June 1986).
    [8]
    Kranz, D.A., ORBIT: An Optimizing Compiler for Scheme, PhD thesis, Yale University (1988).
    [9]
    McDonald, D.B., Fahlman, S.E., and Spector, A.Z., An EjO~cient Common Lisp for the IBM RT PC, Technical Report CMU-CS-87-134, Carnegie-Mellon University (July 1987).
    [10]
    Motorola, Inc., MC88100 3~-Bit Third-Generation Microprocessor Technical Summary, Document No. BR-588/D, Motorola, Inc. (1988).
    [11]
    Motorola, Inc., MC88200 Cache Memory Management Unit Technical Summary, Document No. BR-589/D, Motorola, Inc. (~988).
    [12]
    Rees, J. and Clinger, W. (Editors), "Revised Revised Revised Report on the Algorithmic Language Scheme," ACM $IGPLAN Notices, Vol. 21(12), pp. 37-79 (December 1986).
    [13]
    Shebs, S. and Kessler, R., "Automatic Design and Implementation of Language Datatypes," Proc. SIGPLAN '87 Symposium o~ Interpreters and Interpretive Techniques, pp. 26-37 (June 1987).
    [14]
    Steele, G.L., Jr., Rabbit: A Compiler for Scheme" Technical Report 474, MIT Artificial Intelligence Laboratory (May 1978).
    [15]
    Steenkiste, P. and Hennessy, J., "LISP on a Reduced-Instruction-Set-Processor," Proc. 1986 ACM Conference on Lisp and Functional Programming, pp. 192-201 (August 1986).
    [16]
    Steenkiste, P. and Hennessy, J., "Tags and Type-Checking in LISP: Hardware and Software Approaches," Proc. ASPLO$ II, pp. 50-59 (October 1987).
    [17]
    Ungar, D., "Generation Scavenging: A Non-Disruptive High Performance Storage Reclamation Algorithm," Pvoc. 1986 A CM Symposium on Practical Software Development Environmenls, pp. 157-167, (April 1984). Also published as A CM $IGPLAN Notices, Vol. 19(5), (May 1984), and as A CM Software Engineering Notes, Vol. 9(3), (May 1984).
    [18]
    White, J.L., "Reconfigurabte, Retargetable, Bignums: A Case Study in Emcient, Portable Lisp System Building," Proc. 1986 A CM Conference on Lisp and Funclional Programming, pp. 174-191 (August 1986).

    Recommendations

    Reviews

    Alain Lesaffre

    This paper discusses the general implementation and choices for a SCHEME runtime structure on a RISC processor. It includes a general overview of the work presented, the register usage, the object types and their tags, the procedure calls, the arithmetic operations, and a quick description of the garbage collection. The authors present the practical aspect of their work and illustrate it with samples of machine code, including details of timing. In some cases, they compare this timing with that of a LISP compiler for an IBM RT. It would have been more interesting if this comparison had included a non-RISC processor. The authors include a list of the problematic features, which could be helpful for anyone starting a compiler project with this processor. This paper could serve as a reference for people who want to implement a functional language on this type of processor.

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGARCH Computer Architecture News
    ACM SIGARCH Computer Architecture News  Volume 17, Issue 2
    Special issue: Proceedings of ASPLOS-III: the third international conference on architecture support for programming languages and operating systems
    April 1989
    291 pages
    ISSN:0163-5964
    DOI:10.1145/68182
    Issue’s Table of Contents
    • cover image ACM Conferences
      ASPLOS III: Proceedings of the third international conference on Architectural support for programming languages and operating systems
      April 1989
      303 pages
      ISBN:0897913000
      DOI:10.1145/70082
    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: 01 April 1989
    Published in SIGARCH Volume 17, Issue 2

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)51
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media