• [^] # Re: Le compilateur ne fait pas ça ?

    Posté par (site web personnel) . En réponse au journal Des outils d'audit de code Java. Évalué à 2.

    Ca a été un peu dit plus haut, mais en gros ce n'est pas possible car Java fait de la compilation séparée.

    Java, comme la plupart des langages objet fonctionne sur le principe de "Open World Assumption" : le code compilé peut recevoir du code par la suite, au runtime (plugin, etc...)

    Ce que tu propose implique de partir sur du CWA ( Closed World Asumption), qui consiste à travailler sur la fermeture transitive du graphe du code où là tu peux virer le code mort. Les compilateurs basés là dessus sont rares (SmartEiffel et Lisaac à ma connaissance)

    Gcc le fait en partie car sur du code procédural comme du C, c'est faisable. Sur de l'objet, c'est beaucoup plus compliqué, car le typage devenant dynamique, tu te retrouves avec des sites d'appels dans tous les sens et ta complexité explose (np complet).

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker