Utiliser la machine tortue

La page est créée Jérôme Legrand
 
CONTINUER À LIRE
Grammaires                                                                1

          Utiliser la machine tortue
    – En Caml ?
        Possible, mais :
             Oblige à savoir « trop » de choses
             Oblige à s'occuper de détails indépendants du vrai problème
             Oblige à connaître Caml !

    – En un autre langage ?
        Oui, mais :
             Lequel ?

DEF carre(l) PAR
REPETE 4 FOIS
  SEQ A l; T 90 QES
FED

DEUG 2                                                                     2000

 Grammaires                                                                2

       Trouver Saussure à son pied
• Problème :
    Si nous souhaitons définir un nouveau langage pour les
      graphiques tortue, nous devons répondre à quelques
      questions :
        A quelles phrases pouvons-nous associer un sens ?
             • REPETE 2 FOIS carre(10)
             • RECULE 37
         Quels sont les mots qui ont un sens ?
             • DEF
             • carre
         Comment doit-on arranger les mots ?
             • on mots arranger doit comment les ?
         Qu’est-ce qu’un mot ?
             • euhhhhhh

DEUG 2                                                                     2000

                                Page 1
Grammaires                                                      3

              Langage : définition
• Langage =
   Système de signes servant à transmettre des significations

   Lorsqu’il y a transmission de sentiments ou de significations à
     plusieurs niveaux, il est préférable de parler de langue
• Langage formel =
   Système dans lequel il existe des règles rigides qui
     permettent de
       donner un sens univoque aux phrases
       définir des procédures de transformation et de
     manipulation de phrases

DEUG 2                                                          2000

Grammaires                                                      4

                Phrase : définition
• Mot =
   Unité élémentaire (c’est-à-dire non décomposable)
    composée de caractères
• Phrase =
   Concaténation (c’est-à-dire, mise bout à bout) de mots

   La théorie ne différencie pas entre mots (au sens usuel),
     symboles, ponctuation, etc.
   Les mots peuvent eux-mêmes avoir une structure, mais celle-ci
     correspond à un autre langage (ex. écriture des nombres)
   Mathématiquement, les phrases sont des structures
     appartenant aux monoïdes

DEUG 2                                                          2000

                            Page 2
Grammaires                                                                      5

                Rôle des langages
• En mathématiques
   – parler de propriétés
            • toute fonction dérivable est-elle continue ?
            • (∀ f, dérivable(f) ⇒ continue(f) )
   – exprimer des relations
            • (U + V) ‘ = U’ + V’

• En informatique
   – donner des ordres à une machine
            • let q = 123;;
            • SEQ A 100; T 90; C bleu QES
   – exprimer des algorithmes
            • function x -> x+1;;

DEUG 2                                                                         2000

Grammaires                                                                      6

                      Cas de -Logo

   – Doit être capable de décrire un graphique
            • des figures simples
            • des figures construites par assemblage
            • des figures calculées (Von Koch)
   – Agit sur une machine tortue
            • la signification sera le tracé de graphique
   – Doit être traitable par une machine
            • Un utilisateur doit pouvoir écrireen µ-Logo (c’est-à-dire, écrire des
              textes)
            • Un programme doit pouvoir déterminer si un texte est en µ-Logo ou
              non
            • Un programme doit pouvoir transformer le texte en la suite d’appel
              des fonctions de la machine tortue

DEUG 2                                                                         2000

                                    Page 3
Grammaires                                                         7

               Définir un langage
• Un langage : trois constituants
   – vocabulaire =
       ensemble des mots qui peuvent apparaître dans les
         phrases
   – syntaxe =
       ensemble des règles permettant d’assembler les mots
         pour former des phrases
   – sémantique =
       ensemble des règles permettant de déterminer le sens
         d’une phrase

   Pour les langages formels, les 3 constituants sont définis de
     façon arbitraire

DEUG 2                                                         2000

Grammaires                                                         8

           Grammaire : définition
