Quantifying the Impact on Software Complexity of Composable Inductive Programming using Zoea

Composable inductive programming as implemented in the Zoea programming language is a simple declarative approach to software development. At the language level it is evident that Zoea is significantly simpler than all mainstream languages. However, until now we have only had anecdotal evidence that software produced with Zoea is also simpler than equivalent software produced with conventional languages. This paper presents the results of a quantitative comparison of the software complexity of equivalent code implemented in Zoea and also in a conventional programming language. The study uses a varied set of programming tasks from a popular programming language chrestomathy. Results are presented for relative program complexity using two established metrics and also for relative program size. It was found that Zoea programs are approximately 50% the complexity of equivalent programs in a conventional language and on average equal in size. The results suggest that current programming languages (as opposed to software requirements) are the largest contributor to software complexity and that significant complexity could be avoided through an inductive programming approach.

[1]  Sarah McDaid,et al.  Zoea - Composable Inductive Programming Without Limits , 2019, ArXiv.

[2]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[3]  Jeremy Singer,et al.  Programming language feature agglomeration , 2014, PLE@ECOOP.

[4]  Emanuel Kitzelmann,et al.  Inductive Programming: A Survey of Program Synthesis Techniques , 2009, AAIP.

[5]  Richard C. Waters,et al.  Approaches to Automatic Programming , 1993, Adv. Comput..

[6]  Sumit Gulwani,et al.  Inductive programming meets the real world , 2015, Commun. ACM.

[7]  Elisa L. A. Baniassad,et al.  An exploration of program as language , 2009, OOPSLA '09.

[8]  Carlo A. Furia,et al.  A Comparative Study of Programming Languages in Rosetta Code , 2014, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[9]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[10]  Bruce J. MacLennan,et al.  Simple metrics for programming languages , 1984, Inf. Process. Manag..

[11]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[12]  David J. Lilja,et al.  A comparative analysis of parallel programming language complexity and performance , 1998, Concurr. Pract. Exp..

[13]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[14]  A. Kolmogorov Three approaches to the quantitative definition of information , 1968 .