37 lines
1.6 KiB
Plaintext
37 lines
1.6 KiB
Plaintext
|
# 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
|
||
|
|