Section courante

A propos

Section administrative du site

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 :

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 :

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 :

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 :

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 :

Voici des exemples de constantes de chaîne de caractères entre guillemets :

  1. 'Baltique'
  2. 'A' 
  3. 'MAJUSCULE'
  4. ';'
  5. 'S''il le faut!'
  6. '''' 
  7. ''

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 :

  1. 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 :

  1. { tout texte ne contenant pas d'accolade droite }
  2. (* 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.



Dernière mise à jour : Vendredi, le 28 juin 2024