“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 14 — #24
i
i
i
i
i
i
i
i
14
1
• Introduction aux concepts de programmation
Pour avoir la cinquième rangée on appelle {GenericPascal Add 5}.
5 Voici la
définition de FastPascal avec GenericPascal :
declare
fun {FastPascal N} {GenericPascal Add N} end
Définissons une autre fonction :
declare
fun {Xor X Y} if X==Y then 0 else 1 end end
Cela fait un Ou exclusif, une opération booléenne qui est définie avec le tableau
suivant :
X Y {Xor X Y}
0 0
0
0 1
1
1 0
1
1 1
0
Un Ou exclusif nous permet de calculer la parité de chaque nombre dans le triangle :
s’il est pair ou impair. Les nombres eux-mêmes ne sont pas calculés. L’appel {GenericPascal Xor N} donne :
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
. . . . . . . . . . . . .
Vous trouverez d’autres variations dans les exercices.
1.9 LA CONCURRENCE
Nous voulons que notre programme ait plusieurs activités indépendantes, chacune
s’exécutant à sa propre vitesse. Ce concept s’appelle la concurrence. Il ne devrait
pas y avoir d’interférence entre les activités, sauf si le programmeur décide qu’elles
doivent communiquer. Dans le monde réel, cela marche ainsi. Nous voudrions que le
système puisse faire la même chose.
5. Nous pouvons aussi appeler {GenericPascal Number.´+´ 5}, parce que l’opération
d’addition ´+´ fait partie du module Number. Mais nous ne parlerons pas des modules dans ce
chapitre.
i
i
i
i
i
i
i
i
14
1
• Introduction aux concepts de programmation
Pour avoir la cinquième rangée on appelle {GenericPascal Add 5}.
5 Voici la
définition de FastPascal avec GenericPascal :
declare
fun {FastPascal N} {GenericPascal Add N} end
Définissons une autre fonction :
declare
fun {Xor X Y} if X==Y then 0 else 1 end end
Cela fait un Ou exclusif, une opération booléenne qui est définie avec le tableau
suivant :
X Y {Xor X Y}
0 0
0
0 1
1
1 0
1
1 1
0
Un Ou exclusif nous permet de calculer la parité de chaque nombre dans le triangle :
s’il est pair ou impair. Les nombres eux-mêmes ne sont pas calculés. L’appel {GenericPascal Xor N} donne :
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
. . . . . . . . . . . . .
Vous trouverez d’autres variations dans les exercices.
1.9 LA CONCURRENCE
Nous voulons que notre programme ait plusieurs activités indépendantes, chacune
s’exécutant à sa propre vitesse. Ce concept s’appelle la concurrence. Il ne devrait
pas y avoir d’interférence entre les activités, sauf si le programmeur décide qu’elles
doivent communiquer. Dans le monde réel, cela marche ainsi. Nous voudrions que le
système puisse faire la même chose.
5. Nous pouvons aussi appeler {GenericPascal Number.´+´ 5}, parce que l’opération
d’addition ´+´ fait partie du module Number. Mais nous ne parlerons pas des modules dans ce
chapitre.
