skip to main content
10.1145/800230.807000acmconferencesArticle/Chapter ViewAbstractPublication PagesplanConference Proceedingsconference-collections
Article
Free Access

An optimizing compiler for lexically scoped LISP

Authors Info & Claims
Published:01 June 1982Publication History

ABSTRACT

We are developing an optimizing compiler for a dialect of the LISP language. The current target architecture is the S-I, a multiprocessing supercomputer designed at Lawrence Livermore National Laboratory. While LISP is usually thought of as a language primarily for symbolic processing and list manipulation, this compiler is also intended to compete with the S-1 PASCAL and FORTRAN compilers for quality of compiled numerical code. The S-1 is designed for extremely high-speed signal processing as well as for symbolic computation; it provides primitive operations on vectors of floating-point and complex numbers. The LISP compiler is designed to exploit the architecture heavily.

The compiler is structurally and conceptually similar to the BLISS-11 compiler and the compilers produced by PQCC. In particular, the TNBIND technique has been borrowed and extended.

References

  1. 1.United States Department of Defense. "Preliminary ADA Reference Manual." SIGPLAN Notices 14, 6A (June 1979). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Reference Manual for the ADA Programming Language Proposed Standard Document. United States Department of Defense (1980).Google ScholarGoogle Scholar
  3. 3.Allen, Frances E., and Cocke, Jolm. "A Catalogue of Optimizing Transformations.'" In Design and Optimization of Compilers, Rustin, Randall (Ed.), Prentice-Hall (Englewood Cliffs, N.J., 1972), 1-30.Google ScholarGoogle Scholar
  4. 4.Arsac, Jacques J. "Syntactic Source to Source Transforms and Program Manipulation." Comm. ACM 22, 1 (Jan. 1979), 43-54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Baker, Henry B., Jr. "Shallow Binding in LISP 1.5." Comm. ACM 21, 7 (July 1978), 565-569. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Bobrow, Daniel G. and Wegbreit, Ben. "A Model and Stack Implementation of Multiple Environments." Comm. ACM 16, 10 (Oct. 1973), 591-603. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Burstall, R.M., and Darlington, John. "A Transformation System for Developing Recursive Programs." J. ACM 24, 1 (Jan. 1977), 44-67. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Carter, J. Lawrence. "A Case Study of a New Code Generation Technique for Compilers." Comm. ACM 20, 12 (Dec. 1977), 914-920. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Church, Alonzo. Annals of Mathematics Studies Volume 6: The Calculi of Lambda Conversion. Princeton University Press (Princeton, 1941). Reprinted by Klaus Reprint Corp. (New York, 1965). Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Coonen, Jerome T. "An Implementation Guide to a Proposed Standard for Floating-Point Arithmetic." Computer 13, 1 (Jan. 1980)', 68-79. Errata for this paper appeared as {11}.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Coonen, Jerome T. "Errata for 'An Implementation Guide to a Proposed Standard for Floating-Point Arithmetic'." Computer 14, 3 (March 1981), 62. These are errata for {10}.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.Correll, Steven. "S-1 Uniprocessor Architecture (SMA-4)." In The S-I Project 1979 Annual Report, Lawrence Livermore Laboratory (Livermore, California, 1979), Chapter 4.Google ScholarGoogle Scholar
  13. 13.PDP-II Handbook. Digital Equipment Corporation (Maynard, Massachusetts, 1969).Google ScholarGoogle Scholar
  14. 14.DecSystem 10 Assembly language Handbook (third edition.). Digital Equipment Corporation (Maynard, Massachusetts, 1973).Google ScholarGoogle Scholar
  15. 15.VAX Architecture Itandbook. Digital Equipment Corporation (Maynard, Massachusetts, 1981).Google ScholarGoogle Scholar
  16. 16.Falkoff, A.D., and Orth, D.L. "'Development of an APL Standard." APL 79 Conference Proceedings. ACM SIGPLAN/STAPL (Rochester, New York, June 1979), 409-453. Proceedings published as APL Quote Quad 9, 4 (June 1979). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.Fateman, Richard J. "Reply to an Editorial." ACM SIGSAM Bulletin (March 1973), 9-11. 273 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Ford, Gary, and Hansche, Brian. "Optional, Repeatable, and Varying Type Parameters." SIGPLAN Notices 17, 2 (Feb. 1982), 41-48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Galley, S.W. and Pfistcr, Greg. The MDL Language Programming Technology Division Document SYS.11.01, MIT Project MAC (Cambridge, Massachusetts, Nov. 1975).Google ScholarGoogle Scholar
  20. 20.Geschke, Charles M. Global Program Optimizations. Ph.D. Th., Carnegie-Mellon University (Pittsburgh, Oct. 1972). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Goldberg, Adele, and Kay, Alan. Smalltalk-72 Instruction Manual. Learning Research Group, Xerox Palo Alto Research Center (Palo Alto, California, March 1976).Google ScholarGoogle Scholar
  22. 22.Harrison, William. "A New Strategy for Code Generation: The General Purpose Optimizing Compiler." Proceedings of the Fourth Symposium on Principles of Programming Languages. Association for Computing Machinery (Los Angeles, Jan. 1977), 29-37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Hewitt, Carl. "Viewing Control Structures as Patterns of Passing Messages." Artificial Intelligence8, 3 (June 1977), 323-364. A comment on this paper appeared as {24}.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.Hewitt, Carl. "Comments on 'Viewing Control Structures as Patterns of Passing Messages'." Artificial Intelligence 10, 3 (Nov. 1978), 317-318. This is a comment on {23}.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.APL\360 User's Manual International Business Machines Corporation (1968).Google ScholarGoogle Scholar
  26. 26.IEEE Computer Society Standard Committee, Microprocessor Standards Subcommittee. Floating-Point Working Group. "A Proposed Standard for Binary Floating-Point Arithmetic." Computer 14, 3 (March 1981), 51-62.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.Jensen, Kathleen, and Wirth, Niklaus. Pascal User Manual and Report. Springer-Veflag (New York, 1974). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.Johnsson, Richard Karl. An Approach to Global Register Allocation. Ph.D. Th., Carnegie-Mellon University (Pittsburgh, Dec. 1975). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.Leverett, Bruce W.; Cattell, Roderic G.G.; Hobbs, Steven O.; Newcomer, Joseph M.; Reiner, Andrew H.; Schatz, Bruce R.; and Wulf, William A. An Overview of the Production Quality Compiler-Compiler Project. Tech. Rept. CMU-CSD-79-105, Carnegie-Mellon University Computer Science Department (Pittsburgh, Feb. 1979).Google ScholarGoogle Scholar
  30. 30.Levine, Ronald D. "Supercomputers." Scientific American 246, 1 (Jan, 1982), 118-135.Google ScholarGoogle ScholarCross RefCross Ref
  31. 31.The Mathlab Group. MACSYMA Reference Manual (Version Nine). MIT Lab. for Computer Science (Cambridge, Massachusetts, 1977).Google ScholarGoogle Scholar
  32. 32.Moon, David. MacLISP Reference Manual, Revision O. M.I.T. Project MAC (Cambridge, Massachusetts, April 1974).Google ScholarGoogle Scholar
  33. 33.Moses, Joel. The Function of FUNCTION in LISP. AI Memo 199, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, June 1970).Google ScholarGoogle Scholar
  34. 34.Naur, Peter (ed.), et at. "Revised Report on the Algorithmic Language ALGOl, 60." Comm. ACM 6, 1 (Jan. 1963), 1-20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 35.Organick, Elliot I. The Multics System: An Examination of Its Structure. MIT Press (Cambridge, Massachusetts, 1972). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 36.Rees, Jonathan. Private communication.Google ScholarGoogle Scholar
  37. 37.Sammet, Jean E. Programming Languages: History and Fundamentals Prentice-Hall (Englewood Cliffs, New Jersey, 1969). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 38.Schatz, Bruce R. Algorithms for Optimizing Transformations in a General Purpose Compiler: Propagation and Renaming. Tech. RepL RC 6232 (#26773), IBM Thomas J. Watson Research Center (Yorktown Heights, New York, Oct. 1976).Google ScholarGoogle Scholar
  39. 39.Schroeder, Michael D., and Saltzer, Jerome H. "A Hardware Architecture for Implementing Protection Rings." Comm. ACM 15, 3 (March 1972), 157-170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40.Standish, T.A.; Harriman, D.C.; Kibler, D.F.; and Neighbors, J.M. The lrvine Program Transformation Catalogue. University of California (Irvine, California, Jan. 1976).Google ScholarGoogle Scholar
  41. 41.Standish, Thomas A.; Kibler, Dennis F.: and Neighbors, James M. "Improving and Refining Programs by Program Manipulation." Proceedings of the ACM National Conference. Association for Computing Machinery (Houston, Texas, Oct. 1976), 509-516. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 42.Steele, Guy Lewis Jr. LAMBDA: The Ultimate Declarative. AI Memo 379, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, Nov. 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. 43.Steele, Guy Lewis Jr., and Sussman, Gerald Jay: LAMBDA: The Ultimate Imperative. AI Memo 353, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, March 1976). Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. 44.Steele, Guy Lewis Jr. "Fast Arithmetic in MacLISP." Proceedings of the 1977 MACSYMA Users" Conference. NASA Scientific and Technical Information Office (Washington, D.C., July 1977), 215-224. Also published as {48}.Google ScholarGoogle Scholar
  45. 45.Steele, Guy Lewis Jr. Compiler Optimization Based on Viewing LAMBDA as Rename plus Goto. Master Th., MIT (May 1977). Published as {49}.Google ScholarGoogle Scholar
  46. 46.Steele, Guy Lewis Jr. "Debunking the 'Expensive Procedure Call' Myth; or, Procedure Call Implementations Considered Harmful; or, LAMBDA: "File Ultimate GOTO. Proceedings of the ACM National Conference. Association for Computing Machinery (Seattle, Oct. 1977), 153-162. Revised version published as {47}. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 47.Steele, Guy Lewis Jr. Debunking the "Expensive Procedure Call' Myth; or, Procedure Call Implementations Considered Itermful; or, LAMBDA: The Ultimate GOTO. AI Memo 443, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, Oct. 1977). This is a revised version of {46}. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. 48.Steele, Guy Lewis Jr. Fast Arithmetic in MacLISP. AI Memo 421, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, Sept. 1977). Also appeared as {44}.Google ScholarGoogle Scholar
  49. 49.Steele, Guy Lewis Jr. RABBIT: A Compiler for SCHEME (A Study in Compiler Optimization). Tech. Rept. 474, M1T Artificial Intelligence Lab. (May 1978). This is a revised version of the author's master's thesis 1451. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. 50.Steele, Guy Lewis Jr., and Sussman, Gerald Jay. The Revised Report on SCHEME: A Dialect of LISP. AI Memo 452, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, Jan. 1978).Google ScholarGoogle Scholar
  51. 51.Sussman, Gerald Jay, and Steele, Guy Lewis Jr. SCHEME: An Interpreter for Extended Lambda Calculus. Tech. Repl 349, MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, Dec. 1975). Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. 52.Teitelman, Warren, et al. InterLISP Reference Manual. Xerox Palo Alto Research Center (Palo Alto, California, 1975). Second revision.Google ScholarGoogle Scholar
  53. 53.Teitelman, Warren, et al. InterLISP Reference Manual Xerox Palo Alto Research Center (Palo Alto, California, 1978). Third revision.Google ScholarGoogle Scholar
  54. 54.van Wijngaarden, A.; MaiUoux, B.J.; Peck, J.E.L.; Koster, C.H.A.; Sintzoff, M.; Lindsey. C.H.; Merrtens, L.G.L.T.; and Fisker, R.G. (eds.). "Revised Report on the Algorithmic Language ALGOL 68." SIGPLAN Notices 12, 5 (May 1977), 1-70,Google ScholarGoogle Scholar
  55. 55.Wegbreit, Ben; Holloway, Glenn; Spitzen, Jay; and Townley, Judy. ECL Programmer's Manual. Tech. Rept. 23-74, Harvard University Center for Research in Computing Technology (Cambridge, Massachusetts, Dec. 1974).Google ScholarGoogle Scholar
  56. 56.Weinreb, Daniel, and Moon, David. LISP Machine Manual Fourth Edition. MIT Artificial Intelligence Lab. (Cambridge, Massachusetts, July 1981). Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. 57.White, Jon L. "LISP: Program is Data: A Historical erspective on Macl.ISP." Proceedings of the 1977 MACSYMA Users' Conference. NASA Scientific and Technical Information Office (Washington, D.C., July 1977), 181-189.Google ScholarGoogle Scholar
  58. 58.Wulf William; Johnsson, Richard K.: Weinstock, Charles B.; Hobbs, Stcven O.; and Geschke, Charles M. Programming Language Seriex Volume 2: The Design of an Optimizing Compiler. American Elsevier (New York, 1975). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An optimizing compiler for lexically scoped LISP

      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
        SIGPLAN '82: Proceedings of the 1982 SIGPLAN symposium on Compiler construction
        June 1982
        357 pages
        ISBN:0897910745
        DOI:10.1145/800230
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 17, Issue 6
          Proceedings of the 1982 SIGPLAN symposium on Compiler construction
          June 1982
          347 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/872726
          Issue’s Table of Contents

        Copyright © 1982 Authors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 June 1982

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader