“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 183 — #193
i
i
i
i
i
i
i
i
Chapitre 4
La programmation concurrente
dataflow
Il y a vingt ans, le ski parallèle était considéré comme une compétence
acquise seulement après beaucoup d’années de formation et d’entraînement.
Aujourd’hui, il est appris en une seule saison. . . . Tous les buts des parents
sont atteints par les enfants : . . . Mais les mouvements qu’ils font pour
produire ces résultats sont très différents.
– Mindstorms : Children, Computers, and Powerful Ideas, Seymour Papert (1980)
Le modèle déclaratif du chapitre 2 nous permet d’écrire beaucoup de programmes
et de leur appliquer des techniques de raisonnement puissantes. Mais, comme la section 4.4 l’explique, il existe des programmes utiles qui ne peuvent pas être écrits dans
ce modèle. Par exemple, des programmes qui contiennent un ensemble d’activités
qui s’exécutent de façon indépendante. Ils sont dits concurrents. La concurrence est
essentielle pour les programmes qui interagissent avec leur environnement, comme
les agents, les programmes avec des interfaces graphiques, les systèmes d’exploitation, etc. Elle permet aussi d’organiser un programme en parties indépendantes
qui interagissent uniquement quand il le faut comme des programmes client/serveur
et producteur/consommateur. L’indépendance est une propriété importante en génie
logiciel.
La concurrence peut être simple
Ce chapitre étend le modèle déclaratif du chapitre 2 avec la concurrence tout en
restant déclaratif. Toutes les techniques de programmation et de raisonnement pour la
i
i
i
i
i
i
i
i
Chapitre 4
La programmation concurrente
dataflow
Il y a vingt ans, le ski parallèle était considéré comme une compétence
acquise seulement après beaucoup d’années de formation et d’entraînement.
Aujourd’hui, il est appris en une seule saison. . . . Tous les buts des parents
sont atteints par les enfants : . . . Mais les mouvements qu’ils font pour
produire ces résultats sont très différents.
– Mindstorms : Children, Computers, and Powerful Ideas, Seymour Papert (1980)
Le modèle déclaratif du chapitre 2 nous permet d’écrire beaucoup de programmes
et de leur appliquer des techniques de raisonnement puissantes. Mais, comme la section 4.4 l’explique, il existe des programmes utiles qui ne peuvent pas être écrits dans
ce modèle. Par exemple, des programmes qui contiennent un ensemble d’activités
qui s’exécutent de façon indépendante. Ils sont dits concurrents. La concurrence est
essentielle pour les programmes qui interagissent avec leur environnement, comme
les agents, les programmes avec des interfaces graphiques, les systèmes d’exploitation, etc. Elle permet aussi d’organiser un programme en parties indépendantes
qui interagissent uniquement quand il le faut comme des programmes client/serveur
et producteur/consommateur. L’indépendance est une propriété importante en génie
logiciel.
La concurrence peut être simple
Ce chapitre étend le modèle déclaratif du chapitre 2 avec la concurrence tout en
restant déclaratif. Toutes les techniques de programmation et de raisonnement pour la
