Programmation en C/C++ (pour programmeur Java)
Les systèmes d’exploitation et les systèmes embarqués sont encore beaucoup programmés en C ou en C++. Une première raison est historique ; les premiers systèmes d’exploitation UNIX qui ont été créés dans les années 70 et le langage C était, à cette période, le langage le plus adapté à la programmation de ces systèmes. Une autre raison est que le langage C est d’assez bas niveau et donne facilement accès aux interfaces proches du microprocesseur.
En 1985, Bjarne Stroustrup ajoute au langage C des mécanismes pour permettre la programmation orientée objet et sort le langage C++. Ce langage est très populaire, car il est compatible avec C et peut donc utiliser les nombreuses bibliothèques écrites pour C et sa syntaxe de base reste proche du C que les programmeurs de l’époque connaissent bien. Tout comme C, C++ est un langage compilé qui offre d’excellentes performances et c’est aussi pour cette raison qu’il reste beaucoup utilisé dans les systèmes embarqués. L’environnement Arduino, très populaire pour les systèmes embarqués grand public utilise C++ comme langage de base.
Le langage Java que la plupart d’entre vous connaissent est sorti en 1995 et la syntaxe de Java reste proche de celle de C++.
Le C++ est un langage beaucoup plus complexe que Java et l’étude complète du langage sort du cadre de ce cours. Ce chapitre présente les principales différences entre Java et C++ pour vous permettre de rapidement écrire vos premiers programmes en C++ pour les travaux pratiques.
Le C++ a évolué depuis sa création et il existe plusieurs “dialectes” de C++. Ces derniers sont identifiés par un nombre qui indique l’année de publication du standard. Les standards officiels sont les suivantes :
- C++98 (1998)
- C++03 (2003)
- C++11 / C++0x (2011)
- C++14 / C++1y (2014)
- C++17 / C++1z (2017)
- C++20 / C++2a (2020)
À partir de la version 7.1 du compilateur gcc, la version par défaut est C++17 et c’est celle que nous utiliserons pour les travaux pratiques.