Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.



Documents pareils
Rappels d architecture

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Le langage C. Séance n 4

Guide d installation CLX.PayMaker Office (3PC)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Initiation à LabView : Les exemples d applications :

Utilisation du client de messagerie Thunderbird

Tablette Pegasus PC Notes. Code : Conrad sur INTERNET Version 02/ Conditions du système.

Eclipse atelier Java

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Compilation (INF 564)

Boot Camp Guide d installation et de configuration

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Direction générale statistique et information économique. Manuel d usage : l application web pour l enquête sur la structure des entreprises

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Manuel d utilisation de l outil collaboratif

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Interface PC Vivago Ultra. Pro. Guide d'utilisation

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

TP, première séquence d exercices.

Introduction à Eclipse

VAMT 3. Activation de produits Microsoft

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Traduction des Langages : Le Compilateur Micro Java

Configuration de Virtual Server 2005 R2

Guide d usage pour Word 2007

Jeu d instructions NIOS II

Introduction CONTENU EN LIGNE

ENVOI EN NOMBRE DE MESSAGES AUDIO

Optimiser pour les appareils mobiles

Créer le schéma relationnel d une base de données ACCESS

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

Initiation à Excel. Frédéric Gava (MCF)

Machines virtuelles Cours 1 : Introduction

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

Conception de circuits numériques et architecture des ordinateurs

AIDE TECHNIQUE POUR L UTILISATION DE GÉODEQ III VUES D ENSEMBLE DU QUÉBEC

Dans cette Unité, nous allons examiner

ASR1 TD7 : Un microprocesseur RISC 16 bits

SQL Server Installation Center et SQL Server Management Studio

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Introduction. Exigences système. Exigences matérielles

Guide d installation de MySQL

Programmation Web. Madalina Croitoru IUT Montpellier

F.A.Q 1.0 Designer 3D Atex System

FAIRE SES COMPTES AVEC GRISBI

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Créer un premier document avec Pages

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Algorithmique et Programmation, IMA

IV- Comment fonctionne un ordinateur?

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Manuel d utilisation du logiciel Signexpert Paraph

Guide informatique AUDIT EVALUATION DE LA PRATIQUE DE L ANTIBIOPROPHYLAXIE EN MATERNITE

clé Internet 3g+ Guide d installation

Utilisation du plugin AppliDis SLB (Smart Load Balancing)

V 8.2. Vous allez utiliser les services en ligne de la plate forme de dématérialisation de la Salle des Marchés achatpublic.com.

TP1. Outils Java Eléments de correction

CAPTURE DES PROFESSIONNELS

INSTALLATION DE CEGID BUSINESS VERSION 2008 Edition 4 (CD-Rom du 16/07/2009) SUR UN POSTE AUTONOME SOMMAIRE

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

Chapitre I Notions de base et outils de travail

Pré-requis de création de bureaux AppliDis VDI

0.1 Mail & News : Thunderbird

Environnements de développement (intégrés)

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Chapitre 3 : outil «Documents»

EXCEL TUTORIEL 2012/2013

Cahier n o 7. Mon ordinateur. Gestion et Entretien de l ordinateur

Table des matières ENVIRONNEMENT

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

À propos de votre liseuse... 5

Infolettre #6: SkyDrive

Connexion à distance. Pour configurer les automates Beckhoff via un PC de programmation VERSION : 1.0 / PH

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Le portfolio numérique Tutoriel de prise en main

Instructions relatives à l installation et à la suppression des pilotes d imprimante PostScript et PCL sous Windows, version 8

Guide d installation du serveur vidéo

Formation. Module WEB 4.1. Support de cours

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Manuel du logiciel PrestaTest.

Utilisation d une tablette numérique

Atelier Le gestionnaire de fichier

Manuel d utilisation du web mail Zimbra 7.1

Séquencer une application

Un ordinateur, c est quoi?

Transcription:

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 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 Bontemps, 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 évidemment 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 les 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 Max SP EP La pile a deux fonctions : 1

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 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 habituellement 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 programme 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, recharger 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 respectivement (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 i q: Ajoute au sommet de la pile la valeur entière stockée à l adresse q. ldo b q: Même chose avec une valeur booléenne. ldc i q: Ajoute au sommet de la pile la constante entière q. 2

FIGURE 1 L interface de GPMachine. 3

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 i q: 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 < q avant l appel, des cellules vides auront été rajoutées au sommet. Si la pile avait une taille > 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 b 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 les 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 b. or b : Même chose avec a 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 a. leq i : Même chose avec b a. les i : Même chose avec b < a. grt i : Même chose avec b > 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. : 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 caractères C est un commentaire et sera ignoré. 4

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 : ldc i 5 ldc i 4 add i mul i prin stp puis sauvegarder le fichier et l ouvrir dans GPMachine. Ce programme calcule et affiche la valeur de (5 + 4) 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 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 à 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 sro i 0 sro i 1 ; on compare une valeur lue au clavier à 5 ldc i 5 geq i fjp condfausse ; dans le cas où la valeur est plus petite ou égale à 5 (le test est vrai) ; on affiche le contenu de la variable à l adresse 1 ldo i 1 prin ujp fin 5

; 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 6