Programmation en C

Du binaire à la machine virtuelle — 3 cours pour ne plus jamais confondre un pointeur et une panne de courant.

Le C, c'est comme un couteau suisse : efficace, polyvalent, et vous pouvez vous couper si vous ne faites pas attention.

Avertissement : Ce cours contient des blagues plus ou moins drôles, des parenthèses en excès, et des pointeurs sauvages. L'auteur décline toute responsabilité en cas de segmentation fault en plein partiel.
📘

Cours 1 — Introduction

Binaires, algorithmes, variables, boucles, fonctions — les bases pour ne plus écrire Hello World comme un touriste.

bits algorithmes factorielle compilation
📗

Cours 2 — Du tableau à la VM

Tableaux, enum, pile, bytecode — on fabrique une machine virtuelle à pile en 300 lignes de C. Parce qu'un processeur logiciel, c'est plus facile à débuguer.

tableaux enum VM bytecode
🧠

Cours 3 — S-expressions

Pointeurs, structures, récursivité — on parse du LISP en C pur, on interprète et on compile vers la VM. Les parenthèses, enfin expliquées.

pointeurs struct récursivité AST

📂 Documentation technique

🖥️ Références

📄 Code source

⚙️ Commandes utiles

« Un programme C qui compile a de bonnes chances d'être correct.
Un programme Python qui tourne a de bonnes chances d'être faux jusqu'à 3h du matin. »

— Sagesse populaire du CHAT
(Cercle des Hackeurs Ayant Toujoursraison)

🗺️ Parcours recommandé

0️⃣

Prérequis

Savoir allumer un ordinateur et taper au clavier. Le reste s'apprend. (La patience aussi.)

Cours 1 — Fondations

Algorithmique, variables, boucles, fonctions, compilation. On écrit factorielle.c et on le teste.

Cours 2 — Machine Virtuelle

Tableaux, enum, pile, 23 opcodes. On construit une VM qui exécute le bytecode.

Cours 3 — Parseur

Pointeurs, structures, récursivité. On lit du LISP, on l'interprète, on le compile en bytecode.

À venir…

Listes chaînées, arbres, unions, pointeurs de fonctions, et peut-être un vrai compilateur. Qui sait ?