  Generalized planning is the task of generating a single solution that is
valid for a set of planning problems. In this paper we show how to represent
and compute generalized plans using procedural Domain Control Knowledge (DCK).
We define a {\it divide and conquer} approach that first generates the
procedural DCK solving a set of planning problems representative of certain
subtasks and then compile it as callable procedures of the overall generalized
planning problem. Our procedure calling mechanism allows nested and recursive
procedure calls and is implemented in PDDL so that classical planners can
compute and exploit procedural DCK. Experiments show that an off-the-shelf
classical planner, using procedural DCK as callable procedures, can compute
generalized plans in a wide range of domains including non-trivial ones, such
as sorting variable-size lists or DFS traversal of binary trees with variable
size.
