Introduction aux langages formels

Slides:



Advertisements
Présentations similaires
IFT313 – Introduction aux langages formels Eric Beaudry Département d’informatique Université de Sherbrooke Laboratoire sur JFLEX Été 2010.
Advertisements

Pour comprendre comment la créativité et l’innovation sont les moteurs de l’évolution technologique La commande par la pensée ? La commande par le mouvement.
Subversion. 2 Subversion : Pour Quoi Faire ? Problèmes de la gestion du code dans un projet – La durée de vie du projet peut être longue : besoin de gérer.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
1 Java Avancé Eclipse pour les null Rémi Forax
La question sur corpus.
Comment utiliser le débogueur de Visual Studio /8/2015 INF145 1 Créé par Julien Galarneau Allaire, révisé par Eric Thé S.E.G.
Utiliser le nouveau site internet du lycée niort/
NOTIONS INFORMATIQUES : RAPPEL
Traitement de texte : notions avancées
JAVA.
Table des matières, citation, mise en page
I- ANALYSE DU BESOIN / Plan
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Ecriture collaborative d’une dissertation en classe
Réaliser un Diaporama ML PATINEC – 03/2017
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
1. IDENTIFIER LES BESOINS DES ÉLÈVES.
L’Instruction de Test Alternatif
IFT 615 – Intelligence artificielle Recherche heuristique
JAVA et POO : Notion d'héritage
Javadoc et débogueur Semaine 03 Version A16.
Activités algorithmiques
HISTORIQUE DES MISES A JOUR
Premiers pas sous Windows XP
Semaine #4 INF130 par Frédérick Henri.
Programmation en C++ Classes
Concepts de base de la programmation
Présentation des EJB Enterprise Java Beans.
Création Et Modification De La Structure De La Base De Données
IFT313 IFT313 Introduction aux langages formels Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Cours N°10: Algorithmiques Tableaux - Matrices
PROGRAMMATION ET ENSEIGNEMENT
Package R Markdown: Un outil pour générer des pages html avec R Studio
Gestion des fichiers Niv2
Introduction à Internet
CountrySTAT / FENIX Aperçu globale de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Diagrammes UML 420-KE2-LG.
La mise en activité des élèves
Tâche à réaliser pour les équipes :
APEL ST BRUNO INFORMATION PARENTS CORRESPONDANTS 20 septembre 2018.
IFT313 Introduction aux langages formels
ANNEXE 1 Survol et prédictions
Université de la méditerranée
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
Langages de programmation TP11
IFT313 Introduction aux langages formels
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
FORMATION POWERPOINT 2007/2010
BIO1130 LAB 4 MICROÉVOLUTION.
Chapitre 3: Les scriptes
JDepend - Analyse de la qualité du code Java -
02/02/2019Module Compilation1. Introduction:  petite historique sur flex/lex  définitions de l’outil flex/lex  l’objectif de l’outil flex/lex  Versions.
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels
1°) Un nombre y est-il associé à 3, et si oui lequel ?
IFT313 Introduction aux langages formels
PRO1026 Programmation et enseignement
IFT313 Introduction aux langages formels
Sommaire : Les capteurs de force. Les capteurs à jauges de contraintes
Programmation Scratch
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Formation « Utiliser un site Internet école »
INTERFACE ET POLYMORPHISME
Présenté par Viviane Lévesque
03/05/2019 L’organisation et la gestion des fichiers sur le site collaboratif Martine Cochet 2SitePleiadeGestionFichiers.
Retour sur les interfaces
Principales stratégies de compréhension en lecture
Transcription de la présentation:

Introduction aux langages formels Francis Bisson Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313 Lab 2 :JFLex

Tâches Installer JFlex Se familiariser avec JFlex en essayant quelques exemples IFT313 © Froduald Kabanza 2 2

Installer JFlex Télécharger JFlex à partir du site http://planiart.usherbrooke.ca/kabanza/cours/ift313/Tools/jflex-1.4.3.rar Décompresser l’archive dans un répertoire à votre choix (exemple: ift313/outils) Suivre les instructions dans doc/manual.html Sous Windows, ne pas oublier d’éditer bin/jflex.bat pour Tout mettre en commentaire sauf les lignes pour set JFLEX_HOME … // Doit pointer le chemin de JLFEX Java –xmx128 … IFT313 © Froduald Kabanza 3 3

Télécharger les exemples Au site du cours (planiart.usherbrooke.ca/kabanza/cours/ift313), suivre le lien pour Lab2 et télécharger Lab2.tar.gz Décompressez le fichier. Vous devriez avoir: jflex.ppt arithmetique/ calc calcStandalone nameExtractor IFT313 © Froduald Kabanza 4 4

Exemple 1 Allez dans le répertoire calcStandalone Générez l’analyseur lexical jflex scanner.flex Ceci va produire le fichier Scanner.java. Compiler Testez l’analyseur en exécutant la classe Scanner et en donnant comme entrée un fichier contenant une expression arithmétique (voir arithmetique/input1.txt). java –cp <classpath> exemple1.Scanner “(3+4)” L’analyseur va reconnaître les différents tokens et les afficher. IFT313 © Froduald Kabanza 5 5

Test de JFlex (3) Avec l'expression : ( 3 + 5 * 2 ) Vous devriez obtenir : (TOKEN TEXTE ( TYPE 7 START 0 END 1) (TOKEN TEXTE 3 TYPE 9 START 2 END 3) (TOKEN TEXTE + TYPE 1 START 4 END 5) (TOKEN TEXTE 5 TYPE 9 START 6 END 7) (TOKEN TEXTE * TYPE 3 START 8 END 9) (TOKEN TEXTE 2 TYPE 9 START 10 END 11) (TOKEN TEXTE ) TYPE 8 START 12 END 13) END! IFT313 © Froduald Kabanza 6 6

Exemple 2 Dans l’exemple précédent, l’analyseur est doté d’une méthode main par la directive %standalone. Dans l’exemple suivant, l’analyseur n’a pas de méthode main. On invoque sa méthode next_token à partir d’une autre classe. Allez dans le répertoire arithmetique Générez l’analyseur lexical jflex scanner.flex Ceci va produire le fichier Yylex.java. Compiler Testez l’analyseur en exécutant la classe Runscanner et en donnant comme entrée une expression arithmétique (par exemple: (10+30)). java –cp <classpath> exemple2.Runscanner (10+ 30) Runscanner va reconnaître les différents tokens et les afficher. IFT313 © Froduald Kabanza 7 7

1. Regarder à l’intérieur des fichiers: Explorer 1. Regarder à l’intérieur des fichiers: scanner.flex, Runscanner.java, Utility.java, Yytoken.java 2. Essayer de faire des modifications et de voir le résultat 3. Essayer d’autres exemples IFT313 © Froduald Kabanza 8 8

Quoi faire après ? 1. Regarder à l’intérieur des fichiers générés Reconnaître l’automate généré Comprendre comment l’analyseur lexical est appelé par Runscanner Exercice: modifier arithmetique/scanner.jflex pour qu’il génère un fichier source .java autonome (sans avoir besoin de Runscanner.java) Indice: copier le code du main() au bon endroit dans le fichier .jflex IFT313 © Froduald Kabanza 9 9

Quoi faire après ? 2. Lire la documentation de JFlex 3. Se familiariser avec les exemples inclus dans JFlex 4. Essayer de modifier quelques uns des exemples 5. Implémenter une table de symboles avec un objet Hashtable 6. Spécifier un scanner qui additionne tous les nombres d’un fichiers 7. Commencer le devoir #2 IFT313 © Froduald Kabanza 10 10