L2: cours I4c Langages et automates



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

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

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

Plus courts chemins, programmation dynamique

Premiers exercices d Algèbre. Anne-Marie Simon

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

Continuité et dérivabilité d une fonction

Théorie des Langages

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

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

Réalisabilité et extraction de programmes

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

Université Paris-Dauphine DUMI2E 1ère année, Applications

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

Développement décimal d un réel

Grammaires d unification

Chapitre 5 : Flot maximal dans un graphe

Bases de données Cours 5 : Base de données déductives

OCL - Object Constraint Language

Cours de Master Recherche

Introduction à l étude des Corps Finis

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

Image d un intervalle par une fonction continue

1 Introduction au codage

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Algèbre binaire et Circuits logiques ( )

Évaluation et optimisation de requêtes

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Polynômes à plusieurs variables. Résultant

6. Les différents types de démonstrations

1.1 Rappels sur le produit cartésien Relations Graphes dirigés Arbres Exercices Motivation...

Algorithmes de recherche

Table des matières. I Mise à niveau 11. Préface

Représentation d un entier en base b

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

Initiation à LabView : Les exemples d applications :

Système binaire. Algèbre booléenne

Logiciel de Base. I. Représentation des nombres

Problèmes de Mathématiques Filtres et ultrafiltres

point On obtient ainsi le ou les points d inter- entre deux objets».

Calculs de probabilités

MIS 102 Initiation à l Informatique

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 =

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Les chaînes de caractères

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Cours de mathématiques

Complément d information concernant la fiche de concordance

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Le produit semi-direct

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Intégration et probabilités TD1 Espaces mesurés

Limites finies en un point

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Cours d Analyse. Fonctions de plusieurs variables

par Denis-Charles Cisinski & Georges Maltsiniotis

VÉRIFICATION DES SYSTÈMES À PILE AU MOYEN DES ALGÈBRES DE KLEENE

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Objets Combinatoires élementaires

Premiers pas avec Mathematica

Figures composées de pixels et monoïde inversif

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

Initiation à la programmation en Python

LES TYPES DE DONNÉES DU LANGAGE PASCAL

La classification automatique de données quantitatives

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

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Chapitre 7. Récurrences

Théorie de la mesure. S. Nicolay

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Algorithmes d'apprentissage

Utilisation des tableaux sémantiques dans les logiques de description

La mesure de Lebesgue sur la droite réelle

Les structures de données. Rajae El Ouazzani

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Rappels sur les suites - Algorithme

Fonctions de plusieurs variables

Pourquoi l apprentissage?

Apprentissage Automatique

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

Algorithme. Table des matières

Hébergement de site web Damien Nouvel

Théorie de la Mesure et Intégration

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

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Informatique Générale

Mathématiques I Section Architecture, EPFL

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

DOCM Solutions officielles = n 2 10.

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

MATHÉMATIQUES ET INFORMATIQUE

Transcription:

L2: cours I4c Langages et automates Olivier Togni, LE2I (038039)3887 olivier.togni@u-bourgogne.fr Modifié le 31 mai 2007

Sommaire Utiles pour compilation, interprétation,... 1. Langages rationnels 2. Langages reconnaissables 3. Langages algébriques

Langages rationnels Les mots - alphabet=ensemble fini de symboles (lettres) - mot sur alphabet A : suite finie de lettres de A - A =ensemble des mots définis sur A - mot vide ɛ A - longueur d un mot u : u =nb de lettres. u a =nb d occurences de a dans u. - opération de concaténation sur A : si u = abc et v = cac alors u.v = abccac. Rem : opération associative (u(v.w) = (u.v)w) mais pas commutative ( u, v, u.v v.u). - notation : le mot aaabbab sera raccourci en a 3 b 2 ab. - (A,., ɛ) est un monoïde (ensemble muni d une opération associative et d un élément neutre, mais pas forcement d inverse comme dans un groupe).

