Title
Co-evolutionary automatic programming for software development
Abstract
Since the 1970s the goal of generating programs in an automatic way (i.e., Automatic Programming) has been sought. A user would just define what he expects from the program (i.e., the requirements), and it should be automatically generated by the computer without the help of any programmer. Unfortunately, this task is much harder than expected. Although transformation methods are usually employed to address this problem, they cannot be employed if the gap between the specification and the actual implementation is too wide. In this paper we introduce a novel conceptual framework for evolving programs from their specification. We use genetic programming to evolve the programs, and at the same time we exploit the specification to co-evolve sets of unit tests. Programs are rewarded by how many tests they do not fail, whereas the unit tests are rewarded by how many programs they make to fail. We present and analyse seven different problems on which this novel technique is successfully applied.
Year
DOI
Venue
2014
10.1016/j.ins.2009.12.019
Information Sciences: an International Journal
Keywords
Field
DocType
Automatic programming,Automatic refinement,Co-evolution,Software testing,Genetic programming
System programming,Programmer,Programming language,Computer science,Inductive programming,Unit testing,Exploit,Genetic programming,Software development,Automatic programming
Journal
Volume
ISSN
Citations 
259,
0020-0255
16
PageRank 
References 
Authors
0.75
31
2
Name
Order
Citations
PageRank
Andrea Arcuri1263092.48
Xin Yao214858945.63