1. A computer-implemented automatic program generation system to generate a target program by recursive conversion of a program specification comprising: (a) a specification input means for inputting the specification and for converting the specification into syntactic tree format, and for outputting the specification in syntactic tree format, (b) a design control means, responsive to the specification in syntactic tree format, for recursively converting the specification in syntactic tree format obtained by said specification input means, and responsive to an inconvertible specification notice, outputting the converted specification as a target program, (c) a design knowledge base comprising an accumulated plurality of design knowledge data, each design knowledge datum including (1) a plurality of program pieces and (2) a relation section indicating a relation between the plurality of program pieces including a primitive relation, a meta primitive relation and a rewriting relation, (d) a design knowledge selection means, invoked by the design control means, for selecting a one of the design knowledge data in the design knowledge base applicable to a partial specification to be converted, and, responsive to a no match notice, transmitting the inconvertible program notice to said design control means, the design control means converting the input specification by invoking the design knowledge selection means, (e) a legitimate check means, responsive to the one of the design knowledge data from the design knowledge selection means, for judging whether there is a match between the partial specification to be converted and the one of the design knowledge data selected by said design knowledge selection means, for outputting the partial specification and the one of the design knowledge data when there is the match, and, when there is not a match, for transmitting the no match notice to said design knowledge selection means, and (f) a specification conversion means, responsive to the partial specification and the one of the design knowledge data from the legitimate check means, for selecting and invoking one of a specification conversion processing means based on the partial specification and the one of the design knowledge data output from said legitimate check means, said specification conversion processing means including a rewrite relation processing means selected by said specification conversion means when the relation section of the one of the design knowledge data indicates the rewriting relation, for rewriting the partial specification in the syntactic tree format according to said one of the design knowledge data.