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 langue | Limite du compilateur |
---|---|
Longueur maximale des mots définis par l’utilisateur (par exemple, nom-données , nom-fichier , nom-classe ) | 30 octets |
Taille du programme | 999 999 lignes |
Nombre de littéraux | 4 194 303 (Remarque 1) |
Longueur totale des littéraux | 4 194 303 octets (Remarque 1) |
Entrées de table de mots réservés | 1536 |
COPY REPLACING . . . BY . . . (éléments par déclaration COPY) | Sans limites |
Nombre de bibliothèques COPY | Sans limites |
Taille de bloc de la bibliothèque COPY | 32 760 octets |
IDENTIFICATION DIVISION | |
ENVIRONMENT DIVISION | |
Configuration section | |
Paragraphe des noms spéciaux | |
nom-mnémonique IS | 18 |
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 Longueur | Aucune limite (Remarque 3) |
RESERVE entier (buffers) | 255 (Remarque 4) |
I-O-control paragraphe | |
RERUN ON nom-système … | 32 767 |
RERUN entier RECORDS | 16 777 215 |
SAME RECORD AREA | 255 |
SAME RECORD AREA FOR nom-fichier … | 255 |
SAME SORT/MERGE AREA | Aucune limite (Remarque 2) |
MULTIPLE FILE nom-fichier … | Aucune limite (Remarque 2) |
DATA DIVISION | |
77 taille de l’élément de données | 999 999 999 octets |
01-49 taille de l’élément de données | 999 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ères | 50 |
Clause PICTURE, positions des chiffres des éléments numériques | Avec ARITH(COMPAT): 18 Avec ARITH(EXTEND): 31 |
Clause PICTURE, positions de caractères éditées numériquement | 249 |
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 classe | 499 999 999 octets |
Reproduction d’un symbole d’image ( ), classer les éléments nationaux | 499 999 999 octets |
Taille de l’élément élémentaire | 134 217 727 octets |
OCCURS entier | 999 999 999 |
Nombre total d’ODO | 4 194 303 (Remarque 1) |
Taille du tableau | 999 999 999 octets |
Taille des éléments du tableau | 999 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 programme | 65 535 |
Taille de l’index relatif | 32 765 |
FILE SECTION | |
Saisie de la description de l’enregistrement FD | 1 048 575 octets |
nom-fichier FD . . . | 65 535 |
LABEL nom-donnée . . . (si pas de clauses facultatives) | 255 |
Longueur d’enregistrement de l’étiquette | 80 octets |
BLOCK CONTAINS entier | 2 147 483 647 (remarque 8) |
RECORD CONTAINS entier | 1 048 575 (remarque 5) |
Valeurs de la clause LINAGE | 99 999 999 |
nom-fichier SD . . . | 65 535 |
DATA RECORD nom-donnée . . . | Aucune limite (Remarque 2) |
LINKAGE SECTION | |
Taille totale | Sans limites |
LOCAL-STORAGE SECTION | |
Taille totale | 2 147 483 646 octets |
WORKING-STORAGE SECTION | |
Taille totale des éléments sans l’attribut externe | 2 147 483 646 octets |
Taille totale des éléments avec l’attribut externe | 2 147 483 646 octets |
PROCEDURE DIVISION | |
Procédure et aire constante | 4 194 303 octets (Remarque 1) |
PROCEDURE DIVISION USING identifiant . . . | 32 767 |
Procedure-names | 1 048 575 (Remarque 1) |
Noms de données en indice par instruction | 32 767 |
Relevés par ligne (TEST) | 7 |
Instruction ACCEPT, longueur d’enregistrement sur le périphérique d’entrée | 32 760 |
ADD identifiant . . . | Sans limites |
ALTER nom-procédure-1 TO nom-procédure-2 . . . | 4 194 303 (Remarque 1) |
CALL . . . BY CONTENT Identifiant | 2 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écution | 32 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 . . . sujets | 64 |
EVALUATE . . . WHEN clause | 256 |
GO nom_procédure . . . DEPENDING | 255 |
INSPECT TALLYING et REPLACING Clauses | Sans limites |
MERGE nom-fichier ASC ou DES KEY . . . | Sans limites |
Longueur totale de la clé de fusion | 4 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 |
PERFORM | 4 194 303 |
PERFORM . . . TIMES identifiant ou littéral | 999 999 999 |
SEARCH ALL . . . longueur de clé maximale | Sans limites |
SEARCH ALL . . . longueur totale des clés | Sans limites |
SEARCH . . . WHEN . . . | Sans limites |
SET index ou identifiant . . . TO | Sans limites |
SET indice . . . UP/DOWN | Sans limites |
SORT nom-fichier ASC ou DES KEY | Sans limites |
Longueur totale de la clé de tri | 4 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 identifiant | 999 999 999 octets |
Remarques:
- Éléments inclus dans la limite de 4 194 303 octets pour la procédure plus la zone constante.
- Syntaxe vérifiée, mais n’a aucun effet sur l’exécution du programme ; il n’y a pas de limites.
- Pas de limite de compilateur, mais VSAM le limite à 255 octets.
- QSAM.
- Limite du compilateur affichée, mais QSAM la limite à 32 760 octets.
- Pour QSAM et VSAM, la limite est de 4088 octets si EQUALS est codé dans l’instruction de contrôle OPTION.
- Limite SORT pour QSAM et VSAM.
- 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.