Théorie des langages. Alexis Nasr

Documents pareils
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.

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

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

Coefficients binomiaux

Algorithmes récursifs

Initiation à la Programmation en Logique avec SISCtus Prolog

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

Initiation à la programmation en Python

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

Théorie des Langages

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

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

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 =

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

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

Représentation d un entier en base b

Plus courts chemins, programmation dynamique

Bureau N301 (Nautile)

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

Mathématiques appliquées à l'économie et à la Gestion

Initiation à LabView : Les exemples d applications :

Initiation à l algorithmique

Cours Informatique 1. Monsieur SADOUNI Salheddine

Continuité et dérivabilité d une fonction

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

Système binaire. Algèbre booléenne

Introduction à MATLAB R

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

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

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

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

Équations non linéaires

DOCM Solutions officielles = n 2 10.

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

Probabilités sur un univers fini

QUI VEUT JOUER AVEC MOI?

Pour l épreuve d algèbre, les calculatrices sont interdites.

Formats d images. 1 Introduction

SOMMAIRE. Travailler avec les requêtes... 3

Cours d algorithmique pour la classe de 2nde

Chapitre 2 Le problème de l unicité des solutions

NOMBRES RELATIFS Exercices 1/6

UTILISER UN SITE COLLABORATIF

1 Introduction au codage

Relation entre deux variables : estimation de la corrélation linéaire

Qu est-ce qu une probabilité?

Algèbre binaire et Circuits logiques ( )

TD3: tableaux avancées, première classe et chaînes

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)

Triangle de Pascal dans Z/pZ avec p premier

Information utiles. webpage : Google+ : digiusto/

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Structures algébriques

La circulation méconnue de l épargne règlementée en France!

Premiers exercices d Algèbre. Anne-Marie Simon

LES GENERATEURS DE NOMBRES ALEATOIRES

Les Angles. I) Angles complémentaires, angles supplémentaires. 1) Angles complémentaires. 2 Angles supplémentaires. a) Définition.

Institut pour le Développement des Capacités / AFRITAC de l Ouest / COFEB. Cours régional sur la Gestion macroéconomique et les

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Utilisation des tableaux sémantiques dans les logiques de description

Procédure de sauvegarde pour AB Magique

Excel 2007 Niveau 3 Page 1

Jean-Philippe Préaux

Chapitre 2. Matrices

ALGORITHMIQUE ET PROGRAMMATION En C

PROFIS Installation. Module 4: Module 3D Design

Structure du format BMP, sa lecture, sa construction et son écriture

Mesurer les performances (CPU) sous Linux

MON LIVRET DE COMPETENCES EN LANGUE (Socle commun) Niveau A1/A2 / B1

Codage d information. Codage d information : -Définition-

TP 1. Prise en main du langage Python

Organisation des Ordinateurs

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

STAGE IREM 0- Premiers pas en Python

Liste de nos biens immobiliers

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Coûts, avantages et inconvénients des différents moyens de paiement

Cours d Informatique

RE SOLUTIONS CHAPITRE 1

Journées Thématiques 2004

CONFIGURATION DE L AUTOMATE SIEMENS

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

Cours d Analyse. Fonctions de plusieurs variables

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Note de cours. Introduction à Excel 2007

Organigramme / Algorigramme Dossier élève 1 SI

Le contenu de ce manuel peut faire l objet de modifications sans préavis et n engage pas la responsabilité de la société BENTEL SECURITY srl.

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

Compression Compression par dictionnaires

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

Texte Agrégation limitée par diffusion interne

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

Initiation. àl algorithmique et à la programmation. en C

Corrigé des TD 1 à 5

Résolution d équations non linéaires

Transcription:

Théorie des langages Alexis Nasr

