Groupe IHM Isabelle BONDOUX Cédric CASTAGNE Samy FOUILLEUX

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Rappels C.
Développement logiciel sur micro-contrôleurs PIC en C
Formation C débutant. Notion de compilation source.c executable Phase de compilation Fichier de texte brut, inexploitable directement par la machine Fichier.
Enseignants responsables: P. Leray & N. Malandain
Projet de Base de Données Groupe Moteur encadré par Mr MAINGUENAUD KikiTeam – ASI3 – 19 / 06 / 2002 Soizic Geslin Minh Le Hoai Samy Fouilleux Maxime Chambreuil.
UV Libre Calculatrice Scientifique
Analyse syntaxique (intro)
C.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Structures et unions types énumérés Qu'est-ce qu'une structure
Introduction : Compilation et Traduction
Fonctions Dans un programme : certaines opérations (ou séquences d'opérations) peuvent se répéter plusieurs fois : affichage de tableau, saisie, ou même.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Introduction : Compilation et Traduction
Analyse lexicale Généralités Expressions rationnelles Automates finis
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
TRAITEMENT DE STRUCTURES
Particularités des calculs
Un mini-compilateur Introduction à la syntaxe
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Un langage de programmation hybride
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Chapitre 3 Syntaxe et sémantique.
LANGAGE C LP A2I IUT St DIE
Procédures et fonctions
La librairie assert.h.
L’essentiel du langage C
Structures des données
2.1 - Historique Chapitre 2 : Introduction au langage C++
B.Shishedjiev - Entrée/sortie1 Entrée-sortie simple Faire le programme d’écouter et parler.
Programmation Système et Réseau (sous Linux)
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Chapitre II Analyse Lexical.
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Argc et argv Utilisation des paramètres de la ligne de commande.
Un survol du language C.
Labo 4 : Les structures et les entrées et sorties
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Programmation Système et Réseau
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les types composés Les enregistrements.
Les surcharges d'opérateurs
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Conception de Programmes - IUT de Paris - 1ère année Cours 2 – Références et passage de paramètres Les Références –Introduction aux références.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Introduction à la compilation
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

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

Déroulement Notre rôle et notre conception de l’IHM Lexèmes fixés et génériques La grammaire Le Lex Le Yacc UV d’Algorithmique - ASI3 - Année 2001 / 2002

Notre rôle et notre conception de l’IHM Ce que rentre l’utilisateur Ce que nous en faisons Ce que nous retournerons, un jour…avant le mois de juillet UV d’Algorithmique - ASI3 - Année 2001 / 2002

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 d’Algorithmique - ASI3 - Année 2001 / 2002

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 d’Algorithmique - ASI3 - Année 2001 / 2002

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

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 d’une expression reconnue UV d’Algorithmique - ASI3 - Année 2001 / 2002

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

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

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

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 d’Algorithmique - ASI3 - Année 2001 / 2002

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 d’Algorithmique - ASI3 - Année 2001 / 2002

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, l’IHM Organisation du travail en groupe Motivés pour l’UV Libre ??? UV d’Algorithmique - ASI3 - Année 2001 / 2002