Home

Mode d`emploi pour la P-machine utilisée lors des TPs et des projets

image

Contents

1. dans le cas o la valeur est plus petite ou gale 5 le test est vrai on affiche le contenu de la variable a 1 adresse 1 ldo il prin ujp fin dans le cas o la valeur est plus grande que 5 le test est faux on affiche le contenu de la variable l adresse 0 define condfausse ldo i 0 prin define fin stp
2. m moire sur la pile voir instruction ssp On s en sert pour r aliser les op rations la place des registres de travail qu on trouve habi tuellement sur les processeurs modernes Par exemple pour r aliser l addition de deux valeurs disons 5 et 6 on pushera d abord ces deux valeurs sur la pile Ensuite on appelera l instruction d addition qui enl vera ces deux valeurs du sommet de la pile r alisera la somme et placera le r sultat au sommet de la pile Le tas est utilis pour stocker les variables dynamiques Nous ne nous en servirons pas dans le cadre des TPs et du projet 3 Installation GPMachine peut tre t l charg sur http www info fundp ac be gpm Comme il s agit d un programme Java vous aurez galement besoin de Java Virtual Machine de Sun qui impl mente au moins les fonctionnalit s de Java 1 4 les machines virtuelles d autres vendeurs ou les version ant rieures peuvent vous poser des probl mes Elle est disponible sur http java sun com L installation consiste d compresser l archive tar gz Celle ci contient les sources du pro gramme et la version compil e ainsi que deux scripts de lancement run bat pour windows et run sh pour Linux Mac OS X 4 Interface L interface est pr sent e la Fig 1 4 1 Commandes Les boutons dans le haut de l cran permettent respectivement de gauche droite de charger un fichier contenant un programme en P langage recha
3. Mode d emploi pour la P machine utilis e lors des TPs et des projets du cours INFOO10 Th orie des langages et de la compilation S bastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document d crit le fonctionnement du programme GPMachine con u et crit par Yves Bon temps des FUNDP Namur Le P langage que GPMachine est capable d ex cuter est particuli rement adapt aux travaux pratiques et aux projet du cours de Th orie des langages et de la compilation et c est pourquoi nous l avons adopt Le programme GPMachine est insipir de la P Machine d crite dans le livre de Wilhelm et Maurer Cet ouvrage donne une liste d taill e des instructions du P langage ainsi que de leur s mantique cette liste est galement pr sente dans les transparents du cours GPMachine n impl mente pas toutes ces instructions et la s mantique de certaines d entre elles est diff rente de celle qui est donn e dans le livre C est pourquoi nous avons r dig ce mode d emploi Son but n est pas d tre une documentation exhaustive de GPMachine Nous nous bornons d tailler ici les instructions qui sont n cessaires la r alisation du projet Ceci ne vous emp che videm ment pas d utiliser d autres instructions dans votre projet mais souvenez vous bien qu elles ne devraient pas tre n cessaires et que leur effet pourrait tre diff rent de ce qui est d crit dans le livre de r f rence Remarquez que le
4. a iO0 7 ind i prin PRIS 4 Output FIGURE 1 L interface de GPMachine ldc b q M me chose avec une constante bool enne sro i q Stocke la valeur enti re qui est au sommet de la pile dans la case m moire d adresse q puis supprime cette valeur du stack sro iq M me chose avec une valeur bool enne pop Supprime le sommet de la pile ssp q Cette instruction fait pointer le pointeur SP sur la case qui se trouve q positions apr s le d but de la pile Donc apr s l appel la pile aura une taille gale q Si la pile avait une taille lt q avant l appel des cellules vides auront t rajout es au sommet Si la pile avait une taille gt q les cellules surnum raires du sommet auront t d truites Cette instruction n est en g n ral appel e qu une seule fois au d but du programme et sert r server q cases pour stocker les variables statiques du programme Dans ce cas pr cis tant donn que la pile est vide les cases r serv es auront les adresses 0 1 q 1 Op rateurs arithm tiques et logiques div i Soit a la valeur au sommet de la pile et b la valeur juste en dessous ces deux valeurs doivent tre enti res Cette instruction supprime a et b de la pile et place son sommet la valeur b a mul i M me chose avec bx a add i M me chose avec b a sub i M me chose avec b a neg i Remplace le sommet entier de la pile par sa n gation and b Soit a et b l
5. aract res C est un commentaire et sera ignor 6 Exemples d utilisation Pour que GPMachine puisse ex cuter une programme en P langage celui ci doit avoir t introduit dans un fichier texte La premi re chose faire est donc d ouvrir votre diteur de texte pr f r emacs vi notepad etc Exemple 1 Vous pouvez maintenant taper les comandes suivantes Lae i 5 ldc i 4 add i read mul i prin stp puis sauvegarder le fichier et l ouvrir dans GPMachine Ce programme calcule et affiche la valeur de 5 4 x x o x est lu au clavier Pour ce faire il commence par placer les deux valeurs 5 et 4 sur la pile Puis il effectue l addition Les valeurs 5 et 4 disparaissent et sont remplac es par 9 Ensuite l instruction read lit une valeur et la place au sommet de la pile Le produit de 9 et de x est r alis et mis sur la pile gr ce mul i puis il est affich gr ce a prin Essayez d ex cuter le programme pas pas et observez la fa on dont les valeurs des registres ainsi que le contenu de la pile voluent Exemple 2 Les commentaires vous permettront de savoir ce que fait le programme nouveau nous vous recommandons de l ex cuter pas pas pour bien comprendre comment il fonctionne 2 variables statiques ssp 2 on lit deux valeurs qu on stocke dans ces variables read sro i 0 read sro il on compare une valeur lue au clavier 5 Lac 5 read geq i fjp condfausse
6. es deux valeurs n cessairement bool ennes au sommet de la pile Cette instruction supprime a et b de la pile et ajoute son sommet la valeur bool enne correspondant a A b or b M me chose avec a V b not b Remplace la valeur bool enne au sommet de la pile par sa n gation Instructions de comparaison geq i Soit a la valeur au sommet de la pile et b la valeur juste en dessous ces deux valeurs doivent tre enti res Cette instruction supprime a et b de la pile et y place la valeur bool enne correspondant b gt a leq i M me chose avec b lt a les i M me chose avec b lt a grt i M me chose avec b gt a equ i M me chose avec b a neq i M me chose avec b a Instructions de branchement define L Place l tiquette L voir sauts ujp L Il s agit d un saut non conditionnel La prochaine instruction ex cut e sera celle qui suit define L fjp L Il s agit d un saut conditionnel Le sommet de la pile doit tre une valeur bool enne Si cette valeur est faux la prochaine instruction ex cut e sera celle qui suit define L Sinon il s agit de l instruction physiquement suivante dans le programme Instructions d entr es sorties prin Affiche la valeur enti re au sommet de la pile sur la sortie et la supprime de la pile read Lit une valeur enti re sur l entr e et la place au sommet de la pile Autres stp Arr te le programme C La cha ne de c
7. rger le fichier en cours permet de recommencer l ex cution du programme arr ter l ex cution du programme ex cuter le programme jusqu son arr t ex cuter un pas du programme ex cuter n pas du programme o n est entr e au clavier via une bo te de dialogue 4 2 Panneaux La fen tre principale est divis e en cinq panneaux Un groupe de quatre panneaux pr sente respec tivement de gauche droite le contenu de la pile le programme charg la prochaine instruction est en jaune le contenu du tas et les valeurs des registres voir section 2 Le panneau du dessous pr sente la sortie du programme ex cut 5 Instructions Comme mentionn dans l introduction cette liste n est pas exhaustive N namoins vous devriez trouver ici tout ce dont vous avez besoin pour r aliser votre projet Instructions de manipulation de la pile ldo iq Ajoute au sommet de la pile la valeur enti re stock e l adresse q ldo bq M me chose avec une valeur bool enne ldc iq Ajoute au sommet de la pile la constante enti re q GPMachine Users ggeeraer Documents academique langages File Execution Help PCode _ Heap Registers eesb gt gt wel Main program start of instructio define 1 Ida iO 7 Idc i 3 sto i SP Idaid7 y ind i prin lda iO 6 ldc i O sto lda i0 6 EP ind i 200 prin Ida iO 7 Ida iO 7 ind i Ida iO 6 ind i MP add i stoi CE Id
8. s sources de GPMachine sont disponibles ce qui vous permet de vous assurer de la s mantique de chaque instructions celles ci sont d crites dans les classes qui se trouvent dans le r pertoire src instructions 2 Principe de la P machine La P machine poss de une m moire divis e en deux blocs le bloc de donn es et le bloc de code Le bloc de code contient naturellement le programme ex cuter Un registre appel PC contient le num ro de la prochaine instruction ex cuter Le bloc de donn es est divis en deux parties la pile et le tas Il a une taille d not e ici par Max qui par d faut vaut 200 sur la P machine La pile commence l adresse 0 et contient des donn es jusqu l adresse stock e dans le registre SP initialement comme la pile est vide SP contient la valeur 1 Le sommet de la pile est donc la case dont l adresse est stock e dans SP Le tas commence l adresse contenue dans EP et s tend jusqu la fin du bloc de donn es Max Initialement EP vaut Max ce qui signifie que le tas va grandir partir de la fin de la m moire On peut sch matiser cela ainsi Donn es de la pile M moire inutilis e Donn es du tas 0 T T Max La pile a deux fonctions On y stocke les variables statiques dans le bas Ainsi les variables occupent les adresses m moires 0 1 Pour ce faire il faut commencer le programme en se r servant suffisament de

Download Pdf Manuals

image

Related Search

Related Contents

Air Filter Regulator Filtro Riduttore di Pressione  Miele DA 6690 W Obsidian Black 36" Puristic Specification Sheet  Pan-Tilt Unit (E Series) Inertial Stabilization Module  Gato de eje inferior    

Copyright © All rights reserved.
Failed to retrieve file