Les pragma de langage prédéfinis
Cette annexe définit les pragma LIST, PAGE et OPTIMIZE, et résume les définitions données ailleurs des pragma restants définis par le langage de programmation :
Pragma | Description |
---|---|
CONTROLLED | Prend le nom simple d'un type d'accès comme paramètre unique. Ce pragma n'est autorisé qu'immédiatement dans la partie déclarative ou la spécification de paquet contenant la déclaration du type d'accès; la déclaration doit se produire avant le pragma. Ce pragma n'est pas autorisé pour un type dérivé. Ce pragma spécifie que la récupération automatique d'entreposage ne doit pas être effectuée pour les objets désignés par des valeurs du type d'accès, sauf après avoir quitté l'instruction de bloc la plus interne, le corps du sous-programme ou le corps de la tâche entourant la déclaration du type d'accès, ou après avoir quitté le programme principal. |
ELABORATE | Prend un ou plusieurs noms simples désignant des unités de bibliothèque comme paramètres. Ce pragma n'est autorisé qu'immédiatement après la clause de contexte d'une unité de compilation (avant l'unité de bibliothèque suivante ou l'unité secondaire). Chaque paramètre doit être le nom simple d'une unité de bibliothèque mentionnée par la clause de contexte. Ce pragma spécifie que le corps de l'unité de bibliothèque correspondante doit être élaboré avant l'unité de compilation donnée. Si l'unité de compilation donnée est une sous-unité, le corps de l'unité de bibliothèque doit être élaboré avant le corps de l'unité de bibliothèque ancêtre de la sous-unité. |
INLINE | Prend un ou plusieurs noms comme arguments ; chaque nom est soit le nom d'un sous-programme, soit le nom d'un sous-programme générique. Ce pragma n'est autorisé qu'à la place d'un élément déclaratif dans une partie déclarative ou une spécification de paquetage, ou après une unité de bibliothèque dans une compilation, mais avant toute unité de compilation ultérieure. Ce pragma spécifie que les corps des sous-programmes doivent être développés en ligne à chaque appel chaque fois que cela est possible ; dans le cas d'un sous-programme générique, le pragma s'applique aux appels de ses instanciations. |
INTERFACE | Prend un nom de langage et un nom de sous-programme comme arguments. Ce pragma est autorisé à la place d'un élément déclaratif et doit s'appliquer dans ce cas à un sous-programme déclaré par un élément déclaratif antérieur de la même partie déclarative ou spécification de paquet. Ce pragma est également autorisé pour une unité de bibliothèque ; dans ce cas, le pragma doit apparaître après la déclaration du sous-programme et avant toute unité de compilation ultérieure. Ce pragma spécifie l'autre langage (et donc les conventions d'appel) et informe le compilateur qu'un module objet sera fourni pour le sous-programme correspondant. |
LIST | Prend l'un des identifiants ON ou OFF comme paramètre unique. Ce pragma est autorisé partout où un pragma est autorisé. Il spécifie que le listage de la compilation doit être continué ou suspendu jusqu'à ce qu'un pragma LIST avec le paramètre opposé soit donné dans la même compilation. Le pragma lui-même est toujours listé si le compilateur produit un listage. |
MEMORY_SIZE | Prend un paramètre numérique littéral comme unique. Ce pragma n'est autorisé qu'au début d'une compilation, avant la première unité de compilation (le cas échéant). L'effet de ce pragma est d'utiliser la valeur du littéral numérique spécifiée pour la définition du nom nommé MEMORY_SIZE. |
OPTIMIZE | Prend l'un des identifiants TIME ou SPACE comme paramètre unique. Ce pragma n'est autorisé que dans une partie déclarative et s'applique au bloc ou au corps entourant la partie déclarative. Il spécifie si le temps ou l'espace est le critère d'optimisation principal. |
PACK | Prend le nom simple d'un type d'enregistrement ou de tableau comme paramètre unique. Les positions autorisées pour ce pragma et les restrictions sur le type nommé sont régies par les mêmes règles que pour une clause de représentation. Le pragma spécifie que la minimisation du stockage doit être le critère principal lors de la sélection de la représentation du type donné. |
PAGE | Ce pragma n'a pas de paramètre et est autorisé partout où un pragma est autorisé. Il spécifie que le texte du programme qui suit le pragma doit commencer sur une nouvelle page (si le compilateur est en train de produire une liste). |
PRIORITY | Prend une expression statique du sous-type entier prédéfini PRIORITY comme paramètre unique. Ce pragma n'est autorisé que dans la spécification d'une unité de tâche ou immédiatement dans la partie déclarative la plus externe d'un programme principal. Il spécifie la priorité de la tâche (ou des tâches du type de tâche) ou la priorité du programme principal. |
SHARED | Prend le nom simple d'une variable comme paramètre unique. Ce pragma n'est autorisé que pour une variable déclarée par une déclaration d'objet et dont le type est un type scalaire ou d'accès ; la déclaration de variable et le pragma doivent tous deux apparaître (dans cet ordre) immédiatement dans la même partie déclarative ou spécification de package. Ce pragma spécifie que chaque lecture ou mise à jour de la variable est un point de synchronisation pour cette variable. Une implémentation doit restreindre les objets pour lesquels ce pragma est autorisé aux objets pour lesquels chacune des opérations de lecture directe et de mise à jour directe est implémentée comme une opération indivisible. |
STORAGE_UNIT | Prend un littéral numérique comme paramètre unique. Ce pragma n'est autorisé qu'au début d'une compilation, avant la première unité de compilation (le cas échéant). L'effet de ce pragma est d'utiliser la valeur du littéral numérique spécifié pour la définition du nombre nommé STORAGE_UNIT. |
SUPPRESS | Prend comme paramètres l'identifiant d'une vérification et éventuellement aussi le nom d'un objet, d'un type ou d'un sous-type, d'un sous-programme, d'une unité de tâche ou d'une unité générique. Ce pragma n'est autorisé que soit immédiatement dans une partie déclarative, soit immédiatement dans une spécification de paquet. Dans ce dernier cas, la seule forme autorisée est avec un nom désignant une entité (ou plusieurs sous-programmes surchargés) déclarée immédiatement dans la spécification de paquet. L'autorisation d'omettre la vérification donnée s'étend de l'emplacement du pragma jusqu'à la fin de la région déclarative associée à l'instruction de bloc ou à l'unité de programme la plus interne. Pour un pragma donné dans une spécification de paquet, l'autorisation s'étend jusqu'à la fin de la portée de l'entité nommée. Si le pragma inclut un nom, l'autorisation d'omettre la vérification donnée est encore plus restreinte : elle est donnée uniquement pour les opérations sur l'objet nommé ou sur tous les objets du type de base d'un type ou d'un sous-type nommé; pour les appels d'un sous-programme nommé ; pour les activations de tâches du type de tâche nommé; ou pour les instanciations de l'unité générique donnée. |
SYSTEM_NAME | Prend un littéral d'énumération comme argument unique. Ce pragma n'est autorisé qu'au début d'une compilation, avant la première unité de compilation (le cas échéant). L'effet de ce pragma est d'utiliser le littéral d'énumération avec l'identifiant spécifié pour la définition de la constante SYSTEM_NAME. Ce pragma n'est autorisé que si l'identifiant spécifié correspond à l'un des littéraux du type NAME déclaré dans le paquet SYSTEM. |
Dernière mise à jour : Mardi, le 7 janvier 2025