Trace-based programming addresses the inference of a program from a small set of example computation traces. The induced program is typically a recursive program. A computation trace is a nonrecursive expression that describes the transformation of some specific input into the desired output with help of a predefined set of primitive functions. While the construction of traces is highly dependent on background knowledge or even on knowledge about the program searched for, the inductive generalization is based on syntactical methods of detecting regularities and dependencies between traces, as proposed in classical approaches to inductive programming (see Example 5 of that encyclopedia entry) or explanation-based learning (EBL). As an alternative to providing traces by hand-simulation, AI planning techniques or programming by demonstration (PBD) can be used.
- Schmid, U., & Wysotzki, F. (1998). Induction of recursive program schemes. In Proceedings of the tenth european conference on machine learning (ECML 1998): Lecture notes in artificial intelligence (Vol. 1398, pp. 214–225). Berlin: Springer.Google Scholar
- Schrödl, S., & Edelkamp, S. (1999). Inferring flow of control in program synthesis by example. In Proceedings of the 23rd annual german conference on artificial intelligence (KI 1999): Lecture notes in artificial intelligence (Vol. 1701, pp. 171–182). Berlin: Springer.Google Scholar
- Shavlik, J. W. (1990). Acquiring recursive and iterative concepts with explanation-based learning. Machine Learning, 5, 39–70.Google Scholar
- Wysotzki, F. (1983). Representation and induction of infinite concepts and recursive action sequences. In Proceedings of the eighth international joint conference on artificial intelligence (IJCAI 1983) (pp. 409–414). San Mateo, CA: Morgan Kaufmann.Google Scholar