Optimization of parser tables for portable compilers
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient implementation of lattice operations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type-extension type test can be performed in constant time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Selector table indexing & sparse arrays
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Efficient handling of multiple inheritance hierarchies
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Reply to “Type-extension tests can be performed in constant time”
ACM Transactions on Programming Languages and Systems (TOPLAS)
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Tree structure for distributive lattices and its applications
Theoretical Computer Science
Fast and compact dispatching for dynamic object-oriented languages
Information Processing Letters
Taming Message Passing: Efficient Method Look-Up for Dynamically Typed Languages
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Message Dispatch on Pipelined Processors
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Design, implementation, and evaluation of optimizations in a just-in-time compiler
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Efficient multiple and predicated dispatching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Scalable propagation-based call graph construction algorithms
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient subtyping tests with PQ-encoding
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast subtype checking in the HotSpot JVM
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Empirical Study of Object-Layout Strategies and Optimization Techniques
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Polychotomic Encoding: A Better Quasi-Optimal Bit-Vector Encoding of Tree Hierarchies
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Generic Constraints for Content-Based Publish/Subscribe
CooplS '01 Proceedings of the 9th International Conference on Cooperative Information Systems
Computational aspects of the 2-dimension of partially ordered sets
Theoretical Computer Science
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Efficient subtyping tests with PQ-encoding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Link-time static analysis for efficient separate compilation of object-oriented languages
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Virgil: objects on the head of a pin
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Efficient distributed subtyping tests
Proceedings of the 2007 inaugural international conference on Distributed event-based systems
SableVM: a research framework for the efficient execution of java bytecode
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Extensible encoding of type hierarchies
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Perfect hashing as an almost perfect subtype test
ACM Transactions on Programming Languages and Systems (TOPLAS)
Real time Java on resource-constrained platforms with Fiji VM
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Empirical assessment of object-oriented implementations with multiple inheritance and static typing
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Implementing statically typed object-oriented programming languages
ACM Computing Surveys (CSUR)
Efficient compilation of .NET programs for embedded systems
Proceedings of the Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
The implementation of ada 2005 interface types in the GNAT compiler
Ada-Europe'05 Proceedings of the 10th Ada-Europe international conference on Reliable Software Technologies
Efficiently refactoring java applications to use generic libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Lightweight generics in embedded systems through static analysis
Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems
Open and efficient type switch for C++
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
A type inclusion test determines whether one type is a subtype of another. Efficient type testing techniques exist for single subtyping, but not for languages with multiple subtyping. To date, the fast constant-time technique relies on a binary matrix encoding of the subtype relation with quadratic space requirements. In this paper, we present three new encodings of the subtype relation, the packed encoding, the bit-packed encoding and the compact encoding. These encodings have different characteristics. The bit-packed encoding delivers the best compression rates: on average 85% for real life programs. The packed encoding performs type inclusion tests in only 4 machine instructions. We present a fast algorithm for computing these encoding which runs in less than 13 milliseconds for PE and BPE, and 23 milliseconds for CE on an Alpha processor. Finally, we compare our results with other constant-time type inclusion tests on a suite of 11 large -benchmark hierarchies.