paper-with-me

홈 › Papers

Open-Ended Automatic Programming Through Combinatorial Evolution

2021-02-20 · Sebastian Fix, Thomas Probst, Oliver Ruggli, Thomas Hanne, Patrik Christen

Combinatorial evolution - the creation of new things through the combination of existing things - can be a powerful way to evolve rather than design technical objects such as electronic circuits. Intriguingly, this seems to be an ongoing and thus open-ended process creating novelty with increasing complexity. Here, we employ combinatorial evolution in software development. While current approaches such as genetic programming are efficient in solving particular problems, they all converge towards a solution and do not create anything new anymore afterwards. Combinatorial evolution of complex systems such as languages and technology are considered open-ended. Therefore, open-ended automatic programming might be possible through combinatorial evolution. We implemented a computer program simulating combinatorial evolution of code blocks stored in a database to make them available for combining. Automatic programming in the sense of algorithm-based code generation is achieved by evaluating regular expressions. We found that reserved keywords of a programming language are suitable for defining the basic code blocks at the beginning of the simulation. We also found that placeholders can be used to combine code blocks and that code complexity can be described in terms of the importance to the programming language. As in a previous combinatorial evolution simulation of electronic circuits, complexity increased from simple keywords and special characters to more complex variable declarations, class definitions, methods, and classes containing methods and variable declarations. Combinatorial evolution, therefore, seems to be a promising approach for open-ended automatic programming.

📄 PDF Abstract BibTeX arXiv:2102.10475

Code (0)

등록된 구현이 없습니다.

Tasks

Code Generation

Similar Papers 제목 키워드 기반

FixEval: Execution-based Evaluation of Program Fixes for Programming Problems

2022-06-15 · Md Mahim Anjum Haque, Wasi Uddin Ahmad, Ismini Lourentzou, Chris Brown

The complexity of modern software has led to a drastic increase in the time and cost associated with detecting and rectifying software bugs. In response, researchers have explored various methods to automatically generat…

Bug fixing

Learning Curricula in Open-Ended Worlds

2023-12-03 · Minqi Jiang

Deep reinforcement learning (RL) provides powerful methods for training optimal sequential decision-making agents. As collecting real-world interactions can entail additional costs and safety risks, the common paradigm o…

Decision MakingDeep Reinforcement LearningReinforcement Learning (RL)Sequential Decision Making

Probabilistic Programming with Programmable Variational Inference

2024-06-22 · McCoy R. Becker, Alexander K. Lew, Xiaoyan Wang, Matin Ghavami 외

Compared to the wide array of advanced Monte Carlo methods supported by modern probabilistic programming languages (PPLs), PPL support for variational inference (VI) is less developed: users are typically limited to a pr…

Probabilistic ProgrammingVariational Inference

Interpreting Latent Student Knowledge Representations in Programming Assignments

2024-05-13 · Nigel Fernandez, Andrew Lan

Recent advances in artificial intelligence for education leverage generative large language models, including using them to predict open-ended student responses rather than their correctness only. However, the black-box …

Sketched Answer Set Programming

2017-05-21 · Sergey Paramonov, Christian Bessiere, Anton Dries, Luc De Raedt

Answer Set Programming (ASP) is a powerful modeling formalism for combinatorial problems. However, writing ASP models is not trivial. We propose a novel method, called Sketched Answer Set Programming (SkASP), aiming at s…