Skip to main content
Log in

The Porphyrian Tree and Multiple Inheritance: A Rejoinder to Tylman on Computer Science and Philosophy

  • Commentary
  • Published:
Foundations of Science Aims and scope Submit manuscript

Abstract

Tylman (Found Sci, 2017) has recently pointed out some striking conceptual and methodological analogies between philosophy and computer science. In this paper, I focus on one of Tylman’s most convincing cases, viz. the similarity between Plato’s theory of Ideas and the object-oriented programming (OOP) paradigm, and analyze it in some more detail. In particular, I argue that the (Neo)platonic doctrine of the Porphyrian tree corresponds to the fact that most object-oriented programming languages do not support multiple inheritance. This analysis further reinforces Tylman’s point regarding the conceptual continuity between classical metaphysical theorizing and contemporary computer science.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

Notes

  1. The historical development of the Porphyrian tree is surprisingly similar to that of another logical diagram, viz. the square of opposition. The theory embodied by this diagram was first expounded by Aristotle, but the actual diagram was only constructed by a later commentator (Apuleius, 2nd century CE). It, too, was highly popular among medieval logicians and is nowadays still used in logic and philosophy, but also in various other disciplines, including linguistics and computer science (Parsons 2012; Smessaert and Demey 2014, 2015; Demey and Smessaert 2016, 2017).

  2. For reasons of space, I will not go into the details of these various programming languages. However, it should be mentioned that some of these languages do support some ‘lightweight version’ of multiple inheritance. For example, in Java, a class is not allowed to inherit from multiple superclasses, but it is allowed to implement multiple interfaces (Gosling et al. 2015). Finally, there also exist languages that fully support multiple inheritance, such as C++, Python and Perl.

  3. A similar issue arises in non-monotonic logic, where it is sometimes called the ‘Nixon diamond’ (Strasser and Antonelli 2016): consider the defeasible statements that Quakers are usually pacifists (cf. class B with one method) and that Republicans are usually not pacifists (cf. class C with a conflicting method). Given that Richard Nixon happens to be both a Quaker and a Republican (cf. class D inheriting from both B and C), it is not at all clear whether we should conclude that he is or that he is not a pacifist.