Symboles et mots Les symboles sont des éléments indivisibles qui vont servir de briques de base pour construire des mots. Un alphabet est un ensemble fini de symboles. On désigne conventionnellement un alphabet par la lettre grecque Σ. Une suite de symboles, appartenant à un alphabet Σ, mis bout à bout est appelé un mot (ou une chaîne) sur Σ. On note m la longueur du mot m (le nombre de symboles qui le composent). On note m s le nombre de symboles s que possède le mot m. Le mot de longueur zéro, appelé mot vide, est noté ε. Si m est un mot et 1 i m, on note m[i] le i eme symbole de m.

Concaténation La concaténation de deux mots α et β, notée α β ou simplement αβ est le mot obtenu en juxtaposant les symboles de β à la suite de ceux de α. La concaténation est associative : (αβ)γ = α(βγ) ε est l élément neutre pour la concaténation : εα = αε = α L itération de l opération de concaténation d un mot m permet d obtenir les puissances de m : m 0 = ε n N m n+1 = mm n

Facteurs Etant donné trois mots α, β et γ définis sur un alphabet Σ, β est un facteur (ou sous-chaîne) de αβγ. α est un facteur gauche (ou préfixe) du mot αβ β est un facteur droit (ou suffixe) du mot αβ Si α = β et α est un préfixe de β, alors on dit que α est un préfixe propre de β. Si α = β et α est un suffixe de β, alors on dit que α est un suffixe propre de β. ε est un préfixe, un suffixe et un facteur de tout mot.

Langages L ensemble de tous les mots que l on peut construire sur un alphabet Σ est noté Σ. Un langage sur un alphabet Σ est un ensemble de mots construits sur Σ. Tout langage défini sur Σ est donc une partie de Σ. L ensemble de tous les langages que l on peut définir sur Σ est l ensemble des parties de Σ, noté P(Σ ).

