Language Oriented Programming

23
Language Oriented Programming Didier Demange IR3

description

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 - PowerPoint PPT Presentation

Transcript of Language Oriented Programming

Page 1: Language Oriented Programming

Language Oriented Programming

Didier Demange

IR3

Page 2: Language Oriented Programming

Didier Demange - Language Oriented Programming

2

Plan

La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion

Page 3: Language Oriented Programming

Didier Demange - Language Oriented Programming

3

La programmation actuelle

Constatations Les principaux problèmes

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 4: Language Oriented Programming

Didier Demange - Language Oriented Programming

4

Constatations

Programmer est difficilePenser comme un ordinateurTout est faisable, mais à quel prix ?Cadre de développement rigide

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 5: Language Oriented Programming

Didier Demange - Language Oriented Programming

5

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

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 6: Language Oriented Programming

Didier Demange - Language Oriented Programming

6

Language Oriented Programming

Présentation En pratique Cas d’utilisation Avantages Inconvénients

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 7: Language Oriented Programming

Didier Demange - Language Oriented Programming

7

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

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 8: Language Oriented Programming

Didier Demange - Language Oriented Programming

8

En pratique

Penser Choisir Réaliser

Ce qu’on fait habituellement

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 9: Language Oriented Programming

Didier Demange - Language Oriented Programming

9

Ce que propose la LOP

En pratique

Penser

Choisir

Réaliser

Créer

DSL

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 10: Language Oriented Programming

Didier Demange - Language Oriented Programming

10

Quand l’utiliser ?

Le programme concerne-t-il un problème en particulier ?

Le programme fera-t-il partie d’une suite ?

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 11: Language Oriented Programming

Didier Demange - Language Oriented Programming

11

Avantages

Grande productivité de développement Facilement maintenable Extrêmement portable Possibilité de réutilisation Système améliorable par l’utilisateur

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 12: Language Oriented Programming

Didier Demange - Language Oriented Programming

12

Inconvénients

Façonner correctement un DSL est difficileNécessité de connaître le domaineCompétence requises en programmation

Nécessité de créer ses outils Risque de s’éloigner des contraintes

d’efficacité

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 13: Language Oriented Programming

Didier Demange - Language Oriented Programming

13

Domain Specific Language

Présentation Contexte d’utilisation Les différents DSL Création d’un DSL Outils Exemples

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 14: Language Oriented Programming

Didier Demange - Language Oriented Programming

14

Présentation

Un langage de programmation à part entière Structure Éditeur Sémantique

Différentes représentations Langages à diagrammes Abstraction de programmation Langages textuels

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 15: Language Oriented Programming

Didier Demange - Language Oriented Programming

15

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

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 16: Language Oriented Programming

Didier Demange - Language Oriented Programming

16

Les différents DSL

DSL « interne » Métamorphose un GPL en DSL

Ses forcesDispose de la puissance du langage de baseRéduit le coût en outils

Sa faiblesseLimité par le langage de base

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 17: Language Oriented Programming

Didier Demange - Language Oriented Programming

17

Les différents DSL

DSL « externe »Écrit dans un langage unique

Ses forcesLiberté d’expressionSimplicité d’utilisation

Sa faiblesseNécessité de créer ses propres outils

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 18: Language Oriented Programming

Didier Demange - Language Oriented Programming

18

Création d’un DSL

Définir une structure Créer un éditeur Mettre en place la sémantique

Définir des règlesCréer un « traducteur » ou un générateur

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 19: Language Oriented Programming

Didier Demange - Language Oriented Programming

19

Outils

Pourquoi un éditeur ?Créer, réutiliser, modifier un langage

Quelques exemples Intentional Software, Intentional SoftwareMeta-Programming System, JetBrainsSoftwareFactories, Microsoft

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 20: Language Oriented Programming

Didier Demange - Language Oriented Programming

20

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 …

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 21: Language Oriented Programming

Didier Demange - Language Oriented Programming

21

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

La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion

Page 22: Language Oriented Programming

Didier Demange - Language Oriented Programming

22

Merci de votre attention !

Page 23: Language Oriented Programming

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 »