RECHERCHE :
Bienvenue sur le site de Michel VOLLE
Powered by picosearch  


Vous êtes libre de copier, distribuer et/ou modifier les documents de ce site, à la seule condition de citer la source.
 GNU Free Documentation License.


 

Commentaire sur :
Oliver Grillmeyer, Exploring Computer Science with Scheme, Springer Verlag 1998

15 janvier 2004


Liens utiles

- Structure and Interpretation of Computer Programs
- Histoire des langages de programmation
-
La programmation comme hobby
-
Entretien avec Laurent Bloch

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.