135 votes

Qu'est-ce qu'un langage spécifique à un domaine ? Quelqu'un l'utilise-t-il ? Et de quelle manière ?

Je pense que je suis à la recherche d'une sorte d'introduction et je cherche à savoir si quelqu'un l'a utilisé. Y a-t-il des avantages particuliers à l'utiliser ?

Wikipedia :

langage spécifique au domaine (DSL) est un langage de programmation ou un langage de spécification dédié à un domaine de problème particulier, à une technique de représentation de problème particulière et/ou à une technique de solution particulière.

Quelqu'un peut-il donner des exemples précis de la façon dont vous l'avez mis en œuvre ou de la manière dont il peut être utile dans un scénario donné ?

9voto

Abdul Rehman Points 335

Il y a beaucoup de choses expliquées ci-dessus. Je vais essayer d'expliquer cela d'une manière beaucoup plus simple que quelqu'un comme moi pourra comprendre.

Alors que les langages à usage général sont utilisés à des fins très diverses, le DSL n'est conçu que pour un domaine spécifique. Comme HTML ou CSS.

Vous pouvez dire que vous avez écrit des instructions pour un document que seule une personne ou votre meilleur ami peut comprendre et que personne d'autre ne peut comprendre. Dans ce cas, il peut s'agir d'une LIS. Mais si vous avez écrit des instructions en des termes que de nombreuses personnes peuvent comprendre et suivre, il ne s'agit pas d'une LIS.

J'ai créé une carte de commutation pour l'utilisateur qui peut être utilisée via le port série d'un ordinateur et l'utilisateur veut un programme pour cette carte qui peut être exécuté sur cette carte et les commutateurs de relais seront activés et désactivés en conséquence. J'ai donc rédigé quelques instructions et j'ai demandé à l'utilisateur de programmer cette carte conformément à ces instructions. C'est un exemple de DSL. Je n'ai pas inventé un nouveau langage, j'ai simplement créé un ensemble de chaînes de caractères que le microcontrôleur peut lire à partir de l'EEPROM et qu'il peut analyser en conséquence pour effectuer une tâche spécifique.

8voto

James Black Points 26183

Un DSL est un bon moyen de développer un langage destiné à être utilisé par des non-programmeurs. Par exemple, si vous disposez d'un DSL pour les responsables financiers d'une entreprise, plutôt que de programmer selon leurs spécifications, vous pouvez simplement les laisser écrire le programme qu'ils souhaitent. Ensuite, s'il est trop lent, vous pouvez prendre ce qu'ils ont écrit et qui fonctionne comme ils le souhaitent, et l'écrire dans un langage compilé pour l'accélérer.

6voto

Adam Points 2285

J'ai rédigé un bref article de blog expliquant pourquoi j'aime utiliser les DSL :

J'aimerais que nous utilisions davantage les langages spécifiques au domaine (DSL)

J'y définis la DSL comme suit :

Un petit langage de programmation spécifiquement conçu pour communiquer des solutions pour un domaine particulier de problèmes.

En termes d'utilisation, si vous avez déjà utilisé Ant, Structured Query Language (SQL) ou Cascading Style Sheets (CSS), vous avez utilisé un DSL.

J'aime utiliser les DSL parce qu'ils se concentrent sur la facilitation de la communication de solutions à des espaces de problèmes spécifiques et qu'ils le font d'une manière qui favorise l'inclusion d'experts du domaine.

3voto

Abraham Romero Points 363

Je n'ai entendu parler de la DSL que récemment, mais j'ai trouvé un exemple très utile : LUNA (anciennement lunascript).

Il s'agit d'un langage de programmation/framework personnalisé créé par l'équipe d'Asana pour sa propre plateforme.

Comme je l'ai constaté par ailleurs, de nombreuses entreprises créent leurs propres cadres et langages afin de se doter d'un avantage concurrentiel, par exemple :

  • SAP avec AbAp
  • PeopleSoft avec PeopleCode
  • Apple avec Objective-C
  • Facebook a des choses comme FBML et FQL

Ceux-ci sont spécifiques à un domaine car vous les utiliserez presque exclusivement pour travailler sur ces plateformes.

J'espère que cette réponse vous aidera à clarifier le concept.

3voto

Anil Kumar Points 439

Un exemple simple de langage spécifique à un domaine (DSL) est le HTML qui est utilisé pour le domaine particulier des applications basées sur le web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X