Many researchers in the area of logic programming have recognized the limits of logic languages such as Prolog and suggested a meta level approach as an alternative. Some of the main drawbacks cited are the control strategy, the presence of a single database, and the ad hoc extensions to the base logic programming paradigm to allow the dynamic modification of the database. The MetaProlog language, which includes Prolog and some of its metalanguage, deals with some of these problems. In this paper, the design and implementation of MetaProlog are described and the changes to the Warren Abstract Machine (WAM) on which it is based are detailed. Familiarity with the WAM is assumed.
Bacha, Hamid, "MetaProlog Design and Implementation" (1988). Electrical Engineering and Computer Science Technical Reports. Paper 181.