References

  • Archibald, J. D. (2014). Aristotle’s ladder, Darwin’s tree. The evolution of visual metaphors for biological order. New York, NY: Columbia University Press.

    Book  Google Scholar 

  • Barnes, J. (Ed.). (2003). Porphyry’s introduction. Translation and commentary. Oxford: Oxford University Press.

    Google Scholar 

  • Blum, P. R. (2012). Studies on early modern Aristotelianism. Leiden: Brill.

    Book  Google Scholar 

  • Chisholm, R. M. (1989). On metaphysics. Minneapolis, MN: University of Minnesota Press.

    Google Scholar 

  • Copenhaver, B. P., Normore, C. G., & Parsons, T. (Eds.). (2014). Peter of Spain, summaries of logic. Text, translation, introduction and notes. Oxford: Oxford University Press.

    Google Scholar 

  • Demey, L. (2014). Believing in logic and philosophy. Ph.D. thesis, KU Leuven.

  • Demey, L., & Smessaert, H. (2016). Metalogical decorations of logical diagrams. Logica Universalis, 10, 233–292.

    Article  Google Scholar 

  • Demey, L., & Smessaert, H. (2017) Combinatorial bitstring semantics for arbitrary logical fragments. Journal of Philosophical Logic. doi:10.1007/s10992-017-9430-5.

  • Diestel, R. (2006). Graph theory. Heidelberg: Springer.

    Google Scholar 

  • Emilsson, E. (2015). Porphyry. In E. Zalta (Ed.), Stanford encyclopedia of philosophy. Stanford, CA: CSLI.

    Google Scholar 

  • Franklin, J. (1986). Aristotle on species variation. Philosophy, 61, 245–252.

    Article  Google Scholar 

  • Gosling, J., Joy, B., Steele, G., Bracha, G., & Buckley, A. (2015). The Java ® Language Specification, Java SE 8 Edition. Redwood City, CA: Oracle America.

  • Hacking, I. (2007). Trees of logic, trees of Porphyry. In J. L. Heilbron (Ed.), Advancements of learning: Essays in honour of Paolo Rossi (pp. 221–263). Florence: Olschki.

    Google Scholar 

  • Joque, J. (2016). The invention of the object: Object orientation and the philosophical development of programming languages. Philosophy and Technology, 29, 335–356.

    Article  Google Scholar 

  • Kaczmarek, J. (2002). On the Porphyrian tree structure and an operation of determination. Bulletin of the Section of Logic, 31, 37–46.

    Google Scholar 

  • Malayeri, D., & Aldrich, J. (2009). CZ: Multiple inheritance without diamonds. OOPSLA ’09 (pp. 21–40). New York, NY: ACM.

    Chapter  Google Scholar 

  • Martini, S. (2016a). Several types of types in programming languages. In F. Gadducci & M. Tavosanis (Eds.), History and philosophy of computing (HaPoC 2015) (pp. 216–227). Berlin: Springer.

    Chapter  Google Scholar 

  • Martini, S. (2016). Types in programming languages, between modelling, abstraction, and correctness. In A. Beckmann, L. Bienvenu, & N. Jonoska (Eds.), Pursuit of the Universal (Computing in Europe 2016) (pp. 164–169). Berlin: Springer.

    Google Scholar 

  • Mitchell, J. C. (2004). Concepts in Programming Languages. Cambridge: Cambridge University Press.

    Google Scholar 

  • Moktefi, A., & Shin, S. J. (2012). A history of logic diagrams. In D. M. Gabbay, F. J. Pelletier, & J. Woods (Eds.), Handbook of the History of Logic (Vol. 11, pp. 611–682)., Logic: A History of its Central Concepts Amsterdam: North-Holland.

  • Parsons, T. (2012). The traditional square of opposition. In E. Zalta (Ed.), Stanford encyclopedia of philosophy. Stanford, CA: CSLI.

    Google Scholar 

  • Sakkinen, M. (1989). Disciplined inheritance. In S. Cook (Ed.), ECOOP ’89 (pp. 39–56). Cambridge: Cambridge University Press.

    Google Scholar 

  • Seuren, P., & Jaspers, D. (2014). Logico-cognitive structure in the lexicon. Language, 90, 607–643.

    Article  Google Scholar 

  • Smessaert, H., & Demey, L. (2014). Logical geometries and information in the square of opposition. Journal of Logic, Language and Information, 23, 527–565.

    Article  Google Scholar 

  • Smessaert, H., & Demey, L. (2015). Béziau’s contributions to the logical geometry of modalities and quantifiers. In A. Koslow & A. Buchsbaum (Eds.), The road to universal logic (pp. 475–494). Basel: Springer.

    Google Scholar 

  • Strasser, C., & Antonelli, G. A. (2016). Non-monotonic logic. In E. Zalta (Ed.), Stanford encyclopedia of philosophy. Stanford, CA: CSLI.

    Google Scholar 

  • Studtmann, P. (2013). Aristotle’s Categories. In E. Zalta (Ed.), Stanford encyclopedia of philosophy. Stanford, CA: CSLI.

    Google Scholar 

  • Thomasson, A. L. (2004). Methods of categorization. In A. C. Varzi & L. Vieu (Eds.), Formal ontology in information systems (pp. 3–16). Amsterdam: IOS Press.

    Google Scholar 

  • Tylman, W. (2017). Computer science and philosophy: Did Plato foresee object-oriented programming? Foundations of Science. doi:10.1007/s10699-016-9506-7.

  • van Benthem, J. (2007). Logic in philosophy. In D. Jacquette (Ed.), Philosophy of Logic (pp. 65–99). Amsterdam: North-Holland.

    Chapter  Google Scholar 

  • Verboon, A. R. (2008). Einen alten Baum verpflanzt man nicht. Die Metapher des Porphyrianischen Baums im Mittelalter. In I. Reichle, S. Siegel, & A. Spelten (Eds.), Visuelle modelle (pp. 251–268). Fink: Munich.

    Google Scholar 

  • Verboon, A.R. (2010) Lines of thought: Diagrammatic representation and the scientific texts of the Arts faculty, 1200–1500. PhD thesis, Leiden University

  • Verboon, A. R. (2014). The medieval tree of Porphyry: An organic structure of logic. In P. Salonius & A. Worm (Eds.), The tree: Symbol, allegory, and mnemonic device in medieval art and thought (pp. 95–116). Turnhout: Brepols.

    Chapter  Google Scholar 

Download references

Acknowledgements

I would like to thank Hans Smessaert, Margaux Smets, Wouter Termont, Leander Vignero and two anonymous referees for their helpful feedback on an earlier version of this paper. The two issues discussed in Sect. 5 were first raised by Vignero and Termont, respectively. The ideas presented in this paper were first proposed in one of the additional theses of my PhD dissertation (Demey 2014). My research is financially supported by a Postdoctoral Fellowship of the Research Foundation–Flanders (FWO).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lorenz Demey.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Demey, L. The Porphyrian Tree and Multiple Inheritance: A Rejoinder to Tylman on Computer Science and Philosophy. Found Sci 23, 173–180 (2018). https://doi.org/10.1007/s10699-017-9531-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10699-017-9531-1

Keywords

Navigation