The causal logic is shown to provide a natural logical basis for logic programming. More exactly, it is argued that any logic program can be seen as a causal theory satisfying the Negation As Default principle (alias Closed World Assumption). Moreover, unlike well-known translations of logic programs to other nonmonotonic formalisms, the established correspondence between logic programs and causal theories is bidirectional in the sense that, for an appropriate causal logic, any causal theory is reducible to a logic program. The correspondence is shown to hold for logic programs of a most general kind involving disjunctions and default negations in heads of the rules. It is shown also to be adequate for a broad range of logic programming semantics, including stable, supported and partial stable models. The results strongly suggest that the causal logic can serve as a (long missing) logic of logic programming.