Suppose there is algorithm that has a strong NLP module. Could it use the NLP module to read text books such as http://www.amazon.in/Artificial-Intelligence-Modern-Approach-Prentice/dp/0136042597 in text form, parse it, understand the semantics and then use the knowledge to improve the very code it's written in ? Like a virtual computer scientist? Is any research group working on it or even thought of that idea?

  • 5
    $\begingroup$ This is far beyond the pale at the moment. $\endgroup$ – Yuval Filmus May 4 '17 at 17:11
  • $\begingroup$ @Yuval Filmus: I sort of expected that. I'm guessing in 10 years or perhaps even 5, it would become a reality :) $\endgroup$ – MarcelineH May 4 '17 at 23:15
  • $\begingroup$ The trivial answer is: yes, of course you can program such a thing. The question is if it will be doing its job well. I fear that you'll get lots of crystal-ball answers here. $\endgroup$ – Raphael May 5 '17 at 5:18
  • $\begingroup$ @iTunnels 10 years seems way too optimistic. Compare today's AI to the AI of ten years ago -- it improved much, but (IMO) that leap ahead is far less than the one which would bring today's AI to perform the task you describe. I'd love to see that in 10 years, but I think I'll never will in my lifetime. $\endgroup$ – chi Jun 3 '17 at 23:31
  • $\begingroup$ If somebody will succeed in this, computers will be able to do 99.9% of current humans work. Since this is not true for the moment, no one has done it yet. And I think that big corporations are closer now to it than 10 years ago, because programs that can understand context exist (not sure about precision). I think it could be generalized in a few tens of years. $\endgroup$ – rus9384 Jun 4 '17 at 12:07

While there are no program synthesizers that can synthesize themselves in their entirety, plenty of synthesizers can synthesize pieces of themselves. Rohit Singh, for instance, has a project using the Sketch synthesizer to optimize many logical solvers, including that of Sketch itself.

  • 1
    $\begingroup$ "While there are no program synthesizers that can synthesize themselves in their entirety" -- What about quines? $\endgroup$ – Raphael May 5 '17 at 5:16
  • 2
    $\begingroup$ This answer is either wrong or meaningless. As @Raphael says, Quines can write themselves, and perhaps more generally, see Kleene's recursion theorem. $\endgroup$ – Pål GD May 10 '17 at 16:37
  • $\begingroup$ I understood that the OP was asking about how to actually design systems that can reason about aspects of themselves and synthesize programs. Thank you for your input, but I don't think talking about quines helps answer the OP's question about how to actually write programs that write programs. I am a researcher in program synthesis, here to discuss how to actually build such a system. $\endgroup$ – James Koppel May 12 '17 at 16:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.