Langages rationnels Langages rationnels - Langage formel sur A= ensemble fini ou infini de mots de A : L A. - opérations : * complémentation L = {u A, u L} * union L 1 L 2 = {u A, u L 1 ou u L 2 } * intersection L 1 L 2 = {u A, u L 1 et u L 2 } * produit L 1.L 2 = {u A, u = u 1 u 2, u 1 L 1 et u 2 L 2 } * fermeture itérative : L est l ensemble des mots formés par un concaténation finie de mots de L : L = {ɛ} L L 2 L 3.... L + = L {ɛ}.

Langages rationnels Expressions rationnelles Définition Un langage est dit rationnel s il s écrit de manière finie à l aide des opérations d union, de produit et de fermeture transitive à partir des lettres de l alphabet et du mot vide. défini par une expression rationnelle. De façon formelle : Définition Une expression rationnelle est définie de façon inductive par : - est une expression rationnelle, - si a est une lettre, a est une expression rationnelle, - si E est une expression rationnelle, E aussi, - si E 1 et E 2 sont des expr. rationnelles, E 1 + E 2 et E 1 E 2 aussi.

Langages rationnels Exemple Ex : si A = {a, b, c}, A = (a b c) = (a + b + c). Ex : sur {a, b}, donner les expressions rationnelles correspondant au langages suivants : mots ayant 1 seule occurence de b mots contenant abab mots ne contenant pas abab.

Langages reconnaissables Langages reconnaissables Définition Un automate fini A est un sextuplet (A, Q, T, λ, I, F ) avec : - A alphabet fini appelé alphabet d entrée, - Q ensemble fini d états, - T ensemble des transitions, - λ : T A étiquettes des transitions, - I ensemble des états initiaux, - F ensemble des états terminaux (ou finals), Rem : (Q, T, λ) est un graphe orienté étiqueté (les arcs ont une valeur ou étiquette qui est une lettre de A).

Langages reconnaissables Exemple

Langages reconnaissables Langage reconnu par un automate Soit r = q 0, q 1,..., q p un chemin dans A La trace λ(r) de r est le mot de A formé par les étiquettes portées par les arcs qui composent le chemin : λ(r) = λ(q 0, q 1 )λ(q 1, q 2 )... λ(q p 1, q p ). Définition Le langage reconnu par un automate A est l ensemble des traces de tous les chemins qui partent d un état initial et aboutissent à un état final : L(A) = {λ(r) A, r = q 0, q 1,..., q p, q 0 I, q p F }. Définition Un langage L est reconnaissable ssi il existe un automate fini A tel que L = L(A).

Langages reconnaissables Exemple : Langage reconnu par l automate de l ex précédant

Langages reconnaissables Automates minimaux et complets Il existe souvent plusieurs solutions d automates correspondant à un langage reconnaissable. Il existe une solution utilisant un nombre minimum d états : l automate minimal. Il existe des algos pour minimiser un automate. Définition Un automate est complet ssi q Q, a A, il existe au moins une transition t d origine q et d étiquette a. Il est facile de rendre un automate complet en ajoutant un état appelé puit et toutes les transitions manquantes de chaque état vers ce puit.

Langages reconnaissables Automates déterministes Définition Un automate est déterministe ssi : - il n y a qu un seul état initial, et - q Q, a A, il existe au plus une transition t d origine q et d étiquette a. Un automate non déterministe est souvent plus facile à construire (qu un déterministe), par contre il est plus facile de tester si un mot appartient à un langage quand on est en présence d un automate déterministe.

Langages reconnaissables Automates déterministes Pour un automate déterministe, on peut définir la fonction ou table de transition δ : Q A Q, qui à partir d un état et d une lettre, donne l état dans lequel on arrive si on suit la transition correspondant à la lettre. Ex :

Langages reconnaissables Automates déterministes Un automate A sera non déterministe si au moins une des situations suivantes à lieu : - A possède au moins deux états initiaux - A possède des transitions étiquetées ɛ - δ n est pas une fonction mais une relation. Il existe des algorithmes pour déterminiser un automate, donc il existe toujours une solution déterministe!!

