2009-03-29 4 views
2

Je suis nouveau au logiciel Fujitsu COBOL 3.0. J'ai essayé d'exécuter un programme simple. Le code et les erreurs sont les suivants. Tout dans le programme semble être correct. Quelqu'un peut m'aider? Toutes les prérogatives doivent être suivies dans ce logiciel?Fujitsu COBOL 3.0

L'exemple de programme COBOL est:

IDENTIFICATION DIVISION. 
PROGRAM-ID. ShortestProgram. 

PROCEDURE DIVISION. 
DisplayPrompt. 
    DISPLAY "I did it". 
    STOP RUN. 
-------------------------------------------------------------------------------------- 
** DIAGNOSTIC MESSAGE ** (NOPRGMID) 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 0: JMN1102I-S IDENTIFICATION DIVISION HEADER IS MISSING. HEADER ASSUMED TO BE CODED. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1019I-W INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1005I-W CHARACTER STRING 'DENTIFICATION' MUST START IN AREA B. ASSUMED TO START IN AREA B. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 1: JMN1356I-W INVALID WORD 'DENTIFICATION' IS SPECIFIED IN IDENTIFICATION DIVISION. IGNORED UNTIL NEXT PARAGRAPH OR DIVISION. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 2: JMN1019I-W INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 2: JMN1005I-W CHARACTER STRING 'ROGRAM-ID' MUST START IN AREA B. ASSUMED TO START IN AREA B. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 4: JMN1019I-W INDICATOR AREA MUST CONTAIN '-','*','/','D',OR BLANK. A BLANK IS ASSUMED TO BE SPECIFIED. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 4: JMN1005I-W CHARACTER STRING 'ROCEDURE' MUST START IN AREA B. ASSUMED TO START IN AREA B. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 6: JMN1004I-W RESERVED WORD 'DISPLAY' MUST START IN AREA B. ASSUMED TO START IN AREA B. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7: JMN1104I-S PROGRAM-ID PARAGRAPH IS MISSING. PROGRAM-NAME GENERATED BY SYSTEM. 
C:\FSC\PCOBOL32\samples\SAMPLE6\SAMPLE7.COB 7: JMN1004I-W RESERVED WORD 'STOP' MUST START IN AREA B. ASSUMED TO START IN AREA B. 
STATISTICS: HIGHEST SEVERITY CODE=S, PROGRAM UNIT=1 

Répondre

0

Prendre une WAG (conjecture sauvage-cul) ici. N'a pas cobol'd depuis ma dernière année de collège.

Votre message d'erreur indique, au fond,

STATISTICS: HIGHEST SEVERITY CODE=S, PROGRAM UNIT=1 

Bon, alors je me dis que vous avez des avertissements (éventuellement CODE = W), et une ou plusieurs erreurs qui causent réellement votre programme à l'échec.

Ainsi, l'analyse du message d'erreur, je vois beaucoup de Ws et une ligne avec un S:

C: \ FSC \ PCOBOL32 \ samples \ SAMPLE6 \ SAMPLE7.COB 7: JMN1104I-S LE PARAGRAPHE D'IDENTIFICATION DU PROGRAMME EST MANQUANT. NOM DU PROGRAMME GÉNÉRÉ PAR SYSTÈME.

Il semble donc que votre paragraphe Program-ID soit manquant. En regardant votre programme, je vois une division d'identification, qui a un ID de programme.

Je peux conclure quatre choses de ceci:
1) Votre division d'identification du paragraphe est malformé
2) Comme Neil a dit, vous n'êtes pas en cours d'exécution de votre extrait, mais un échantillon qui ne dispose pas d'un paragraphe ID. Ouvrir sample7.cob voir
3) Une autre question est à l'origine de l'erreur, mais il est caché ou mal interprété comme une erreur de paragraphe ID

2

Les avertissements (en référence à la zone B) semblent indiquer votre code devrait en commençant dans la deuxième colonne de chaque ligne. C'est pourquoi il trouve par ex. "DENTIFICATION" au lieu de "IDENTIFICATION".

Je n'ai jamais développé en COBOL mais je me rappelle vaguement que la première colonne doit être vide, ou * pour un commentaire: les messages d'avertissement semblent indiquer que/- et D sont aussi des valeurs valides. MISE À JOUR: Google suggère que le compilateur COBOL ignore les 6 premières colonnes et que la colonne 7 a une signification particulière (D pour le débogage, * pour commenter, ...). Bien que peut-être le comportement est spécifique au compilateur. Donc je suppose que votre problème est que votre code commence à col 7 où il devrait être col 8.

2

Décalez tout sur 7 colonnes de sorte que DIVISION D'IDENTIFICATION commence dans la colonne 8 et que toutes les lignes suivantes commencent dans la colonne 8 ou plus.

Il y a aussi un commutateur de compilateur (je ne me souviens pas du dessus de ma tête) qui vous permet de commencer dans la colonne 1