Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Références de mots réservés (mots clefs)
Référence de interfaces
Référence de procédures et de fonctions
Référence des directives de compilation
MPW et le Macintosh
À propos de MPW Pascal
Les symboles
Les instructions
Fichiers et entrée/sortie
Routines prédéfinies
Programmation orientée objet
Options et directives du compilateur
Basilisk II
MPW Pascal et autres Pascals
La bibliothèque SANE
L'utilitaire PasMat
L'utilitaire PasRef
L'utilitaire ProcNames
Prise en charge du 68020
Préface
Notes légal
Dictionnaire
Recherche

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.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 28 juin 2024