Files
programmationc/README.md

80 lines
3.2 KiB
Markdown
Raw Normal View History

2026-01-05 22:40:08 +01:00
# Langage C
2026-01-05 22:36:14 +01:00
> [!NOTE]
2026-01-06 13:35:30 +01:00
> 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.
2026-01-05 22:36:14 +01:00
2026-01-05 22:43:38 +01:00
- [Histoire du langage C](histoire.md)
2026-01-05 22:36:14 +01:00
## Caractéristiques
- Langage de programmation **procédural** ;
2026-01-09 13:08:35 +01:00
- 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 ;
2026-01-05 22:36:14 +01:00
- 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 ;
2026-01-05 22:40:08 +01:00
- Grand nombre de **bibliothèques tierces** existantes.
2026-01-05 22:36:14 +01:00
### 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.
2026-01-06 13:35:30 +01:00
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.
2026-01-05 22:36:14 +01:00
## Concepts
2026-01-05 22:40:08 +01:00
- [Anatomie d'un programme](anatomie.md)
- [La compilation](compilation.md)
- [Les variables](variables.md)
2026-01-06 07:36:50 +01:00
- [Les fonctions](fonctions.md)
2026-01-05 22:40:08 +01:00
### 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)
2026-01-06 07:36:50 +01:00
- [Opérateurs relationnels](opérateurs/comparaison.md)
2026-01-05 22:40:08 +01:00
- [Opérateurs bit à bit](opérateurs/bit.md)
2026-01-06 07:36:50 +01:00
- [Priorité des opérations](opérateurs/priorite.md)
2026-01-05 22:43:38 +01:00
### Les instructions
- [Instructions conditionnelles](instructions/conditions.md)
- [Instructions de boucles](instructions/boucles.md)
- [Instructions de débranchement](instructions/debranchement.md)
2026-01-09 13:08:35 +01:00
2026-01-14 07:37:53 +01:00
## Travaux pratiques
2026-01-09 13:43:15 +01:00
2026-01-14 07:37:53 +01:00
- [Maquette](maquette.md)
- [Estampilleuse](maquette18.md)
- [Pompes](maquette2.md)
- [Monte charge](maquette42.md)
2026-01-16 12:58:26 +01:00
- [Pompes](maquette43.md)
2026-01-20 13:49:34 +01:00
- [Cuves](maquette16.md)