Explore Courses Blog Tutorials Interview Questions
0 votes
in AI and Deep Learning by (50.2k points)

I am asking this question because I know there are a lot of well-read CS types on here who can give a clear answer.

I am wondering if such an AI exists (or is being researched/developed) that it writes programs by generating and compiling code all on its own and then progresses by learning from former iterations. I am talking about working to make us, programmers, obsolete. I'm imagining something that learns what works and what doesn't in a programming language by trial and error.

I know this sounds pie-in-the-sky so I'm asking to find out what's been done if anything.

Of course, even a human programmer needs inputs and specifications, so such an experiment has to have carefully defined parameters. Like if the AI was going to explore different timing functions, that aspect has to be clearly defined.

But with sophisticated learning AI I'd be curious to see what it might generate.

I know there are a lot of human qualities computers can't replicate like our judgment, tastes, and prejudices. But my imagination likes the idea of a program that spits out a web site after a day of thinking and lets me see what it came up with, and even still I would often expect it to be garbage, but maybe once a day I maybe give it feedback and help it learn.

Another avenue of this thought is it would be nice to give a high-level description like "menued website" or "image tools" and it generates code with enough depth that would be useful as a code completion module for me to the code in the details. But I suppose that could be envisioned as a non-intelligent static hierarchical code completion scheme.

How about it?

1 Answer

0 votes
by (108k points)

 This all comes under the Genetic Algorithm, how you evaluate their success depends on the scope of their application. The Genetic Programming (GP) approach to Automatic Programming conflates, with its fitness functions, two different problems ("self-compilation" is conceptually a no-brainer):

  • self-improvement/adaptation - of the synthesized program and, if so desired, of the synthesizer itself; and

Another domain that can be seen in dealing with "program learning" is Inductive Logic Programming, although it is more used to provide an automatic demonstration or language/taxonomy learning.

If you wish to learn about the Genetic Algorithm and Genetic Programming visit this Artificial Intelligence Course Designed by Industrial Experts.


Browse Categories