Dr Andrews here provides a homogeneous treatment of the semantics (operational and logical) of both theoretical and practical logic programming languages. He shows how the rift between theory and practice in logic programming can be bridged. This is achieved by precisely characterizing the way in which 'depth-first' search for solutions to a logical formula - the usual strategy in most practical languages - is incomplete. Languages that perform 'breadth-first' searches reflect more closely the theory underlying logic programming languages. Researchers interested in logic programming or semantics, as well as artificial intelligence search strategies, will want to consult this book as the only source for some essential and new ideas in the area.