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.
Binaires, algorithmes, variables, boucles, fonctions —
les bases pour ne plus écrire Hello World
comme un touriste.
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.
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.
make run — factoriellemake vm-run — VM + testsmake calc-run — calculette REPLmake calc-vm — compilation VM./calc -vm "(+ 2 (* 3 4))"./calc -vm "expr" -o prog.c
« 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)
Savoir allumer un ordinateur et taper au clavier. Le reste s'apprend. (La patience aussi.)
Algorithmique, variables, boucles, fonctions, compilation.
On écrit factorielle.c et on le teste.
Tableaux, enum, pile, 23 opcodes. On construit une VM qui exécute le bytecode.
③Pointeurs, structures, récursivité. On lit du LISP, on l'interprète, on le compile en bytecode.
Listes chaînées, arbres, unions, pointeurs de fonctions, et peut-être un vrai compilateur. Qui sait ?