Limites du compilateur

COBOL a les limites du compilateur suivantes pour les programmes et les définitions de classe.

Bien que le compilateur COBOL prenne en charge l’adressage de plusieurs zones de mémoire au sein d’une unité de compilation jusqu’aux limites décrites dans cette annexe, une application complète, généralement composée de plusieurs unités de compilation, est toujours limitée par la quantité de stockage privé disponible dans l’espace d’adressage à laquelle il court.

En d’autres termes, une application peut manquer d’espace de stockage avant d’atteindre les limites décrites.

Limites du compilateur

Élément de langueLimite du compilateur
Longueur maximale des mots définis par l’utilisateur (par exemple, nom-données , nom-fichier , nom-classe )30 octets
Taille du programme999 999 lignes
Nombre de littéraux4 194 303 (Remarque 1)
Longueur totale des littéraux4 194 303 octets (Remarque 1)
Entrées de table de mots réservés1536
COPY REPLACING . . . BY . . . (éléments par déclaration COPY)Sans limites
Nombre de bibliothèques COPYSans limites
Taille de bloc de la bibliothèque COPY32 760 octets
IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
Configuration section
Paragraphe des noms spéciaux
nom-mnémonique IS18
UPSI- n … (commutateurs)0-7
nom-alphabet IS . . .Sans limites
Littéral THRU . . . ou ALSO. . .256
Input-Output section
File-control paragraphe
SELECT nom-fichier …Un maximum de 65 535 noms de fichiers peuvent être attribués à des noms externes
ASSIGN nom-système …Sans limites
ALTERNATE RECORD KEY nom-données …253
RECORD KEY LongueurAucune limite (Remarque 3)
RESERVE entier (buffers)255 (Remarque 4)
I-O-control paragraphe
RERUN ON nom-système …32 767
RERUN entier RECORDS16 777 215
SAME RECORD AREA255
SAME RECORD AREA FOR nom-fichier …255
SAME SORT/MERGE AREAAucune limite (Remarque 2)
MULTIPLE FILE nom-fichier …Aucune limite (Remarque 2)
DATA DIVISION
77 taille de l’élément de données999 999 999 octets
01-49 taille de l’élément de données999 999 999 octets
Total 01 + 77 (éléments de données)Sans limites
88 noms-condition . . .Sans limites
Clause VALUE de niveau 88 . . .Sans limites
66 RENAMES . . .Sans limites
Clause PICTURE, nombre de caractères dans chaîne-caractères50
Clause PICTURE, positions des chiffres des éléments numériquesAvec ARITH(COMPAT): 18
Avec ARITH(EXTEND): 31
Clause PICTURE, positions de caractères éditées numériquement249
Réplication du symbole d’image ( )999 999 999 octets
Réplication de symboles d’image (édition)32 767
Réplication de symbole d’image ( ), éléments DBCS de classe499 999 999 octets
Reproduction d’un symbole d’image ( ), classer les éléments nationaux499 999 999 octets
Taille de l’élément élémentaire134 217 727 octets
OCCURS entier999 999 999
Nombre total d’ODO4 194 303 (Remarque 1)
Taille du tableau999 999 999 octets
Taille des éléments du tableau999 999 999 octets
ASCENDING or DESCENDING KEY . . . (par clause OCCURS)12 CLÉS
Longueur totale des clés (par clause OCCURS)256 octets
INDEXED BY . . . (noms d’index par clause OCCURS)12
Nombre total d’index (noms d’index) par classe ou programme65 535
Taille de l’index relatif32 765
FILE SECTION
Saisie de la description de l’enregistrement FD1 048 575 octets
nom-fichier FD . . .65 535
LABEL nom-donnée . . . (si pas de clauses facultatives)255
Longueur d’enregistrement de l’étiquette80 octets
BLOCK CONTAINS entier2 147 483 647 (remarque 8)
RECORD CONTAINS entier1 048 575 (remarque 5)
Valeurs de la clause LINAGE99 999 999
nom-fichier SD . . .65 535
DATA RECORD nom-donnée . . .Aucune limite (Remarque 2)
LINKAGE SECTION
Taille totaleSans limites
LOCAL-STORAGE SECTION
Taille totale2 147 483 646 octets
WORKING-STORAGE SECTION
Taille totale des éléments sans l’attribut externe2 147 483 646 octets
Taille totale des éléments avec l’attribut externe2 147 483 646 octets
PROCEDURE DIVISION
Procédure et aire constante4 194 303 octets (Remarque 1)
PROCEDURE DIVISION USING identifiant . . .32 767
Procedure-names1 048 575 (Remarque 1)
Noms de données en indice par instruction32 767
Relevés par ligne (TEST)7
Instruction ACCEPT, longueur d’enregistrement sur le périphérique d’entrée32 760
ADD identifiant . . .Sans limites
ALTER nom-procédure-1 TO nom-procédure-2 . . .4 194 303 (Remarque 1)
CALL . . . BY CONTENT Identifiant2 147 483 647 octets
CALL identifiant ou littéral USING identifiant ou littéral . . .16 380
CALL littéral . . .4 194 303 (Remarque 1)
Programmes actifs dans une unité d’exécution32 767
Nombre de noms appelés (option DYN)Sans limites
CANCEL identifiant ou littéral . . .Sans limites
CLOSE nom-fichier . . .Sans limites
COMPUTE Identifiant  . . .Sans limites
DISPLAY identifiant ou littéral   . . .Sans limites
DIVIDE Identifiant  . . .Sans limites
ENTRY USING identifiant ou littéral . . .Sans limites
EVALUATE . . . sujets64
EVALUATE . . . WHEN  clause 256
GO nom_procédure . . . DEPENDING255
INSPECT TALLYING et REPLACING ClausesSans limites
MERGE nom-fichier ASC ou DES KEY . . .Sans limites
Longueur totale de la clé de fusion4 092 octets (Remarque 6)
MERGE USING nom-fichier . . .16 (Note 7)
MOVE Identifiant ou littéral TO identificateur . . .Sans limites
MULTIPLY Identifiant  . . .Sans limites
OPEN nom-fichier . . .Sans limites
PERFORM4 194 303
PERFORM . . . TIMES identifiant ou littéral999 999 999
SEARCH ALL . . . longueur de clé maximaleSans limites
SEARCH ALL . . . longueur totale des clésSans limites
SEARCH . . . WHEN . . .Sans limites
SET index ou identifiant . . . TOSans limites
SET indice . . . UP/DOWNSans limites
SORT nom-fichier ASC ou DES KEYSans limites
Longueur totale de la clé de tri4 092 octets (Remarque 6)
SORT USING nom-fichier . . .16 (Remarque 7)
STRING Identifiant  . . .Sans limites
STRING DELIMITED Identifiant ou littéral  . . .Sans limites
UNSTRING DELIMITED identifiant ou littéral   . . .Sans limites
UNSTRING INTO identifiant ou littéral . . .Sans limites
USE . . . ON nom-fichier . . .Sans limites
Instruction XML PARSE, taille maximale de identifiant999 999 999 octets

Remarques:

  1. Éléments inclus dans la limite de 4 194 303 octets pour la procédure plus la zone constante.
  2. Syntaxe vérifiée, mais n’a aucun effet sur l’exécution du programme ; il n’y a pas de limites.
  3. Pas de limite de compilateur, mais VSAM le limite à 255 octets.
  4. QSAM.
  5. Limite du compilateur affichée, mais QSAM la limite à 32 760 octets.
  6. Pour QSAM et VSAM, la limite est de 4088 octets si EQUALS est codé dans l’instruction de contrôle OPTION.
  7. Limite SORT pour QSAM et VSAM.
  8. Nécessite la prise en charge de l’interface LBI (Large Block Interface) fournie par OS/390® DFSMS Version 2 Release 10.0 ou ultérieure.
    Sur les systèmes OS/390 avec des versions antérieures de DFSMS, la limite est de 32 760 octets.