th eorie conception et r ealisation d un langage de
play

Th eorie, conception et r ealisation dun langage de programmation - PowerPoint PPT Presentation

Th eorie, conception et r ealisation dun langage de programmation adapt e ` a XML Alain Frisch Soutenance de th` ese - 13/12/2004 Directeur: Giuseppe Castagna Introduction Duce : aper cu du langage Contributions th


  1. Th´ eorie, conception et r´ ealisation d’un langage de programmation adapt´ e ` a XML Alain Frisch Soutenance de th` ese - 13/12/2004 Directeur: Giuseppe Castagna

  2. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan Th´ eorie, conception, et r´ ealisation d’un langage de programmation adapt´ e ` a XML 2/70

  3. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan Th´ eorie, conception, et r´ ealisation d’un langage de programmation adapt´ e ` a XML . . . XML. 1 3/70

  4. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan Th´ eorie, conception, et r´ ealisation d’un langage de programmation adapt´ e ` a XML . . . XML. 1 . . . langage de programmation adapt´ e . . . 2 4/70

  5. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan Th´ eorie, conception, et r´ ealisation d’un langage de programmation adapt´ e ` a XML . . . XML. 1 . . . langage de programmation adapt´ e . . . 2 . . . conception . . . 3 5/70

  6. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan Th´ eorie, conception, et r´ ealisation d’un langage de programmation adapt´ e ` a XML . . . XML. 1 . . . langage de programmation adapt´ e . . . 2 . . . conception . . . 3 Th´ eorie . . . 4 6/70

  7. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan Th´ eorie, conception, et r´ ealisation d’un langage de programmation adapt´ e ` a XML . . . XML. 1 . . . langage de programmation adapt´ e . . . 2 . . . conception . . . 3 Th´ eorie . . . 4 . . . r´ ealisation . . . 5 7/70

  8. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion Plan Introduction 1 Contexte, motivations, objectif initial 2 ❈ Duce : aper¸ cu du langage 3 Contributions th´ eoriques Alg` ebre de types et sous-typage Noyau fonctionnel, syst` eme de types Aspects algorithmiques 4 Conclusion 8/70

  9. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XML et sch´ emas XML Un langage de balises. Pour repr´ esenter des donn´ ees de nature arborescente. Repr´ esentation ind´ ependante de l’application. Sch´ emas Chaque application d´ efinit des contraintes sur les documents XML qu’elle peut manipuler : balises (nom, structure d’imbrication), attributs (pr´ esence, valeurs autoris´ ees), texte (pr´ esence). Un tel ensemble de contraintes est un sch´ ema XML. Il existe des langages pour ´ ecrire des sch´ emas de mani` ere formelle : DTD, XML-Schema, Relax-NG. 9/70

  10. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XML : sch´ emas Transformation XML Programme T � Sch´ Sch´ ema A ema B Garanties Le programme T s’engage ` a fournir un document XML de sch´ ema B si on lui donne un document XML de sch´ ema A. Peut-on le croire ? 10/70

  11. � � � � � � � Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XML : sch´ emas Application complexe Toutes les op´ erations effectu´ ees sur les documents ` a l’int´ erieur de l’appli- A ′ A cation sont-elles l´ egales ? � • • Op´ erations ill´ egales � � � � Consulter un attribut qui peut � � � � • • ne pas exister. � � � Supprimer un ´ el´ ement qui doit � � � � ˆ etre pr´ esent. � � B ′ B 11/70

  12. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XML : sch´ emas et types Typage dans les langages de programmation : interdire des op´ erations ill´ egales ( 1 + "Hello" , customer.shutdown() ). Il est naturel de voir les sch´ emas XML comme des types de donn´ ees, ` a l’int´ erieur des applications. XML langages ← → sch´ emas types documents ← → valeurs 12/70

  13. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XDuce (Hosoya, Vouillon, Pierce) Pour le programmeur Un langage pour la transformation de documents XML. Types ≃ DTD. Valeurs = arbres XML. Style fonctionnel. Fonctions r´ ecursives et filtrage. Th´ eorie Types = automates d’arbres � langages r´ eguliers d’arbres. Sous-typage = inclusion des langages. Regular Expression Types for XML (ICFP 2000). Regular Expression Pattern Matching for XML (POPL 2001). 13/70

  14. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion Sous-typage Sous-typage dans XDuce D´ efinition s´ emantique du sous-typage. Pourtant : Syst` eme de types : d´ epend du sous-typage. S´ emantique du langage : dirig´ ee par les types (filtrage). Paradoxe ? 14/70

  15. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion Sous-typage Sous-typage dans XDuce D´ efinition s´ emantique du sous-typage. Pourtant : Syst` eme de types : d´ epend du sous-typage. S´ emantique du langage : dirig´ ee par les types (filtrage). Paradoxe ? Non ! La s´ emantique des types ne d´ epend pas du langage. 15/70

  16. � � Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XDuce + ordre sup´ erieur ordre sup´ erieur XDuce ? ? ? 16/70

  17. � � Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion XDuce : descendance XDuce � � � � � ���������� � � � � � � � � � � � � � � � � � � � � � � � ❈ Duce XHaskell Xtatic XHaskell : types XDuce dans Haskell (sous-typage encod´ e dans les type classes ) ; pas de filtrage XML, pas de m´ elange entre XML et fonctions, pas de sous-typage s´ emantique. (Zhuo Ming Lu, Sulzmann.) Xtatic : types XDuce dans C # (sous-typage par nom pour les objets) ; filtrage limit´ e. Perte du cot´ e structurel des types. (Pierce, Schmitt, Gapeyev, Levin.) 17/70

  18. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion Objectif initial de la th` ese ´ Etendre l’approche ensembliste de XDuce ` a un calcul d’ordre sup´ erieur, qui permet de m´ elanger librement fonctions et documents XML, dans un cadre structurel. Cot´ e langage XDuce est un langage fonctionnel, mais sans ordre sup´ erieur : ¸ ca manque ! Plus sp´ ecialement pour XML : transformations param´ etrables de mani` ere modulaire, syst` emes de templates de premi` ere classe, . . . Cot´ e λ -calcul Prospectif 18/70

  19. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion Objectif initial de la th` ese ´ Etendre l’approche ensembliste de XDuce ` a un calcul d’ordre sup´ erieur, qui permet de m´ elanger librement fonctions et documents XML, dans un cadre structurel. Cot´ e langage Cot´ e λ -calcul D´ efi intellectuel : sous-typage ensembliste avec types r´ ecursifs, combinaisons bool´ eennes, constructeurs de types. Sous-typage ensembliste ( t ≤ s ⇐ ⇒ � t � ⊆ � s � ) : Facile ` a expliquer. Exhiber valeur pour illustrer t �≤ s . D´ efinition conceptuellement simple, ind´ ependante d’un algorithme ou d’un syst` eme axiomatique complexe. Prospectif 19/70

  20. Introduction ❈ Duce : aper¸ cu du langage Contexte, motivations, objectif initial Contributions th´ eoriques Conclusion Objectif initial de la th` ese ´ Etendre l’approche ensembliste de XDuce ` a un calcul d’ordre sup´ erieur, qui permet de m´ elanger librement fonctions et documents XML, dans un cadre structurel. Cot´ e langage Cot´ e λ -calcul Prospectif Interaction donn´ ees/comportements sur le web (formulaires,javascript,applets,servlets,. . . ) 20/70

  21. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Plan 1 Introduction Contexte, motivations, objectif initial ❈ Duce : aper¸ cu du langage 2 3 Contributions th´ eoriques Alg` ebre de types et sous-typage Noyau fonctionnel, syst` eme de types Aspects algorithmiques 4 Conclusion 21/70

  22. Introduction ❈ Duce : aper¸ cu du langage Contributions th´ eoriques Conclusion Aper¸ cu de ❈ Duce Types XML type Bib = [ Book* ] type Book = <book>[ Title Subtitle? Author+ ] type Title = <title>[ PCDATA ] type Subtitle = <title>[ PCDATA ] type Author = <author>[ PCDATA ] Fonctions et filtrage let title(Book -> String) <book>[ <title>x _* ] -> x 22/70

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend