SUBSTITUTIONS SIMPLES

Des psychologues désirent étudier l'importance accordée aux rôles de chacun des partenaires d'un couple. Ils demandent donc à leurs sujets de rédiger un court texte sur les tâches quotidiennes assumées par chacun, en se désignant respectivement par Monsieur et Madame.

Ce texte est fourni à ADAPT avec les directives suivantes:

(1)ChangerLesRôles:
(2)"Monsieur" = "Madame".
(3)"Madame" = "Monsieur".

Que va-t-il se passer lorsque ADAPT traitera le texte suivant ?

Monsieur habille les enfants, Madame prépare le petit déjeuner et Madame passe l'aspirateur, Monsieur va travailler, Madame fait la lessive, Monsieur prépare le souper et Monsieur sort les poubelles, Madame couche les enfants.

ADAPT parcourt ce texte à la recherche de Monsieur et de Madame. Lorsque Monsieur est rencontré, Madame est inscrit dans le fichier de sortie (ligne 2 des directives). Lorsque Madame est rencontré, Monsieur est inscrit dans le fichier de sortie (ligne 3 des directives). Les données qui ne correspondent à aucune de ces règles de transformation sont recopiées intégralement en sortie.

Vous obtenez alors :

Madame habille les enfants, Monsieur prépare le petit déjeuner et Monsieur passe l'aspirateur, Madame va travailler, Monsieur fait la lessive, Madame pré pare le souper et Madame sort les poubelles, Monsieur couche les enfants.

Ce qui permet de mesurer la résistance des sujets face à un échange des rôles de chacun!


Une transformation est composé d'un groupe de règles à vérifier ensemble pour les données en entrée.

La définition d'une transformation débute par une barre oblique (/) suivie du nom de la transformation et d'un deux point (:).


La transformation ChangerLesRôles comprenait donc deux règles, l'une transformant les Monsieur en Madame, l'autre transformant les Madame en Monsieur.

Comme vous l'avez sans doute remarqué, ADAPT parcours une seule fois le fichier d'entrée, en vérifiantsimultanément l'ensemble des règles: le résultat obtenu d'une première règle ( "Monsieur"="Madame" ) n'est donc pas fourni comme donnée d'entrée à la suivante (dans cet exemple, "Madame" = " Monsieur" ). Heureusement, car ceci aurait des effets souvent désastreux: dans le cas de notre exemple, la deuxième règle annulerait l'effet de la première!

La règle "Monsieur"="Madame" est donc composée d'un patron de fouille (" Monsieur") et d'un résultat (="Madame") à produire lorsque le patron se vérifie (Un patron se "vérifie" lorsque des données correspondant à ce patron sont rencontrées en entrée).

Donc à chaque fois que la chaîne de caractères Monsieur apparaît dans le fichier d'entrée, ADAPT inscrit la chaîne de caractères Madame sur le fichier de sortie.


Une chaîne de caractères est tout simplement une suite de caractères quelconques, les uns à la suite des autres.


Examinons de plus près les patrons de fouille "Monsieur" et "Madame":

ADAPT permet de chercher dans les données la présence d'une chaîne de caractères exactement telle que spécifiée: il faut alors en indiquer le contenu entre apostrophes (').

Le patron 'Monsieur'se vérifie donc lorsque Monsieur est rencontré dans les données, mais ne se vérifie pas lorsque MONSIEUR est rencontré.

ADAPT permet aussi de chercher dans les données la présence d'une chaîne de caractères qui, si l'on ne tient pas compte des différences entre majuscules, minuscules et lettres accentuées, est semblable à celle fournie dans le patron: il faut alors indiquer cette chaîne de caractères entre guillemets ( " ).

Le patron "Madame" se vérifie donc lorsque Madame, MADAME ou encore Madâme est rencontré dans les données. Cependant il ne se vérifie pas lorsque Ma dame est rencontré.


Pour définir une chaîne de caractères, il suffit d'indiquer son contenu entre guillemets (") ou entre apostrophes ('). Par exemple: "Bonjour", 'Mesdames!'

