Warren Özet Makinesi ( soyut Warren Makinası ) bir olduğu sanal makine dili uygulanması için Prolog . Bu makine, bir hafızanın yanı sıra özel bir komut setinden oluşur . Bu tarafından tanımlandı David HD Warren içinde 1983 . Prolog için klasik uygulamalardan biridir .
WAM komut kümesi talimatlarının sekiz türlerinden oluşmaktadır.
Bu talimatlar, prolog kesintisinin (yüklem! / 0) yönetimine izin verir .
Bellek WAM makinesinin (bellek altından) beş bölüme ayrılır:
Aşağıdaki prolog programlarından biri:
fille(anne). fille(claire). garcon(B) :- \+ fille(B).WAM'a dayalı bir uygulama ile, ürün kodu şu biçimde olacaktır (WAM mini-assembler'da):
predicate(fille/1): switch_on_term(2,1,fail, fail,fail), label(1): switch_on_atom([(anne,3),(claire,5)]) label(2): try_me_else(4) label(3): get_atom(anne,0) proceed label(4): trust_me_else_fail label(5): get_atom(claire,0) proceed predicate(garcon/1): get_variable(x(1),0) put_structure(fille/1,0) unify_local_value(x(1)) execute((\+)/1))