Advertisement

LISP and Symbolic Computation

, Volume 3, Issue 4, pp 343–380 | Cite as

A runtime system

  • Andrew W. Appel
Article

Abstract

The runtime data structures of the Standard ML of New Jersey compiler are simple yet general. As a result, code generators are easy to implement, programs execute quickly, garbage collectors are easy to implement and work efficiently, and a variety of runtime facilities can be provided with ease.

Keywords

Operating System Artificial Intelligence Data Structure Code Generator Runtime System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Appel, Andrew W. Garbage collection can be faster than stack allocation.Information Processing Letters, 25(4):275–279, 1987.Google Scholar
  2. 2.
    Appel, Andrew W. Continuation-passing, closure-passing style. InSixteenth ACM Symp. on Principles of Programming Languages, pages 293–302, 1989.Google Scholar
  3. 3.
    Appel, Andrew W. Simple generational garbage collection and fast allocation.Software—Practice/Experience, 1989.Google Scholar
  4. 4.
    Appel, Andrew W. Tag bits aren't necessary.Lisp and Symbolic Computation, 1989.Google Scholar
  5. 5.
    Appel, Andrew W., Duba, Bruce F., and MacQueen, David B. Profiling in the presence of optimization and garbage collection. Technical Report CS-TR-197-88, Princeton University Dept. Comp. Sci., Princeton, NJ, 1987.Google Scholar
  6. 6.
    Appel, Andrew W., Ellis, John R., and Li, Kai. Real-time concurrent collection on stock multiprocessors.SIGPLAN Notices (Proc. SIGPLAN'88 Conf. on Prog. Lang. Design and Implementation), 23(7):11–20, 1988.Google Scholar
  7. 7.
    Appel, Andrew W. and Jim, Trevor T. Y. Optimizing closure environment representations. Technical Report 168, Dept. of Computer Science, Princeton University, 1988.Google Scholar
  8. 8.
    Appel, Andrew W. and MacQueen, David B. A Standard ML compiler. In Gilles Kahn, editor,Functional Programming Languages and Computer Architecture (LNCS 274), pages 301–324. Springer-Verlag, 1987.Google Scholar
  9. 9.
    Britton, Dianne E. Heap storage management for the programming language Pascal. Master's thesis, University of Arizona, 1975.Google Scholar
  10. 10.
    Cardelli, Luca. ML under Unix.Polymorphism, 1(3), December 1983.Google Scholar
  11. 11.
    Cardelli, Luca. Compiling a functional language. In1984 Symp. on LISP and Functional Programming, pages 208–217, 1984.Google Scholar
  12. 12.
    Cheney, C. J. A nonrecursive list compacting algorithm.Communications of the ACM, 13(11):677–678, 1970.Google Scholar
  13. 13.
    Cormack, G. V. A micro-kernel for concurrency in C.Software—Practice/Experience, 18(5):485–492, 1988.Google Scholar
  14. 14.
    Gordon, M. J. C., Milner, A. J. R. G., Morris, L., Newey, M. C., and Wadsworth, C. P. A metalanguage for interactive proof in LCF. InFifth ACM Symp. on Principles of Programming Languages, 1978.Google Scholar
  15. 15.
    Griswold, Ralph E. and Griswold, Madge T.The Implementation of the Icon Programming Language. Princeton University Press, Princeton, NJ, 1986.Google Scholar
  16. 16.
    Hanson, David R. A portable storage management system for the Icon programming language.Software—Practice and Experience, 10:489–500, 1980.Google Scholar
  17. 17.
    Harper, Robert, Milner, Robin, and Tofte, Mads. The definition of Standard ML, version 2. Technical Report ECS-LFCS-88-62, Univ. of Edinburgh, 1988.Google Scholar
  18. 18.
    Kernighan, Brian W. and Ritchie, Dennis M.The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ, 1978.Google Scholar
  19. 19.
    Kranz, D., Kelsey, R., Rees, J., Hudak, P., Philbin, J., and Adams, N. ORBIT: An optimizing compiler for Scheme.SIGPLAN Notices (Proc. Sigplan '86 Symp. on Compiler Construction), 21(7):219–233, July 1986.Google Scholar
  20. 20.
    Lieberman, Henry and Hewitt, Carl. A real-time garbage collector based on the lifetimes of objects.Communications of the ACM, 23(6):419–429, 1983.Google Scholar
  21. 21.
    MacQueen, David. Modules for Standard ML. InProc. 1984 ACM Conf. on LISP and Functional Programming, pages 198–207, 1984.Google Scholar
  22. 22.
    Milner, Robin. A proposal for Standard ML. InACM Symposium on LISP and Functional Programming, pages 184–197, 1984.Google Scholar
  23. 23.
    Milner, Robin. The Standard ML core language.Polymorphism, 2(2), October 1985.Google Scholar
  24. 24.
    Rees, J. and Clinger, W. (eds.). Revised report on the algorithmic language Scheme.SIGPLAN Notices, 21(12):37–79, 1986.Google Scholar
  25. 25.
    Steele, Guy L. Jr. Rabbit: a compiler for Scheme. Technical Report AI-TR-474, MIT, 1978.Google Scholar
  26. 26.
    Ungar, David. Generation scavenging: a non-disruptive high performance storage reclamation algorithm.SIGPLAN Notices (Proc. ACM SIGSOFT/SIGPLAN Software Eng. Symp. on Practical Software Development Environments), 19(5):157–167, 1984.Google Scholar

Copyright information

© Kluwer Academic Publishers 1990

Authors and Affiliations

  • Andrew W. Appel
    • 1
  1. 1.Department of Computer SciencePrinceton UniversityPrinceton

Personalised recommendations