object-oriented programming in the beta programming language
Language Oriented Programming
-
Upload
uriel-patton -
Category
Documents
-
view
24 -
download
0
description
Transcript of Language Oriented Programming
Language Oriented Programming
Didier Demange
IR3
Didier Demange - Language Oriented Programming
2
Plan
La programmation actuelle Language Oriented Programming Domain Specific Language Conclusion
Didier Demange - Language Oriented Programming
3
La programmation actuelle
Constatations Les principaux problèmes
La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion
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
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
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
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
Didier Demange - Language Oriented Programming
8
En pratique
Penser Choisir Réaliser
Ce qu’on fait habituellement
La programmation actuelleLanguage Oriented ProgrammingDomain Specific LanguageConclusion
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
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
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
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
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
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
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
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
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
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
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
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
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
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 »