IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

C++ sous stéroïdes : Bjarne Stroustrup présente des « profils » renforcés par des lignes directrices pour la sécurité des ressources et des types
Afin de garantir que le code est contemporain et sûr

Le , par Jade Emy

2PARTAGES

8  0 
Bjarne Stroustrup a présenté des « profils » renforçant les lignes directrices pour la sécurité des ressources et des types de C++. Ces profils sont un moyens de s'assurer que le code soit contemporain, plutôt que de s'appuyer sur des techniques dépassées, peu sûres et difficiles à maintenir.

Le C++ est un langage de programmation général de haut niveau. Publié pour la première fois en 1985 en tant qu'extension du langage de programmation C, il s'est considérablement développé au fil du temps. Depuis 1997, le C++ possède des caractéristiques orientées objet, génériques et fonctionnelles, ainsi que des fonctions de manipulation de la mémoire de bas niveau pour des systèmes tels que les micro-ordinateurs ou pour créer des systèmes d'exploitation tels que Linux ou Windows. Il est généralement implémenté en tant que langage compilé, et de nombreux fournisseurs proposent des compilateurs C++.

Le C++ a été créé par l'informaticien danois Bjarne Stroustrup. Il a notamment dirigé le département de recherche sur la programmation à grande échelle aux Bell Labs, a été professeur d'informatique à l'université Texas A&M et a passé plus d'une décennie chez Morgan Stanley tout en étant professeur invité à l'université Columbia. Depuis 2022, il est professeur titulaire à Columbia.

Récemment, Bjarne Stroustrup a présenté des « profils » renforçant les lignes directrices pour la sécurité des ressources et des types de C++. "Cela fait maintenant plus de 45 ans que le C++ a été conçu", écrit Bjarne Stroustrup dans un article publié cette semaine dans Communications of the ACM. Il se plaint que de nombreux développeurs "utilisent le C++ comme s'il s'agissait encore du millénaire précédent", dans un article intitulé 21st Century C++ qui promet "les concepts clés sur lesquels des logiciels C++ performants, sûrs et flexibles peuvent être construits : la gestion des ressources, la gestion de la durée de vie, la gestion des erreurs, la modularité et la programmation générique...".


Bjarne Stoustrup présente des moyens de s'assurer que le code soit contemporain, plutôt que de s'appuyer sur des techniques dépassées, peu sûres et difficiles à maintenir : les lignes directrices et les profils.

Pour aider les développeurs à se concentrer sur l'utilisation efficace du C++ contemporain et à éviter les « coins sombres » obsolètes du langage, des ensembles de lignes directrices ont été élaborés. Je me concentre ici sur les lignes directrices du C++ Core que je considère comme les plus ambitieuses... Mon objectif principal est une utilisation de la norme ISO C++ sans danger pour les types et les ressources. En d'autres termes :

- Chaque objet est exclusivement utilisé conformément à sa définition
- Aucune ressource n'est perdue.

Cela englobe ce que les gens appellent la sécurité de la mémoire et bien plus encore. Il ne s'agit pas d'un nouvel objectif pour le C++. Il est évident qu'il ne peut pas être atteint pour chaque utilisation du C++, mais nous avons maintenant des années d'expérience montrant que c'est possible pour le code moderne, bien que jusqu'à présent l'application ait été incomplète... Lorsque l'on pense au C++, il est important de se rappeler que le C++ n'est pas seulement un langage, mais qu'il fait partie d'un écosystème composé d'implémentations, de bibliothèques, d'outils, d'enseignement, et plus encore.
Le WG21 (et d'autres) travaille sur des « profils » pour mettre en œuvre des lignes directrices (bien qu'ils ne soient "pas encore disponibles, à l'exception de versions expérimentales et partielles"). Mais Stroustrup annonce que les directives de base du C++ "utilisent une stratégie connue sous le nom de sous-ensemble de sous-ensemble".

Premièrement : étendre le langage avec quelques abstractions de bibliothèque : utiliser des parties de la bibliothèque standard et ajouter une minuscule bibliothèque pour rendre l'utilisation des directives pratique et efficace (la bibliothèque de soutien des directives, GSL).
Ensuite : sous-ensemble : interdire l'utilisation de fonctionnalités de bas niveau, inefficaces et sujettes aux erreurs.

Ce que nous obtenons, c'est du "C++ sous stéroïdes" : Quelque chose de simple, sûr, flexible et rapide, plutôt qu'un sous-ensemble appauvri ou quelque chose qui repose sur une vérification massive au moment de l'exécution. Nous ne créons pas non plus un langage avec des caractéristiques nouvelles et/ou incompatibles. Le résultat est 100% ISO standard C++. Les fonctionnalités de bas niveau, désordonnées et dangereuses, peuvent toujours être activées et utilisées en cas de besoin.
Stroustrup écrit que les directives de base du C++ se concentrent sur des règles "dont nous espérons que tout le monde pourra éventuellement bénéficier".

  • Pas de variables non initialisées
  • Pas de violation de plage ou de nullptr
  • Pas de fuites de ressources
  • Pas de pointeurs pendants
  • Pas de violation de type
  • Pas d'invalidation


Pour rappel, Bjarne Stroustrup, créateur du langage C++, a 74 ans. Il avait raconté qu'il est devenu programmeur par erreur, en se trompant de mot au moment de choisir ce qu'il allait étudier après ses examens de fin d'études secondaires. Stroustrup pensait s'inscrire à un cours de mathématiques appliquées, qui s'est avéré être un cours d'informatique. Maintenant, il est l'un des piliers du langage C++.

Source : Article 21st Century C++

Et vous ?

Pensez-vous que ses conseils sont crédibles ou pertinents ?
Quel est votre avis sur le sujet ?

Voir aussi :

Bjarne Stroustrup publie un article dans lequel il explique comment C++ a réussi à s'épanouir, dans un monde surpeuplé de langages et changeant de 2006 à 2020

Vers un C++ plus sûr ? Avec les extensions Safe C++, la communauté veut répondre aux défis modernes de la sécurité des logiciels, dans un contexte où plusieurs recommandent de le remplacer par des alternatives

Les deux factions du C++ : la communauté est divisée entre ceux qui souhaitent un C++ moderne avec un meilleur outillage intégré et ceux qui veulent conserver le langage hérité

Une erreur dans cette actualité ? Signalez-nous-la !