Abstract. Inductive programming is the framework for automated programming, obtaining generalized recursive programs from ambiguous specifications such as input-output examples. Development of an inductive programming system at the level of human programmers is desired, but it involves the trade off between scale and versatility which are difficult to go together. This paper presents our research idea to enable synthesis of long programs while not limiting the algorithm to any domain, by automatically collecting the usage and request frequency of each function, estimating its usefulness, and reconstructing the component library containing component functions with which to synthesize desired functions. Hopefully this research will result in a more human-like automatic programming, which can lead to the development of adaptive planning with artificial general intelligence.