Difference between revisions of "Reserved words/fr"

From Lazarus wiki
Jump to navigationJump to search
m (resolve a redlink caused by case-sensitivity of page names in this Wiki)
 
(12 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
__TOC__
 
__TOC__
 
<br>
 
<br>
Les mots-clés des [[Compiler Mode/fr|modes du compilateur]] sont résumés comme suit: <br>
+
Les mots-clés des <!---[[Compiler Mode/fr|modes du compilateur]]--->[[:Category:Modes/fr|modes du compilateur]] sont résumés comme suit: <br>
* modeTurbo Pascal: Les mots-clés du Turbo Pascal sont disponibles pour votre usage<br>
+
* [[Mode TP/fr|Mode Turbo Pascal]]: Les mots-clés du Turbo Pascal sont disponibles pour votre usage<br>
* mode Delphi: Les mots-clés du Turbo Pascal et du Pascal Object sont disponibles pour votre usage<br>
+
* [[Mode Delphi/fr|Mode Delphi]]: Les mots-clés du Turbo Pascal et du Pascal Object sont disponibles pour votre usage<br>
* mode Free Pascal: Les mots-clés du Turbo Pascal et du Pascal Object sont disponibles pour votre usage<br>
+
* [[Mode ObjFPC/fr|Mode Free Pascal étendu]]: Les mots-clés du Turbo Pascal et du Pascal Object sont disponibles pour votre usage<br>
 
<br>
 
<br>
 
Note: Les termes mot-clé et mot réservé sont utilisé de manière interchangeables ici ''est-ce correct ?''
 
Note: Les termes mot-clé et mot réservé sont utilisé de manière interchangeables ici ''est-ce correct ?''
Line 20: Line 20:
 
| [[And/fr|and]] || Opérateur booléen à True si les deux opérandes sont True
 
| [[And/fr|and]] || Opérateur booléen à True si les deux opérandes sont True
 
|-
 
|-
| [[array/fr|array]] || Eléments multiples avec le même nom
+
| [[Array/fr|array]] || Eléments multiples avec le même nom
 
|-
 
|-
| [[asm/fr|asm]] || Début du code écrit en langage d'assemblage
+
| [[Asm/fr|asm]] || Début du code écrit en langage d'assemblage
 
|-
 
|-
| [[begin/fr|begin]] || Début d'un [[block/fr|bloc]] de code
+
| [[Begin/fr|begin]] || Début d'un [[Block/fr|bloc]] de code
 
|-
 
|-
| [[break/fr|break]] || Sortie d'une instruction case
+
| [[Break/fr|break]] || Sortie d'une instruction case
 
|-
 
|-
 
| [[Case/fr|case]] || Choisir un segment de code particulier pour l'exécuter selon une valeur
 
| [[Case/fr|case]] || Choisir un segment de code particulier pour l'exécuter selon une valeur
 
|-
 
|-
| [[const/fr|const]] || Déclarer un identificateur avec une valeur fixée, ou une variable avec une valeur initialisée
+
| [[Const/fr|const]] || Déclarer un identificateur avec une valeur fixée, ou une variable avec une valeur initialisée
 
|-
 
|-
 
| [[constructor/fr|constructor]] || Routine utilisée pour initialiser un objet
 
| [[constructor/fr|constructor]] || Routine utilisée pour initialiser un objet
Line 36: Line 36:
 
| [[Continue/fr|continue]] || Saute une itération dans une boucle for et poursuit l'exécution au début de la boucle
 
| [[Continue/fr|continue]] || Saute une itération dans une boucle for et poursuit l'exécution au début de la boucle
 
|-
 
|-
| [[destructor/fr|destructor]] || Routine utilisée avant la désallocation d'un objet
+
| [[Destructor/fr|destructor]] || Routine utilisée avant la désallocation d'un objet
 
|-
 
|-
| [[div/fr|div]] || Opérateur de division entière
+
| [[Div/fr|div]] || Opérateur de division entière
 
|-
 
|-
 
| [[Do/fr|do]] || Utilisé pour indiquer le début d'une boucle (for/while)
 
| [[Do/fr|do]] || Utilisé pour indiquer le début d'une boucle (for/while)
 
|-
 
|-
| [[downto/fr|downto]] || Dans une boucle, utilisé pour indiquer que l'index est décrémenté
+
| [[Downto/fr|downto]] || Dans une boucle, utilisé pour indiquer que l'index est décrémenté
 
|-
 
|-
 
| [[Else/fr|else]] || Utilisé dans une instruction [[if/fr|if]] pour fournir un chemin d'exécution quand le test échoue
 
| [[Else/fr|else]] || Utilisé dans une instruction [[if/fr|if]] pour fournir un chemin d'exécution quand le test échoue
Line 48: Line 48:
 
| [[End/fr|end]] || Fin d'un bloc de code, un enregistrement ou certaines constructions
 
| [[End/fr|end]] || Fin d'un bloc de code, un enregistrement ou certaines constructions
 
|-
 
|-
| [[false/fr|false]] || Valeur booléenne indiquant qu'un test échoue ; contraire de [[true/fr|true]]
+
| [[False/fr|false]] || Valeur booléenne indiquant qu'un test échoue ; négation de [[True/fr|true]]
 
|-
 
|-
| [[file/fr|file]] || Structure de données externe, généralement stocké sur disque
+
| [[File/fr|file]] || Structure de données externe, généralement stocké sur disque
 
|-
 
|-
| [[for/fr|for]] || Boucle utilisé pour incrémenter/ décrémenter une variable de contrôle (compteur)
+
| [[For/fr|for]] || Boucle utilisé pour incrémenter/ décrémenter une variable de contrôle (compteur)
 
|-
 
|-
| [[function/fr|function]] || Définit le début d'une routine qui retourne une valeur
+
| [[Function/fr|function]] || Définit le début d'une routine qui retourne une valeur
 
|-
 
|-
| [[goto/fr|goto]] || Utilisé pour sortir d'un morceau de code et sauter vers un autre (la destination est nommée)
+
| [[Goto/fr|goto]] || Utilisé pour sortir d'un morceau de code et sauter vers un autre (la destination est nommée)
 
|-
 
|-
 
| [[If/fr|if]] || Test si une condition et exécute le morecau de selon le résultat
 
| [[If/fr|if]] || Test si une condition et exécute le morecau de selon le résultat
 
|-
 
|-
| [[Implementation/fr|implementation]] || Définit les routines internes dans une [[unit/fr|unité]]
+
| [[Implementation/fr|implementation]] || Définit les routines internes dans une [[Unit/fr|unité]]
 
|-
 
|-
 
| [[In/fr|in]] || Test l'existence d'un enuméré dans un ensemble
 
| [[In/fr|in]] || Test l'existence d'un enuméré dans un ensemble
 
|-
 
|-
| [[inline/fr|inline]] || Code machine inséré directement dans une routine
+
| [[Inline/fr|inline]] || Code machine inséré directement dans une routine
 
|-
 
|-
 
| [[Interface/fr|interface]] || Déclarations publiques des routines dans une [[unit/fr|unité]]
 
| [[Interface/fr|interface]] || Déclarations publiques des routines dans une [[unit/fr|unité]]
 
|-
 
|-
| [[label/fr|label]] || Définit la destination de saut pour un goto [[goto/fr|goto]]
+
| [[Label/fr|label]] || Définit la destination de saut pour un goto [[Goto/fr|goto]]
 
|-
 
|-
| [[mod/fr|mod]] || Opérateur utilisé pour retourner le reste d'une division entière
+
| [[Mod/fr|mod]] || Opérateur utilisé pour retourner le reste d'une division entière
 
|-
 
|-
| [[nil/fr|nil]] || Valeur de pointeur indiquant que le pointeur ne fait référence à aucune valeur
+
| [[Nil/fr|nil]] || Valeur de pointeur indiquant que le pointeur ne fait référence à aucune valeur
 
|-
 
|-
 
| [[Not/fr|not]] || Opérateur booléen qui nie le résultat d'un test
 
| [[Not/fr|not]] || Opérateur booléen qui nie le résultat d'un test
Line 82: Line 82:
 
| [[On/fr|on]] || ??
 
| [[On/fr|on]] || ??
 
|-
 
|-
| [[operator/fr|operator]] || Définit un routine utilisée pour implémenter un opérateur
+
| [[Operator/fr|operator]] || Définit une routine utilisée pour implémenter un opérateur
 
|-
 
|-
| [[Or/fr|or]] || boolean operator which allows either of two choices to be used
+
| [[Or/fr|or]] || Opérateur booléen à true si l'un des opérandes l'est
 
|-
 
|-
| [[packed/fr|packed]] || indicates the elements of an array are to use less space (this keyword is primarily for compatibility with older programs as packing of array elements is generally automatic)
+
| [[Packed/fr|packed]] || Indique que les éléments d'un tableau doivent utiliser le moins d'espace possible (primitivement donné pour la compatibilité avec d'anciens programmes dans lesquels la compactage des éléments est généralement automatique)
 
|-
 
|-
| [[Procedure/fr|procedure]] || define start of a routine that does not return a result value
+
| [[Procedure/fr|procedure]] || Définit le débur d'une routine qui ne retourne pas de valeur
 
|-
 
|-
| [[Program/fr|program]] || defines start of an application. This keyword is usually optional.
+
| [[Program/fr|program]] || Définit le début d'une application. Ce mot-clé est souvent optionnel
 
|-
 
|-
| [[Record/fr|record]] || group a series of variables under a single name
+
| [[Record/fr|record]] || Regroupe une série de noms de variables sous un nom unique
 
|-
 
|-
| [[Repeat/fr|repeat]] || loop through a section of code through an [[until]] statement as long as the result of the test is true
+
| [[Repeat/fr|repeat]] || Boucle sur une suite d'instructions terminée par l'instruction until suivi d'un test de fin.
 
|-
 
|-
| [[Set/fr|set]] || group a collection
+
| [[Set/fr|set]] || Ensemble d'énumérés
 
|-
 
|-
| [[Shl/fr|shl]] || operator to shift a value to the left; equivalent to multiplying by a power of 2
+
| [[Shl/fr|shl]] || Opérateur pour décaler une valeur entière vers la gauche ; équivalent à la multiplier par une puissance de 2
 
|-
 
|-
| [[Shr/fr|shr]] || operator to shift a value to the right; equivalent to dividing by a power of 2
+
| [[Shr/fr|shr]] || Opérateur pour décaler une valeur entière vers la droite ; équivalent à la diviser par une puissance de 2
 
|-
 
|-
| [[String/fr|string]] || declares a variable that contains multiple characters
+
| [[String/fr|string]] || Déclare une variable qui contient une suite de caractères
 
|-
 
|-
| [[Then/fr|then]] || indicates start of code in an [[if]] test
+
| [[Then/fr|then]] || Indique le début du code dans un test [[if/fr|if]]
 
|-
 
|-
| [[to/fr|to]] || indicates a [[for]] variable is to be incremented
+
| [[To/fr|to]] || Indique jusqu'à quelle valeur une variable de for doit être incrémentée
 
|-
 
|-
| [[true/fr|true]] || boolean value indicating a test succeeded; opposite of [[false]]
+
| [[True/fr|true]] || Valeur booléenne qui indique qu'un test réussit ; négation de [[False/fr|false]]
 
|-
 
|-
| [[type/fr|type]] || declares kinds of records or new classes of variables
+
| [[Type/fr|type]] || Déclares des nouveaux types : énumérés, ensembles, enregistrements, classes.
 
|-
 
|-
| [[Unit/fr|unit]] || separately compiled module
+
| [[Unit/fr|unit]] || Module compilé séparément
 
|-
 
|-
| [[Until/fr|until]] || indicates end test of a  [[repeat]] statement
+
| [[Until/fr|until]] || Indique le test de fin d'une instruction [[Repeat/fr|repeat]]
 
|-
 
|-
| [[Uses/fr|uses]] || names [[unit]]s this program or unit refers to
+
| [[Uses/fr|uses]] || Nomme les unités auxquelles un programme oou une unité fait référence (ce sont ses dépendances)
 
|-
 
|-
| [[Var/fr|var]] || declare variables
+
| [[Var/fr|var]] || Déclare des variables
 
|-
 
|-
| [[While/fr|while]] || test a value and if true, loop through a section of code
+
| [[While/fr|while]] || Test une expression et si égale à true, boucle sur une section de code
 
|-
 
|-
| [[With/fr|with]] || reference the internal variables within a record without having to refer to the record itself
+
| [[With/fr|with]] || Permet d'accéder aux variables internes d'un enregistrement sans avoir à référer à l'enregistement lui-même
 
|-
 
|-
| [[Xor/fr|xor]] || boolean operator used to invert an [[or]] test
+
| [[Xor/fr|xor]] || Ou exclusif, opérateur booléen qui retourne true si ces opérandes n'ont pas les mêmes valeurs booléennes
 
|}
 
|}
  
 
==Les mots réservés en Pascal Objet==
 
