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$ May 4, 2017 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, 2017 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, 2017 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, 2017 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, 2017 at 12:07

1 Answer 1


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, 2017 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, 2017 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$ May 12, 2017 at 16:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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