Performance and evaluation of LISP systems
Performance and evaluation of LISP systems
ORBIT: an optimizing compiler for scheme
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Evaluation of the SPUR Lisp architecture
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Architectural tradeoffs in the design of MIPS-X
ISCA '87 Proceedings of the 14th annual international symposium on Computer architecture
Common LISP: the language
Lisp on a reduced-instruction-set processor: characterization and optimization
Lisp on a reduced-instruction-set processor: characterization and optimization
LISP
Design of an optimizing, dynamically retargetable compiler for common Lisp
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Reconfigurable, retargetable bignums: a case study in efficient, portable Lisp system building
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
LISP on a reduced-instruction-set-processor
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Architecture of the Symbolics 3600
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
Artificial Intelligence Programming
Artificial Intelligence Programming
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
T: a dialect of Lisp or LAMBDA: The ultimate software tool
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
The Design and Evaluation of A High Performance Smalltalk System
The Design and Evaluation of A High Performance Smalltalk System
LISP/370: a short technical description of the implementation
ACM SIGSAM Bulletin
Matching Language and Hardware for Parallel Computation in the Linda Machine
IEEE Transactions on Computers - Special issue on architectural support for programming languages and operating systems
Fast dispatch mechanisms for stock hardware
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
The runtime environment for Scheme, a Scheme implementation on the 88000
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
Run-time checking in Lisp by integrating memory addressing and range checking
ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
Trap architectures for Lisp systems
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Global tagging optimization by type inference
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Abstract models of memory management
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Storage use analysis and its applications
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Polymorphic splitting: an effective polyvariant flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fast Prolog with an extended general purpose architecture
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
Do Object-Oriented Languages Need Special Hardware Support?
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Active Memory Processor: A Hardware Garbage Collector for Real-Time Java Embedded Devices
IEEE Transactions on Mobile Computing
Hi-index | 0.00 |
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.