Le prĂ©sident de l'organisation C++ Alliance a annoncĂ© le travail sur une spĂ©cification ajoutant au langage C++ des extensions pour un travail sĂ©curisĂ© avec la mĂ©moire, rappelant les capacitĂ©s mises en Ćuvre dans le langage Rust. Pour mener Ă bien le projet, Sean Baxter, auteur du compilateur C++ expĂ©rimental Circle, a Ă©tĂ© recrutĂ©. Ce compilateur dĂ©veloppe des idĂ©es visant Ă amĂ©liorer la sĂ©curitĂ© du code C++, mises en Ćuvre du cĂŽtĂ© du compilateur sans utiliser de ramasse-miettes. Dans le cadre du projet, Sean a publiĂ© un document analysant l'applicabilitĂ© de certaines mesures de protection proposĂ©es dans le langage Rust, Ă©valuant la possibilitĂ© de leur mise en Ćuvre pour C++, et proposant l'ajout d'extensions au langage C++ pour amĂ©liorer la sĂ©curitĂ© du code.
Il est à noter que l'initiative a été lancée en réponse à la demande croissante des développeurs pour des méthodes de programmation sécurisées, visant à intégrer dans le langage C++ de nouvelles fonctionnalités permettant de se protéger contre les erreurs courantes lors de la gestion de la mémoire, telles que l'accÚs à une mémoire déjà libérée et le dépassement des limites des buffers alloués. Les compléments sont développés en tant qu'options qui permettront de migrer progressivement les projets vers des méthodes sûres, tout en maintenant la compatibilité avec le code « non sécurisé » existant.
La sĂ©curitĂ© du travail avec la mĂ©moire est proposĂ©e via des mĂ©canismes mis en Ćuvre au stade de la compilation et n'entraĂźnant pas de frais supplĂ©mentaires, propres aux langages utilisant des ramasse-miettes. Parmi les principales mĂ©thodes de sĂ©curitĂ© proposĂ©es, on mentionne le suivi de la propriĂ©tĂ© des objets, la vĂ©rification de l'emprunt des variables (borrow checker), l'utilisation du contexte sĂ©curisĂ© (safe), et la crĂ©ation des interfaces std2::send et std2::sync. Le travail couvre Ă©galement la crĂ©ation d'une version sĂ©curisĂ©e de la bibliothĂšque standard, proposant des implĂ©mentations d'algorithmes et de structures de donnĂ©es permettant de travailler de maniĂšre sĂ©curisĂ©e avec la mĂ©moire.
Source : opennet.ru
