Hacker News new | ask | show | jobs
by jbattle 2900 days ago
With these techniques - how complex a program can practically be created in 2018?

A lot of the example programs mentioned feel more like functions (stateless + deterministic mapping of a tuple of inputs to a single output).

In contrast, I think of a 'program' as having a longish lifecycle comprising a stream of inputs and outputs.

Relatedly, I'm not clear how well the approaches detailed here actually would scale with complexity - is this a meaningful building block in building more complex applications? Or is some higher-order framework needed that 'knows' how to apply this in a rich context?

4 comments

10-50 lines of code. You have to pick the right domain. Sumit is doing a lot of work [1] on integrating these ideas into Microsoft's products, e.g., Excel's flash fill. Ras [2] is synthesizing biology models and architecture design. Sanjit, Armando, Emina, Rishabh, are all doing excellent work getting them to scale.

[1] https://www.microsoft.com/en-us/research/video/flash-fill-fl...

[2] https://www.frontiersin.org/articles/10.3389/fbioe.2014.0007...

The higher-order framework is you!

Most of the recent work in this field seems to be based around the idea of program "sketching", i.e. the programmer sketches a high-level specification, and the algorithms progressively synthesise and evaluate small functions / programs to efficiently implement the sketch.

No doubt machine learning researchers will have something to say about this though...

Incidentally there is a workshop this Sunday at ICML about program synthesis https://uclmr.github.io/nampi/
Barliman is pretty neat for filling in functions given a few examples:

https://youtube.com/watch?v=5vtC7WEN76w