Abstract
This paper proposes a method which makes full use of the functions of information representation and procedural and declarative knowledge of S-model to derive programs using abstract data-types such as sets and relations and to refine them to programs manipulating arrays and pointers. In this method, program derivation requires 2-phases; first, a syntax-type (a program control structure and related subproblems with it) is generated by analyzing the structure of problem inputoutput specifications and constraints, and by using rules and axioms in S-model's knowledge-base, and then solution program model is derived by the multi-level search based on the syntax-type. Functions of S-model mentioned above are also indispensable for data refinement, as the refinement is essentially redesign of data structures in the concrete level.