==Les mots réservés en Pascal Objet==
 
Le Pascal Objet étend le langage (Turbo) Pascal avec le support aussi bien pour le traitement plus facile des objets (orientation objets) que pour des concepts nouveaux ou plus avancés (threads, etc).<br>
 
Le Pascal Objet étend le langage (Turbo) Pascal avec le support aussi bien pour le traitement plus facile des objets (orientation objets) que pour des concepts nouveaux ou plus avancés (threads, etc).<br>
En plus des mots réservés du Turbo Pascal, les mots réservés suivants sont disponibles dans le mode Delphi:<br>
+
En plus des mots réservés du Turbo Pascal, les mots réservés suivants sont disponibles dans le mode Delphi:
[[as/fr|as]]<br>
+
{| class="wikitable"
[[Class/fr|class]]<br>
+
|-
[[dispose/fr|dispose]]<br>
+
| [[As/fr|as]] || Conversion d'un objet dans une classe spécifiée
[[except/fr|except]]<br>
+
|-
[[exit/fr|exit]]<br>
+
| [[Class/fr|class]] || Déclaration de classe
[[exports/fr|exports]]<br>
+
|-
[[Finalization/fr|finalization]]<br>
+
| [[Dispose/fr|dispose]] || Libération de la mémoire désignée par un pointeur
[[finally/fr|finally]]<br>
+
|-
[[inherited/fr|inherited]]<br>
+
| [[Except/fr|except]] || Partie d'un bloc try - except - end
[[Initialization/fr|initialization]]<br>
+
|-
[[is/fr|is]]<br>
+
| [[Exit/fr|exit]] || Sortie de routine
[[library/fr|library]]<br>
+
|-
[[new/fr|new]]<br>
+
| [[Exports/fr|exports]] || Clause d'exportation
[[on/fr|on]]<br>
+
|-
[[out/fr|out]]<br>
+
| [[Finalization/fr|finalization]] || Introduit le paragraphe 'finalization' optionnel d'une unité
[[property/fr|property]]<br>
+
|-
[[raise/fr|raise]]<br>
+
| [[Finally/fr|finally]] || Partie d'un bloc try - finally - end
[[self/fr|self]]<br>
+
|-
[[threadvar/fr|threadvar]]<br>
+
| [[Inherited|inherited]] || Appele la routine de la classe ancêtre
[[try/fr|try]]<br>
+
|-
 +
| [[Initialization/fr|initialization]] || Introduit un paragraphe optionnel 'initialization' d'une unité.
 +
|-
 +
| [[Is/fr|is]] || Teste le type d'un objet
 +
|-
 +
| [[Library/fr|library]] || Définit le fichier binaire comme étant une bibliothèque partagée  (DLL, SO...)
 +
|-
 +
| [[New/fr|new]] || Alloue dynamiquement de la mémoire à une variable.
 +
|-
 +
| [[On/fr|on]] || Introduit le traitement d'une classe d'exception dans un bloc try - except - end
 +
|-
 +
| [[Out/fr|out]] || Introduit une variable en sortie seulement dans une routine
 +
|-
 +
| [[Property/fr|property]] || Déclaration de propriété
 +
|-
 +
| [[Raise/fr|raise]] || Lève une exception
 +
|-
 +
| [[Self/fr|self]] || Désigne l'objet courant dans une méthode
 +
|-
 +
| [[Threadvar/fr|threadvar]] || Déclare une variable locale à un thread
 +
|-
 +
| [[Try/fr|try]] || Partie d'un bloc try - finally - end ou try - except - end
 +
|}
 
