Le problème est que tu n'attrapes pas grand chose comme erreur avec un système de typage.
Et les licornes roses ont de jolies ailes ! :-D
Tu te rends compte de ce que tu viens d'écrire ? D'une la quantité d'erreurs attrapées à la compilation dépend de l'expressivité du système de types, et de deux on peut pousser le système jusqu'à permettre de se dispenser totalement de tests unitaires. Exemple :
Traduction en français : pour tout programme C p, tout programme assembleur tp et tout comportement observable beh, si la fonction transf_c_prgram appliquée à p renvoie le programme tp et que beh est un comportement observable de tp en accord avec la sémantique ASM, alors il existe un comportement observable beh' de p conforme à la sémantique du C et tel que beh améliore beh'.
Autrement dit : la fonction transform_c_program est un compilateur optimisé du C vers l'assembleur préservant la sémantique du code source et certifié conforme ! Pas besoin de faire de tests unitaires : quand dans l'énoncé on quantifie sur tous les programmes et tous les comportements, on parle bien de l'infinité des programmes et des comportements possibles (on ne peut pas faire des tests unitaires sur une infinité de cas). :-)
Tu noteras au passage la notation transform_c_programm_preservation : blabla où blabla est tout à la fois le type et l'énoncé du théorème. ;-)
[^] # Re: Le cerveau n'est pas logique
Posté par kantien . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 4. Dernière modification le 20 octobre 2017 à 14:34.
Et les licornes roses ont de jolies ailes ! :-D
Tu te rends compte de ce que tu viens d'écrire ? D'une la quantité d'erreurs attrapées à la compilation dépend de l'expressivité du système de types, et de deux on peut pousser le système jusqu'à permettre de se dispenser totalement de tests unitaires. Exemple :
Traduction en français : pour tout programme C
p, tout programme assembleurtpet tout comportement observable beh, si la fonctiontransf_c_prgramappliquée àprenvoie le programmetpet quebehest un comportement observable detpen accord avec la sémantique ASM, alors il existe un comportement observablebeh'depconforme à la sémantique du C et tel quebehaméliorebeh'.Autrement dit : la fonction
transform_c_programest un compilateur optimisé du C vers l'assembleur préservant la sémantique du code source et certifié conforme ! Pas besoin de faire de tests unitaires : quand dans l'énoncé on quantifie sur tous les programmes et tous les comportements, on parle bien de l'infinité des programmes et des comportements possibles (on ne peut pas faire des tests unitaires sur une infinité de cas). :-)Tu noteras au passage la notation
transform_c_programm_preservation : blablaoùblablaest tout à la fois le type et l'énoncé du théorème. ;-)Plus de détails et de compléments dans la vidéo In search of software perfection - 2016 Milner Award lecture by Dr Xavier Leroy..
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.