je crois que Nix n'est pas un DSL mais un vrai langage turing-complet
Un DSL peut être un langage turing-complet, c'est juste un langage crée pour un besoin spécifique. Contrairement à un langage générique qui ne fait pas de supposition sur le besoin d'application.
Et c'est hyper flou (au moins autant que la difference entre POO et fonctionel, ou langage de script versus vrai programme). Les templates C++ sont un DSL (c'est fait pour faire de la manipulation de type) et sont pourtant considérés turing-complet (https://rtraba.files.wordpress.com/2015/05/cppturing.pdf). Est-ce que les C est un langage génerique, ou un DSL adapté à la programmation système bas niveau ? Est-ce que Haskell est un langage générique, ou un DSL adapté à la création de compilateur ?
Et parlons des EDSL, des DSL "embarqués" dans un langage. Quel est la différence entre un EDSL et une librairie avec une API bien pensée ?
Bref, pour moi c'est encore un de ces concept peu défini en informatique que tout le monde utilise sans que personne ne soit vraiment d'accord sur la définition.
[^] # Re: Similaire à NixOS
Posté par Guillaum (site web personnel) . En réponse à la dépêche GNU Guix 1.2.0 est publié. Évalué à 4.
Un DSL peut être un langage turing-complet, c'est juste un langage crée pour un besoin spécifique. Contrairement à un langage générique qui ne fait pas de supposition sur le besoin d'application.
Et c'est hyper flou (au moins autant que la difference entre POO et fonctionel, ou langage de script versus vrai programme). Les templates C++ sont un DSL (c'est fait pour faire de la manipulation de type) et sont pourtant considérés turing-complet (https://rtraba.files.wordpress.com/2015/05/cppturing.pdf). Est-ce que les C est un langage génerique, ou un DSL adapté à la programmation système bas niveau ? Est-ce que Haskell est un langage générique, ou un DSL adapté à la création de compilateur ?
Et parlons des EDSL, des DSL "embarqués" dans un langage. Quel est la différence entre un EDSL et une librairie avec une API bien pensée ?
Bref, pour moi c'est encore un de ces concept peu défini en informatique que tout le monde utilise sans que personne ne soit vraiment d'accord sur la définition.