Warren Abstract Machine

Warren Abstract Machine

Warren's Abstract Machine

La Warren's Abstract Machine (Machine abstraite de Warren) est une machine virtuelle permettant d'implémenter le langage Prolog. Cette machine est composée d'un jeu d'instructions spécial ainsi que d'une mémoire. Elle a été définie par David H. D. Warren en 1983. Elle est une des implémentations classiques pour prolog.

Sommaire

Jeu d'instructions

Le jeu d'instructions de la WAM est composé de huit types d'instructions.

Instructions Put

Instructions Get

Instructions Set

Instructions d'unification

Instructions de contrôle

Instructions de choix

Instructions d'index

Instructions de coupure

Ces instructions permettent la gestion de la coupure de prolog (prédicat !/0).

Structure de la mémoire

La mémoire de la machine WAM est séparée en cinq parties (depuis le bas de la mémoire) :

  • Un premier espace contient le code exécutable.
  • Un deuxième espace contient un tas (heap) grandissant en direction du haut de la mémoire.
  • Un troisième espace contient une pile (stack) grandissant en direction du haut de la mémoire. Cette pile contient en particulier les points de choix et les environnements.
  • Un quatrième espace contient le trail grandissant en direction du haut de la mémoire.
  • Un cinquième espace contient le pdl grandissant en direction du bas de la mémoire (depuis la plus haute adresse de la mémoire de la machine).

Exemples

Soit le programme prolog suivant:

fille(anne).
fille(clair).

garcon(B) :- \+ fille(B).

Avec une implémentation basée sur la WAM, le code produit serait de la forme (en mini-assembleur WAM):

predicate(fille/1):
   switch_on_term(2,1,fail,fail,fail),
label(1): switch_on_atom([(anne,3),(clair,5)])
label(2): try_me_else(4)
label(3): get_atom(anne,0)
          proceed
label(4): trust_me_else_fail
label(5): get_atom(clair,0)
          proceed

predicate(garcon/1):
   get_variable(x(1),0)
   put_structure(fille/1,0)
   unify_local_value(x(1))
   execute((\+)/1))

Liens externes

  • Portail de la programmation informatique Portail de la programmation informatique
Ce document provient de « Warren%27s Abstract Machine ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Warren Abstract Machine de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Warren abstract machine — In 1983, David H. D. Warren designed an abstract machine for the execution of Prolog consisting of a memory architecture and an instruction set [War83] . This design became known as the Warren Abstract Machine (WAM) and has become the de facto… …   Wikipedia

  • Abstract machine — An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in Automata theory. Abstraction of computing processes is used in both the computer science and computer engineering… …   Wikipedia

  • Warren's Abstract Machine — Warren’s Abstract Machine (WAM) bezeichnet in der Informatik einen 1983 von David H. D. Warren spezifizierten idealen Prozessor, dessen Maschinensprache als Zielsprache für Prolog Übersetzer oder Interpreter dient. Man spricht auch von einer… …   Deutsch Wikipedia

  • Warren’s Abstract Machine — (WAM) bezeichnet in der Informatik einen 1983 von David H. D. Warren spezifizierten idealen Prozessor, dessen Maschinensprache als Zielsprache für Prolog Übersetzer oder Interpreter dient. Man spricht auch von einer virtuellen Maschine, da es den …   Deutsch Wikipedia

  • Warren's Abstract Machine — La Warren s Abstract Machine (Machine abstraite de Warren) est une machine virtuelle permettant d implémenter le langage Prolog. Cette machine est composée d un jeu d instructions spécial ainsi que d une mémoire. Elle a été définie par David H. D …   Wikipédia en Français

  • Warren — may refer to:Animal husbandry and relatedForest law*Warren (free) ( Free warren ), a type of hunting franchise under the Anglo Norman Forest law Animal husbandry*Warren (domestic), a rabbitry or fixed establishment of cuniculture *The domestic… …   Wikipedia

  • Machine abstraite de Warren — Warren s Abstract Machine La Warren s Abstract Machine (Machine abstraite de Warren) est une machine virtuelle permettant d implémenter le langage Prolog. Cette machine est composée d un jeu d instructions spécial ainsi que d une mémoire. Elle a… …   Wikipédia en Français

  • Virtual machine — A virtual machine (VM) is a completely isolated guest operating system installation within a normal host operating system .[1] Modern virtual machines are implemented with either software emulation or hardware virtualization or (in the most… …   Wikipedia

  • David H. D. Warren — is a computer scientist (Ph.D. artificial intelligence, University of Edinburgh 1977). In the 1970s and 1980s he worked primarily on logic programming and in particular the programming language Prolog. Warren wrote the first compiler for Prolog.… …   Wikipedia

  • David H. D. Warren — Pour les articles homonymes, voir Warren. David H.D. Warren est un spécialiste de l intelligence artificielle. Il a écrit le premier compilateur pour le langage Prolog. On lui doit la Warren s Abstract Machine qui est une machine pour l exécution …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”