“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 219 — #229
i
i
i
i
i
i
i
i
Chapitre 5
La programmation avec état explicite
L’état c’est moi.
– Louis XIV (1638-1715)
Si la programmation déclarative est comme un cristal, immuable et
pratiquement éternel, alors la programmation avec état est organique :
elle grandit et se développe.
– Inspiré par On Growth and Form, D’Arcy Wentworth Thompson (1860-1948)
Au premier coup d’œil, l’état explicite est une extension mineure de la programmation
déclarative : le résultat d’un composant ne dépend pas seulement de ses arguments mais
aussi d’un paramètre interne, appelé son « état ». Ce paramètre donne au composant
une mémoire à long terme, un « sens de l’histoire » si vous voulez. Sans l’état, un
composant n’a qu’une mémoire à court terme, qui existe pendant une invocation
du composant. L’état ajoute une branche potentiellement infinie à un programme à
exécution finie. Un composant qui s’exécute pendant un temps fini ne peut réunir
qu’une quantité limitée d’information. Si le composant a un état, il faudra ajouter à
cette information finie l’information enregistrée par l’état. Cette « histoire » peut être
indéfiniment longue.
Oliver Sacks a décrit le cas d’une personne cérébrolésée n’ayant qu’une mémoire à
court terme [80]. Il vit dans un « présent » interminable avec seulement une mémoire
de quelques secondes dans le passé. Le mécanisme du cerveau qui « fixe » les souvenirs à court terme dans la mémoire à long terme est cassé. Ces malades utilisent
peut-être le monde externe comme une sorte de mémoire à long terme ? Cette analogie
montre l’importance de l’état pour les êtres humains. Nous verrons que l’état est aussi
important pour la programmation.
i
i
i
i
i
i
i
i
Chapitre 5
La programmation avec état explicite
L’état c’est moi.
– Louis XIV (1638-1715)
Si la programmation déclarative est comme un cristal, immuable et
pratiquement éternel, alors la programmation avec état est organique :
elle grandit et se développe.
– Inspiré par On Growth and Form, D’Arcy Wentworth Thompson (1860-1948)
Au premier coup d’œil, l’état explicite est une extension mineure de la programmation
déclarative : le résultat d’un composant ne dépend pas seulement de ses arguments mais
aussi d’un paramètre interne, appelé son « état ». Ce paramètre donne au composant
une mémoire à long terme, un « sens de l’histoire » si vous voulez. Sans l’état, un
composant n’a qu’une mémoire à court terme, qui existe pendant une invocation
du composant. L’état ajoute une branche potentiellement infinie à un programme à
exécution finie. Un composant qui s’exécute pendant un temps fini ne peut réunir
qu’une quantité limitée d’information. Si le composant a un état, il faudra ajouter à
cette information finie l’information enregistrée par l’état. Cette « histoire » peut être
indéfiniment longue.
Oliver Sacks a décrit le cas d’une personne cérébrolésée n’ayant qu’une mémoire à
court terme [80]. Il vit dans un « présent » interminable avec seulement une mémoire
de quelques secondes dans le passé. Le mécanisme du cerveau qui « fixe » les souvenirs à court terme dans la mémoire à long terme est cassé. Ces malades utilisent
peut-être le monde externe comme une sorte de mémoire à long terme ? Cette analogie
montre l’importance de l’état pour les êtres humains. Nous verrons que l’état est aussi
important pour la programmation.
