Posté par thoasm .
En réponse au journal Un développeur qui dénonce.
Évalué à 4.
Dernière modification le 04 octobre 2018 à 18:59.
Ben c’est indécidable, il me semble, parce qu’il faudrait détecter les points de code inaccessibles. Or ça impliquerait de résoudre le problème de l’arrêt sur un programme tronqué jusqu’à ce point, ce qui est indécidable. https://cs.stackexchange.com/questions/49332/proof-that-dead-code-cannot-be-detected-by-compilers C’est donc bien pire que NP-complet si tu veux ne garder que le strict nécessaire, si on ne peut même pas savoir si un point du code, donc du graphe de dépendance des routines, est accessible, il est impossible de savoir si on doit garder ou pas ces dépendances.
Ça fait partie des nombreuses conséquences fâcheuses du problèmes de l’arrêt, sauf à se « limiter » à un langage comme Coq et les restrictions que ça implique. On est donc condamnés à l’incomplétude dans la détection de code mort, donc de routines mortes, dans tous les cas. Donc pas trop la peine de disserter sur les conséquences du polymorphisme dans ce contexte, on bloque au préalable :)
Et le tout sans même parler des bibliothèques pour lesquelles on a tout simplement pas de point d’entrée :)
[^] # Re: À boire et à manger
Posté par thoasm . En réponse au journal Un développeur qui dénonce. Évalué à 4. Dernière modification le 04 octobre 2018 à 18:59.
Ben c’est indécidable, il me semble, parce qu’il faudrait détecter les points de code inaccessibles. Or ça impliquerait de résoudre le problème de l’arrêt sur un programme tronqué jusqu’à ce point, ce qui est indécidable. https://cs.stackexchange.com/questions/49332/proof-that-dead-code-cannot-be-detected-by-compilers C’est donc bien pire que NP-complet si tu veux ne garder que le strict nécessaire, si on ne peut même pas savoir si un point du code, donc du graphe de dépendance des routines, est accessible, il est impossible de savoir si on doit garder ou pas ces dépendances.
Ça fait partie des nombreuses conséquences fâcheuses du problèmes de l’arrêt, sauf à se « limiter » à un langage comme Coq et les restrictions que ça implique. On est donc condamnés à l’incomplétude dans la détection de code mort, donc de routines mortes, dans tous les cas. Donc pas trop la peine de disserter sur les conséquences du polymorphisme dans ce contexte, on bloque au préalable :)
Et le tout sans même parler des bibliothèques pour lesquelles on a tout simplement pas de point d’entrée :)