Zoea - Composable Inductive Programming Without Limits

Automatic generation of software from some form of specification has been a long standing goal of computer science research. To date successful results have been reported for the production of relatively small programs. This paper presents Zoea which is a simple programming language that allows software to be generated from a specification format that closely resembles a set of automated functional tests. Zoea incorporates a number of advances that enable it to generate software that is large enough to have commercial value. Zoea also allows programs to be composed to form still larger programs. As a result Zoea can be used to produce software of any size and complexity. An overview of the core Zoea language is provided together with a high level description of the symbolic AI based Zoea compiler.

[1]  Rob Miller,et al.  Keyword programming in java , 2007, ASE '07.

[2]  Premkumar T. Devanbu,et al.  Mining Semantic Loop Idioms , 2018, IEEE Transactions on Software Engineering.

[3]  Brad A. Myers,et al.  Taxonomies of visual programming and program visualization , 1990, J. Vis. Lang. Comput..

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

[5]  Mark Zuckerberg,et al.  Why Software Is Eating the World , 2011 .

[6]  Ehud Y. Shapiro The Model Inference System , 1981, IJCAI.

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

[8]  Richard C. Waters,et al.  The Programmer's Apprentice: a research overview , 1988, Computer.

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

[10]  Kirsten N. Whitley Visual Programming Languages and the Empirical Evidence For and Against , 1997, J. Vis. Lang. Comput..

[11]  John Paul,et al.  Automated Software Testing: Introduction, Management, and Performance , 1999 .

[12]  H. Penny Nii,et al.  Blackboard systems: the blackboard model of problem solving and the evolution of blackboard architectures , 1995 .

[13]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

[14]  Phillip D. Summers,et al.  A Methodology for LISP Program Construction from Examples , 1977, J. ACM.

[15]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[16]  Susumu Katayama Efficient Exhaustive Generation of Functional Programs Using Monte-Carlo Search with Iterative Deepening , 2008, PRICAI.

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

[18]  Jan Bosch,et al.  Climbing the "Stairway to Heaven" -- A Mulitiple-Case Study Exploring Barriers in the Transition from Agile Development towards Continuous Deployment of Software , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.