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

Tags and type checking in LISP: hardware and software approaches

Published: 01 October 1987 Publication History

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.
[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.
[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.
[4]
Charniak, E., Riesbeck, C. K., and McDermott, D. V. Artificial Intelligence Programming. Lawrence Erlbaum Associates, Hillsdale, New Jersey, 1980.
[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.
[6]
Corley, C. J. and Statz, J. A. "LISP workstation brings AI power to a user's desk". Computer Design 24, 1 (January 1985).
[7]
Gabriel, R. P. Computer Systems Series. Volume: Performance and evaluation of LISP systems. The MIT Press, 1985.
[8]
Griss, M. L. and Hearn, A. C. "A Portable LISP Compiler". Software - Practice and Experience 11, 6 (June 1981), 541--605.
[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.
[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.
[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.
[12]
Milner, R. "A Theory of Type Polymorphism in Programming". Journal of Computer and System Science 17, 3 (December 1978), 348--375.
[13]
Moon, D. A. Maclisp Reference Manual. MIT, Laboratory of Computer Science, 1983.
[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).
[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.
[16]
Steele, G. L. Jr. Fast Arithmetic in MacLISP. Proceedings of the 1977 MACSYMA Users' Conference, July, 1977.
[17]
Steele, G. L. Jr. Common Lisp - The Language. Digital Press, 1984.
[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.
[19]
Steenkiste, P. LISP on a Reduced-Instruction-Set Processor: Characterization and Optimization. Ph.D. Th., Stanford University, March 1987.
[20]
Stritter, E., and Gunter, T. "A Microprocessor Architecture for a Changing World: The Motorola 68000". IEEE Computer 12, 2 (February 1979), 43--52.
[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.
[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.
[23]
White, J. "LISP/370: A Short Technical Description of the Implementation". SIGSAM 12, 4 (November 1978), 23--27.
[24]
White, J. Reconfigurable, Retargetable Bignums. Proceedings of the 1986 Conference on LISP and Functional Programming, ACM, Boston, August, 1986, pp. 174--191.
[25]
Winston, P. and Horn, B. Lisp. Addison-Wesley Publishing Company, 1981.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 22, Issue 10
Oct. 1987
189 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/36205
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
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: 01 October 1987
Published in SIGPLAN Volume 22, Issue 10

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)272
  • Downloads (Last 6 weeks)39
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Typed ArchitecturesACM SIGOPS Operating Systems Review10.1145/3093315.303772651:2(77-90)Online publication date: 4-Apr-2017
  • (2005)Effective flow analysis for avoiding run-time checksStatic Analysis10.1007/3-540-60360-3_41(207-224)Online publication date: 31-May-2005
  • (2000)Do Object-Oriented Languages Need Special Hardware Support?Object-Oriented Programming10.1007/3-540-49538-X_14(283-302)Online publication date: 25-Aug-2000
  • (1991)Sequential architecture models for Prolog: A performance comparisonNew Generation Computing10.1007/BF030371629:3-4(201-219)Online publication date: 1-Aug-1991
  • (1988)Microprocessor Features a la CarteArchitektur und Betrieb von Rechensystemen10.1007/978-3-642-73451-9_26(357-367)Online publication date: 1988
  • (2018)Rethinking the memory hierarchy for modern languagesProceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO.2018.00025(203-216)Online publication date: 20-Oct-2018
  • (2017)Typed ArchitecturesACM SIGARCH Computer Architecture News10.1145/3093337.303772645:1(77-90)Online publication date: 4-Apr-2017
  • (2017)Typed ArchitecturesACM SIGPLAN Notices10.1145/3093336.303772652:4(77-90)Online publication date: 4-Apr-2017
  • (2003)Active Memory ProcessorIEEE Transactions on Mobile Computing10.1109/TMC.2003.12172302:2(89-101)Online publication date: 1-Apr-2003
  • (2002)Performance enhancements to the Active Memory SystemProceedings. IEEE International Conference on Computer Design: VLSI in Computers and Processors10.1109/ICCD.2002.1106778(249-256)Online publication date: 2002
  • Show More Cited By

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