Vocabulaire Pascal
Le vocabulaire Pascal se compose des éléments suivants :
- Symboles spéciaux
- Identificateurs prédéfinis
- Identificateurs définis par l'utilisateur
- Nombres
- Chaînes de caractères
- Instructions d'étiquette
- Commentaires
Symboles spéciaux
Les symboles spéciaux en Pascal se répartissent en trois catégories :
- Symboles de mots (également appelés mots réservés)
- Opérateurs
- Délimiteurs
Mots réservés
Pascal réserve certains mots à des usages spécifiques. Ces mots ne peuvent être redéfinis par l'utilisateur ni utilisés d'une autre manière que celle à laquelle ils sont destinés. Les mots réservés sont les suivants :
- AND
- ARRAY
- BEGIN
- BY
- CACHE
- CASE
- COMMON
- CONST
- DIV
- DO
- DOWNTO
- ELSE
- END
- EXPORTED
- EXTERNAL
- FILE
- FOR
- FORTRAN
- FORWARD
- FUNCTION
- GOTO
- IF
- IMPORTED
- IN
- LABEL
- MOD
- MODULE
- NIL
- NOT
- OF
- OR
- OTHERWISE
- PACKED
- PROCEDURE
- PROGRAM
- RECORD
- REPEAT
- SET
- STATIC
- TASKVAR
- THEN
- TO
- TYPE
- UNTIL
- VALUE
- VAR
- VIEWING
- WHILE
- WITH
La signification de chaque mot réservé est discutée dans le contexte de l'énoncé dans lequel il apparaît.
Tous les mots de la liste précédente sont des mots réservés Pascal standard, à l'exception de BY, CACHE, COMMON, EXPORTED, EXTERNAL, FORTRAN, FORWARD, IMPORTED, MODULE, OTHERWISE, STATIC, TASKVAR, VALUE et VIEWING. (En Pascal standard, FORWARD est une directive et non un mot réservé.)
Les opérateurs
Le tableau suivant répertorie les opérateurs Pascal et donne une brève description de la fonction de chacun. Certains opérateurs sont utilisés de plusieurs façons.
Opérateur | Description |
---|---|
+ | L'opérateur «+» exécute les fonctions suivantes :
|
- | L'opérateur «-» exécute les fonctions suivantes :
|
* | L'opérateur «*» exécute les fonctions suivantes :
|
/ | Divise un nombre par un autre sans tronquer le résultat. |
DIV | Divise un entier par un autre et tronque le reste. |
:= | Affecte une valeur à une variable. |
MOD | Donne le reste résultant de la division d'un entier par un autre (modulo). |
AND | Donne la conjonction logique de deux opérandes booléens. |
OR | Donne la disjonction logique de deux opérandes booléens. |
NOT | Inverse la valeur d'un opérande booléen. |
= | Teste si le premier opérande est égal au second. |
< | Tests whether the first operand is less than the second. |
> | Teste si le premier opérande est supérieur au second. |
<= | La combinaison <= d'opérateurs exécute les fonctions suivantes :
|
<= | La combinaison d'opérateurs >= exécute les fonctions suivantes :
|
<> | La combinaison d'opérateurs <> remplit les fonctions suivantes :
|
IN | Teste si le premier opérande est un membre de l'ensemble du deuxième opérande. |
^ | Indique que la variable précédente est un pointeur vers une valeur plutôt qu'une valeur elle-même. |
Les opérandes des opérateurs booléens sont évalués de gauche à droite et, dans Cray Pascal, l'évaluation s'arrête dès que l'expression est résolue comme TRUE ou FALSE.
Exemple :
Si i a une valeur de NIL dans l'exemple ci-dessus, l'évaluation s'arrête avant que t(j)=7 ne soit évalué, car l'expression ne peut être résolue qu'en FALSE.
Délimiteurs
Pascal reconnaît les délimiteurs suivants :
Blanc . , ; : ' ( ) [ ] { } (* *) (. .) EOL |
Les délimiteurs (. et .) sont des représentations alternatives pour [ et ], respectivement. Les espaces, les caractères de fin de ligne (EOL), les points-virgules et les commentaires sont des séparateurs. Au moins un séparateur doit apparaître entre les mots, identificateurs ou valeurs réservés. Un séparateur ne peut pas apparaître dans un mot, un identificateur ou une valeur réservés.
Remarque : Cray Pascal ne prend pas en charge le caractère @ comme représentation alternative du ^, comme spécifié par la norme ISO Niveau 1 Pascal.
Une instruction peut traverser les limites de ligne. De plus, comme le code source Pascal est de format libre, plusieurs instructions peuvent être placées sur une seule ligne. Le point-virgule sépare les instructions simples et composées les unes des autres. Une instruction composée est une structure dans laquelle les mots réservés BEGIN et END délimitent au moins une instruction simple.
La forme générale d'une instruction composée est la suivante :
BEGIN statement { ";" statement} END |
Il n'est pas nécessaire d'insérer un point-virgule après l'instruction finale, car cette instruction est suivie du mot réservé END plutôt que d'une autre instruction. Un point-virgule apparaîtrait après END si l'instruction composée qu'il termine était suivie d'une autre instruction, simple ou composée. Si, toutefois, un point-virgule était placé après l'instruction finale, l'instruction composée s'exécuterait toujours comme prévu. Pascal suppose la présence d'une instruction nulle après le point-virgule dans un tel cas.
Identificateurs prédéfinis
Pascal prédéfinit un ensemble d'identificateurs pour faire référence à des types de données, des fichiers, des constantes, des fonctions et des procédures. Vous pouvez redéfinir ces identificateurs. Les identificateurs prédéfinis peuvent être considérés comme ayant été définis dans un bloc hypothétique entourant le programme. Les identificateurs prédéfinis sont les suivants :
- $DEBUG
- ABS
- ALFA
- ALL
- ANY
- ARCCOS
- ARCSIN
- ARCTAN
- BAND
- BNOT
- BOOLEAN
- BOR
- BXOR
- CHAR
- CHR
- CONNECT
- COS
- COSH
- DISPOSE
- EOF
- EOLN
- EXP
- FALSE
- GET
- HALT
- I24
- I32
- INPUT
- INTEGER
- LN
- LOC
- LOG
- LSHIFT
- MAXINT
- MAXVAL
- MINVAL
- NEW
- ODD
- ORD
- OUTPUT
- PACK
- PAGE
- POP
- PRED
- PRODUCT
- PUT
- READ
- READLN
- REAL
- RESET
- REWRITE
- ROUND
- RSHIFT
- SIN
- SINH
- SIZEOF
- SQR
- SQRT
- SUCC
- SUM
- TAN
- TANH
- TEXT
- TRUE
- TRUNC
- UNPACK
- WRITE
- WRITELN
Dans la liste précédente, les extensions CRI suivantes sont celles de la norme ISO : ALFA, ALL, ANY, ARCCOS, ARCSIN, BAND, BNOT, BOR, BXOR, CONNECT, COSH, $DEBUG, HALT, I24, I32, LOC, LOG, LSHIFT, MAXVAL, MINVAL, POP, PRODUCT, RSHIFT, SINH, SIZEOF, SUM, TAN et TANH.
Identificateurs définis par l'utilisateur
Un identificateur défini par l'utilisateur ne peut pas être identique à un mot réservé ; s'il est identique à un identificateur prédéfini, il redéfinit cet identificateur.
Les identificateurs doivent commencer par une lettre et peuvent être suivis de n'importe quel nombre de lettres et de chiffres. Les lettres majuscules et minuscules peuvent être utilisées de manière interchangeable. Sous Cray Pascal étendu, les identificateurs peuvent commencer par une lettre ou l'un des caractères suivants :
$ % @ |
Les caractères suivants peuvent également inclure le caractère de soulignement sous Cray Pascal étendu.
Les caractères spéciaux suivants à utiliser dans les identificateurs sont des extensions CRI de la norme ISO Niveau 1 Pascal : $ % @ _.
Tous les caractères d'un identificateur sont significatifs, c'est-à-dire que le compilateur ne reconnaît pas un identificateur uniquement par ses n premiers caractères. Un identificateur ne doit cependant pas être continué sur deux lignes, car un caractère de fin de ligne (EOL) apparaîtra à l'intérieur et le séparera en deux identificateurs. Ainsi, un identificateur Pascal est effectivement limité à la taille de ligne maximale, étant de 140 caractères.
Les identificateurs valides sont les suivants :
- X
- $Pasc_task1
- CrayComputerProcedureNumber2
- return2beginning
Étant donné que le compilateur Pascal ne fait pas de distinction entre les majuscules et les minuscules, tous les éléments suivants font référence à la même variable :
- IsItTrue
- ISITTRUE
- isittrue
- IsitTRUE
Nombres
Les nombres en Pascal peuvent être décimaux ou octaux. Les nombres octaux sont suivis de B ou b et sont limités aux entiers.
Les nombres ne peuvent pas contenir de virgules et ne peuvent pas dépasser une limite de ligne, mais ils peuvent être précédés d'un signe plus ou moins. Un nombre réel doit avoir au moins 1 chiffre de chaque côté de la virgule décimale ou être écrit en notation scientifique.
En notation scientifique, la lettre E (ou e) suivie d'un facteur d'échelle apparaît à la fin d'un nombre. Le facteur d'échelle peut être précédé d'un + ou d'un - ; si aucun des deux n'est présent, + est supposé. Le E représente : fois 10 à la puissance de. Ainsi, 2E6 est 2 fois 10 à la puissance de 6, soit 2 000 000.
L'identificateur prédéfini MAXINT spécifie le plus grand entier positif valide. La valeur de MAXINT sur un ordinateur Cray est 263-1 (9 223 372 036 854 775 807 en décimal). -MAXINT est -263-1.
Les nombres suivants sont valides :
- 1
- +02
- -0.6
- 0.3E-8
- 12e10
- 77B (* = 63 *)
- -71B (* = -57 *)
Les nombres octaux sont une extension CRI de la norme ISO Niveau 1 Pascal.
Chaînes de caractères
Les chaînes de caractères contiennent un ou plusieurs caractères entourés d'apostrophes. Une apostrophe dans une chaîne de caractères est représentée par deux apostrophes. Les exemples suivants sont des chaînes de caractères valides :
- 'X'
- '@'
- 'Partie 1'
- 'J''ai'
Une chaîne de caractères doit être entièrement contenue sur une seule ligne.
Étiquettes d'instructions
Une étiquette d'instruction sert de cible pour un transfert de contrôle de programme initié dans une instruction GOTO. Chaque étiquette doit être déclarée dans la section des déclarations du bloc de programme dans lequel elle apparaît. Une étiquette est une séquence de 1 à 4 chiffres.
Les étiquettes suivantes sont valides :
- 5
- 75
- 0
- 9999
- 0001
Les commentaires
Les commentaires contiennent des informations explicatives ne générant pas de code exécutable. Les commentaires commencent par { ou (* et se terminent par } ou *).
Exemple :
- (* Ceci est un commentaire. *)
Une extension CRI permet d'imbriquer des commentaires en exigeant qu'un commentaire soit fermé avec le symbole correspondant à celui avec lequel il a été ouvert. Si l'option du compilateur ISO est désactivée, un commentaire ouvert avec un { doit être terminé par un }, et un commentaire ouvert avec un (* doit être terminé par un *).
La possibilité d'imbriquer des commentaires est une extension CRI de la norme Pascal ISO niveau 1.
Si l'option du compilateur ISO est activée, un commentaire commençant par un { peut être fermé par un *); de même, un } peut fermer un commentaire commencé par un (*.
En général, le Cray Pascal utilise le format de commentaire (* et *).
Un commentaire commençant par (*# indique une directive du compilateur. Toutes les directives du compilateur apparaissant dans le programme source doivent apparaître dans des commentaires. La sous-section Directives du compilateur de la page Les premiers pas décrit les directives du compilateur.
Exemple :
- (*#L-*)