Time and Space Efficient Multi-method Dispatching

  • Stephen Alstrup
  • Gerth Stølting Brodal
  • Inge Li Gørtz
  • Theis Rauhe
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2368)

Abstract

The dispatching problem for object oriented languages is the problem of determining the most specialized method to invoke for calls at run-time. This can be a critical component of execution performance. A number of recent results, including [Muthukrishnan and Müller SODA’96, Ferragina and Muthukrishnan ESA’96, Alstrup et al. FOCS’98], have studied this problem and in particular provided various efficient data structures for the mono-method dispatching problem. A recent paper of Ferragina, Muthukrishnan and de Berg [STOC’99] addresses the multi-method dispatching problem.

Our main result is a linear space data structure for binary dispatching that supports dispatching in logarithmic time. Using the same query time as Ferragina et al., this result improves the space bound with a logarithmic factor.

Keywords

Query Time Color Problem Object Oriented Language Sparse Array Tree Color 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    S. Alstrup, T. Husfeldt, and T. Rauhe. Marked ancestor problems (extended abstract). In IEEE Symposium on Foundations of Computer Science (FOCS), pages 534–543, 1998.Google Scholar
  2. 2.
    D. G. Bobrow, L. G. DeMichiel, R. P. Gabriel, S. E. Keene, G. Kiczales, and D. A. Moon. Common LISP object system specification X3J13 document 88-002R. ACM SIGPLAN Notices, 23, 1988. Special Issue, September 1988.Google Scholar
  3. 3.
    Craig Chambers. Object-oriented multi-methods in Cecil. In Ole Lehrmann Madsen, editor, ECOOP’ 92, European Conference on Object-Oriented Programming, Utrecht, The Netherlands, volume 615 of Lecture Notes in Computer Science, pages 33–56. Springer-Verlag, New York, NY, 1992.Google Scholar
  4. 4.
    Inc. Apple Computer. Dylan interim reference manual, 1994.Google Scholar
  5. 5.
    P. F. Dietz. Fully persistent arrays. In F. Dehne, J.-R. Sack, and N. Santoro, editors, Proceedings of the Workshop on Algorithms and Data Structures, volume 382 of Lecture Notes in Computer Science, pages 67–74, Berlin, August 1989. Springer-Verlag.Google Scholar
  6. 6.
    Paul F. Dietz and Rajeev Raman. Persistence, amortization and randomization. In Proc. 2nd ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 78–88, 1991.Google Scholar
  7. 7.
    M. Dietzfelbinger, A. Karlin, K. Mehlhorn, F. Meyer auf der Heide, H. Rohnert, and R. E. Tarjan. Dynamic perfect hashing: Upper and lower bounds. In 29th Annual Symposium on Foundations of Computer Science (FOCS), pages 524–531. IEEE Computer Society Press, 1988.Google Scholar
  8. 8.
    J. R. Driscoll, N. Sarnak, D. D. Sleator, and R. E. Tarjan. Making data structures persistent. J. Computer Systems Sci., 38(1):86–124, 1989.MATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    David Eppstein and S. Muthukrishnan. Internet packet filter manegement and rectangle geometry. In ACM-SIAM Symposium on Discrete Algorithms (SODA), 2001.Google Scholar
  10. 10.
    P. Ferragina and S. Muthukrishnan. Efficient dynamic method-lookup for object oriented languages. In European Symposium on Algorithms, volume 1136 of Lecture Notes in Computer Science, pages 107–120, 1996.Google Scholar
  11. 11.
    P. Ferragina, S. Muthukrishnan, and M. de Berg. Multi-method dispatching: A geometric approach with applications to string matching problems. In Proceedings of the Thirty-First Annual ACM Symposium on Theory of Computing, pages 483–491, New York, May 1–4 1999. ACM Press.Google Scholar
  12. 12.
    R. Fleischer. A simple balanced search tree with O(1) worst-case update time. International Journal of Foundations of Computer Science, 7:137–149, 1996.MATHCrossRefGoogle Scholar
  13. 13.
    C. Levcopoulos and M. Overmars. A balanced search tree with O(1) worstcase update time. Acta Informatica, 26:269–277, 1988.MATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    K. Mehlhorn and S. Näher. Bounded ordered dictionaries in O(loglogn) time and O(n) space. Information Processing Letters, 35:183–189, 1990.MATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    S. Muthukrishnan and Martin Müller. Time and space efficient method-lookup for object-oriented programs (extended abstract). In Proceedings of the Seventh Annual ACM-SIAM Symposium on Discrete Algorithms, pages 42–51, Atlanta, Georgia, January 28–30 1996.Google Scholar
  16. 16.
    R. Raman. Eliminating Amortization: On Data Structures with Guaranteed Response Time. PhD thesis, University of Rochester, Computer Science Department, October 1992. Technical Report TR439.Google Scholar
  17. 17.
    N. Sarnak and R. E. Tarjan. Planar point location using persistent search trees. Communications of the ACM, 29:669–679, 1986.CrossRefMathSciNetGoogle Scholar
  18. 18.
    P. van Emde Boas. Preserving order in a forest in less than logarithmic time and linear space. Information Processing Letters, 6:80–82, 1978.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Stephen Alstrup
    • 1
  • Gerth Stølting Brodal
    • 2
  • Inge Li Gørtz
    • 1
  • Theis Rauhe
    • 1
  1. 1.The IT University of CopenhagenCopenhagenDenmark
  2. 2.BRICS (Basic Research in Computer Science), Center of the Danish National Research Foundation, Department of Computer ScienceUniversity of AarhusÅrhus CDenmark

Personalised recommendations