<br>
 
<br>
  
 
==Mots réservés en Free Pascal==
 
==Mots réservés en Free Pascal==
Les mots réservés dans le mode Free Pascal incluent:<br>
+
Les mots réservés dans le [[Mode ObjFPC/fr|mode Free Pascal étendu]] incluent:<br>
* Les mots réservés du mode Turbo Pascal<br>
+
* Les mots réservés du [[Mode TP/fr|mode Turbo Pascal]]<br>
* Les mots réservés du mode Pascal Objet <br>
+
* Les mots réservés du [[Mode Delphi/fr|mode Pascal Objet]] <br>
  
 
==Modifieurs (directives)==
 
==Modifieurs (directives)==
Line 161: Line 183:
 
Les modifiers ne sont pas strictement des mots réservés ; pourtant ils sont utilisés  de la même manière que les mots réservés.<br>
 
Les modifiers ne sont pas strictement des mots réservés ; pourtant ils sont utilisés  de la même manière que les mots réservés.<br>
 
Voir le manuel du Free Pascal pour les détails.<br>
 
Voir le manuel du Free Pascal pour les détails.<br>
[[absolute/fr|absolute]]<br>
+
 
[[abstract/fr|abstract]]<br>
+
{| class="wikitable"
[[alias/fr|alias]]<br>
+
|-
[[assembler/fr|assembler]]<br>
+
| [[absolute/fr|absolute]] || Pour déclarer une variable à la même adresse qu'une autre
[[cdecl/fr|cdecl]]<br>
+
|-
[[cppdecl/fr|cppdecl]]<br>
+
| [[abstract/fr|abstract]] || Une classe abstraite ne peut pas être instanciée, seulement héritée
[[default/fr|default]]<br>
+
|-
[[export/fr|export]]<br>
+
| [[alias/fr|alias]] || Renomme une routine.
[[external/fr|external]]<br>
+
|-
[[forward/fr|forward]]<br>
+
| [[assembler/fr|assembler]] || assembler...end creates an assemby language block
[[index/fr|index]]<br>
+
|-
[[local/fr|local]]<br>
+
| [[cdecl/fr|cdecl]] || Modifieur de déclaration C
[[name/fr|name]]<br>
+
|-
[[nostackframe/fr|nostackframe]]<br>
+
| [[cppdecl/fr|cppdecl]] || Modifieur de déclaration C++
[[oldfpccall/fr|oldfpccall]]<br>
+
|-
[[override/fr|override]]<br>
+
| [[default/fr|default]] ||
[[pascal/fr|pascal]]<br>
+
|-
[[private/fr|private]]<br>
+
| [[export/fr|export]] ||
[[protected/fr|protected]]<br>
+
|-
[[public/fr|public]]<br>
+
| [[external/fr|external]] ||
[[published/fr|published]]<br>
+
|-
[[read/fr|read]]<br>
+
| [[forward/fr|forward]] ||
[[register/fr|register]]<br>
+
|-
[[reintroduce/fr|reintroduce]]<br>
+
| [[generic/fr|generic]] || Déclaration de classe générique
[[safecall/fr|safecall]]<br>
+
|-
[[softfloat/fr|softfloat]]<br>
+
| [[index/fr|index]] || Assigne une propriété à l'une des index d'une propriété tableau.
[[stdcall/fr|stdcall]]<br>
+
|-
[[virtual/fr|virtual]]<br>
+
| [[local/fr|local]] ||
[[write/fr|write]]<br>
+
|-
 +
| [[name/fr|name]] ||
 +
|-
 +
| [[nostackframe/fr|nostackframe]] ||
 +
|-
 +
| [[oldfpccall/fr|oldfpccall]] ||
 +
|-
 +
| [[override/fr|override]] || Surcharge de méthode virtuelle
 +
|-
 +
| [[pascal/fr|pascal]] ||
 +
|-
 +
| [[private/fr|private]] || Modifieur d'accès privé, seuls les membre de la classe et de l'unité peuvent accéder aux données/méthodes privées
 +
|-
 +
| [[protected/fr|protected]] || Modifieur d'accès parotégé, les membres de la classe et ceux de ses dérivées peuvent accéder aux données/méthodes protégées.
 +
|-
 +
| [[public/fr|public]] || Les données et méthodes sont d'accès public.
 +
|-
 +
| [[published/fr|published]] || Les propriétés sont publiées i.e. accessibles dans l'insecteur d'objet en conception (fichier .lfm)
 +
|-
 +
| [[read/fr|read]] || Accès en lecture à une propriété
 +
|-
 +
| [[register/fr|register]] || Force l'association d'une variable à un registre
 +
|-
 +
| [[Reintroduce/fr|reintroduce]] ||
 +
|-
 +
| [[safecall/fr|safecall]] || Modifie la convention d'appel d'une routine
 +
|-
 +
| [[softfloat/fr|softfloat]] ||
 +
|-
 +
| [[specialize/fr|specialize]] || Spécialisation de [[Generics/fr|classe générique]]
 +
|-
 +
| [[stdcall/fr|stdcall]] || Modifie la convention d'appel d'une routine
 +
|-
 +
| [[virtual/fr|virtual/fr]] || Déclare une méthode virtuelle
 +
|-
 +
| [[write/fr|write/fr]] || Accès en écriture d'une propriété
 +
|-
 +
|}
 
