ruby - Are there programs that iteratively write new programs? -


For almost a year, I was thinking about writing a program that writes programs, this would be primarily a playful exercise Which I have to teach some new concepts. My inspiration comes from the sequence of chaos arising out of sequence and the new chaos in infinite inheritance.

To be more specific, the program will start by writing a short random string. If the string program compile then it will log on for later comparison if the string does not compile the program, it will not try to rewrite it until it is compiled. More wire (mini 'waste' programs) are logged, they can be parsed for equality and used to generate a grammar. This grammar can be prepared to write more strings again, which is a higher probability of compiling than purely random strings.

This is clearly silly, but I thought it would be fun to try and develop in such a way that as a program and as a sub-product I find a bunch of unique programs. , Which I can imagine and art can say.

I will write this in Ruby due to its simple syntax and dynamic compilation, and then I will use it to visualize in processing the dark red color processing.

What do I want to know:

  • Is there a name for this type of programming?
  • What is currently present in this area?
  • Who is the primary contributor?
  • Bonus! - In what ways can I collect the value for the output program by procedural (y / n)?
    I would like to expand the functionality of this program to prepare a program based on parameters, but I want to define the criteria through which programs run the programs that compile meaning for programs and Assign. This question is possibly more than reasonable for the bonus, but if you can think of an easy way to achieve something like 23 lines or a hyperlink, please toss it in your response.

I know that this is not quite meta-programming and I do not know about the AI ​​and the generating algorithm that is more generally oriented than what they are thinking. What would be optimal is a program that constantly writes and improves itself, so give me ^ _ ^

"genetic Programming "view.

To respond to comments, edit:

@ Chris, @Kasturi: true. What is described in OP, is a system for violating grammar by Brute-Force's efforts to compile some concrete syntax, and then back-generates new concrete syntax from grammar. If you have something very closely matched with that description ... my best advice is to look at creating a hidden Markov model from a concrete syntax in some languages ​​with some pseudo syntax. I consider using a minimum connective logic (something similar in spirit to the Unlambda language).

On the other hand, genetic programming is a technique with some developed practice and literature, and "deterministic" rather than a stochastic process. It is also a very comprehensive term - Logic that OP is a limited case of 0% of GP's crossover and 100% mutation.


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -