Dans les faits, on ajoute des outils d'analyse statique de code à l'extérieur du compilateur pour pallier aux déficiences du système de types d'un langage. Et pour fonctionner, ces outils nécessitent habituellement l'ajout d'annotations au code sous forme de commentaires, annotations qui correspondent à un enrichissement du langage des types du langage de départ.
Pas forcément. Déjà j'en connais un paquet qui ne demandent aucune annotation particulière. Ensuite, il y en a qui vérifie des choses qui ne sont pas liées au typage comme des constructions qui pourraient être plus lente ou l'usage d'API que tu ne souhaite plus utiliser ou d'avoir des propriété dans tes sources (avoir une doc en commentaire dans tes API publiques avoir une complexité cyclomatiques en dessous d'un certain seuil). Enfin tu as des cas où, effectivement ça pourrait être géré par un typage sophistiqué, mais vraiment trop (j'entends pour être véritablement utilisable). Par exemple les vérifications de couplages faible, vérifier que tes types sont correctes,...
Toutes les discussions que l'on voit au dessus montrent justement qu'il y a suffisamment de façon de résoudre un problème pour que ça ne soit pas figé dans le langage. Pour autant tu peux vouloir, au sein d'un programme donné, n'autoriser qu'une seule solution à fin d'améliorer la cohérence.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Solution à base de types variants en ADA
Posté par barmic . En réponse à la dépêche Sortie de GHC 8.0.2 et une petite histoire de typage statique. Évalué à 3.
Pas forcément. Déjà j'en connais un paquet qui ne demandent aucune annotation particulière. Ensuite, il y en a qui vérifie des choses qui ne sont pas liées au typage comme des constructions qui pourraient être plus lente ou l'usage d'API que tu ne souhaite plus utiliser ou d'avoir des propriété dans tes sources (avoir une doc en commentaire dans tes API publiques avoir une complexité cyclomatiques en dessous d'un certain seuil). Enfin tu as des cas où, effectivement ça pourrait être géré par un typage sophistiqué, mais vraiment trop (j'entends pour être véritablement utilisable). Par exemple les vérifications de couplages faible, vérifier que tes types sont correctes,...
Toutes les discussions que l'on voit au dessus montrent justement qu'il y a suffisamment de façon de résoudre un problème pour que ça ne soit pas figé dans le langage. Pour autant tu peux vouloir, au sein d'un programme donné, n'autoriser qu'une seule solution à fin d'améliorer la cohérence.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)