skip to main content
article
Free Access

Tags and type checking in LISP: hardware and software approaches

Published:01 October 1987Publication History
Skip Abstract Section

Abstract

One of the major factors that distinguishes LISP from many other languages (Pascal, C, Fortran, etc.) is the need for run-time type checking. Run-time type checking is implemented by adding to each data object a tag that encodes type information. Tags must be compared for type compatibility, removed when using the data, and inserted when new data items are created. This tag manipulation, together with other work related to dynamic type checking and generic operations, constitutes a significant component of the execution time of LISP programs. This has led both to the development of LISP machines that support tag checking in hardware and to the avoidance of type checking by users running on stock hardware. To understand the role and necessity of special-purpose hardware for tag handling, we first measure the cost of type checking operations for a group of LISP programs. We then examine hardware and software implementations of tag operations and estimate the cost of tag handling with the different tag implementation schemes. The data shows that minimal levels of support provide most of the benefits, and that tag operations can be relatively inexpensive, even when no special hardware support is present.

References

  1. Bawden, A., Greenblatt, R., Holloway, J., Knight, T., Moon, D., and Weinreb, D. LISP Machine Progress Report. Memo No 444, MIT Artificial Intelligence Laboratory, August, 1977.Google ScholarGoogle Scholar
  2. Bosshart, P., Hewes, C., Chang, M., and Chau, K. A 553K-Transistor LISP Processor Chip. Digest 1987 International Solid-State Circuits Conference, IEEE, New York, February, 1987, pp. 202--203.Google ScholarGoogle ScholarCross RefCross Ref
  3. Brooks, R., Posner, D., McDonald, J., White, J., Benson, E., and Gabriel, R. Design of An Optimizing, Dynamically Retargetable Compiler for Common Lisp. Proceedings of the 1986 Conference on LISP and Functional Programming, ACM, Boston, August, 1986, pp. 67--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Charniak, E., Riesbeck, C. K., and McDermott, D. V. Artificial Intelligence Programming. Lawrence Erlbaum Associates, Hillsdale, New Jersey, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Chow, P., and Horowitz, M. Architectural Tradeoffs in the Design of MIPS-X. Proceedings of the 14th Annual International Symposium on Computer Architecture, ACM, June, 1987, pp. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Corley, C. J. and Statz, J. A. "LISP workstation brings AI power to a user's desk". Computer Design 24, 1 (January 1985).Google ScholarGoogle Scholar
  7. Gabriel, R. P. Computer Systems Series. Volume: Performance and evaluation of LISP systems. The MIT Press, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Griss, M. L. and Hearn, A. C. "A Portable LISP Compiler". Software - Practice and Experience 11, 6 (June 1981), 541--605.Google ScholarGoogle ScholarCross RefCross Ref
  9. Griss, M. L., Benson, E., and Maguire, G. Q. PSL:A Portable LISP System. Proceedings of the 1982 Symposium on LISP and Functional Programming, Pittsburgh, August, 1982, pp. 88--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Horowitz, M., Hennessy, J., Chow, P., Gulak, P., Acken, J., Agarwal, A., Chu, C. Y., McFarling, S., Przybylski, S., Richardson, S., Salz, A., Simoni, R., Stark, D., Steenkiste, P., Tjiang, S., and Wing, M. A 32b Microprocessor with On-Chip 2K Byte Instruction Cache. Digest 1987 International Solid-State Circuits Conference, IEEE, New York, February, 1987, pp. 30--31.Google ScholarGoogle ScholarCross RefCross Ref
  11. Kranz, D., Kelsey, R., Rees, R., Hudak, P., Philbin, J. and Adams, N. ORBIT: An Optimizing Compiler for Scheme. Proceedings of the SIGPLAN'86 Symposium on Compiler Construction, ACM, Palo Alto, June, 1986, pp. 219--233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Milner, R. "A Theory of Type Polymorphism in Programming". Journal of Computer and System Science 17, 3 (December 1978), 348--375.Google ScholarGoogle ScholarCross RefCross Ref
  13. Moon, D. A. Maclisp Reference Manual. MIT, Laboratory of Computer Science, 1983.Google ScholarGoogle Scholar
  14. Moon, D. A. Architecture of the Symbolics 3600. Proceedings of the 12th Annual International Symposium on Computer Architecture, ACM, Boston, June, 1985, pp. 76--83. Also in SIGARCH Newsletter 13(3). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Rees, J. and Adams, N. T: A Dialect of Lisp or, or LAMBDA: The Ultimate Software Tool. Proceedings of the 1982 Symposium on LISP and Functional Programming, Pittsburgh, August, 1982, pp. 114--122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Steele, G. L. Jr. Fast Arithmetic in MacLISP. Proceedings of the 1977 MACSYMA Users' Conference, July, 1977.Google ScholarGoogle Scholar
  17. Steele, G. L. Jr. Common Lisp - The Language. Digital Press, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Steenkiste, P., and Hennessy, J. LISP on a Reduced-Instruction-Set-Processor. Proceedings of the 1986 Conference on LISP and Functional Programming, ACM, Boston, August, 1986, pp. 192--201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Steenkiste, P. LISP on a Reduced-Instruction-Set Processor: Characterization and Optimization. Ph.D. Th., Stanford University, March 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Stritter, E., and Gunter, T. "A Microprocessor Architecture for a Changing World: The Motorola 68000". IEEE Computer 12, 2 (February 1979), 43--52.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Taylor, G. S., Hillfinger, P. N. Larus, J., et al. Evaluation of the SPUR Lisp Architecture. Proceedings of the 13th Annual International Symposium on Computer Architecture, ACM, Tokyo, June, 1986, pp. 444--452. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ungar, D. The Design and Evaluation of A High Performance Smalltalk System. Ph.D. Th., UC Berkeley, March 1986. Technical Report UCB/CSD 86/287. Google ScholarGoogle Scholar
  23. White, J. "LISP/370: A Short Technical Description of the Implementation". SIGSAM 12, 4 (November 1978), 23--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. White, J. Reconfigurable, Retargetable Bignums. Proceedings of the 1986 Conference on LISP and Functional Programming, ACM, Boston, August, 1986, pp. 174--191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Winston, P. and Horn, B. Lisp. Addison-Wesley Publishing Company, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Tags and type checking in LISP: hardware and software approaches

        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

        Full Access

        • Published in

          cover image ACM SIGARCH Computer Architecture News
          ACM SIGARCH Computer Architecture News  Volume 15, Issue 5
          Oct. 1987
          189 pages
          ISSN:0163-5964
          DOI:10.1145/36177
          Issue’s Table of Contents
          • cover image ACM Conferences
            ASPLOS II: Proceedings of the second international conference on Architectual support for programming languages and operating systems
            October 1987
            205 pages
            ISBN:0818608056
            DOI:10.1145/36206

          Copyright © 1987 Copyright is held by the owner/author(s)

          Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 October 1987

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader