Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles

Documents pareils
Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Calculabilité Cours 3 : Problèmes non-calculables.

Le chiffre est le signe, le nombre est la valeur.

Glossaire des nombres

Algèbre binaire et Circuits logiques ( )

Continuité et dérivabilité d une fonction

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Structures algébriques

Fondements de l informatique Logique, modèles, et calculs

MIS 102 Initiation à l Informatique

Chapitre 2. Eléments pour comprendre un énoncé

Limites finies en un point

1 Introduction au codage

Problèmes de Mathématiques Filtres et ultrafiltres

Dérivation : Résumé de cours et méthodes

Chapitre 1 I:\ Soyez courageux!

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Introduction à MATLAB R

Dérivation CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES

Évaluation et implémentation des langages

Résolution de systèmes linéaires par des méthodes directes

Cours 1 : Qu est-ce que la programmation?

Les BRMS Business Rules Management System. Groupe GENITECH

Définitions. Numéro à préciser. (Durée : )

Algorithmique et Programmation, IMA

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Initiation à la programmation en Python

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Premiers exercices d Algèbre. Anne-Marie Simon

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Utilisation des tableaux sémantiques dans les logiques de description

Algorithme. Table des matières

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Algorithmes récursifs

Théorie des Langages

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

TP 1. Prise en main du langage Python

1 Définition et premières propriétés des congruences

Exercices - Polynômes : corrigé. Opérations sur les polynômes

CH.6 Propriétés des langages non contextuels

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

Représentation d un entier en base b

Objets Combinatoires élementaires

Apprentissage Automatique

Représentation géométrique d un nombre complexe

Cours d Informatique

Chaînes de Markov au lycée

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

Introduction à la théorie des graphes. Solutions des exercices

Initiation à la Programmation en Logique avec SISCtus Prolog

1 Systèmes triphasés symétriques

ALGORITHMIQUE ET PROGRAMMATION En C

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

STAGE IREM 0- Premiers pas en Python

Python - introduction à la programmation et calcul scientifique

CHAPITRE 3 LA SYNTHESE DES PROTEINES

Note de cours. Introduction à Excel 2007

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Chapitre 6. Fonction réelle d une variable réelle

Système binaire. Algèbre booléenne

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES


Compilation (INF 564)

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Le produit semi-direct

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Chapitre 2. Matrices

Plus courts chemins, programmation dynamique

Logiciel de Base. I. Représentation des nombres

Le code à barres EAN 13 mes premiers pas...

Cours d algorithmique pour la classe de 2nde

Présentation du langage et premières fonctions

Formats d images. 1 Introduction

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Compter à Babylone. L écriture des nombres

Algorithmique et programmation : les bases (VBA) Corrigé

Solutions du chapitre 4

CHRISTOPHE REUTENAUER* Dédié à mon ami Xavier Viennot

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI

Introduction à l étude des Corps Finis

Le modèle standard, SPE (1/8)

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Qu est-ce qu une probabilité?

Concevoir sa stratégie de recherche d information

MPI Activité.10 : Logique binaire Portes logiques

Vers l'ordinateur quantique

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Correction TD algorithmique

CHAPITRE IV. L axiome du choix

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Transcription:

Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 1 / 23

1 Introduction 2 Mots 3 Langages 4 Expressions Rationnelles Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 2 / 23

Théorie des Langages? Origine : Linguistique - Etude des langages naturels (ceux que nous parlons) en vue de faire de la traduction automatique par exemple. Aujourd hui : Analyse de texte au sens large, par exemple Recherche de motifs (ex : séquençage du génome) Analyse lexicale, grammaticale Compilation de Programmes Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 3 / 23

Compilateur Programme qui prend en entrée un texte dans un langage A dans le but de le traduire dans un langage B. Pour cela il doit connaître et reconnaitre pour ces deux langages leur vocabulaire (les mots autorisés) la syntaxe (la structure des phrases autorisées) leur sémantique (le sens des phrases autorisées) Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 4 / 23

Alphabet Définition Un alphabet est un ensemble fini de symboles. Définition Un mot sur l alphabet Σ est une séquence finie et ordonnée, éventuellement vide, d éléments de Σ. Le mot vide est dénoté ε. Exemple aabac est un mot sur l alphabet {a, b, c}. 00101 et 00011 sont deux mots sur l alphabet {0, 1}. Un brin d adn est un mot sur l alphabet {A, C, G, T }. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 5 / 23

Alphabet Définition (Longueur, Occurence) Un mot w est donc une séquence de lettres w 1 w 2... w n. L entier n est appelé longueur du mot w et est noté w. La longueur du mot vide ε est 0. Si w i est la lettre x, il s agit d une occurence de la lettre x en position i. Le nombre d occurences de la lettre x dans le mot w sera notée w x. Exemple Le mot abaac est de longueur 5 et contient trois occurrences de la lettre a, en position 1, 3 et 5. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 6 / 23

Mots Définition (Concaténation) Si u et v sont deux mots, on définit un nouveau mot, noté u.v, ou uv, appelé produit de concaténation de u et v en mettant bout à bout les lettres de u et v (sa longueur vérifie donc uv = u + v ). Exemple Si u = abb et v = ba, alors uv = abbba. Bien sur, à moins que l alphabet n ait taille 0 ou 1, cette opération n est pas commutative Exemple Si u = abb et v = ba, alors uv = abbba et vu = baabb. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 7 / 23

Monoïde Libre Définition Si Σ est un alphabet, on dénote par Σ, l ensemble de tous les mots sur Σ. Muni du produit de concaténation, c est un monoïde, puisque cette opération est associative : u, v, w Σ (u.v).w = u.(v.w) possède un élément neutre, le mot vide ε : u Σ u.ε = ε.u = u L ensemble Σ est appelé monoïde libre engendré par X. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 8 / 23

Facteurs, Sous-Mots Définition (Facteur, Sous-Mot) Un mot u est un facteur d un mot v si il existe des mots w 1 et w 2 tels que v = w 1.u.w 2. Si w 1 = ε, on dit que u est un prefixe de v. Si w 2 = ε, on dit que u est un suffixe de v. Un mot u est un sous-mot de v si il peut être obtenu a partir de v en supprimant une ou plusieurs lettres. Remarque Tout facteur est un un sous-mot (mais la réciproque n est pas vraie). Exemple aba est un facteur de aababbaba bbbb est un sous mot de aababbaba Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 9 / 23

Un Lemme de Factorisation Lemme (Lemme de Levi) Si u, v, u, v sont tels que uv = u v, alors il existe un mot z tel que soit u = uz et v = zv soit u = u z et v = zv Autrement dit soit u est un prefixe de u (et v suffixe de v), soit l inverse. u v u v z Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 10 / 23

Une Application On dit que deux mots u et v commutent si uv = vu. Théoreme u et v commutent si et seulement si il existe un mot w et deux entiers k et l tels que u = w k et v = w l. Preuve : On prouve le résultat par récurrence sur n = u + v. Si n = 0 le résultat est trivial. Soit n 1, supposons le résultat vrai pour tout n < n. D apres le lemme de Levi, il existe z tel que u = vz ou v = uz. Supposons u = vz (lautre cas se résout de la même manière). On a alors vzv = vvz et donc zv = vz. Si v = ε le résultat est trivial (v = u 0 ), donc on peut supposer v > 0 et donc z < u et on peut appliquer l hypothèse de récurrence à z et v. Il existe donc w, k et l tels que v = w k et z = w l et donc u = w k +l. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 11 / 23

Langages Définition (Langage) On appelle langage sur un alphabet Σ tout sous-ensemble L de Σ. Exemple Sur l alphabet Σ = {a, b} {a, aa, aba, bbbab} {ε} {ɛ, ab, a 2 b 2, a 3 b 3,...} = {a n b n, n N}. L ensemble des mots de Σ qui commencent et finissent par un a. Les palindromes : l ensemble des mots qui se lisent de la meme façon dans un sens et dans l autre comme abba ou babab. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 12 / 23

