Warren's Abstract Machine
Un article de Wikipédia, l'encyclopédie libre.
![]() |
Cet article fait partie de la série Langages de programmation |
Langages à objets |
4D - C++ - C# - D Delphi - Eiffel - Groovy Java - Python - Ruby Simula - Smalltalk Visual Basic - WinDev |
Langages impératifs |
APL - ASP - Assembleur BASIC - C - Cobol Forth - Fortran - Limbo Logo - Pascal - Perl - PHP |
Langages fonctionnels |
Haskell - ML/OCaml Lisp/Common Lisp Scheme XSLT |
Langages déclaratifs |
Clips - Prolog |
Langages concurrents |
Ada 95 - Erlang |
Langage de balisage |
HTML - SGML - XML S-expressions |
Voir aussi |
Conception - Codage Tests - Optimisations |
![]() |
Cet article est une ébauche à compléter concernant l'informatique, vous pouvez partager vos connaissances en le modifiant. |
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.
[modifier] Jeu d'instructions
Le jeu d'instructions de la WAM est composé de huit types d'instructions.
[modifier] Instructions Put

[modifier] Instructions Get

[modifier] Instructions Set

[modifier] Instructions d'unification

[modifier] Instructions de contrôle

[modifier] Instructions de choix

[modifier] Instructions d'index

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

[modifier] 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).
[modifier] Liens externes
![]() |
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique. |