I'm not talking about metaprogramming, exactly. I'm talking about actually building some kind of framework by with you can:<p>a) specify attributes of, say, a method or library, and have a machine produce code that meets those specifications<p>b) the machine can ask clarifying questions, such as, "do you need this function to handle UTF-8 input?" and other things that, also need to be taught to the machine<p>c) eventually, a refactoring pass that causes the machine to refine its programmatic output for human consumption, without changing the functional output<p>Does anyone know of a library or research that's being done to have software that you can teach to write software?<p>Honestly, I'd be happy even if someone had a teachable module that had to be taught inch by inch. I'm looking, in a sense, for something to which I can offload my knowledge, to teach it basics, and then have it do tasks for me and others in return.
a. There's this work is robotics[1]: You specify at a very high level the required robot behavior.The system analyzes it and if it find contradictions or things that are not fully specified it points you to them. After solving the issues it verifies the program behaves according to your spec.<p>b. see "Making programming more conversational " [2]<p>c. see "Integrating Programming by Example and Natural Language Programming" [3]<p>[1]<a href="https://www.youtube.com/watch?v=G_uVE86dJYI" rel="nofollow">https://www.youtube.com/watch?v=G_uVE86dJYI</a><p>[2<a href="http://www.cs.colorado.edu/~ralex/papers/PDF/Conversational-Programming%20VL-hcc2011.pdf" rel="nofollow">http://www.cs.colorado.edu/~ralex/papers/PDF/Conversational-...</a><p>[3]<a href="http://www.aaai.org/ocs/index.php/AAAI/AAAI13/paper/view/6477" rel="nofollow">http://www.aaai.org/ocs/index.php/AAAI/AAAI13/paper/view/647...</a>