Opérations sur les langages Union L 1 L 2 {x x L 1 ou x L 2 } Intersection L 1 L 2 {x x L 1 et x L 2 } Différence Complément L 1 L 2 L {x x L 1 et x / L 2 } {x Σ x / L} Concaténation L 1 L 2 {xy x L 1 et y L 2 } n {}}{ Auto concaténation L... L L n Fermeture de Kleene L k 0 L k

Exemples de langages Σ = {a} L 1 = {ε, a, aa, aaa,...} Σ = {a, b} L 2 = {ε, ab, aabb, aaabbb, aaaabbbb,...} Σ = {a, b} L 2 = {ε, ab, aabb, aaabbb, aaaabbbb,...} Σ = {a, b} L 3 = {ε, aa, bb, aaaa, abba, baab, bbbb,...} Σ = {a, b, c} L 4 = {ε, abc, aabbcc, aaabbbccc,...}

Exemples de langages Σ = {0... 9, +,, /,, (, )} Une expression arithmétique peut être représentée par un mot m Σ L est l ensemble des expressions arithmétiques bien formées (1 + 3) 45 L /234 / L (1 + 4456 / L

Exemples de langages Σ = {a,... z,,,,, } Une formule de la logique des propositions peut être représentée par un mot m Σ L est l ensemble des formules de la logique des propositions bien formées a b c L b c / L

Exemples de langages Σ est l ensemble des identifiants, des constantes, des opérateurs et des mots clefs du langage C Un programme en langage C peut être représenté par un mot m Σ L est l ensemble des programmes syntaxiquement corrects du langage C main(void){printf( hello world );} L main(void){printf( hello world )} / L

Exemples de langages Σ est l ensemble des mots du français une phrase du français peut être représentée par un mot m Σ L est l ensemble des phrases syntaxiquement correctes du français ceci est une phrase correcte L ceci est une correcte phrase / L d incolores idées vertes dorment furieusement L

Exemples de langages Σ = {1, 2, 3, 4, 5, 6, 7, 8, 9} Soit une grille de sudoku avec a i j le chiffre situé en ligne i colonne j. Une telle grille peut être représentée par le mot S = a 1 1 a1 2... a2 1 a2 2... a9 9 Σ L est l ensemble des grilles de sudoku valides

Exemples de langages Σ = N {(, ),, } Un graphe (S, A) peut être représenté par un mot m Σ L est l ensemble des graphes connexes ((1, 2, 3, 4), ((1, 2), (2, 3), (3, 1), (1, 4))) L ((1, 2, 3, 4, 5), ((1, 2), (2, 3), (3, 1), (4, 5))) / L

Généralisons Problème de décision : Entrée : x S Question : x satisfait-il la propriété P? S désigne un ensemble quelconque, dont les éléments sont appelés instances ou entrées du problème P est une propriété des éléments de S On représente x S par un mot m On appelle L l ensemble des mots qui représentent les instances qui vérifient P Problème de décision : Entrée : un mot m Question : m appartient-il au langage L?

Comment décrire un langage? Enumération L 2 = {ε, aa, bb, ab, ba, aaaa, aaab, aaba,...} Description littéraire Ensemble des mots construits sur l alphabet {a, b}, de longueur paire Expression Régulière Formule permettant de dénoter de manière concise les mots du langage ((a + b)(a + b)) Reconnaisseur Machine permettant de reconnaître tous les mots du langage Grammaire de réecriture Système permettant de générer tous les mots du langage

Représentation graphique d un reconnaisseur BANDE D ENTREE TETE DE LECTURE UNITE DE CONTROLE MEMOIRE AUXILIAIRE

Eléments d un reconnaisseur Un reconnaisseur est composé de quatre parties : 1 - une bande de lecture elle est composée d une succession de cases. Chaque case pouvant contenir un seul symbole d un alphabet d entrée. C est dans les cases de cette bande de lecture qu est écrit le mot à reconnaître. 2 - une tête de lecture Elle peut lire une case à un instant donné. La case sur laquelle se trouve la tête de lecture à un moment donné s appelle la case courante. La tête peut être déplacée par le reconnaisseur pour se positionner sur la case immédiatement à gauche ou à droite de la case courante. 3 - une mémoire Elle peut prendre des formes différentes. La mémoire permet de stocker des éléments d un alphabet de mémoire.

Eléments d un reconnaisseur 4 - une unité de contrôle Elle constitue le cœur d un reconnaisseur. Elle peut être vue comme un progamme qui dicte au reconnaisseur son comportement. Elle est définie par un ensemble fini d états ainsi que par une fonction de transition qui décrit le passage d un état à un autre en fonction du contenu de la case courante de la bande de lecture et du contenu de la mémoire. L unité de contrôle décide aussi de la direction dans laquelle déplacer la tête de lecture et choisit quels symboles stocker dans la mémoire. Parmi les états d un reconnaisseur, on distingue des états initiaux, qui sont les états dans lesquels doit se trouver le reconnaisseur avant de commencer à reconnaître un mot des états d acceptation qui sont les états dans lequel doit se trouver le reconnaisseur après avoir reconnu un mot.

Reconnaisseur simple 0 a,b a,b 1

ababaa L? 0 a,b a,b 1 (0, ababaa) (1, babaa) (0, abaa) (1, baa) (0, aa) (1, a) (0, ε)

Grammaires de réécriture Une grammaire de réécriture est un 4-uplet N, Σ, P, S où : N est un ensemble de symboles non terminaux, appelé l alphabet non terminal. Σ est un ensemble de symboles terminaux, appelé l alphabet terminal, tel que N et Σ soient disjoints. P est un sous ensemble fini de : (N Σ) N(N Σ) (N Σ) un élément (α, β) de P, que l on note α β est appelé une règle de production ou règle de réécriture. S est un élément de N appelé l axiome de la grammaire. Exemple : G = {P, I}, {a, b}, {P ε, P ai, P bi, I ap, I bp}, P

ababaa L? G = {P, I}, {a, b}, {P ε, P ai, P bi, I ap, I bp}, P P ai abp abai ababp ababai ababaap ababaa

Reconnaissance Etant donné un mot m et un langage L, on veut répondre à la question : m? L La difficulté de répondre à cette question dépend-t-elle de la nature de L? L 0 = {m {a, b} m mod 2 = 0} L 1 = {m {a, b} m a = m b } L 2 = {m {a, b} m = uu}