# La machine virtuelle à pile. Une machine pédagogique pour donner une idée de ce qu'est l'assembleur. Dans le cadre d'un cours de compilation, par exemple en L3 informatique, on peut demander aux étudiants de coder un compilateur qui va transcrire un langage de haut niveau similaire à du python (sans objets et avec quelques types simples entiers, flottants, tableaux) vers du code MVàP. ## Contenu du répertoire. * add.mvap Un exemple simple de programme * 3n+2.mvap Un exemple moins simple de programme * test.mvap Un exemple avec appel de fonction * MVaP.jar Une archive java qui propose 2 exécutables MVaPAssembler (assemble en un binaire) CBaP (interprète le binaire). * antlr-4.5.2-complete.jar Une archive java contenant de nombreux binaires permettant d'écrire des compilateurs sur lequel le code de la MVàP s'appuit. ## Pour utiliser la MVàP Il faut avoir java d'installé sur sa machine (c'est le cas si vous passez par proxmox des machines de l'IUT). ** Pour exécuter du code mvap, il faut : 1- Assembler : $ java -cp antlr-4.5.2-complete.jar:MVaP.jar MVaPAssembler add.mvap ou avec des traces (option -d) : $ java -cp antlr-4.5.2-complete.jar:MVaP.jar MVaPAssembler -d add.mvap ce qui produit le fichier add.mvap.cbap Le fichier .cbap (code binaire à pile) est du binaire que la machine peut exécuter. 2- Exécuter : $ java -jar MVaP.jar add.mvap.cbap ou pour mieux comprendre avec des traces : $ java -jar MVaP.jar -d add.mvap.cbap