- Domain-specific programming language
-
Langage dédié
En informatique on distingue deux types de langages : les langages généralistes (General Purpose Languages) comme PL/1, Ada ou C++, et les langages dédiés (Domain Specific Languages ou DSL) comme les langages de formules dans un tableur.Un langage dédié peut être défini par une grammaire ou par un métamodèle.
Sommaire
Contexte
Un langage dédié est créé pour résoudre certains problèmes spécifiques dans un domaine particulier, et n'a en principe pas vocation à résoudre des problèmes en dehors de ce contexte. En comparaison, on crée des langages généralistes pour résoudre des problèmes dans beaucoup de domaines. Les langages généralistes sont nécessairement "Turing Complete".
Le domaine peut aussi être un domaine de gestion. Des exemples de domaines de gestion sont :
- les langages dédiés de polices d'assurance vie, développés en interne de grandes compagnies d'assurance ;
- les langages dédiés de simulation de combat ;
- les langages dédiés de calcul de salaire ;
- les langages dédiés de facturation.
Utilisation en ingénierie logicielle
On s'est beaucoup intéressé aux langages dédiés pour améliorer la productivité et la qualité de l'ingénierie logicielle. Les langages dédiés peuvent fournir un ensemble robuste d'outils pour une ingénierie logicielle efficace. De tels outils commencent à faire leurs preuves dans le développement du logiciel associé à des systèmes critiques.
Le kit SCR (Software Cost Reduction) en est un exemple [1]. Ce kit est une suite d'utilitaires qui incluent une spécification d'éditeur pour créer une spécification d'exigences, un browser graphique de dépendance pour afficher des dépendances variables, un outil de vérification de cohérence pour trouver les cas manquants dans les formules de spécification, un vérificateur de modèle, un outil permettant de vérifier les propriétés du programme par rapport à la spécification, et un générateur d'invariant qui construit automatiquement des invariants sur la base des exigences.
On trouve un nouveau développement dans la programmation orientée langage, une méthodologie intégrée d'ingénierie logicielle basée principalement sur la création, l'optimisation, et l'utilisation des langages dédiés.
Avantages
- Les langages dédiés permettent d'exprimer des solutions avec les tournures idiomatiques au niveau d'abstraction du domaine traité. En conséquence, les experts du domaine eux-mêmes peuvent comprendre, valider, modifier, et souvent même développer des programmes en langage dédié.
- Les langages dédiés facilitent la documentation du code.
- Les langages dédiés améliorent la qualité, la productivité, la fiabilité, la maintenabilité, la portabilité et les possibilités de réutilisation.
- Les langages dédiés permettent la validation au niveau du domaine. Aussi longtemps que les éléments du langage sont sûrs, toute phrase écrite avec ces éléments peut être considérée comme sûre.
Inconvénients
Exemples de langages dédies
- Lex et Yacc : langages dédié à la création de parseurs;
- csound : langage dédié à la musique;
- La macro «loop» de Common Lisp : langage dédié aux boucles.
Catégorie : Langage informatique
Wikimedia Foundation. 2010.