<br>
 
<br>
  
==Unsupported Turbo Pascal modifiers==
+
==Modifieurs Turbo Pascal plus supportés==
The reason why these modifiers are not support is that these modifiers deal with 16 bit code<br>
+
Ils ne sont plus supportés car ils traitent du code 16 bits pour DOS.<br>
In other words, these modifiers have special meaning for 16 bit programming under DOS and Windows 3.x<br>
+
En d'autres mots, ces modifieurs ont un sens spécial pour les programmes 16 bits sous DOS et Windows 3.x.<br>
As Free Pascal does not support 16 bit code (only 32 and 64 bit), these modifiers are irrelevant in Free Pascal code<br>
 
[[Far|far]]<br>
 
[[Near|near]]<br>
 
<br>
 
<br>
 
  
==More functionality==
+
Comme Free Pascal ne supporte pas le code 16 bits (seulement les 32 et 64 bits), ces modifieurs sont sans importance dans le code Free Pascal.<br>
Apart from the language features provided by the reserved words/keywords mentioned above, there is a lot of functionality available for the programmer in the various libraries:
+
{{Note|Cependant, ces modifieurs sont supportés dans le compilateur croisé [[DOS/fr|DOS]] présent dans la version de développement de FPC}}
 +
[[Far/fr|far]]<br>
 +
