Warren'ın Soyut Makinesi

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 .

Talimat seti

WAM komut kümesi talimatlarının sekiz türlerinden oluşmaktadır.

Talimatları koy

Talimatları Alın

Talimatlar Seti

Birleştirme talimatları

Kontrol Talimatları

Seçim talimatları

Dizin ifadeleri

Kesme talimatları

Bu talimatlar, prolog kesintisinin (yüklem! / 0) yönetimine izin verir .

Bellek yapısı

Bellek WAM makinesinin (bellek altından) beş bölüme ayrılır:

Örnekler

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))

Dış bağlantılar