skip to main content
10.1145/320384.320428acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free Access

The generic graph component library

Authors Info & Claims
Published:01 October 1999Publication History

ABSTRACT

In this paper we present the Generic Graph Component Library (GGCL), a generic programming framework for graph data structures and graph algorithms. Following the theme of the Standard Template Library (STL), the graph algorithms in GGCL do not depend on the particular data structures upon which they operate, meaning a single algorithm can operate on arbitrary concrete representations of graphs. To attain this type of flexibility for graph data structures, which are more complicated than the containers in STL, we introduce several concepts to form the generic interface between the algorithms and the data structures, namely, Vertex, Edge, Visitor, and Decorator. We describe the principal abstractions comprising the GGCL, the algorithms and data structures that it provides, and provide examples that demonstrate the use of GGCL to implement some common graph algorithms. Performance results are presented which demonstrate that the use of novel lightweight implementation techniques and static polymorphism in GGCL results in code which is significantly more efficient than similar libraries written using the object-oriented paradigm.

References

  1. 1.Netlib repository, http://www.netlib.org/.]]Google ScholarGoogle Scholar
  2. 2.University of Florida sparse matrix collection. http://www-pub, cise.ufl, edu/,,~ davis/sparse/.]]Google ScholarGoogle Scholar
  3. 3.Austern, M. H. Generic Programming and the STL. Addison Wesley Longman, inc, October 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Cormen, T. H., Leiserson, C. E., and Rivest, R. L. Introduction to Algorithms. The MIT Press, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Forster, M., Pick, A., and Raitner, M. Graph Template Library. http://www.fmi.unipassau.de/Graphlet/GTL/.]]Google ScholarGoogle Scholar
  6. 6.Gamma, E., Hetm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object- Oriented Software. Addiaon Wesley Publishing Company, October 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.George, A., and Liu, j. W.H. User's guide for SPARSPAK: Waterloo sparse linear equations packages. Teeh. rep., Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canada, 1980.]]Google ScholarGoogle Scholar
  8. 8.George, A., and Liu, J. W.-H. Computer Solution of Large Sparse Positive Definite Systems. Computational Mathematics. Prentice-Hall, 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Grimes, R. G., Lewis, J. G., and Duff, i. S. User's guide for the harwell-boeing sparse matrix collection. User's Manual Release 1, Boeing Computer Services, Seattle, WA, October 1992.]]Google ScholarGoogle Scholar
  10. 10.Jacobson, I., Booch, G., and Rurnbaugh, J. Unified Software Development Process. Addison-Wesley, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Knuth, D. E. Stanford GraphBase: a platform for combinatorial computing. ACM Press, 1994.]] Google ScholarGoogle Scholar
  12. 12.Lee, M., and Stepanov, A. The standard template library. Tech. rep., HP Laboratories, February 1995.]]Google ScholarGoogle Scholar
  13. 13.Liu, J. W. H. Modification of the minimum-degree algorithm by multiple elimination. ACM Transaction on Mathematical Software 11, 2 (1985), t41-153.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.Mehlhom, K., and Naeher, S. LEDA. http://www.mpisb.mpg.de/LEDA/leda.html.]]Google ScholarGoogle Scholar
  15. 15.Meyer, B. Object-Oriented Software Construction. Prentice Hall, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Object Management Group. UML Notation Guide, version 1. I ed.,September 1997. http://www.rational.com/uml/.]]Google ScholarGoogle Scholar
  17. 17.Saad, Y. Iterative Methods for Sparse Minear System. PWS Publishing Company, 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Samaragdakis, Y., and Batory, D. Implementing layered designs with mixin layers. In The Europe Conference on Object-Oriented Programming (1998).]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Siek, J. G., and Lumsdaine, A. The matrix template library: A genetic programming approach to high performance numerical linear algebra, in International Symposium on Computing in Object-Oriented Parallel Environments (1998).]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.Sick, J. G., and Lumsdaine, A. Mayfly: A pattern for light-weight genetic interfaces. In PLOP99 (1999). Accepted.]]Google ScholarGoogle Scholar
  21. 21.Skiena, S. implementing Discrete mathematics. Addion-Wesley, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Skiena, S. S. The Algorithm Design Manual. Springer- Verlag New York, Inc, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Veldhuizen, T. L. Expression templates. C++ Report 7, 5 (June 1995), 26-31. Reprinted in C++ Gems, ed. Stanley Lippman.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The generic graph component library

            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
            • Published in

              cover image ACM Conferences
              OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
              October 1999
              462 pages
              ISBN:1581132387
              DOI:10.1145/320384

              Copyright © 1999 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 October 1999

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              OOPSLA '99 Paper Acceptance Rate30of152submissions,20%Overall Acceptance Rate268of1,244submissions,22%

              Upcoming Conference

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader