1 / 23

Language Oriented Programming

Language Oriented Programming. Didier Demange IR3. Plan. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion. La programmation actuelle. Constatations

Download Presentation

Language Oriented Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Language Oriented Programming Didier Demange IR3

  2. Plan • La programmation actuelle • Language Oriented Programming • Domain Specific Language • Conclusion Didier Demange - Language Oriented Programming

  3. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion La programmation actuelle • Constatations • Les principaux problèmes Didier Demange - Language Oriented Programming

  4. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Constatations • Programmer est difficile • Penser comme un ordinateur • Tout est faisable, mais à quel prix ? • Cadre de développement rigide Didier Demange - Language Oriented Programming

  5. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Les principaux problèmes • Implémenter des idées est long • Humain vs CPU : concepts haut niveau contre opérations simples • OOD long et pas forcément nécessaire • Comprendre et maintenir du code est difficile • Opérations « atomiques » vers concept haut niveau • Documentation difficilement liée au code • Extensions de langage hors de portée • Librairie = abstraction bas niveau de concepts • Non reconnues par les outils de développement Didier Demange - Language Oriented Programming

  6. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Language Oriented Programming • Présentation • En pratique • Cas d’utilisation • Avantages • Inconvénients Didier Demange - Language Oriented Programming

  7. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Présentation • Le but • Simplifier la programmation en manipulant des notions du problème que l’on souhaite résoudre • La LOP c’est • Une façon de penser objet • La réutilisation • La LOP ce n’est pas • La solution à tout • Un langage de programmation Didier Demange - Language Oriented Programming

  8. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Réaliser En pratique • Ce qu’on fait habituellement Penser Choisir Didier Demange - Language Oriented Programming

  9. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion En pratique • Ce que propose la LOP DSL Choisir Penser Réaliser Créer Didier Demange - Language Oriented Programming

  10. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Quand l’utiliser ? • Le programme concerne-t-il un problème en particulier ? • Le programme fera-t-il partie d’une suite ? Didier Demange - Language Oriented Programming

  11. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Avantages • Grande productivité de développement • Facilement maintenable • Extrêmement portable • Possibilité de réutilisation • Système améliorable par l’utilisateur Didier Demange - Language Oriented Programming

  12. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Inconvénients • Façonner correctement un DSL est difficile • Nécessité de connaître le domaine • Compétence requises en programmation • Nécessité de créer ses outils • Risque de s’éloigner des contraintes d’efficacité Didier Demange - Language Oriented Programming

  13. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Domain Specific Language • Présentation • Contexte d’utilisation • Les différents DSL • Création d’un DSL • Outils • Exemples Didier Demange - Language Oriented Programming

  14. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Présentation • Un langage de programmation à part entière • Structure • Éditeur • Sémantique • Différentes représentations • Langages à diagrammes • Abstraction de programmation • Langages textuels Didier Demange - Language Oriented Programming

  15. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Contexte d’utilisation • En standalone • Utilisé par un GPL • Encapsulé dans une application • Implémenté avec un système de programmation par macros puis transformé en GPL Didier Demange - Language Oriented Programming

  16. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Les différents DSL • DSL « interne » • Métamorphose un GPL en DSL • Ses forces • Dispose de la puissance du langage de base • Réduit le coût en outils • Sa faiblesse • Limité par le langage de base Didier Demange - Language Oriented Programming

  17. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Les différents DSL • DSL « externe » • Écrit dans un langage unique • Ses forces • Liberté d’expression • Simplicité d’utilisation • Sa faiblesse • Nécessité de créer ses propres outils Didier Demange - Language Oriented Programming

  18. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Création d’un DSL • Définir une structure • Créer un éditeur • Mettre en place la sémantique • Définir des règles • Créer un « traducteur » ou un générateur Didier Demange - Language Oriented Programming

  19. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Outils • Pourquoi un éditeur ? • Créer, réutiliser, modifier un langage • Quelques exemples • Intentional Software, Intentional Software • Meta-Programming System, JetBrains • SoftwareFactories, Microsoft Didier Demange - Language Oriented Programming

  20. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Exemples • Ils existent ! • SQL : gestion de bases de données • Shell : gestion de systèmes de fichiers • POV : ray-tracing d’images • Csound : création de fichiers audio • … • Et pourquoi pas • Un DSL qui gère les salaires • Un DSL de simulation de combat • … Didier Demange - Language Oriented Programming

  21. La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion Conclusion • LOP résout un problème particulier • LOP est simple mais peut-être coûteux • DSL peut être un complément aux GPL… ou pas Didier Demange - Language Oriented Programming

  22. Merci de votre attention ! Didier Demange - Language Oriented Programming

  23. Webographie • M.P. Ward « Language Oriented Programming » • TheLop • Microsoft MSDN • Wikipedia • M. Fowler « Language Workbenches » • S. Dmitriev « LOP : The Next programming Paradigm » Didier Demange - Language Oriented Programming

More Related