projet de compilation : minijaja 1. 2 projet de compilation manuel vacelet, jean pierre caurier,...
TRANSCRIPT
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 ?