Langage C : une nouvelle norme sur les pointeurs
mar, 08/07/2025 - 16:24
TS 6010 est une nouvelle spécification technique du langage C. Elle concerne la provenance des pointeurs lors de l'exécution d'un code C. Elle est normalisée sous le numéro ISO/IEC TS 6010. C'est l'aboutissement de 10 ans de travail entre Inria/iCube et les universités de Cambridge et de Graz. « Lors de l’exécution d’un programme, il arrive que deux valeurs de pointeurs renvoient vers le même objet en mémoire et, en cas d’erreur de programmation, cela peut entraîner des conflits d’interprétation. Ce risque, qui résulte d’un manque de précision dans la norme existante, est accentué par l’absence de consensus entre les fournisseurs de plateformes et les éditeurs de logiciels sur des aspects essentiels liés à l’utilisation comme au comportement de ces pointeurs » explique Jens Gustedt (directeur de recherche au sein de l’équipe CAMUS d'Inria, directeur-adjoint du laboratoire ICube).
Si l’un de ses principaux atouts est d’organiser un accès direct et efficace à la mémoire via des pointeurs, la gestion de ces derniers peut également constituer l’une de ses faiblesses. C’est pour tenter de réduire cette faille qu’a été conçue et développée une spécification mathématique pour la provenance de pointeurs en langage C. « Nous avons constaté qu’un compilateur pouvait interpréter un programme d’une façon que n’avait pas prévu le créateur de ce dernier, ce qui conduisait parfois à des bugs assez sévères. » À partir de la base de données tant technique que sociologique ainsi constituée, plusieurs solutions de résolution du problème identifié ont été modélisées. « Le but était de concevoir un outil facilement référençable qui découlerait d’un compromis entre les besoins des différentes parties prenantes. »
Une avancée importante dans la gestion de la mémoire qui pourrait influencer d'autres langages.

