#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 :
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/checkRé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.