Projet de compilation : MiniJaja 1. 2 Projet de Compilation Manuel VACELET, Jean Pierre CAURIER,...

Post on 04-Apr-2015

133 views 5 download

Transcript of Projet de compilation : MiniJaja 1. 2 Projet de Compilation Manuel VACELET, Jean Pierre CAURIER,...

1

Projet de compilation : MiniJaja

2

Projet de Compilation

Manuel VACELET, Jean Pierre CAURIER, Gaël COLLE,Lionel DROZ-BARTHOLET, Emmanuel

JEANVOINE,Matthias MEUSBURGER, Yannick PAGE, Benoît RICHE.

Responsable de projet : Monsieur Jacques Julliand

3

Projet de compilation : MiniJaja

Introduction

• Présentation du sujet

• Les objectifs

• Les modules

4

Projet de compilation : MiniJaja

Plan

Introduction

Points de choix

Gestion de projet

Conclusion

Démonstration

5

Projet de compilation : MiniJaja

Etats

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

IHM et Interfaçage : « Modèle-Vue-Contrôleur »

Interfaçage : partie « Modèle » découpage en états

Avantages : Interfaçage séparé de l'IHM Code source plus maîtrisable, plus

propre, plus évolutif

6

Projet de compilation : MiniJaja

Etats

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

Les états : ETAT_DEPART ETAT_COMPILATION ETAT_PARSING_OK ETAT_INTERPRETATION_JJC ETAT_INTERPRETATION_MJJ ETAT_INTERPRETATION_MJJ_PTS_ARRET ETAT_REDEMARRE_INTERPRETATION_JJC ETAT_REDEMARRE_INTERPRETATION_MJJ

7

Projet de compilation : MiniJaja

Etats

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

Etatcourant

Changementd’état

Traitements

Nouvelétat

Demande de l’IHM

Changementpossible

Changementimpossible

8

Projet de compilation : MiniJaja

Le tas - Présentation

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

Gestion des tableaux Trois structures

Tas Espaces libres Espaces occupés

Garbage-collector Élimine les trous Utilise les espaces libres

9

Projet de compilation : MiniJaja

Le tas - Fonctionnement

Insertion d’un tableau Recherche du meilleur espace libre Affectation des espaces occupés Modification des espaces libres

Suppression d’un tableau Modification des espaces libres Affectation des espaces libres

Accès aux tableaux Utilisation des espaces occupés

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

10

Projet de compilation : MiniJaja

Le tas - Fonctionnement

Garbage-collector Parcours des espaces libres Permutations des tableaux Obtention d’un unique espace libre

à la fin du tas

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

11

Projet de compilation : MiniJaja

Choix d’implantation

Première version basique Choix techniques : liste chaînée Avantages : mise en place simple Inconvénients : accès à un quadruplet

Deuxième version optimisée Choix techniques : table de hachage et

liste chaînée Avantages : accès optimal Inconvénients : plus fort besoin de test

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

12

Projet de compilation : MiniJaja

Schéma de fonctionnement

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

13

Projet de compilation : MiniJaja

Gestion des erreurs

Erreur interne -> Exceptions levées Pile vide Swap incorrect Déclaration incorrecte

Erreur utilisateur -> mailbox Pile pleine Tas plein (via exception du tas) Accès hors limites (via exception du tas)

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

14

Projet de compilation : MiniJaja

Asa

Adaptation de la grammaire pour la rendre LL(1)

Génération de l'analyseur via JJTree et JavaCC

Modification des noeuds pour indiquer les breakpoints et les n° de ligne

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

15

Projet de compilation : MiniJaja

Contrôle de type

« Outils » utilisés Visiteurs pour parcourir l ’ASA Vectors Java pour la table des

symboles

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

16

Projet de compilation : MiniJaja

Contrôle de type

Choix techniques L ’ASA est parcouru une seule fois Chaque noeud renvoie son type Modification des identificateurs

pendant le parcours

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

17

Projet de compilation : MiniJaja

Bilan technique

Besoins fonctionnels réalisés Analyse syntaxique Interprétation Minijaja et Jajacode Compilation et affichage Affichage simultané des états

mémoires pour l ’interprétation Minijaja et Jajacode

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

18

Projet de compilation : MiniJaja

Bilan technique

Besoins non fonctionnels réalisés Utilisation des règles du cours

(compilation, interprétation, analyse) Messages d’erreur (ASA, contrôle de

type) État mémoire avec une table de

hachage et un garbage-collector fonctionnalités supplémentaires

breakpoints

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

19

Projet de compilation : MiniJaja

Outils Utilisés

WinCVS

Liste de diffusion

Makefile

JavaDoc

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

20

Projet de compilation : MiniJaja

Méthodes

Communication Rapports de bogues Tests & Recette

Tests unitaires Tests d'intégration Recette

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

21

Projet de compilation : MiniJaja

Bilan

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

Les plus Interfaçage

Les moins Documentation

Pour mieux faire Documentation projet

22

Projet de compilation : MiniJaja

Conclusion

IntroductionPoints de choix

ÉtatsTas - gcPile d’exécutionAsaContrôle de typeBilan technique

Gestion de projetOutils utilisésMéthodesBilan

ConclusionDémonstration

Travail en groupe Gestion de projet Acquisition de

connaissances

Ouverture vers le monde professionnel

23

Projet de compilation : MiniJaja

Démonstration

24

Projet de compilation : MiniJaja

Des Questions ?