Pour indiquer un guillemet à l'intérieur d'une chaîne de caractères délimitées par des guillemets, il suffit de le dédoubler. Par exemple: """"équivaut à'"'

Pour indiquer une apostrophe à l'intérieur d'une chaîne de caractères délimitées par des apostrophes, il suffit de la dédoubler. Par exemple: 'Aujourd''hui'



Pour les patrons de fouilles, le fait d'utiliser les guillemets plutôt que les apostrophes permet d'indiquer si majuscules, minuscules et lettres accentuées doivent être ou non considérées équivalentes.


Pour les résultats, les chaînes de caractères peuvent être représentées de l' une ou l'autre façon, sans que celà produise une différence. "Monsieur"=' Madame' est donc tout à fait équivalent à: "Monsieur"="Madame".


Une règle peut comporter plusieurs patrons de fouille séparés par des virgules. Pour que la règle s'applique il faut que consécutivement chacun des patrons se vérifie dans les données en entrée.


Par exemple, la règle 'D',"estin" = 'DESTIN' est composée du patron de fouille 'D' suivi du patron de fouille "estin".

Lorsqu'un D majuscule est rencontré dans les données, immédiatement suivi par estin en majuscules ou en minuscules, la règle s'applique: DESTIN (tout en majuscules) est inscrit en sortie.

Destin, DESTIN et DeStIn deviennent donc DESTIN mais pas destin (sans majuscule au début).

SUBSTITUTIONS SIMPLES

RECAPITULATION

*---Un fichier de directives comprend des définitions de transformations.

*--Chaque transformation débute par nom: et est composée d'une ou plusieurs règles.

*-Chaque règle comporte un ou plusieurs patrons de fouille qui définissent ce qui doit être retrouvé dans les données en entrée.

*Les patrons de fouille les plus simples sont des chaînes de caractères à retrouver telles quelles (chaînes entre apostrophes) ou sans tenir compte des différences entre majuscules, minuscules et accents (chaînes entre guillemets).

*-Une règle peut ensuite comporter un signe = suivi des résultats. Ceux-ci définissent ce qui doit être produit en sortie lorsque les patrons de fouille se vérifient.

*-Un point ( . ) indique la fin d'une règle.

CARACTÈRES

Le plus petit élément d'information traité par ADAPT est le caractère: les règles d'une transformation sont vérifiées pour chacun des caractères du fichier d'entrée; de plus le langage ADAPT a été conçu pour exprimer facilement n'importe quel caractère et n'importe quelle suite de caractères.
Pour l'ordinateur, chaque caractère est en réalité représenté par un code: il existe donc pour chaque modèle d'ordinateur une table des caractères qui y sont disponibles.
Ci-après, vous voyez la table des caractères "ASCII 7 bits", qui est la suite minimale des caractères disponibles sur la plupart des ordinateurs.

Code    Car.        Code     Car.           Code      Car.      Code      Car.

#0 ^@ #32 blanc #64 @ #96 ` #1 ^A #33 ! #65 A #97 a #2 ^B #34 " #66 B #98 b #3 ^C #35 # #67 C #99 c #4 ^D #36 $ #68 D #100 d #5 ^E #37 % #69 E #101 e #6 ^F #38 & #70 F #102 f #7 ^G #39 ' #71 G #103 g #8 ^H #40 ( #72 H #104 h #9 ^I #41 ) #73 I #105 i #10 ^J #42 * #74 J #106 j #11 ^K #43 + #75 K #107 k #12 ^L #44 , #76 L #108 l #13 ^M #45 - #77 M #109 m #14 ^N #46 . #78 N #110 n #15 ^O #47 / #79 O #111 o #16 ^P #48 0 #80 P #112 p #17 ^Q #49 1 #81 Q #113 q #18 ^R #50 2 #82 R #114 r #19 ^S #51 3 #83 S #115 s #20 ^T #52 4 #84 T #116 t #21 ^U #53 5 #85 U #117 u #22 ^V #54 6 #86 V #118 v #23 ^W #55 7 #87 W #119 w #24 ^X #56 8 #88 X #120 x #25 ^Y #57 9 #89 Y #121 y #26 ^Z #58 : #90 Z #122 z #27 ^[ #59 ; #91 [ #123 { #28 ^\ #60 < #92 \ #124 #29 ^] #61 = #93 ] #125 } #30 ^^ #62 > #94 ^ #126 ~ #31 ^_ #63 ? #95 _ #127 $7F

Parmi cet ensemble de caractères, il y a 95 caractères affichables, qui vont du caractère blanc (#32) à la tilde ( ~ , #126).

Les autres caractères, appelés caractères de contrôle, servent surtout à la mise en page: retour de chariot ( ^M ), changement de ligne ( ^J ), changement de page ( ^L ), etc.; certains servent aussi aux télé communications.

L'utilisation de ces caractères, de même que celle des caractères accentués est expliquée au chapitre CARACTERES SPECIAUX (voir aussi les tables complètes en annexe).

Dans cette table, les lettres ont des codes croissants selon l'ordre alphabétique: en comparant deux caractères (et donc les codes de ces caractères) l' ordinateur utilise donc l'ordre alphabétique standard. A < B < ... < Z

De plus, vous remarquerez que les caractères numériques (les chiffres de '0' à '9') ont des codes consécutifs et croissants (#48 à #57), et non pas les codes #0 à #9: pour un ordinateur, un caractère numérique est donc quelque chose de complètement différent d'un nombre. La chaîne de caractères "0123" est la suite de codes #48, #49, #50, #51 et non pas le nombre 123.