A method for transforming a source program expressed as a set of Horn clauses into a target program in an Algol-like procedural language is presented. Compared with deterministic execution of a conventional program, the top-down procedural interpretation of a Horn clause program is inherently nondeterministic. This transformation method is aimed at removing certain types of nondeterminism in a Horn clause program via a variable-dependence analysis and a procedure formation scheme. It is assumed that the input/output mode information for each predicate in the Horn clause is known in advance and that each predicate is used unidirectionally, i.e., each argument in the argument list of a predicate is used either as an input or an output, but not both. Therefore, the Horn clauses treated by this method represent only a subclass of the general Horn logic clauses. During the transformation process, the method is also capable of discovering inconsistent or missing information in the source program.