Les symboles
Cette page traite des symboles, les plus petites unités significatives du texte source dans un programme Pascal.
Plus spécifiquement, elle traite des symboles sous les titres suivants :
- Symboles spéciaux et mots réservés
- identificateurs
- Nombres
- Étiquettes
- Constantes de chaîne de caractères entre guillemets
- Délimiteurs
- Directives
- Commentaires et directives du compilateur
Chaque texte source Pascal est constitué d'une succession de tels symboles. Vous écrivez chaque symbole sous la forme d'une chaîne de caractères ASCII, selon ces règles :
- Chaque symbole doit être complet et ininterrompu ; vous ne pouvez pas insérer un symbole dans un autre.
- Vous pouvez écrire des commentaires n'importe où, à condition qu'ils ne brisent pas d'autres symboles. Le compilateur Pascal les ignore simplement.
- Sous réserve de certaines exceptions, expliquées ci-dessous, vous devez écrire les délimiteurs en alternance avec les autres symboles. Le compilateur utilise des délimiteurs pour déterminer où commencent et se terminent les autres symboles.
Le jeu de caractères utilisé par MPW Pascal est un ASCII étendu à huit bits, avec des caractères représentés par des codes numériques compris entre 0 et 255.
Le compilateur ne reconnaît pas les codes de contrôle ASCII (ASCII 0 à ASCII 31), à l'exception des tabulations et des retours chariot. Sinon, il traite les sous-ensembles suivants de l'ensemble de caractères ASCII :
- Les lettres sont celles de l'alphabet anglais, de A à Z et a à z.
- Les chiffres sont les chiffres arabes de 0 à 9.
- Les chiffres hexadécimales sont les chiffres arabes de 0 à 9, les lettres de A à F et les lettres de a à f.
- Les espaces sont le caractère espace (ASCII 32), le caractère de tabulation horizontale (ASCII 9), le caractère de retour (ASCII 13) et l'espace d'option (ASCII 202).
- Le trait de soulignement, ASCII 95.
Symboles spéciaux et mots réservés
Les symboles spéciaux et les mots réservés sont des symboles ayant des significations fixes. Si vous essayez de modifier leur signification ou de les utiliser d'une manière autre que celle prévue, le compilateur générera une erreur. Les caractères uniques suivants sont des symboles spéciaux :
+ - * / = < > [ ] . , ( ) : ; ^ @ { } $ & | |
Les paires de caractères suivantes sont des symboles spéciaux :
<> <= >= := (* *) (. .) ** |
Certains des symboles spéciaux sont également des opérateurs.
Note : Les symboles (. et .) sont équivalents à [ et ].
Les mots réservés dans MPW Pascal sont répertoriés dans le tableau suivant :
Mots réservés (mots clefs) | Description |
---|---|
AND | Ce mot réservé permet d'effectuer un Et logique sur des booléens ou Et binaire sur des valeurs numériques. |
ARRAY | Cet opérateur permet de définir des tableaux avec des valeurs scalaires. |
BEGIN | Ce mot réservé permet de définir le début d'un bloc d'instruction. |
CASE | Ce mot réservé permet de définir une liste de conditionnels ayant comme point de comparaison un même résultat. |
CONST | Ce mot réservé permet de définir une constante ou de définir une variable avec une valeur constante au lancement du programme. |
DIV | Ce mot réservé permet d'effectuer la division entière de nombre entier par un second. |
DO | Ce mot réservé permet d'indiquer des instructions a exécuter ou traiter selon un certain contexte. |
DOWNTO | Ce mot réservé permet d'indiquer que le compteur de boucle se produit dans le sens inverse. |
ELSE | Ce mot réservé permet de faire exécuter des instructions dans le contraire d'une condition. |
END | Ce mot réservé permet de définir la fin d'un bloc d'instruction, d'un enregistrement (RECORD) ou d'une évaluation de cas (CASE OF). |
FILE | Ce mot réservé permet de définir une variable de format de fichier. |
FOR | Ce mot réservé permet de produire un compteur de boucle. |
FUNCTION | Ce mot réservé permet de définir une fonction utilisateur. |
GOTO | Ce mot réservé permet d'effectuer un branchement à une instruction correspondant à l'emplacement de l'étiquette. |
IF | Ce mot réservé permet d'effectuer des branchements d'instruction ou de bloc d'instruction en fonction de certaines conditions. |
IMPLEMENTATION | Ce mot réservé permet de spécifier la zone privé où sont décrits le code de l'unité. |
IN | Ce mot réservé permet d'indiquer une correspondance avec l'ensemble spécifié. |
INTERFACE | Ce mot réservé permet de définir la zone publique et les entêtes dans une unité. |
INTRINSIC | Ce mot réservé est réservé pour un usage futur. |
LABEL | Ce mot réservé permet de définir des étiquettes utilisable habituellement par l'instruction «GOTO» ou comme adressage dans le code assembleur. |
MOD | Ce mot réservé permet d'effectuer un Modulo, c'est-à-dire le restant d'une division. |
NIL | Ce mot réservé permet d'indiquer que le pointeur pointe sur une valeur nulle ou sur rien. |
NOT | Ce mot réservé permet d'effectuer un Non logique sur des booléens ou Non binaire sur des valeurs numériques. |
OF | Ce mot réservé permet d'indiquer un groupe d'élément. |
OR | Ce mot réservé permet d'effectuer un Ou logique sur des booléens ou Ou binaire sur des valeurs numériques. |
OTHERWISE | Ce mot réservé permet d'indiquer la condition par défaut si aucune condition ne correspond dans une évaluation de cas. |
PACKED | Ce mot réservé permet d'indiquer au compilateur d'utiliser le moins de mémoire possible pour la définition de la structure. |
PROCEDURE | Ce mot réservé permet de définir une procédure. |
PROGRAM | Ce mot réservé permet d'indiquer le nom du programme Pascal. |
RECORD | Ce mot réservé permet de définir des structures d'enregistrement contenu dans des variables. |
REPEAT | Ce mot réservé permet d'effectuer des boucles d'instructions à répétition tant que la condition n'est pas vrai. |
SET | Ce mot réservé permet de définir des ensembles. |
STRING | Ce mot réservé permet de définir une variable de chaîne de caractères de format String. |
THEN | Ce mot réservé permet d'effectuer des branchements d'instruction ou de bloc d'instruction en fonction de certaines conditions. |
TO | Ce mot réservé permet d'indiquer l'intervalle dans un compteur de boucle. |
TYPE | Ce mot réservé permet de définir des types de données utilisateur. |
UNIT | Ce mot réservé permet de définir l'entête d'une unité. |
UNTIL | Ce mot réservé permet d'effectuer des boucles d'instructions à répétition tant que la condition n'est pas vraie. |
USES | Ce mot réservé permet d'indiquer les unités devant être utilisé par le programme. |
VAR | Ce mot réservé permet de définir des variables. |
WHILE | Ce mot réservé permet de produire une boucle exécuté tant et aussi longtemps que la condition est vrai. |
WITH | Ce mot réservé permet de définir la structure d'enregistrement courante devant être utilisé pour les variables. |
Ces mots réservés apparaissent souvent en majuscules dans ce site. Cependant, MPW Pascal n'est pas sensible à la casse : les majuscules et les minuscules correspondantes sont équivalentes.
Les identificateurs
Les identificateurs sont les noms désignant les constantes, les types, les variables, les procédures, les fonctions, les unités et les programmes, ainsi que les champs des enregistrements. Voici les règles d'écriture des identificateurs :
- Un identificateur peut être de n'importe quelle longueur, mais seuls les 63 premiers caractères sont significatifs.
- Ils ne sont pas sensibles à la casse ; les lettres majuscules et minuscules correspondantes sont équivalentes.
- Ils ne peuvent contenir que des lettres, des chiffres et des caractères de soulignement (ASCII 95) ; en particulier, ils ne peuvent pas contenir d'espaces.
- Chaque identificateur doit commencer par une lettre ou un trait de soulignement.
Voici quelques exemples d'identificateurs :
Z Knowledge SUM get_byte An_identifier_can_be_as_long_as~ou_want_stop |
Nombres
Dans un programme MPW Pascal, vous pouvez utiliser la notation décimale ordinaire pour les nombres étant des constantes de types de données Integer et LongInt et les types réels. Vous pouvez également écrire une constante entière hexadécimale en utilisant le caractère $ comme préfixe. Enfin, vous pouvez utiliser la notation scientifique (E ou e suivi d'un exposant) pour les types réels. Voici les diagrammes de syntaxe pour l'écriture des nombres :
La lettre E ou e précédant le facteur d'échelle dans un nombre réel non signé signifie «fois dix à la puissance de».
Voici des exemples de notation correcte pour les nombres dans les programmes MPW Pascal :
1 +100G -0.1 5E-3 87.35e+8 $A05D |
Notez que 5E-3 signifie 5x10-3 et 87.35e+8 signifie 87,35x108. Vous pouvez omettre le signe plus (+) avant l'exposant afin que 8E+7 et 8E7 soient équivalents.
Les nombres écrits avec un point décimal ou un exposant sont entreposés comme type Extended (sauf s'ils sont explicitement assignés à une variable d'un autre type réel). Les autres nombres décimaux sont entreposés comme le plus petit type numérique (Integer ou LongInt) nécessaire pour cette valeur. Par exemple, une valeur entière de -32768 à 32767 est entreposée sur deux octets, comme type Integer.
Une constante hexadécimale avec un à quatre chiffres est entreposée comme une quantité Integer (deux octets); une constante avec cinq à huit chiffres est entreposée comme une quantité LongInt (quatre octets). Une valeur hexadécimale intégrale comportant plus de huit chiffres significatifs provoque une erreur de dépassement de capacité. Les zéros non significatifs sont comptabilisés dans le nombre de chiffres hexadécimaux. Le signe de la valeur résultante est implicite dans la notation hexadécimale.
Voici quelques exemples de constantes hexadécimales et de leurs valeurs entières :
$F=15 $FFFF=-1 (Integer) $0FFFF=65535 (LongInt) $FFFFF=1048575 $FFFFFFFF=-1 (LongInt) |
Les étiquettes (LABEL)
Un LABEL est une séquence de chiffres comprise entre 0 et 9999. Les zéros non significatifs dans les étiquettes ne sont pas significatifs. Par exemple, 0078 et 78 sont équivalents. Les étiquettes sont utilisées avec les instructions GOTO.
Les constantes de chaîne de caractères entre guillemets
Une constante de chaîne de caractères entre guillemets est une séquence de zéro ou plusieurs caractères d'ensemble de caractères ASCII. Voici les règles d'écriture des constantes de chaîne de caractères entre guillemets :
- Chaque constante doit être écrite sur une seule ligne du texte source du programme.
- Chacune doit être entourée de guillemets simples (apostrophes).
- Les espaces comptent comme des caractères dans les constantes de chaîne de caractères entre guillemets.
- Le nombre maximal de caractères dans une constante est de 255.
- Une constante de chaîne de caractères entre guillemets sans rien entre les guillemets simples indique la chaîne de caractères nulle.
- Si vous souhaitez que la constante de chaîne de caractères entre guillemets contienne un seul guillemet simple, vous devez écrire le guillemet simple deux fois.
Voici des exemples de constantes de chaîne de caractères entre guillemets :
- 'Baltique'
- 'A'
- 'MAJUSCULE'
- ';'
- 'S''il le faut!'
- ''''
- ''
La dernière est une chaîne de caractères est nulle. L'avant-dernière contient un guillemet simple.
Toutes les valeurs de chaîne de caractères ont un attribut de longueur. Dans le cas d'une constante de chaîne de caractères entre guillemets, la longueur est fixe ; elle est égale au nombre actuelle de caractères dans la valeur de chaîne de caractères.
Les constantes de caractères entre guillemets
D'un point de vue syntaxique, une constante de caractère entre guillemets est simplement une constante de chaîne de caractères entre guillemets dont la longueur est exactement un. 'A' est un exemple de constante de caractère entre guillemets.
Une constante de caractère entre guillemets est compatible avec tout type char ou STRING ; c'est-à-dire qu'elle peut être utilisée soit comme valeur de caractère, soit comme valeur de chaîne de caractères.
Les délimiteurs
Les délimiteurs sont des symboles séparant d'autres symboles dans le texte source afin que le compilateur puisse les distinguer en tant qu'objets discrets. Les espaces (espaces, tabulations, retours chariot et espaces d'option) sont les principaux délimiteurs. De plus, tous les symboles spéciaux répertoriés plus haut dans cette page servent de délimiteurs tout en exécutant leurs autres fonctions. Le compilateur peut donc traiter l'expression :
- 2+seven=number_of_planets
même s'il ne contient ni espaces ni tabulations, car + et = sont des délimiteurs.
Les commentaires et les directives du compilateur (décrits ci-dessous) agissent également comme délimiteurs.
Les directives
Les directives sont des mots ayant une signification particulière uniquement lorsqu'ils sont utilisés à la place d'une procédure ou d'un bloc de fonctions. Ils ne sont pas réservés et peuvent être utilisés comme identificateurs dans d'autres contextes. FORWARD, EXTERNAL, C et INLINE sont les quatre directives utilisées par MPW Pascal. INLINE diffère des trois autres en ce qu'elle est suivie d'une liste de constantes, constituant un sous-programme en langage machine utilisé par le compilateur pour interpréter la directive.
Directives spéciales pour Object Pascal
Les mots INHERITED et SELF n'ont de signification particulière que lorsqu'ils sont utilisés dans une déclaration de méthode Object Pascal. Vous pouvez utiliser les mots INHERITED et SELF comme identificateurs n'importe où, sauf dans une méthode. En pratique, les programmes Object Pascal sont presque entièrement constitués de méthodes, de sorte que INHERITED et SELF sont rarement utilisés comme identificateurs dans les programmes Object Pascal. Les programmes Pascal ordinaires ne contiennent jamais de méthodes.
Le mot OVERRIDE est utilisé comme une directive. Il n'a de signification particulière que lorsqu'il est utilisé après un entête de méthode dans une déclaration de type d'objet. Cependant, OVERRIDE est ajouté à la méthode et ne remplace pas son bloc.
Commentaires et directives du compilateur
Les constructions :
- { tout texte ne contenant pas d'accolade droite }
- (* tout texte ne contenant pas d'étoile-parenthèse droite *)
sont appelés commentaires. Ils sont ignorés par le compilateur.
Un commentaire ne peut pas être imbriqué dans un autre commentaire formé avec le même type de délimiteurs. Cependant, un commentaire formé avec des délimiteurs { ... } peut être imbriqué dans un commentaire formé avec des délimiteurs (* ... *), et vice versa.
Remarque : l'utilisation de commentaires imbriqués est l'une des différences entre MPW Pascal et ANS Pascal. Les structures de commentaires imbriquées vous permettent de «commenter» un texte source ne contenant qu'un seul style de délimiteurs de commentaires, c'est-à-dire de le rendre invisible au compilateur.
Une directive du compilateur est un commentaire contenant un caractère $ immédiatement après le { ou (* commençant le commentaire. Le caractère $ est suivi du mnémonique de la commande du compilateur. Les directives du compilateur sont similaires aux options du compilateur que vous entrez via la ligne de commande MPW Pascal, la principale différence étant que vous intégrez des directives dans le texte source de votre programme. Elles sont répertoriées dans la page Options et directives du compilateur et Référence des directives de compilation.