Programmation C · L2 · Section 12/12
Ressources
Progression
Points d’expérience : —XPSérie de jours consécutifs : —· —Progression du module : — / —compris
#Ressources C
Une sélection courte, vérifiée, chaque entrée avec son usage précis. Mieux vaut deux références maîtrisées que dix ouvertes en parallèle.
#Références
- Modern C (Jens Gustedt, téléchargeable légalement sur gustedt.gitlabpages.inria.fr) : la référence du cours, couvre C17 puis C23 (titre « Modern C, 2e édition »), les idiomes et les pièges. Pour chaque notion du module, c’est ici que la définition exacte se trouve.
- The C Programming Language (Kernighan & Ritchie, 2e édition) : le texte historique, remarquablement dense. À lire en parallèle pour la culture ; le C décrit est pré-C89 sur quelques points (déclarations, prototypes) : vérifiez toujours dans Modern C.
- Crafting Interpreters (Robert Nystrom, craftinginterpreters.com, en ligne gratuitement) : la référence pour Vaλisp. Les chapitres sur le parsing, l’évaluation et le GC complètent les étapes 3 à 5 du projet.
- C Programming: A Modern Approach (K.N. King) : alternative pédagogique, exercices progressifs.
#Pages de manuel
Les sections 2 (appels système) et 3 (fonctions de bibliothèque) sont numérotées : le préfixe dans man 3 printf indique la section.
man 3 printf,man 3 malloc,man 3 strncpy: fonctions de la bibliothèque, avec leur contrat exact et la section RETURN VALUE à lire systématiquement.man 2 open,man 2 read,man 2 sigaction: appels système, avec la liste exhaustive deserrnopossibles.man 3 errno: le mécanisme de signalement d’erreur, à connaître avant le chapitre Unix.gcc --helppuisman gcc(sections sur les options-W,-O,-fsanitize) : l’outillage du chapitre introduction.man readline,man dlopen: pour les étapes Unix et Vaλisp 5.
Astuce : installer le paquet manpages-dev fournit les sections 2 et 3 complètes sur la plupart des distributions.
#Outils
gccouclang: le compilateur ; l’un ou l’autre suffit, comparer les diagnostics des deux est un exercice instructif.valgrind:valgrind -q --leak-check=full --show-leak-kinds=all ./progpour auditer les fuites d’un test de bout en bout.clang-format: uniformise la mise en page ; un fichier.clang-formatà la racine du projet évite tout débat.cmocka: framework de tests unitaires en C, pour la cibletestdu Makefile du chapitre modularité ; l’alternative minimaliste (une macroASSERTet un compteur) suffit au projet Vaλisp.
#Pour prolonger
- Le code source de Git, de SQLite ou du noyau Linux : des bases C massives, lisibles, documentées, pour voir les idiomes du module à l’échelle réelle.
- Beej’s Guide to Network Programming : si le chapitre Unix vous a donné le goût des appels système orientés réseau.
- Le dépôt de votre Vaλisp, relu six mois plus tard : le meilleur exercice de révision qui existe.