Abstract
The subtyping test consists of checking whether a type t is a descendant of a type r (Agrawal et al. 1989). We study how to perform such a test efficiently, assuming a dynamic hierarchy when new types are inserted at run-time. The goal is to achieve time and space efficiency, even as new types are inserted. We propose an extensible scheme, named ESE, that ensures (1) efficient insertion of new types, (2) efficient subtyping tests, and (3) small space usage. On the one hand ESE provides comparable test times to the most efficient existing static schemes (e.g.,Zibin et al. (2001)). On the other hand, ESE has comparable insertion times to the most efficient existing dynamic scheme (Baehni et al. 2007), while ESE outperforms it by a factor of 2-3 times in terms of space usage.
- R. Agrawal, A. Borgida, and H.V. Jagadish. Efficient Management of Transitive Relationships in Large Data and Knowledge Bases. In Proceedings of the ACM International Conference on Management of Data, pages 253--262, 1989. Google Scholar
Digital Library
- B. Liskov, and L. Shrira. Modular Software Upgrades for Distributed Systems. In Proceedings of the 20th European Conference on Object-Oriented Programming, pages 452--476, 2006. Google Scholar
Digital Library
- J. Bareto, P. Eugster, and R. Guerraoui. Efficient Distributed Subtyping Tests. In Proceedings of the ACM International Conference on Distributed Event-based Systems, pages 214--225, 2007. Google Scholar
Digital Library
- N.H. Cohen. Type-Extension Tests can be Performed in Constant Time. ACM Transactions on Programming Languages and Systems, 13:626--629, 1991. Google Scholar
Digital Library
- J. Dedecker, T.V. Cutsem, S. Mostinckx, T. D'Hondt, and W.D. Meuter. Ambient-Oriented Programming in AmbientTalk. In Proceedings of the 20th European Conference on Object-Oriented Programming, pages 230--254, 2006. Google Scholar
Digital Library
- P.F. Dietz. Maintaining order in a linked list. In Proceedings of the 14th Ann. ACM Symposium on Theory of Computing, pages 122--127, 1982. Google Scholar
Digital Library
- P.F. Dietz and D.D. Sleator. Two algorithms for maintaining order in a list. In Proceedings of the 19th Ann. ACM Symposium on Theory of Computing, pages 365--372, 1987. Google Scholar
Digital Library
- P.-M. Denielou and J. Leifer. Abstraction Preservation and Subtyping in Distributed Languages. In Proceedings of the 11th ACM International Conference on Functional Programming (ICFP '06), pages 286--297, 2006. Google Scholar
Digital Library
- R. Ducournau. Le hachage parfait fait-il un parfait test de sous-typage? In Proceedings of the Conférence des Languages et Modélesá Objets, pages 71--86, 2006.Google Scholar
- M.L. Fredman, JKomlós, and ESzemerédi. Storing a Sparse Table with O(1) Worst Case Access Time. Journal of the ACM, 31(3):58--544, 1984. Google Scholar
Digital Library
- A. Goldberg and A. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, 1983. Google Scholar
Digital Library
- J. Gosling, B. Joy, G. Steele, and G. Bracha. Java 1.5 Language Specification, third edition. http://java.sun.com/j2se/1.5.0/docs/index.html, 2005. Google Scholar
Digital Library
- C.A. Hejlsberg and S. Wiltamuth. C# Language Specification. Microsoft Press, 2001. Google Scholar
Digital Library
- A. Krall, J. Vitek, and R.N. Horspool. Near Optimal Hierarchical Encoding of Types. In Proceedings of the 11th European Conference on Object-Oriented Programming, pages 128--145, 1997.Google Scholar
Cross Ref
- N. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA, 1996. Google Scholar
Digital Library
- Microsoft. Microsoft Message Queuing, 2005.Google Scholar
- NETMicrosoft. .NET Framework Reference Documentation. http://www.microsoft.com/net/, 2005.Google Scholar
- Sun Microsystems Inc. Java Message Service -- Specification, version 1.1. http://java.sun.com/products/jms/docs.html, 2005.Google Scholar
- OMG. The Common Object Request Broker: Architecture and Specification, 2001.Google Scholar
- K. Palacz and J. Vitek. Java Subtype Tests in Real-Time. In Proceedings of the 17th European Conference on Object-Oriented Programming, pages 378--404, 2003.Google Scholar
Cross Ref
- L.K. Schubert, M.A. Papalaskaris, and J. Taugher. Determining Type, Part, Colour, and Time Relationships. IEEE Computer, 16:53--60, 1983. Google Scholar
Digital Library
- R. Sprugnoli. Perfect Hashing Functions: A Single Probe Retrieving Method for Static Sets. Communications of the ACM, 20(11):841--850, 1977. Google Scholar
Digital Library
- Stroustrup. The C++ Programming Language. Addison-Wesley, 2004. Google Scholar
Digital Library
- J. Vitek, R.N. Horspool, and A. Krall. Efficient Type Inclusion Tests. In Proceedings of the 12th ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 142--157, 1997. Google Scholar
Digital Library
- Y. Zibin and J. Gil. Efficient Subtyping Tests with PQ-Encoding. In Proceedings of the 16th ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 819--856, 2001. Google Scholar
Digital Library
- Y. Zibin and J. Gil. Fast Algorithm for Creating Space Efficient Dispatching Tables with Application to Multi-Dispatching. In Proceedings of the 17th ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 142--160, 2002. Google Scholar
Digital Library
- R. Schenkel, A. Theobald, and G. Weikum. Efficient Creation and Incremental Maintenance of the HOPI Index for Complex XML Document Collections. In Proceedings of the 21st International Conference on Data Engineering, pages 360--371, 2005. Google Scholar
Digital Library
Index Terms
Extensible encoding of type hierarchies
Recommendations
Extensible encoding of type hierarchies
POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesThe subtyping test consists of checking whether a type t is a descendant of a type r (Agrawal et al. 1989). We study how to perform such a test efficiently, assuming a dynamic hierarchy when new types are inserted at run-time. The goal is to achieve ...
An idea for a type system of multi-paradigm language with extensible syntax
CompSysTech '12: Proceedings of the 13th International Conference on Computer Systems and TechnologiesThis article proposes a type system for a multi-paradigm language paradigm. A practical solution that provides the benefits of both static and dynamic typing is proposed, while using the features of the prototype - extensible declarative syntax. A ...
Encoding types in ML-like languages
Mathematical foundations of programming semanticsThis article presents several general approaches to programming with type-indexed families of values within a Hindley-Milner type system. A type-indexed family of values is a function that maps a family of types to a family of values. The function ...







Comments