Ce livre comble une lacune. Il
existe des manuels de programmation ; il existe des livres sur l'informatique.
Mais il n'en existait pas, à ma connaissance, qui conjugue la présentation de
l'informatique avec celle d'un langage de programmation de telle sorte que l'on
puisse, à chaque étape, programmer soi-même ce dont il est question.
J'ai programmé pour faire du
calcul économique ou de la statistique, mais jamais je
n'avais eu l'occasion d'aller dans les "tripes" de l'informatique. J'éprouvais
devant ceux qui ont "programmé un compilateur" le même respect mêlé d'envie que
l'on a devant les explorateurs de contrées inconnues, devant ceux qui ont
pénétré un lieu sacré et interdit et ont pu voir ce qui s'y passait.
Maintenant, je peux dire que
j'ai "programmé un compilateur" ! même si c'est un tout petit compilateur...
Grillmeyer s'appuie sur Scheme parce que ce dialecte
de LISP est le plus sobre, le plus élégant des langages. On
peut se le procurer gratuitement, par exemple en téléchargeant DrScheme
depuis
http://download.plt-scheme.org/drscheme/.
LISP
(« List Processing », créé par
John MacCarthy au MIT en 1959), était
considéré jusqu'à ces dernières années comme un langage savant et dense mais
inutilisable parce que trop gourmand en mémoire et puissance du processeur. Les
progrès du matériel ont effacé ces défauts et les qualités de Scheme (clarté,
lisibilité, simplicité) l'imposent aujourd'hui dans la pédagogie de l'informatique.
Scheme m'a permis de faire sur
ma cervelle une expérience intéressante et de prendre une leçon
d'humilité :
1) je lis le cours sur la récursion. Cela me paraît difficile mais en
m'appliquant je comprends.
2) je programme ma première récursion. Rien ne marche.
3) je relis le cours. Ma récursion devrait marcher.
4) je regarde le corrigé de l'exercice. Ce qui est écrit me semble faux. Je copie
tel quel : ça marche.
5) je transcris sur papier, pas à pas, le fonctionnement du programme. Je vois à
la fois mon erreur, et pourquoi le programme du corrigé fonctionne.
6) je "réalise" que j'avais compris la récursion - ligne (1) ci-dessus - mais
que, lorsqu'il s'est agi de la mettre en oeuvre, l'instinct m'avait orienté vers
une fausse piste.
Comme disent Abelson et
Sussman, l'informatique est la science du "how to", du "comment faire", alors
que notre intelligence fonctionne sur le mode "what is" de la définition.
Ma petite expérience m'a fait "réaliser" qu'il y avait loin de l'un à l'autre.
Avec le livre de Grillmeyer, à vous la science informatique ! Après quelques chapitres de mise en jambe vous
programmerez un SGBD (chapitre 12), un compilateur (chapitre 13), un système
d'exploitation (le pied ! chapitre 14) et un logiciel d'intelligence
artificielle (chapitre 15).
Si en outre vous faites tous
les exercices, vous aurez accumulé un savoir bien supérieur au mien. |