Un langage dédié (DSL) est un petit langage optimisé pour un domaine précis. Parce qu'un DSL est ciblé, il peut grandement améliorer la productivité et la compréhension, en permettant à celui qui l'écrit de déclarer ce qu'il veut plutôt que comment y parvenir.
L'un des domaines où on les rencontre est celui des personnalisations et configurations complexes.
Par exemple, le langage DOT permet d'écrire une description textuelle d'un graphe, qui est ensuite transformée en image par l'un des outils Graphviz (comme dot).
Un graphe simple ressemble à ceci :
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
Si on met ceci dans un fichier example.dot et qu'on exécute dot example.dot -T png -o example.png, on obtient une image example.png avec un cercle rouge et un cercle bleu reliés par une ligne verte sur un fond jaune.
Écris un langage dédié similaire au langage dot de Graphviz.
Notre DSL est similaire au langage dot de Graphviz en ce sens qu'il servira à créer des structures de données de graphe. Toutefois, contrairement au langage DOT, notre DSL sera un DSL interne, destiné à n'être utilisé que dans notre langage.
Pour en savoir plus sur la différence entre les DSL internes et externes.
Cet exercice attend de toi que tu construises plusieurs structures en utilisant le builder pattern.
En bref, ce pattern permet de découper la fonction de construction de la structure, qui prend beaucoup d'arguments, en
plusieurs fonctions distinctes. Cette approche te donne les moyens de construire et de configurer des structures de façon
compacte mais très flexible.
Pour en savoir plus, consulte la page suivante.
Inscris-toi sur Exercism pour apprendre et maîtriser Rust avec 99 exercices, et un vrai mentorat humain, le tout gratuitement.