PALM: a logic programming system on a highly parallel architecture

Since Kowalski (1974) defined the framework for the procedural interpretation of Horn clauses, many models and techniques have been designed for the implementation of logic programming languages. These techniques are mainly concerned with the implementation of logic programming systems on sequential Von Neumann architectures. The major problem of these implementation derives from their low efficiency compared to imperative languages. The main reason for this is that the high level of the logic programming paradigm requires more than a translation to generate the machine code of a logic program. Thus, some overhead is added to bridge the gap between the logic programming level and the machine level. On the other hand, imperative languages are closer than logic languages to the machine level because they embody many concepts of the Von Neumann architecture.