Théorie des Langages - S5

Alphabets

Langage : Ensemble de mot (infini ou pas, peut être vide)
Mot : Suite (=> Ordre important != Ensemble) finie de symbole, peut être vide
Alphabet : Ensemble de symbole fini et non vide

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

={a,b} (alphabet)
={ϵ,a,b,aa,ab,ba,bb,aaa,...}

L+=L.L
: Ici
L+
ne contient
ϵ
si
L
le contient quand
L
le contient tout le temps

u, u est un mot
L
, L est un langage

Langage vide : Element absorbant
Langage

{ϵ} : Element neutre

Opérations sur les langages

  • Union :
    L1L2
    ou
    L1+L2
    : Opération associative et commutative
  • Intersection :
    L1L2
    : Opération associative et commutative
  • Concaténation :
    L1.L2
    : Opération associative et non-commutative
    • Auto-concaténation :
      Ln=L.L.L.L (n fois)
      et
      L0={ϵ}
  • Fermeture de Kleene :
    L
    : Tous les mots que on peut former avec le langage L
    • ={ϵ}
  • Complémentation :
    L
  • Préfixe :
    Pref(L)
    : Préfixe d'un mot (le préfixe peut être le mot en entier)
    • Ajouter des entrées sur les états co-accessible
    • Préserve la rationnalité
  • Suffixe :
    Suff(L)
    : Suffixe d'un mot (le suffixe peut être le mot en entier)
    • Ajouter des entrées sur les états accessible
    • Ne préserve pas forcément la rationnalité
  • Sous-mot :
    Sousmot(L)
    :
    • Ajout d'entrées et de sorties sur les états utiles

Rationnalité

Soit

un alphabet

  • {ϵ}
    et
    sont des langages rationnels
  • a,{a}
    est un langage rationnel
  • Si
    L1
    et
    L2
    sont des langages rationnels, alors sont rationnels:
    • L1L2
      ou
      L1+L2
    • L1.L2
    • L1

Les opérations d'union (

|
+
), de concaténation (
.
) et de l'étoile (
) sont rationnelles.
Les opérations la complémentation (
L
) et l'intersection (
) ne sont pas rationnelles.
Une partie d'un langage rationnel n'est pas forcément rationnelle (
anbn
n'est pas rationnel)

Expressions rationnelles

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Automates finis

  • NFA : Automate fini non-déterministe (possibilité présence de liaison spontanées
    ϵ
    )
    • Compléxité : exponentielle
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
  • DFA : Automate fini déterministe (pas de liaisons spontanées
    ϵ
    )
    • Complexité : linéaire
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →

      Si un mot ne se finit pas par un état possédant une sortie, alors il ne respecte pas la regex détectée par l'automate
  • (,Q,I,F,δ)
    où :
    • : Alphabet de travail
    • Q
      : Ensemble d'états
    • IQ
      : Ensemble d'états initiaux
    • FQ
      : Ensemble d'états finaux
    • δ
      : Ensemble de transition
  • Un état utile : accessible ET co-accessible
  • Transition
  • Langage supportes
  • Problèmes et limitations
  • Thompson

Automate de Thomson (NFA)

Opération / Ensemble Représentation
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
{ϵ}ϵ
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
a{a}a
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Concaténation
L1.L2
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Union
L1L2
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Etoile
L1
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Déterminisation

Pour tout les automates NFA ont peut construire un équivalent DFA.
Si l'automate NFA possède

N états, alors l'automate DFA résultat à au plus
2N
états
Exemple :
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Grammaire et contexte

Grammaire : Soit

{a,b} deux terminaux et
S
un non-terminal.
SaSb

Sϵ

Hiérarchie de Chomsky

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Grammaire monotone :
    αβ|α||β|

    Pour éviter que la règle ne consomme des caractères.
  • Contexte-Sensitive :
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Réécrire que la partie non-terminale
  • Contexte free :
    Xα

    Ici
    X
    (symbole non-terminal) est remplacé par
    α
    (symbole terminal ou non-terminal). On ne regarde pas le contexte avant de le remplacer.
  • Grammaire régulière :
    • Linéaire à droite :
      AuB

      L'élement non-terminal est situé à la fin du mot.
    • Linéaire à gauche :
      ABu

      L'élement non-terminal est situé au début du mot.
      Il existe un automate déterministe qui reconnaisse son langage
    • Linéaire à droite et à gauche :
      Peuvent engendrer des langages rationnels si on accepte la production
      Aϵ
  • Grammaire à choix finis :
    Au
    AN
    et
    u+

    Engendre uniquement des langages finis qui ne contiennent pas le mot vide.

Parseurs LL et LR

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Parser LL : Manque d'expressivité
Parser LR : Plus compliqué à écrire à la main
Lex/Flex : Analyseur lexical
Yacc : Analyseur syntaxique LALR(1)

Précision et complexité
LR(0) < LALR(1) < SLR(1) < LR(1)

(tableau)

  • LL(k)
  • LR(k)
  • CLR(k) : Complex LR(k)
  • SLR(k) : Simple LR(k)
  • LALR(k) : LookAhead LR(k) (Parser Yacc) : Langage Type <= 2
    • Fusionne les états au LookAhead près par rapport à un LR(k)
  • Follow
  • Lookhead