  To appear in Theory and Practice of Logic Programming (TPLP). Several Prolog
interpreters are based on the Warren Abstract Machine (WAM), an elegant model
to compile Prolog programs. In order to improve the performance several
strategies have been proposed, such as: optimize the selection of clauses,
specialize the unification, global analysis, native code generation and
tabling. This paper proposes a different strategy to implement an efficient
Prolog System, the creation of specialized emulators on the fly. The proposed
strategy was implemented and evaluated at YAP Prolog System, and the
experimental evaluation showed interesting results.
