Alors que Bjarne Stroustrup, le créateur du langage C++, lançait la semaine dernière un appel à la communauté pour défendre ce langage de programmation, au même moment le développeur Robin Rowe a apporté sa pierre à l'édifice. En cours de développement, TrapC, un dérivé du langage C, pourrait ainsi offrir une solution aux problèmes de sécurité de la mémoire qui ont entravé les langages C et C++. « TrapC est un projet de compilateur d'extension du langage C destiné à être mis en œuvre en tant que compilateur de cybersécurité pour le code C et C++ », a déclaré le développeur Robin Rowe à l'origine de ce projet. « TrapC, c'est un peu comme si l'on souhaitait rendre le langage C sûr pour la mémoire et qu'il ressemble un peu plus au langage C++, mais pas au point de devenir difficile à apprendre comme le langage C++. Le code C peut être plus sûr avec constructors et destructors C++ », a poursuivi M. Rowe. Pour lui, les langages « devraient être sûrs par défaut, et non pas se tromper parce qu’un programmeur a omis de vérifier la présence d'un code d'erreur ». Attendu pour la fin de l'année, « TrapC sera open source et gratuit, à l’image de Clang et C++ », a encore indiqué le développeur.
Les pointeurs de TrapC résolvent le problème de sécurité de la mémoire dans les deux langages sans la compromettre. Le compilateur « est une extension du langage de programmation C qui supprime les mots-clés goto et union, ajoute les mots-clés trap et alias, et adopte quelques caractéristiques du C++ qui améliorent la sécurité, comme constructors et destructors », a expliqué M. Rowe. « Il propose également quelques fonctionnalités qui n'existent pas en C ou en C++. Bien qu'il s'agisse d'un langage de programmation minimaliste comportant le même nombre de mots-clés que le C, TrapC offre une compatibilité étonnante avec le code C++ », a-t-il affirmé.
Une initiative pas isolée pour sécuriser la mémoire de C/C++
Robin Rowe a présenté TrapC lors d'une réunion de l'ISO C organisée la semaine dernière. Les développeurs peuvent télécharger un livre blanc sur TrapC et faire part de leurs commentaires développeur. Selon ce livre blanc, la gestion de la mémoire de TrapC est automatique et ne peut pas provoquer de fuites de mémoire. Les pointeurs sont gérés à vie et ne sont pas collectés par les ramasse-miettes. De plus, l'outil réutilise quelques caractéristiques de sécurité du code de C++, notamment member functions, constructors, destructors et le mot-clé new. A noter que TrapC n'est pas la seule tentative de traiter la sécurité de la mémoire en C ou en C++. C'es aussi le cas de C++ Partnership qui a travaillé sur le projet Safe C++ Extensions pour remédier à la sécurité de la mémoire en C++. Mais selon Robin Rowe, les autres propositions n'offraient pas la sécurité complète de la mémoire apportée par TrapC.
Commentaire