Closed ichistmeinname closed 6 years ago
Hi @ichistmeinname
Our current approach is deductive. Barliman is implemented in the logic programming language miniKanren, and inherits its deductive behavior from miniKanren's default search strategy.
We do have some unimplemented ideas, inspired by inductive programming, that we think should improve performance, but we haven't run any serious experiments yet. We're familiar with IGOR, Escher, and some other inductive systems, but we're not experts. We believe the best approaches to program synthesis will be those that can apply a variety of strategies, taking problem structure into account.
If you have ideas to share, or you're interested in working on this with us, let us know. We'd appreciate the help!
Also, for more detail on the particular implementation used for the ICFP paper, you can find our artifact here: https://github.com/gregr/icfp2017-artifact-auas7pp
Thanks for the quick response. I'm not an expert either, but I will definitely take another look at your implementation. Actually, I'm a PhD student at Kiel (Germany), where the functional logic PL Curry is developed, so I was of course curious about such an approach in miniKanren.
If you won't might, I will give you a shout via mail, if I have further questions.
@ichistmeinname Don't mind at all. Feel free to email.
When watching your ICFP-talk, I immediately thought of inductive programming systems like IGOR, but did not find the references quick enough to ask a question via slack. So, do you use techniques similar to approaches of inductive programming? If not, could these approaches be helpful for your use-case or vice versa? The README does not mention any related work.
An Analytical Inductive Functional Programming System that Avoids Unintended Programs Analytical Inductive Functional Programming IGOR II – an Analytical Inductive Functional Programming System Inductive Programming for Clojure