The Porphyrian Tree and Multiple Inheritance: A Rejoinder to Tylman on Computer Science and Philosophy
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.
KeywordsPorphyrian tree Object-oriented programming Multiple inheritance Diamond problem Computer science Neoplatonic metaphysics
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).
- Barnes, J. (Ed.). (2003). Porphyry’s introduction. Translation and commentary. Oxford: Oxford University Press.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.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
- Gosling, J., Joy, B., Steele, G., Bracha, G., & Buckley, A. (2015). The Java ® Language Specification, Java SE 8 Edition. Redwood City, CA: Oracle America.Google Scholar
- 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
- Kaczmarek, J. (2002). On the Porphyrian tree structure and an operation of determination. Bulletin of the Section of Logic, 31, 37–46.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.Google Scholar
- 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
- 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.
- 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 UniversityGoogle Scholar