Utiliser la machine tortue
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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