“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 92 — #102
i
i
i
i
i
i
i
i
92
2
• La programmation déclarative
Figure 2.20 Le Browser.
L’exécution dataflow
Nous avons vu précédemment que les variables déclaratives soutiennent l’exécution
dataflow, c’est-à-dire qu’une opération attend que tous ces arguments soient liés avant
de continuer. Pour les programmes séquentiels ce n’est pas très utile car le programme
attendra pour toujours. Par contre, c’est utile pour les programmes concurrents, dans
lesquels il y a simultanément plusieurs séquences d’instructions en exécution. Une
séquence d’instructions qui s’exécute indépendamment s’appelle un fil. La programmation avec plusieurs fils s’appelle la programmation concurrente : elle est expliquée
dans le chapitre 4.
Chaque fragment de programme exécuté dans l’interface interactive s’exécute dans
son propre fil. Cela nous permet de montrer des exemples simples d’exécution dataflow.
Par exemple, le fragment suivant :
declare A B C in
C=A+B
{Browse C}
Le Browser n’affiche rien car l’instruction C=A+B bloque (les deux arguments sont
non liés). Maintenant, donnez le fragment suivant :
A=10
A sera liée, mais l’instruction C=A+B bloquera toujours parce que B est toujours non
liée. Enfin, donnez le fragment suivant :
i
i
i
i
i
i
i
i
92
2
• La programmation déclarative
Figure 2.20 Le Browser.
L’exécution dataflow
Nous avons vu précédemment que les variables déclaratives soutiennent l’exécution
dataflow, c’est-à-dire qu’une opération attend que tous ces arguments soient liés avant
de continuer. Pour les programmes séquentiels ce n’est pas très utile car le programme
attendra pour toujours. Par contre, c’est utile pour les programmes concurrents, dans
lesquels il y a simultanément plusieurs séquences d’instructions en exécution. Une
séquence d’instructions qui s’exécute indépendamment s’appelle un fil. La programmation avec plusieurs fils s’appelle la programmation concurrente : elle est expliquée
dans le chapitre 4.
Chaque fragment de programme exécuté dans l’interface interactive s’exécute dans
son propre fil. Cela nous permet de montrer des exemples simples d’exécution dataflow.
Par exemple, le fragment suivant :
declare A B C in
C=A+B
{Browse C}
Le Browser n’affiche rien car l’instruction C=A+B bloque (les deux arguments sont
non liés). Maintenant, donnez le fragment suivant :
A=10
A sera liée, mais l’instruction C=A+B bloquera toujours parce que B est toujours non
liée. Enfin, donnez le fragment suivant :