[[Near/fr|near]]<br>
  
* RTL: Run-Time Library, available for all FPC and Lazarus programs
+
==Plus de fonctionnalité==
* FCL: Free Component Library: a core set of libraries available for Lazarus programs and usually for FPC (FPC can be compiled without it, but that only happens on purpose for low-memory embedded systems etc)
+
En dehors des caractéristiques du langage fournies par les mots réservés/mots clés du dessus, il y a beaucoup de fonctionnalités disponibles pour le programmeur dans diverses bibliothèques:
* FPC Packages: other packages provided by FPC
 
* Lazarus components: these are Lazarus components that can be dropped on a form and often based on FCL or FPC packages
 
* Lazarus utility functions: e.g. the [http://wiki.lazarus.freepascal.org/Category:fileutil fileutil] unit.
 
  
Apart from the libraries provided by FPC and Lazarus, there are more libraries/components available:
+
* [[RTL/fr|RTL]]: Bibliothèque d'exécution (Run-Time Library), disponible dans FPC pour tous les programmes FPC et Lazarus.
* FPC user-supplied units: see the FPC wiki
+
* [[FCL/fr[FCL]]: (Free Component Library) Bibliothèque de composants libre : un noyaux de bibliothèques disponibles pour les programmes Lazarus et généralement pour FPC (FPC peut être commpilé sans elle, mais cela se fait pour des systèmes embarqués à faible consommation de mémoire, etc).<br>
* Lazarus CCR: components
+
* FPC Packages: autres paquets fournis par FPC<br>
* User-supplied code on the internet: see
+
* Lazarus components: Ce sont les composants de Lazarus qui peuvent être déposés sur une fiche et souvent basés sur la FCL ou les paquets FPC. <br>
 +
* Lazarus utility functions: par exemple l'unité [http://wiki.lazarus.freepascal.org/Category:fileutil fileutil].
  
[[category:Pascal]]{{AutoCategory}}
+
En dehors des bibliothèques fournies par FPC et Lazarus, il y a encore d'autres bibliothèques/composants disponibles: <br>
 +
* unités fournies par les utilisateurs: voir le wiki FPC<br>
 +
* [[Components_and_Code_examples/fr|Lazarus CCR]] :(Components Code Repository) composants<br>
 +
* Code fourni pour les utilisateurs sur Internet: voir <br>

Latest revision as of 16:26, 25 August 2022

Deutsch (de) English (en) français (fr) polski (pl) русский (ru) 中文(中国大陆)‎ (zh_CN)


Les mots-clés des modes du compilateur sont résumés comme suit:

  • Mode Turbo Pascal: Les mots-clés du Turbo Pascal sont disponibles pour votre usage
  • Mode Delphi: Les mots-clés du Turbo Pascal et du Pascal Object sont disponibles pour votre usage
  • Mode Free Pascal étendu: Les mots-clés du Turbo Pascal et du Pascal Object sont disponibles pour votre usage


Note: Les termes mot-clé et mot réservé sont utilisé de manière interchangeables ici est-ce correct ? A faire: insérer des explications/liens vers le manuel en ligne de Free Pascal sur ce que ce sont les mots réservés/mots-clés: par exemple pouvez-vous appeler vos variables "if" etc
A faire: Créer des pages pour les mots-clés s'ils n'existent pas encore (par exemple, traduire depuis la version allemande) et un lien vers la section sur les mots-clés du manuel en ligne de Free Pascal sur ces pages.

Mots réservés en Turbo Pascal

Les mots-clé suivants se rencontrent dans le mode Turbo Pascal:

mot-clé description
and Opérateur booléen à True si les deux opérandes sont True
array Eléments multiples avec le même nom
asm Début du code écrit en langage d'assemblage
begin Début d'un bloc de code
break Sortie d'une instruction case
case Choisir un segment de code particulier pour l'exécuter selon une valeur
const Déclarer un identificateur avec une valeur fixée, ou une variable avec une valeur initialisée
constructor Routine utilisée pour initialiser un objet
continue Saute une itération dans une boucle for et poursuit l'exécution au début de la boucle
destructor Routine utilisée avant la désallocation d'un objet
div Opérateur de division entière
do Utilisé pour indiquer le début d'une boucle (for/while)
downto Dans une boucle, utilisé pour indiquer que l'index est décrémenté
else Utilisé dans une instruction if pour fournir un chemin d'exécution quand le test échoue
end Fin d'un bloc de code, un enregistrement ou certaines constructions
false Valeur booléenne indiquant qu'un test échoue ; négation de true
file Structure de données externe, généralement stocké sur disque
for Boucle utilisé pour incrémenter/ décrémenter une variable de contrôle (compteur)
function Définit le début d'une routine qui retourne une valeur
goto Utilisé pour sortir d'un morceau de code et sauter vers un autre (la destination est nommée)
if Test si une condition et exécute le morecau de selon le résultat
implementation Définit les routines internes dans une unité
in Test l'existence d'un enuméré dans un ensemble
inline Code machine inséré directement dans une routine
interface Déclarations publiques des routines dans une unité
label Définit la destination de saut pour un goto goto
mod Opérateur utilisé pour retourner le reste d'une division entière
nil Valeur de pointeur indiquant que le pointeur ne fait référence à aucune valeur
not Opérateur booléen qui nie le résultat d'un test
object Définit un type Objet
of Définit les caractéristiques d'une variable (??)
on ??
operator Définit une routine utilisée pour implémenter un opérateur
or Opérateur booléen à true si l'un des opérandes l'est
packed Indique que les éléments d'un tableau doivent utiliser le moins d'espace possible (primitivement donné pour la compatibilité avec d'anciens programmes dans lesquels la compactage des éléments est généralement automatique)
procedure Définit le débur d'une routine qui ne retourne pas de valeur
program Définit le début d'une application. Ce mot-clé est souvent optionnel
record Regroupe une série de noms de variables sous un nom unique
repeat Boucle sur une suite d'instructions terminée par l'instruction until suivi d'un test de fin.
set Ensemble d'énumérés
shl Opérateur pour décaler une valeur entière vers la gauche ; équivalent à la multiplier par une puissance de 2
shr Opérateur pour décaler une valeur entière vers la droite ; équivalent à la diviser par une puissance de 2
string Déclare une variable qui contient une suite de caractères
then Indique le début du code dans un test if
to Indique jusqu'à quelle valeur une variable de for doit être incrémentée
true Valeur booléenne qui indique qu'un test réussit ; négation de false
type Déclares des nouveaux types : énumérés, ensembles, enregistrements, classes.
unit Module compilé séparément
until Indique le test de fin d'une instruction repeat
uses Nomme les unités auxquelles un programme oou une unité fait référence (ce sont ses dépendances)
var Déclare des variables
while Test une expression et si égale à true, boucle sur une section de code
with Permet d'accéder aux variables internes d'un enregistrement sans avoir à référer à l'enregistement lui-même
xor Ou exclusif, opérateur booléen qui retourne true si ces opérandes n'ont pas les mêmes valeurs booléennes

Les mots réservés en Pascal Objet

Le Pascal Objet étend le langage (Turbo) Pascal avec le support aussi bien pour le traitement plus facile des objets (orientation objets) que pour des concepts nouveaux ou plus avancés (threads, etc).
En plus des mots réservés du Turbo Pascal, les mots réservés suivants sont disponibles dans le mode Delphi:

as Conversion d'un objet dans une classe spécifiée
class Déclaration de classe
dispose Libération de la mémoire désignée par un pointeur
except Partie d'un bloc try - except - end
exit Sortie de routine
exports Clause d'exportation
finalization Introduit le paragraphe 'finalization' optionnel d'une unité
finally Partie d'un bloc try - finally - end
inherited Appele la routine de la classe ancêtre
initialization Introduit un paragraphe optionnel 'initialization' d'une unité.
is Teste le type d'un objet
library Définit le fichier binaire comme étant une bibliothèque partagée (DLL, SO...)
new Alloue dynamiquement de la mémoire à une variable.
on Introduit le traitement d'une classe d'exception dans un bloc try - except - end
out Introduit une variable en sortie seulement dans une routine
property Déclaration de propriété
raise Lève une exception
self Désigne l'objet courant dans une méthode
threadvar Déclare une variable locale à un thread
try Partie d'un bloc try - finally - end ou try - except - end


Mots réservés en Free Pascal

Les mots réservés dans le mode Free Pascal étendu incluent:

Modifieurs (directives)

La liste du dessous est une liste des modifieurs
Les modifiers ne sont pas strictement des mots réservés ; pourtant ils sont utilisés de la même manière que les mots réservés.
Voir le manuel du Free Pascal pour les détails.

absolute Pour déclarer une variable à la même adresse qu'une autre
abstract Une classe abstraite ne peut pas être instanciée, seulement héritée
alias Renomme une routine.
assembler assembler...end creates an assemby language block
cdecl Modifieur de déclaration C
cppdecl Modifieur de déclaration C++
default
export
external
forward
generic Déclaration de classe générique
index Assigne une propriété à l'une des index d'une propriété tableau.
local
name
nostackframe
oldfpccall
override Surcharge de méthode virtuelle
pascal
private Modifieur d'accès privé, seuls les membre de la classe et de l'unité peuvent accéder aux données/méthodes privées
protected Modifieur d'accès parotégé, les membres de la classe et ceux de ses dérivées peuvent accéder aux données/méthodes protégées.
public Les données et méthodes sont d'accès public.
published Les propriétés sont publiées i.e. accessibles dans l'insecteur d'objet en conception (fichier .lfm)
read Accès en lecture à une propriété
register Force l'association d'une variable à un registre
reintroduce
safecall Modifie la convention d'appel d'une routine
softfloat
specialize Spécialisation de classe générique
stdcall Modifie la convention d'appel d'une routine
virtual/fr Déclare une méthode virtuelle
write/fr Accès en écriture d'une propriété


Modifieurs Turbo Pascal plus supportés

Ils ne sont plus supportés car ils traitent du code 16 bits pour DOS.
En d'autres mots, ces modifieurs ont un sens spécial pour les programmes 16 bits sous DOS et Windows 3.x.

Comme Free Pascal ne supporte pas le code 16 bits (seulement les 32 et 64 bits), ces modifieurs sont sans importance dans le code Free Pascal.

Light bulb  Remarque: Cependant, ces modifieurs sont supportés dans le compilateur croisé DOS présent dans la version de développement de FPC

far
near

Plus de fonctionnalité

En dehors des caractéristiques du langage fournies par les mots réservés/mots clés du dessus, il y a beaucoup de fonctionnalités disponibles pour le programmeur dans diverses bibliothèques:

  • RTL: Bibliothèque d'exécution (Run-Time Library), disponible dans FPC pour tous les programmes FPC et Lazarus.
  • [[FCL/fr[FCL]]: (Free Component Library) Bibliothèque de composants libre : un noyaux de bibliothèques disponibles pour les programmes Lazarus et généralement pour FPC (FPC peut être commpilé sans elle, mais cela se fait pour des systèmes embarqués à faible consommation de mémoire, etc).
  • FPC Packages: autres paquets fournis par FPC
  • Lazarus components: Ce sont les composants de Lazarus qui peuvent être déposés sur une fiche et souvent basés sur la FCL ou les paquets FPC.
  • Lazarus utility functions: par exemple l'unité fileutil.

En dehors des bibliothèques fournies par FPC et Lazarus, il y a encore d'autres bibliothèques/composants disponibles:

  • unités fournies par les utilisateurs: voir le wiki FPC
  • Lazarus CCR :(Components Code Repository) composants
  • Code fourni pour les utilisateurs sur Internet: voir