Files
programmationc/README.md
2026-01-14 07:37:53 +01:00

78 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Langage C
> [!NOTE]
> Le langage C reste aujourd'hui très utilisé, notamment pour le développement du noyau des systèmes d'exploitation (kernel), des logiciels embarqués et des applications nécessitant des **performances élevées**. Sa simplicité, sa proximité avec le matériel et sa portabilité sont les principales raisons de son succès durable.
- [Histoire du langage C](histoire.md)
## Caractéristiques
- Langage de programmation **procédural** ;
- Langage de **bas niveau** : conçu pour être compilé en un nombre d'instructions machine **prévisible** en termes d'occupation mémoire et de charges de calcul ;
- Langage extrêmement utilisé dans :
- La programmation embarquée sur micro-contrôleurs ;
- Les calculs intensifs ;
- L'écriture du noyau de systèmes d'exploitation ;
- Les modules où la rapidité de traitement est importante.
Sa syntaxe de base a inspiré de nombreux langages plus récents dont C++, Java et PHP, C#, JavaScript, ...
### Avantages
- Nombre restreint de concepts, ce qui facilite sa maîtrise ;
- Nombre restreint de mots clés, ce qui facilite l'apprentissage ;
- Proche de la machine : opérateurs proches du langage machines et fonctions permettant un accès direct au système ;
- Programmation modulaire : permet de gérer plusieurs fichiers sources ⇒ structuration, compréhensibilité et réutilisation du code ;
- Grand nombre de **bibliothèques tierces** existantes.
### Inconvénients
- Pas universel car la génération des exécutables dépend du compilateur et donc de la cible ;
- Langage bas niveau offrant peu de fonctionnalités notamment pour la gestion de la mémoire et les chaînes de caractères ;
- Pas de gestion efficace des erreurs et beaucoup de libertés laissées au programmeur ⇒ rigueur et discipline de programmation ;
- Bibliothèque standard assez pauvre.
En GEII, une grande partie des applications concerne :
- des microcontrôleurs (Arduino, STM32, PIC, AVR…) aux ressources limités (mémoire, CPU, énergie)
- des automates et systèmes **temps réel**,
Le C est le langage natif de ces environnements.
- Très proche du matériel
- Pas de machine virtuelle
- Exécutable compact et rapide
- Contrôle précis de la mémoire et prédictif du temps dexécution
Dans lindustrie, le C est encore majoritaire pour le firmware.
## Concepts
- [Anatomie d'un programme](anatomie.md)
- [La compilation](compilation.md)
- [Les variables](variables.md)
- [Les fonctions](fonctions.md)
### Opérateurs
- [Opérateurs d'affectation](opérateurs/affectation.md)
- [Opérateurs arithmétiques](opérateurs/arithmétiques.md)
- [Opérateurs logiques](opérateurs/logique.md)
- [Opérateurs relationnels](opérateurs/comparaison.md)
- [Opérateurs bit à bit](opérateurs/bit.md)
- [Priorité des opérations](opérateurs/priorite.md)
### Les instructions
- [Instructions conditionnelles](instructions/conditions.md)
- [Instructions de boucles](instructions/boucles.md)
- [Instructions de débranchement](instructions/debranchement.md)
## Travaux pratiques
- [Maquette](maquette.md)
- [Estampilleuse](maquette18.md)
- [Pompes](maquette2.md)
- [Monte charge](maquette42.md)