Langages reconnaissables Exemple Construire un automate déterministe acceptant le langage (aab + aa + aabb)

Langages reconnaissables Algorithme de simulation d un automate déterministe Etat <- etat_initial Tant Que (il reste des lettres) faire Debut Lire(lettre) Etat <- TT[Etat,lettre] //TT=table de transition Fin Si Etat est un etat final alors le mot est reconnu sinon le mot n est pas reconnu

8 de 25 L2: cours I4c Langages et automates Langages reconnaissables Rationnel vs reconnaissable Théorème (Kleene) L est reconnaissable ssi L est rationnel. En d autres termes, il est possible de construire un automate à partir de n importe quelle expression rationnelle et, réciproquement, d associer une expression rationnelle à tout automate. Les langages rationnels (ou reconnaissables) permettent de définir formellement beaucoup de langages, mais pas tous. Par ex le langage {a n b n, n N} n est pas rationnel. Langages algébriques...

Langages algébriques Langages algébriques Basés sur la notion de réécriture... Définition Une grammaire algébrique est un triplet G = (T, N, P) où - T est un alphabet fini dit terminal, - N est un alphabet fini dit non-terminal et disjoint de T, - P est un ensemble fini de règles de production. Une règle est A u, A N, u (N T )

Langages algébriques Exemple T = {a, b}, N = {A, B, S} et P = {S A, S B, B bb, B ɛ, A aa, A ɛ}. Convention : Terminaux=minuscules, non-terminaux= majuscules

Langages algébriques Réécriture Définition Soient f et g deux mots de (N T ). On dit que f se réécrit en g par application de la règle p : A u, que l on note f p g ssi f est de la forme f = f 1 Af 2 et g = f 1 uf 2. Une dérivation est une séquence de réécritures la forme f 1 p1 f 2 p2... f n pn f n+1. On dit qu un mot f se dérive en un mot g, noté f g si f = g ou s il existe une dérivation telle que f 1 = f et f n+1 = g. On ne peut réécrire un mot ne contenant aucun élément non-terminal : un tel mot est dit terminal ou irréductible.

Langages algébriques Langage algébrique Définition Le langage engendré par une grammaire G à partir de A (appelé axiome) est l ensemble des mots irréductibles obtenus par dérivation de A : L(G, A) = {u T, A u}. Ce langage est un langage algébrique. Ex précédent : mots ne contenant que des a ou que des b. Ex : Soit G = ({a, b}, {S}, {s as, S Sb, S ɛ}). Le langage engendré par la grammaire G est L(G, S) = a b.

Langages algébriques Quelques propriétés des langages algébriques L 1 et L 2 algébriques L 1 L 2 et L 1.L 2 algébriques, L 1 et L 2 algébriques L 1 L 2 algébrique, tout langage rationnel (reconnaissable) est algébrique.

Langages algébriques Arbre de dérivation A tout mot d un langage algébrique on peut faire correspondre un arbre de dérivation qui indique par quelle suite de dérivations le mot à été obtenu. La racine de l arbre est le non-terminal de départ et le mot est obtenu par un parcours en largeur les feuilles de l arbre. Si un mot peut être obtenu par deux dérivations différentes, la grammaire est dite ambiguë. Ex : G : S x y z (S) S S S + S est ambiguë car u = x + y z peut être généré par deux arbres de dérivation différents (les 2 dérivations correspondant à u = (x + y) z et u = x + (y z)). Une version non ambiguë de la grammaire précédente est : E E + T T, T T F F, F (E) x y z.

Langages algébriques Construction d une grammaire à partir d un automate Chaque état q i de l automate correspond à un non-terminal Q i de la grammaire et pour chaque transition (q i, q j ) de l automate, on ajoute la règle Q i aq j, où a = λ(q i, q j ) est l étiquette de la transition. Le langage engendré par cette grammaire est le même que l ensemble des mots reconnus par l automate.