Aller au contenu principal

Cours · L2

Programmation C

Progression du module

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#Programmation en C moderne

Le C est le langage du « proche du métal » : une grammaire compacte, un contrôle total sur la mémoire, aucune machine virtuelle entre votre programme et le processeur. C’est le langage des noyaux d’OS, des moteurs 3D et des runtimes d’autres langages. Cette puissance réclame une méthode : dans tout ce module, chaque extrait de code précise qui possède une ressource, combien de temps elle vit, et quelles opérations déclenchent un comportement indéfini. Le parcours vous accompagne depuis les bases syntaxiques jusqu’à la construction d’un interpréteur Lisp complet, Vaλisp, en cinq itérations cumulatives.

Le parcours s’ouvre sur le modèle d’exécution (types scalaires, promotions, structures de contrôle) et sur le codage binaire des données en mémoire. Il attaque ensuite ce qui fait la spécificité de C : la gestion fine de la mémoire et l’usage des pointeurs. Un bloc entier est consacré au dialogue avec Unix (appels système, signaux, chaîne d’outils), puis à l’organisation d’un projet multi-fichiers : Makefile robuste, tests, analyse statique et intégration continue.

Vaλisp sert de fil rouge : à chaque étape, l’interpréteur gagne une fonctionnalité (allocation, encodage compact, environnement lexical, ramasse-miettes, parsing, exécution) et se conclut par un jalon vérifiable : une commande à lancer et une sortie attendue. Vous verrez comment des structures de données abstraites prennent corps dans la mémoire, comment des décisions d’implémentation influencent les performances, et comment tester un programme bas niveau.

Ce module couvre l’UE Programmation C (SPUF400, 6 ECTS) du semestre 4 de la Licence Informatique de l’Université Côte d’Azur : langage, pointeurs, mémoire, compilation et projet de programmation.

#Vérifier votre environnement de travail

Avant toute chose, vérifiez que votre chaîne de compilation fonctionne. Ouvrez un terminal et lancez :

shsh

1cc --version2printf '#include <stdio.h>\nint main(void) { puts("outillage OK"); }\n' > /tmp/check.c3cc -std=c17 -Wall -Wextra -Wpedantic /tmp/check.c -o /tmp/check && /tmp/check
Résultat attendu et dépannage

La première commande affiche la version du compilateur (GCC ou Clang, peu importe). La dernière affiche exactement outillage OK. Si cc est introuvable, installez le paquet gcc (ou clang) via le gestionnaire de paquets de votre distribution. Si la compilation échoue avec une erreur de syntaxe, affichez /tmp/check.c : il doit contenir exactement deux lignes, avec les séquences \n conservées.

Plan du cours · 12 sections

Sections du cours