Description d un langage Elle peut être par exemple : en langue naturelle : Ex : "l ensemble des mots sur l alphabet qui commencent par un a" ou "l ensemble des palindromes sur un alphabet donné". de façon énumérative : on énumère tous les mots. Ex : tous les langages finis, mais aussi certains langages comme {a n b n, n N}. par une "machine" qui prend en entrée un mot et répond Oui ou Non. Ex : automates par mécanismes génératifs : on définit des briques de bases et des règles de production. Ex : On définit recursivement le langage L sur {a, b} par : - a et b sont dans L - Pour tout mot u de L aua et bub sont encore dans L. (Quel est ce langage?) Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 13 / 23

Opérations sur les Langages Etant donnés deux langages L et L sur l alphabet Σ on peut construire : l union L L, l intersection L L. le complément Σ = {u Σ u L}. Le produit de concaténation L.L = {w Σ u L et v L tq w = u.v} La puissance, définie par récurrence par L 0 = {ε} L n = L.L n 1 n 1. Le passage à l étoile : L = L 0 L L 2 L 3 L 4... = L n n 0 Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 14 / 23

Opérations sur les Langages Exercice L alphabet est Σ = {a, b}. L 1 = {a, ab} et L 2 = {b, ε}. Que vaut L 1.L 2? L = {ab}. Decrire L L 1 = {a} et L 2 = {a, b} Decrire L 1.L 2 en langage naturel Donner une expression pour le langage "L ensemble des mots contenant le facteur aba" Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 15 / 23

Opérations sur les Langages Proposition Pour tous langages L 1, L 2, L 3 on a : L 1.(L 2 L 3 ) = (L 1.L 2 ) (L 1.L 3 ) Attention faux pour intersection!!! Seulement L 1.(L 2 L 3 ) (L 1.L 2 ) (L 1.L 3 ) est vrai Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 16 / 23

Quotient gauche d un Langage Définition Le quotient gauche d un langage L par le mot u est défini par : Proposition ε 1 L = L u 1 L = {v Σ uv L} Pour tous mots u et v, (uv) 1 L = v 1 (u 1 L) Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 17 / 23

Langages Rationnels Définition (Langage rationnel) Soit Σ un alphabet. Les langages rationnels sur Σ sont définis inductivement par : i) {ε} et sont des langages rationnels ii) a Σ, {a} est un langage rationnel iii) si L, L 1 et L 2 sont des langages rationnels, alors L 1 L 2, L 1.L 2, et L sont également des langages rationnels. Est alors rationnel tout langage construit par un nombre fini d applications de la récurrence iii). Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 18 / 23

Langages Rationnels - Exemples L ensemble des mots sur l alphabet {a, b} qui commencent par a ou terminent par b : {a}.{a, b} {a, b} {b} L ensemble des mots sur l alphabet {a, b} qui contiennent le facteur aba : {a, b}.(aba).{a, b} Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 19 / 23

Expressions Rationnelles Pour représenter un langage rationnel on utilise une expression rationnelle On utilise le symbole + pour symboliser l union et on oublie les accolades autour des singletons. Ainsi {a}.{a, b} {a, b} {b} est représenté par l expression rationnelle a(a + b) + (a + b) b Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 20 / 23

Expressions Rationnelles - Exemples Donner des ER pour les langages suivants L ensemble des mots de longueur multiple de 3 L ensemble des mots ne contenant pas le sous-mot bb L ensemble des mots ne contenant pas le facteur bb L ensemble des mots ne contenant pas le sous-mot ab L ensemble des mots ne contenant pas le facteur ab L ensemble des mots contenant un nombre pair de a Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 21 / 23

Expressions Rationnelles - Exemples A une expression rationnelle correspond un unique langage rationnel mais un langage rationnel peut être représenté par plusieurs ER différentes. Exemple (a + b) et (a b ) a(ba) et (ab) a Une question algorithmique peut alors se poser : comment décider si deux expressions rationnelles représentent le même langage? Nous résoudrons ce problème au cours de ce cours. Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 22 / 23

Expressions Rationnelles - Arbre syntaxique Il est commode de représenter une ER par un arbre dont les noeuds sont étiquetés par les opérandes et les feuilles par les lettres (a + ba) (aa + b) a *. b. a a + a b Langages et Automates : LA3 Partie 1 : Langages, Expressions Rationnelles 23 / 23