Abstract
Automatically generating executable code has a long history of arguably modest success, mostly limited to the generation of small programs of up to 200 lines of code, and genetic improvement of existing code. We present the use of genetic programming (GP) in conjunction with context-oriented behavioral programming (COBP), the latter being a programming paradigm with unique characteristics that facilitate automatic coding. COBP models a program as a set of behavioral threads (b-threads), each aligned to a single behavior or requirement of the system. To evolve behavioral programs we design viable and effective genetic operators, a genetic representation, and evaluation methods. The simplicity of the COBP paradigm, its straightforward syntax, the ability to use verification and formal-method techniques to validate program correctness, and a program comprising small independent chunks all allow us to effectively generate behavioral programs using GP. To demonstrate our approach we evolve complete programs from scratch of a highly competent O player for the game of tic-tac-toe. The evolved programs are well structured, consisting of multiple, explainable modules that specify the different behavioral aspects of the program and are similar to our handcrafted program. To validate the correctness of our individuals, we utilize the mathematical characteristics of COBP to analyze program behavior under all possible execution paths. Our analysis of an evolved program proved that it plays as expected more than 99% of the times.
Subject
Fluid Flow and Transfer Processes,Computer Science Applications,Process Chemistry and Technology,General Engineering,Instrumentation,General Materials Science
Reference26 articles.
1. Context-Oriented Behavioral Programming;Inf. Softw. Technol.,2021
2. Cramer, N.L. (1985, January 24–26). A representation for the adaptive generation of simple sequential programs. Proceedings of the International Conference on Genetic Algorithms and the Applications, Pittsburgh, PA, USA.
3. Koza, J.R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection, The MIT Press.
4. Orlov, M., and Sipper, M. (2009, January 8–12). Genetic programming in the wild: Evolving unrestricted bytecode. Proceedings of the 11th Annual Conference on Genetic and Evolutionary Computation, Montreal, QC, Canada.
5. Flight of the FINCH through the Java wilderness;IEEE Trans. Evol. Comput.,2011
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献