skip to main content
research-article

Extensible encoding of type hierarchies

Published:07 January 2008Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. N.H. Cohen. Type-Extension Tests can be Performed in Constant Time. ACM Transactions on Programming Languages and Systems, 13:626--629, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Goldberg and A. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. C.A. Hejlsberg and S. Wiltamuth. C# Language Specification. Microsoft Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarCross RefCross Ref
  15. N. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Microsoft. Microsoft Message Queuing, 2005.Google ScholarGoogle Scholar
  17. NETMicrosoft. .NET Framework Reference Documentation. http://www.microsoft.com/net/, 2005.Google ScholarGoogle Scholar
  18. Sun Microsystems Inc. Java Message Service -- Specification, version 1.1. http://java.sun.com/products/jms/docs.html, 2005.Google ScholarGoogle Scholar
  19. OMG. The Common Object Request Broker: Architecture and Specification, 2001.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. L.K. Schubert, M.A. Papalaskaris, and J. Taugher. Determining Type, Part, Colour, and Time Relationships. IEEE Computer, 16:53--60, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. Sprugnoli. Perfect Hashing Functions: A Single Probe Retrieving Method for Static Sets. Communications of the ACM, 20(11):841--850, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Stroustrup. The C++ Programming Language. Addison-Wesley, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Extensible encoding of type hierarchies

    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 SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 43, Issue 1
      POPL '08
      January 2008
      420 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1328897
      Issue’s Table of Contents
      • cover image ACM Conferences
        POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
        January 2008
        448 pages
        ISBN:9781595936899
        DOI:10.1145/1328438

      Copyright © 2008 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 7 January 2008

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!