J'ai lu des articles sur les types dépendants et les contrats de programmation. D'après la majorité de ce que j'ai lu, il semble que les contrats soient des contraintes vérifiées dynamiquement et que les types dépendants soient vérifiés statiquement.
Certains documents m'ont fait penser qu'il était possible d'avoir des contrats partiellement vérifiés statiquement:
- Vérification de type hybride (C. Flanagan - 2006)
- Unification des types et des contrats hybrides (J. Gronski, C. Flanagan - 2007)
Avec cela, il semble y avoir un chevauchement important et ma catégorisation des contrats par rapport aux types dépendants commence à disparaître.
Y a-t-il quelque chose de plus profond dans l'un ou l'autre des concepts qui me manque? Ou s'agit-il vraiment de catégories floues de représentation du même concept sous-jacent?