“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 52 — #62
i
i
i
i
i
i
i
i
52
2
• La programmation déclarative
– Les chaînes (« String »). Une chaîne est une liste de codes de caractère. Une
chaîne peut être écrite entre guillemets doubles. Ainsi "E=mcˆ2" représente la
même chaîne que [69 61 109 99 94 50].
– Les procédures (« Procedure »). Une procédure est une valeur de type procédure
(une valeur procédurale). L’instruction
x = proc {$ y 1 · · · ·y n } s end
lie x à une nouvelle valeur procédurale. C’est simplement la déclaration d’une
nouvelle procédure. Le $ indique que la valeur procédurale est anonyme, c’est-àdire créée sans identificateur. Il y a un raccourci syntaxique qui est plus connu :
proc {x y 1 · · · ·y n } s end
Le $ est remplacé par l’identificateur x. Cela crée la valeur procédurale et
essaie tout de suite de la lier à x. Le raccourci est souvent plus facile à lire
mais il brouille la distinction entre la création d’une valeur et son lien avec un
identificateur.
2.3.4 Les enregistrements et les procédures
Nous allons expliquer ici pourquoi nous choisissons les enregistrements et les procédures comme concepts de base dans le langage noyau. Cette section concerne les
lecteurs qui ont une certaine expérience en programmation et qui se posent des questions sur la conception du langage noyau.
La puissance des enregistrements
Les enregistrements sont la principale manière de structurer les informations. Ils sont
les éléments de base de la plupart des structures de données comme les listes, les
arbres, les files, les graphes, etc., comme nous le verrons dans le chapitre 3. Les
enregistrements jouent ce rôle à un certain degré dans la plupart des langages de
programmation. Nous verrons que leur utilisation peut aller bien au-delà de ce rôle.
La puissance des enregistrements apparaît forte ou faible selon la force du soutien
donné par le langage. Pour une puissance maximale, le langage doit bien soutenir la
création, la décomposition et la manipulation des enregistrements. Dans le modèle
déclaratif, un enregistrement est créé simplement en l’écrivant. Un enregistrement est
décomposé simplement en écrivant une forme. Enfin, il y a beaucoup d’opérations
pour manipuler les enregistrements : pour ajouter, enlever ou sélectionner des champs ;
pour faire des conversions entre enregistrements et listes, etc. D’une façon générale, les
langages qui offrent ce niveau de soutien aux enregistrements s’appellent des langages
symboliques.
Quand il y a un soutien fort aux enregistrements, ils peuvent être utilisés pour
augmenter l’efficacité de beaucoup d’autres techniques. Nous en considérons trois en
i
i
i
i
i
i
i
i
52
2
• La programmation déclarative
– Les chaînes (« String »). Une chaîne est une liste de codes de caractère. Une
chaîne peut être écrite entre guillemets doubles. Ainsi "E=mcˆ2" représente la
même chaîne que [69 61 109 99 94 50].
– Les procédures (« Procedure »). Une procédure est une valeur de type procédure
(une valeur procédurale). L’instruction
x = proc {$ y 1 · · · ·y n } s end
lie x à une nouvelle valeur procédurale. C’est simplement la déclaration d’une
nouvelle procédure. Le $ indique que la valeur procédurale est anonyme, c’est-àdire créée sans identificateur. Il y a un raccourci syntaxique qui est plus connu :
proc {x y 1 · · · ·y n } s end
Le $ est remplacé par l’identificateur x. Cela crée la valeur procédurale et
essaie tout de suite de la lier à x. Le raccourci est souvent plus facile à lire
mais il brouille la distinction entre la création d’une valeur et son lien avec un
identificateur.
2.3.4 Les enregistrements et les procédures
Nous allons expliquer ici pourquoi nous choisissons les enregistrements et les procédures comme concepts de base dans le langage noyau. Cette section concerne les
lecteurs qui ont une certaine expérience en programmation et qui se posent des questions sur la conception du langage noyau.
La puissance des enregistrements
Les enregistrements sont la principale manière de structurer les informations. Ils sont
les éléments de base de la plupart des structures de données comme les listes, les
arbres, les files, les graphes, etc., comme nous le verrons dans le chapitre 3. Les
enregistrements jouent ce rôle à un certain degré dans la plupart des langages de
programmation. Nous verrons que leur utilisation peut aller bien au-delà de ce rôle.
La puissance des enregistrements apparaît forte ou faible selon la force du soutien
donné par le langage. Pour une puissance maximale, le langage doit bien soutenir la
création, la décomposition et la manipulation des enregistrements. Dans le modèle
déclaratif, un enregistrement est créé simplement en l’écrivant. Un enregistrement est
décomposé simplement en écrivant une forme. Enfin, il y a beaucoup d’opérations
pour manipuler les enregistrements : pour ajouter, enlever ou sélectionner des champs ;
pour faire des conversions entre enregistrements et listes, etc. D’une façon générale, les
langages qui offrent ce niveau de soutien aux enregistrements s’appellent des langages
symboliques.
Quand il y a un soutien fort aux enregistrements, ils peuvent être utilisés pour
augmenter l’efficacité de beaucoup d’autres techniques. Nous en considérons trois en
