Commentaire sur :
Donald E. Knuth, The Art of Computer
Programming, trois volumes, Addison Wesley 1997
3 juillet 2002
The Art of Computer Programming
trônait depuis quelques mois dans ma bibliothèque. J'avais lu des passages et ajourné la lecture de l'ensemble. Les livres longs ne m'ont jamais fait
peur, mais pour être à l'aise il faut que je comprenne
la personnalité de l'auteur : la lecture est un dialogue et on ne peut
dialoguer que si l'on est en sympathie. Or je ne comprenais pas Donald Knuth.
La lecture de Digital
Typography m'a permis de voir à qui j'avais affaire. J'ai
repris The Art of Computer Programming pour le lire en
entier et dans l'ordre. Mon appétit poussant à l'exploration, je survole
d'abord les
exercices et les énumérations (parfois
nécessaires mais toujours fastidieuses). J'y reviendrai, bien décidé à faire tous
les exercices - ceux qui sont faisables du moins, car Knuth a placé parmi eux
des problèmes que la profession des mathématiciens n'a pas encore
résolus : une note de difficulté permet de les repérer.
Knuth
a voulu faire pénétrer le lecteur dans l'intimité de l'ordinateur,
cette intimité que les langages de haut niveau masquent. Il a à cet effet
construit une machine abstraite, le MIX (1009 en chiffres romains), qui condense
les traits essentiels des ordinateurs actuels. Il a mis au point un
langage, le MIXAL, analogue à l'assembleur mais libre des conventions de toute
machine particulière. Il a écrit ses algorithmes dans ce langage : ainsi nous
pouvons mentalement voir comment l'ordinateur exécute les algorithmes,
calculer leur temps d'exécution etc. En étudiant ces programmes, nous
apprenons à lire des programmes, savoir précieux .
Les
livres d'informatique consacrés à un langage particulier contiennent souvent des
passages d'une abstraction déroutante : on se demande où le concepteur
est allé chercher telle idée ingénieuse, telle convention qui ne se justifie,
semble-t-il, qu'à l'usage. Knuth nous présente la racine de ces conceptions :
nous ne découvrons pas les listes en étudiant LISP, ni les arbres en étudiant un SGBD,
mais nous abordons ces concepts pour eux-mêmes, en
eux-mêmes, sous une forme développée qui ne laisse rien dans l'ombre. Cela prépare à
se sentir chez soi lorsqu'on lira les textes où ces
concepts sont utilisés.
Évidemment
ce livre n'est pas d'une lecture facile. Il mérite qu'on lui consacre du temps.
Il faut savoir parfois
ralentir et s'équiper d'un papier et d'un crayon. On a de temps à autre l'impression
que Knuth s'est trompé : tel paragraphe m'a, pendant quelques heures,
fait croire que j'avais pris le Maître en défaut. Hélas ! c'est moi qui suis lent à comprendre...
|