Modelling the Evolution of Programming Languages

Programming languages are engineered languages that allow to instruct a machine and share algorithmic information; they have a great influence on the society since they underlie almost every information technology artefact, and they are at the core of the current explosion of software technology. The history of programming languages is marked by innovations, diversifications, lateral transfers and social influences; moreover, it represents an intermediate case study between the evolution of human languages and the evolution of technology. In this paper we study the application of the Darwinian explanation to the programming languages evolution by discussing to what extent the evolutionary mechanisms distinctive of biology can be applied to this area. We show that a number of evolutionary building blocks can be recognised in the realm of computer languages, but we also identify critical issues. Far from being crystal clear, this fine-grained study shows to be a useful tool to assess recent results about programming languages phylogenies. Finally, we show that rich evolutionary patterns, such as co-evolution, macro-evolutionary trends, niche construction and exaptation, can be effectively applied to programming languages and provide for interesting explanatory tools.

[1]  Dan Sperber,et al.  How Darwinian is cultural evolution? , 2014, Philosophical Transactions of the Royal Society B: Biological Sciences.

[2]  R. Mace,et al.  A phylogenetic approach to cultural evolution. , 2005, Trends in ecology & evolution.

[3]  C. H. Yeung,et al.  Tracing the Evolution of Physics on the Backbone of Citation Networks , 2011, Physical review. E, Statistical, nonlinear, and soft matter physics.

[4]  Ricard V. Solé,et al.  The evolutionary ecology of technological innovations , 2013, Complex..

[5]  Robin Milner,et al.  Elements of interaction: Turing award lecture , 1993, CACM.

[6]  Christoph H. Loch,et al.  A Punctuated-Equilibrium Model of Technology Diffusion , 1999 .

[7]  Sergi Valverde,et al.  Topology and evolution of technology innovation networks. , 2007, Physical review. E, Statistical, nonlinear, and soft matter physics.

[8]  Sergi Valverde,et al.  Punctuated equilibrium in the large-scale evolution of programming languages† , 2015, Journal of The Royal Society Interface.

[9]  Dwight W. Read,et al.  From Population to Organization Thinking , 2009 .

[10]  M. Pagel Human language as a culturally transmitted replicator , 2009, Nature Reviews Genetics.

[11]  Silvia Crafa The role of concurrency in an evolutionary view of programming abstractions , 2015, J. Log. Algebraic Methods Program..

[12]  M. Haber Multilevel Lineages and Multidimensional Trees: The Levels of Lineage and Phylogeny Reconstruction , 2012 .