Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The above describes what is today called program synthesis, i.e. generating a program from a complete specification. There is a parallel discipline, of inductive programming, or pgoram induction, which is the generation of programs from incomplete specifications, which usuall means examples (specifically, positive and negative examples of the inputs and outputs of the target program). Together, program synthesis and program induction, comprise the automatic programming field, which has advanced a little bit since the 1980's, I dare say.

Inductive progamming is very much a branch of machine learning and that's the reason most haven't heard of it (i.e. it's machine learning that is not deep learning). The main approaches are Inductive Functional Programming (IFP) and Inductive Logic Programming (ILP, which I study for my PhD). IFP systems learn programs in functional programming languages, like Haskell, and ILP systems learn progarms in logic programming languages like Prolog. And that is why neither is used in industry.

That is to say, both approaches work just fine - but they're not going to be adopted anytime soon (if I may be a bit of a pessimist) because most programmers lack the background to understand them and they can't be replaced by a large dataset.

A quick introduction to Inductive Programming is on the wikipedia articles:

https://en.wikipedia.org/wiki/Inductive_programming

I suggest to follow the links to the article's sources and to search for IFP and ILP systems separately. Two prominent representatives are Magic Haskeller (IFP) and Aleph (ILP):

http://nautilus.cs.miyazaki-u.ac.jp/~skata/MagicHaskeller.ht...

https://www.cs.ox.ac.uk/activities/programinduction/Aleph/al...

More can be found on the inductive-programming.org website:

https://www.inductive-programming.org/ip-systems.html



Neat! Thanks for posting this. I bumped into Genetic Programming a few times when I was studying evolutionary algorithms. Program induction seems bigger, more modern, and more sophisticated.


Some of the IFP systems actually use a evolutionary algorithms, I believe- ADATE in particular, though I can't find an actual instance of it online, or any other information but a mistitled paper:

https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.590...


. as well


.


Tap on the time of the comment to see it in isolation. From there you can favourite it instead of cluttering the thread.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: