Discussion:Programmation Python/Avant-propos

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Bonjour. Il me semblait que C et C++ étaient des langages différents. Pourtant, je lis : "Le langage dominant y est sans conteste C/C++." Un avis, svp ? Domsau2 (discussion) 22 février 2015 à 01:42 (CET)

Le C++ inclut le C (compatibilité ascendante). JackPotte ($) 22 février 2015 à 09:28 (CET)
C'est un peu l'idée, mais je ne suis pas sur que l'on puisse parler de compatibilité ascendante systématique. Si l'on veut aller dans les détails:
  • Techniquement, le C et le C++ sont des langages différents. En particulier, ils sont normalisés de manière différentes.
  • Conceptuellement, le C et le C++ ont des approches différentes. En particulier, le C se veut un langage proche de la machine, alors que le C++ est un langage objet; à l'usage le mélange des deux approches n'est pas des plus simples.
  • En pratique, les compilateurs c++ sont généralement également capable de compiler du code C, ce qui tend à une certaine confusion des deux langages.
  • En pratique également, si l'on ignore quelques subtilités, l'essentiel d'un code C sera également reconnue dans du code C++.
Enfin pour le C il existe différentes normes successives: C K&R ; ANSI C ou C89; C90, C ISO; C94 / C95; C99; C11. Pour le C++ il existe aussi différentes normes successives: ISO/CEI 14882:1998; ISO/CEI 14882:2003; ISO/IEC 14882:2011; ISO/CEI 14882:2014. Parler de compatibilité ascendant revient donc à établir un lien entre ces normes, sachant que chaque que la norme laisse aux compilateurs des possibilités d'implémentations spécifiques au compilateur....