La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Groupe IHM Isabelle BONDOUX Cédric CASTAGNE Samy FOUILLEUX Damien BARON Maxime CHAMBREUIL UV dAlgorithmique - ASI3 - Année 2001 / 2002.

Présentations similaires


Présentation au sujet: "Groupe IHM Isabelle BONDOUX Cédric CASTAGNE Samy FOUILLEUX Damien BARON Maxime CHAMBREUIL UV dAlgorithmique - ASI3 - Année 2001 / 2002."— Transcription de la présentation:

1 Groupe IHM Isabelle BONDOUX Cédric CASTAGNE Samy FOUILLEUX Damien BARON Maxime CHAMBREUIL UV dAlgorithmique - ASI3 - Année 2001 / 2002

2 Déroulement Notre rôle et notre conception de lIHM Lexèmes fixés et génériques La grammaire Le Lex Le Yacc UV dAlgorithmique - ASI3 - Année 2001 / 2002

3 Notre rôle et notre conception de lIHM Ce que rentre lutilisateur Ce que nous en faisons Ce que nous retournerons, un jour…avant le mois de juillet UV dAlgorithmique - ASI3 - Année 2001 / 2002

4 Lexèmes fixés et génériques Def: ensemble de caractères formant une unité sémantique Opérateurs de base : =,+,-,*,/,div Opérateurs sur les entiers : !, A, C Chiffre: 0, 1, …, 9 NbeEntier: chiffre (chiffre)* UV dAlgorithmique - ASI3 - Année 2001 / 2002

5 La grammaire 1/2 Arbre de priorité Exemple: Facteur Terme | Facteur OpMaj Facteur | (Expr1) Terme NbeReel | NbeEntier | Constante | Matrice OpMaj * | / | div | mod | ^ |. Constante PI | e | PHI | EM UV dAlgorithmique - ASI3 - Année 2001 / 2002

6 La grammaire 2 / 2 Associativité Exemple : 4 * 3 * 2 = ( 4 * 3 ) * 2 à gauche 4 * 3 * 2 = 4 * ( 3 * 2 ) à droite UV dAlgorithmique - ASI3 - Année 2001 / 2002

7 Le Lex 1 / 2 Analyseur lexical = découpage de la chaîne de caractères Il reconnaît le type des expressions saisies Il envoie au Yacc la valeur et le type dune expression reconnue UV dAlgorithmique - ASI3 - Année 2001 / 2002

8 Le Lex 2 / 2 %{#include %} chiffre [0-9] % « div »{return DIV;} {chiffre}+{return creerEntierInfiniAPartirDe(yytext);} [ \t\n]{yyerror (« Caractère inconnu »);} % main() {yylex();} UV dAlgorithmique - ASI3 - Année 2001 / 2002

9 Le Yacc 1 / 3 Analyseur grammatical Il appelle les fonctions de calcul Il affiche le résultat et les erreurs du programme UV dAlgorithmique - ASI3 - Année 2001 / 2002

10 Le Yacc 2 / 3 %{#include « Matrice.h » typedef struct {…} typeRetourneParDollar; %} %union{ EntierInfini entier;}; %token NbeEntier %left =, +,- %type S Expr1 … Facteur Terme %start Program % UV dAlgorithmique - ASI3 - Année 2001 / 2002

11 Le Yacc 3 / 3 % Program:S\n{afficher($1);} S:Variable=Expr1{$$=affecter($1,$3);} | Expr1{$$=$1;} ; % void yyerror(char* s) {printf(stdout, »%s\n », s);} int main (void) {yyparse(); return 0;} UV dAlgorithmique - ASI3 - Année 2001 / 2002

12 La Compilation bison –d virgule.y produit les fichiers virgule.tab.c et virgule.tab.h flex virgule.lex produit le fichier lex.yy.c gcc lex.yy.c virgule.tab.c UV dAlgorithmique - ASI3 - Année 2001 / 2002

13 Conclusion Les fichiers lex et yacc compilent !!! Reste à faire : récupérer les.o et débuguer Nous avons découvert : La compilation, Lex et Yacc, lIHM Organisation du travail en groupe Motivés pour lUV Libre ??? UV dAlgorithmique - ASI3 - Année 2001 / 2002


Télécharger ppt "Groupe IHM Isabelle BONDOUX Cédric CASTAGNE Samy FOUILLEUX Damien BARON Maxime CHAMBREUIL UV dAlgorithmique - ASI3 - Année 2001 / 2002."

Présentations similaires


Annonces Google