Inheritance graphs of object-oriented languages can be decomposed into independent subgraphs, or modules, which are inheritance graphs themselves. This paper is devoted to the study of efficient algorithms of decomposition into modules similar to substitution decomposition algorithms. For 2-connected inheritance graphs we search for maximal modules (under inclusion), whereas we show that the significant modules of non-2-connected graphs are the biconnected components. For the 2-connected case, a method based upon a property of greedy linear extensions is proposed. However, in both cases a linear-time complexity algorithm is provided to decompose into modules. Furthermore, the algorithm can be inserted into the inheritance mechanism (such as in CLOS ).
This is a preview of subscription content, access via your institution.
Buy single article
Instant access to the full article PDF.
Price excludes VAT (USA)
Tax calculation will be finalised during checkout.
A. V. Aho, M. R. Garey, J. D. Ullman, The transitive reduction of a directed graph,SIAM J. Comput.,1 (1972), 131–137.
A. V. Aho, J. E. Hopcroft, J. D. Ullman,The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, MA, 1975.
H. Aït-Kaci, R. Boyer, P. Lincoln, R. Nasr, Efficient implementation of lattice operations,ACM Trans. Programming Languages and Systems,11 (1989), 115–146.
V. Bouchitté, M. Habib, The calculation of invariants for ordered sets, inAlgorithms and Order (I. Rival, ed.), Kluwer, Dordrecht, 1989, pp. 231–279.
O. Cogis, M. Habib, Nombre de sauts et graphes série-parallèles,RAIRO Inform. Théor. Inform.,13 (1979), 3–18.
G. Di Battista, R. Tamassia, L. G. Tollis, Area requirement and symmetry display in drawing graphs.Proc. ACM Symposium on Computational Geometry, 1989.
R. Ducournau,Y3, version 3, SEMA-GROUP, Paris, 1988.
R. Ducournau, M. Habib, La multiplicité de l'héritage dans les langages à objets,Tech. Sci. Inform.,8 (1989), 41–62.
M. Habib, M. Huchard, A linear algorithm to decompose inheritance graphs into modules. Rapport de recherche CRIM no. 81, 1990.
M. Habib, M. C. Maurer, On theX-join decomposition for undirected graphs,Discrete Appl. Math.,1 (1979), 201–207.
M. Huchard, Sur quelques questions algorithmiques de l'hℰitage multiple. Thèse de doctorat, Université Montpellier II, 1992.
M. Huchard, M. L. Mugnier, M. Habib, R. Ducournau, Towards a unique multiple inheritance linearisation,Proc. EurOOp'e 91, Bratislava, 1991.
H. A. Kierstead, W. T. Trotter, The number of depth-first searches of an ordered set,Order,6 (1990), 295–304.
L. G. de Michiel, R. P. Gabriel, The common lisp object system: an overview.Proc. ECOOP '87, 1987, pp. 201–202.
J. H. Muller, J. Spinrad, Incremental modular decomposition,J. Assoc. Comput. Mach.,36 (1989), 1–19.
O. Pretzel, Problem submitted at the Oberwolfach Conference on Combinatorics and Ordered Sets, 1985.
J. Spinrad, P4-Trees and the substitution decomposition,Discrete Appl. Math. 39 (1992), 263–291.
R. E. Tarjan, Depth-first search and linear graph algorithms.SIAM J. Comput.,1 (1972), 146–160.
J. Valdes, R. E. Tarjan, E. L. Lawlers, The recognition of series parallel digraphs,SIAM J. Comput.,11 (1982), 298–314.
P. Wegner, Concepts and paradigms of object-oriented programming,OOPS Messenger,1(1) (1990).
Communicated by J.-D. Boissonnat.
About this article
Cite this article
Habib, M., Huchard, M. & Spinrad, J. A linear algorithm to decompose inheritance graphs into modules. Algorithmica 13, 573–591 (1995). https://doi.org/10.1007/BF01189070