• Grammaire =
   1) mécanisme de réécriture (ou de production) qui permet
     d’engendrer systématiquement les phrases d’un langage
   2) ensemble des règles de réécriture qui définissent un
     langage particulier

   – définition due à N. Chomsky
   – définition constructive :
       » un langage est défini comme les objets (phrases) que
          l’on peut construire
   – les grammaires des langues sont plutôt descriptives : elles
     recensent les règles de cohérence interne des phrases et
     définissent une langue comme l’ensemble des phrases
     cohérentes

DEUG 2                                                         2000

                            Page 4
Grammaires                                                       9

          Exemple des propositions
             AX ::= PROP

             PROP ::=          APROP ou APROP |
                               APROP et APROP |
                               non APROP |
                               APROP

             APROP ::=         p    |
                               q    |
                               r    |
                               (    PROP )

         » les phrases suivantes sont-elles des propositions ?
             • p ou q et r
             • (non (((p)))) ou r

DEUG 2                                                           2000

Grammaires                                                       10

         Mécanisme de génération
• Terminal =
   élément du vocabulaire du langage, n'apparaît qu’à droite
     du symbole ::=
• Non Terminal =
   élément du méta-vocabulaire qui sera réécrit, apparaît à
     gauche du symbole ::=
• Productions =
   ensemble des façons de réécrire un non terminal,
     exprimées comme une liste d’alternatives (symbole |)
• Axiome =
   non terminal qui n'apparaît jamais à droite du symbole ::=

DEUG 2                                                           2000

                                    Page 5
Grammaires                                                          11

         Algorithme de génération
   – On représente une phrase par une liste de mots
   – la liste initiale contient uniquement l’axiome
   – tant que la liste contient des non terminaux
        » sélectionner un non terminal
        » le remplacer par une de ses productions
   – le procès s’arrête lorsque la liste ne contient plus que des
     terminaux, l’écriture de cette liste produit une phrase

   Le procès s’arrête-t-il toujours ? Non, certains langages ont des
     phrases infinies !
   L’ordre de choix des non terminaux est-il important ? Non, pour
     les langages que nous considérons

DEUG 2                                                              2000

Grammaires                                                          12

                        Camlisons
  – Soit le module “grammaire” qui propose les définitions suivantes
           type grammaire
           type production = string list

           est_terminal: grammaire -> string -> bool
           productions: grammaire -> string -> production list
           une_production: grammaire -> string -> production
  – fonction de création d’une phrase à partir d’une production
  let phrase = function prod ->
      list_it (function g -> function d -> g^” “^d) prod “ “ ;;
  – fonction technique de réécriture
           let reecrit = function gram ->
                        function mot ->
                            if est_terminal gram mot
                               then [mot]
                                else une_production gram mot;;

DEUG 2                                                              2000

                            Page 6
Grammaires                                                              13

                          Génération
   let Chomsky =
     function gram ->
       function axiome ->
          let rec Noam =
                function prod ->
                    if (for_all (est_terminal gram) prod)
                      then prod
                      else Noam (List.flatten
                                    (List.map (reecrit gram) prod))
           in Noam [axiome];;

   List.flatten: 'a list list -> 'a list = 
   List.flatten [a; b; ... ; k] == a @ b @...@ k

DEUG 2                                                                 2000

Grammaires                                                              14

                 Intérêt des grammaires
• Objets mathématiques
   – Propriétés démontrables
       » classes de langages
             • régulier, non contextuel, contextuel, etc.
         » techniques de traitement
             • automates, générateurs de reconnaisseurs, etc.
   – Classes d’équivalences de langages
             • langages égaux = langages engendrables par la même grammaire
             • grammaires équivalentes = qui engendrent les mêmes langages
   – Transformations
             • pour adapter la définition d’un langage à des outils

DEUG 2                                                                 2000

                                  Page 7
Grammaires                                               15

          Intérêt des grammaires
• Moyen de description
   – Manuel de référence des langages de programmation
   – Description des langages de données de certaines
     applications
           • Précision
           • Concision
           • Non ambiguïté

• Outil de modélisation
   – Objets complexes
   – Représentation textuelle de valeurs complexes

DEUG 2                                                   2000

                             Page 8
Vous pouvez aussi lire