A 15 Year Perspective on Automatic Programming
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Co-evolving parasites improve simulated evolution as an optimization procedure
CNLS '89 Proceedings of the ninth annual international conference of the Center for Nonlinear Studies on Self-organizing, Collective, and Cooperative Phenomena in Natural and Artificial Computing Networks on Emergent computation
Proceedings of the third international conference on Genetic algorithms
Journal of Information Processing
Adaptation in natural and artificial systems
Adaptation in natural and artificial systems
The Z notation: a reference manual
The Z notation: a reference manual
Genetic programming: on the programming of computers by means of natural selection
Genetic programming: on the programming of computers by means of natural selection
Inductive functional programming using incremental program transformation
Artificial Intelligence
Automated program flaw finding using simulated annealing
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Genetic programming: an introduction: on the automatic evolution of computer programs and its applications
ALIFE Proceedings of the sixth international conference on Artificial life
Introduction to algorithms
Art of Software Testing
Multi-Objective Optimization Using Evolutionary Algorithms
Multi-Objective Optimization Using Evolutionary Algorithms
Tracking the Red Queen: Measurements of Adaptive Progress in Co-Evolutionary Simulations
Proceedings of the Third European Conference on Advances in Artificial Life
A Representation for the Adaptive Generation of Simple Sequential Programs
Proceedings of the 1st International Conference on Genetic Algorithms
Generality and Difficulty in Genetic Programming: Evolving a Sort
Proceedings of the 5th International Conference on Genetic Algorithms
Evolving Turing-Complete Programs for a Register Machine with Self-modifying Code
Proceedings of the 6th International Conference on Genetic Algorithms
PPSN IV Proceedings of the 4th International Conference on Parallel Problem Solving from Nature
An Approach to Automatic Code Generation for Safety-Critical Systems
ASE '99 Proceedings of the 14th IEEE international conference on Automated software engineering
Formal specification and automatic programming
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Behavioral Diversity and a Probabilistically Optimal GP Ensemble
Genetic Programming and Evolvable Machines
Generating Multiple Diverse Software Versions with Genetic Programming
EUROMICRO '98 Proceedings of the 24th Conference on EUROMICRO - Volume 1
Solution concepts in coevolutionary algorithms
Solution concepts in coevolutionary algorithms
Search-based software test data generation: a survey: Research Articles
Software Testing, Verification & Reliability
Ideal Evaluation from Coevolution
Evolutionary Computation
A comparison of bloat control methods for genetic programming
Evolutionary Computation
On the possibilities of (pseudo-) software cloning from external interactions
Soft Computing - A Fusion of Foundations, Methodologies and Applications
The N-Version Approach to Fault-Tolerant Software
IEEE Transactions on Software Engineering
Coevolving programs and unit tests from their specification
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Strongly typed genetic programming
Evolutionary Computation
New methods for competitive coevolution
Evolutionary Computation
On the automation of fixing software bugs
Companion of the 30th international conference on Software engineering
Multi-objective Improvement of Software Using Co-evolution and Smart Seeding
SEAL '08 Proceedings of the 7th International Conference on Simulated Evolution and Learning
Evolving modular recursive sorting algorithms
EuroGP'07 Proceedings of the 10th European conference on Genetic programming
Using negative correlation to evolve fault-tolerant circuits
ICES'03 Proceedings of the 5th international conference on Evolvable systems: from biology to hardware
Foundations of Genetic Programming
Foundations of Genetic Programming
Speciation as automatic categorical modularization
IEEE Transactions on Evolutionary Computation
Hi-index | 0.07 |
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.