We present a framework for encoding planning problems in logic programs with negation as failure, having computational e ciency as our major consideration. In order to accomplish our goal, we bring together ideas from logic programming and the planning systems graphplan and satplan. We discuss di erent representations of planning problems in logic programs, point out issues related to their performance, and show ways to exploit the structure of the domains in these representations. For our experimentation we use an existing implementation of the stable models semantics called smodels. It turns out that for careful and compact encodings, the performance of the method across a number of di erent domains, is comparable to that of planners like graphplan and satplan.