“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 55 — #65
i
i
i
i
i
i
i
i
2.4 La sémantique du langage noyau
55
– Les comparaisons. Les comparaisons == et \= peuvent comparer toutes les
valeurs. Les comparaisons numériques =<, <, >= et > peuvent comparer des
entiers, des flottants ou des atomes. Les atomes sont comparés selon l’ordre
lexicographique de leurs représentations imprimées. Dans l’exemple suivant, Z
est liée au maximum de X et Y :
declare X Y Z T in
X=5 Y=10
T=(X>=Y)
if T then Z=X else Z=Y end
Il y a un sucre syntaxique pour que l’instruction if accepte une expression
comme condition. Une autre manière d’écrire cet exemple est donc :
declare X Y Z in
X=5 Y=10
if X>=Y then Z=X else Z=Y end
– Les opérations sur les procédures. Il y a trois opérations de base sur les procédures : la création (avec l’instruction proc), l’appel (avec les accolades { · · ·
}) et le test qui vérifie si une valeur est une procédure avec la fonction booléenne IsProcedure. L’appel {IsProcedure P} renverra true si P est
une procédure et false sinon.
Pour un ensemble plus complet des opérations de base consultez la documentation de
Mozart [23].
2.4 LA SÉMANTIQUE DU LANGAGE NOYAU
L’exécution du langage noyau est l’évaluation des fonctions sur les valeurs partielles.
Pour voir cela, nous définissons la sémantique du langage noyau dans un modèle
opérationnel simple. Le modèle est conçu pour permettre au programmeur un raisonnement simple sur l’exactitude et la complexité calculatoire. C’est une machine
abstraite possédant un niveau d’abstraction élevé qui omet des détails tels que les
registres et les adresses machine explicites.
2.4.1 Les concepts de base
Avant de montrer la sémantique formelle, voici quelques exemples pour renforcer
l’intuition sur l’exécution du langage noyau. Ceux-ci motiveront la sémantique et
faciliteront sa compréhension.
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
2.4 La sémantique du langage noyau
55
– Les comparaisons. Les comparaisons == et \= peuvent comparer toutes les
valeurs. Les comparaisons numériques =<, <, >= et > peuvent comparer des
entiers, des flottants ou des atomes. Les atomes sont comparés selon l’ordre
lexicographique de leurs représentations imprimées. Dans l’exemple suivant, Z
est liée au maximum de X et Y :
declare X Y Z T in
X=5 Y=10
T=(X>=Y)
if T then Z=X else Z=Y end
Il y a un sucre syntaxique pour que l’instruction if accepte une expression
comme condition. Une autre manière d’écrire cet exemple est donc :
declare X Y Z in
X=5 Y=10
if X>=Y then Z=X else Z=Y end
– Les opérations sur les procédures. Il y a trois opérations de base sur les procédures : la création (avec l’instruction proc), l’appel (avec les accolades { · · ·
}) et le test qui vérifie si une valeur est une procédure avec la fonction booléenne IsProcedure. L’appel {IsProcedure P} renverra true si P est
une procédure et false sinon.
Pour un ensemble plus complet des opérations de base consultez la documentation de
Mozart [23].
2.4 LA SÉMANTIQUE DU LANGAGE NOYAU
L’exécution du langage noyau est l’évaluation des fonctions sur les valeurs partielles.
Pour voir cela, nous définissons la sémantique du langage noyau dans un modèle
opérationnel simple. Le modèle est conçu pour permettre au programmeur un raisonnement simple sur l’exactitude et la complexité calculatoire. C’est une machine
abstraite possédant un niveau d’abstraction élevé qui omet des détails tels que les
registres et les adresses machine explicites.
2.4.1 Les concepts de base
Avant de montrer la sémantique formelle, voici quelques exemples pour renforcer
l’intuition sur l’exécution du langage noyau. Ceux-ci motiveront la sémantique et
faciliteront sa compréhension.
© Dunod – La photocopie non autorisée est un délit
