Abstract

AbstractIn this chapter we present our approach to folding finite program terms in recursive programs. That is, we address inductive program synthesis from traces. This problem is researched in inductive synthesis of functional programs - as second step of synthesis - and in programming by demonstration (see chap. 6). Traces can be provided to the system by the system user, they can be recorded from interactions of a user with a program, or they can be constructed over a set of input/output examples. In the next chapter (chap. 8) we will describe how finite programs can be generated by planning. Folding of finite programs into recursive programs is a complex problem itself. Our approach allows to fold recursive programs which can be characterized by sets of context-free term rewrite rules. It allows to infer programs consisting of a set of recursive equations, and to deal with interdependent and hidden parameters. Traces can be generic or over instantiated parameters and they can contain incomplete paths. That is, at least for the second step of program synthesis, our approach is more powerful than other approaches discussed in literature (see sect. 6.3 in chap. 6).KeywordsInitial TreeRecursive CallSynthesis ProblemRecursive EquationMain ProgramThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call