Question

Un DSL ne pourrait-il pas être aussi simple qu’une API et n’a donc pas besoin d’un analyseur syntaxique? Ou est-ce que je comprends mal ce qu'est vraiment une langue spécifique à un domaine? Je pensais que cela faisait référence à tout ensemble organisé de règles permettant de résoudre un problème de domaine particulier. Une API semblerait correspondre à cette définition, non?

Était-ce utile?

La solution

Vous pouvez intégrer un DSL dans un langage de programmation plus général. C'est souvent une bonne solution. (On pourrait dire que cette DSL prend la forme d'une API particulière.)

Vous pouvez également créer une langue distincte, avec son propre interpréteur, pour représenter les concepts de votre domaine. Il s’agit généralement d’une entreprise plus vaste et souvent inutile.

Autres conseils

Vous confondez le concept avec la mise en œuvre. Un langage spécifique à un domaine est toute représentation d'une idée qui est considérée comme & Quot; close & Quot; au domaine des problèmes, plutôt que d’être un langage général pour la description de la résolution de problèmes en général.

Oui, un DSL peut être implémenté en tant qu'API, qui fournit des fonctions faisant référence à des concepts particuliers dans le domaine du problème, mais un DSL est également valide lorsqu'il est représenté sous forme de fichier texte.

Le programmeur pragmatique: de compagnon à maître contient une bonne description des DSL et des circonstances dans lesquelles ils sont utiles, avec des exemples. Fortement recommandé.

Vous n'auriez toujours que la sémantique du langage hôte.

Exemple: la programmation fonctionnelle dans un langage impératif ne fonctionne pas. Donc, vous avez un DSL fonctionnel ajouté à ce langage impératif ...

Oui, absolument - une API simple fera très bien office de DSL si le langage hôte dispose d'une flexibilité suffisante pour le prendre en charge.

Ruby est un très bon langage pour cela, en particulier compte tenu des options optionnelles de parens et autres flexibilités.

  • Rails est souvent appelé DSL pour l'écriture de sites Web basés sur des bases applications.

  • Rake est un système de compilation avec DSL pour écrire des makefiles (plus intelligents).

Mon propre OOFILE est un cadre que vous pouvez considérer comme un DSL pour l'écriture de base de données. applications en C ++ - inspiré de dBase, il utilise beaucoup la surcharge d’opérateurs C ++, les objets locaux et les idiomes de flux.

Classiquement, Forth est un langage qui estompe la ligne de démarcation entre DSL et API en tant que programme Forth consiste en une série de mots séparés par une espace. L’exemple le plus impressionnant de Forth DSL est sans doute le Abondance - L’abondance est un Forth- langage de programmation d’entreprise basé sur BBL Forth. BBL est un compilateur DOS FORTH 32 bits. Distribué tel quel. Voir les avertissements. Ce n'est pas pour les timides. Cela intéresserait principalement ceux qui développent des logiciels pour le tiers monde et qui ont besoin d’une exécution rapide sur les vieux ordinateurs Klunker XT et AT. Vous pouvez écrire avec lui des programmes de saisie de données très sophistiqués qui encercleront les programmes de saisie de données modernes.

Et bien sûr, un DSL graphique ne nécessiterait aucune analyse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top