きっかけ
COBOL開発案件にアサインされることになり、COBOLの勉強が必要になったため、手始めにJDoodleを利用してCOBOLの基本から勉強することにしました。
疑問に思ったことがあったため、ひとまずこちらに書き残しておくことにしました。
事象
1. ルートディレクトリ直下に、HELLO WORLD!を出力する「AA0101.cobc」を作成
AA0101.cobc
IDENTIFICATION DIVISION.
PROGRAM-ID. AA0101.
PROCEDURE DIVISION.
DISPLAY 'HELLO WORLD!'.
STOP RUN.
2. ルートディレクトリ直下に、THIS IS AA0102を出力する「AA0102.cobc」を作成
AA0102.cobc
IDENTIFICATION DIVISION.
PROGRAM-ID. AA0102.
PROCEDURE DIVISION.
DISPLAY 'THIS IS AA0102'.
STOP RUN.
3. 「AA0102.cobc」をスタートファイルとして設定
4. 実行すると「AA0102.cobc」の内容が出力
THIS IS AA0102
ここまでは想定通りの動作です。
5. 「AA0101.cobc」をスタートファイルとして設定
6. 実行すると「AA0102.cobc」の内容が出力
THIS IS AA0102
HELLO WORLD!が出力される想定でしたが...
7. 「AA0101.cobc」のファイル名を「main.cobc」に変更して再実行すると...
HELLO WORLD!
ファイル名を「main.cobc」に変更して初めて結果が出力されました。
PGの中のPROGRAM-ID. AA0101.はそのままです。
8. 再度「AA0102.cobc」をスタートファイルとして設定して実行しても結果は変わらず
HELLO WORLD!
考察
- ファイル名が重要?
- 「main.cobc」をスタートファイルと見なすのはJDoodle独自の仕様?
- COBOLにはスタートファイル(Javaにおけるmainメソッドを持つファイル)の概念が無い?
参考程度にGeminiの回答を貼っておきます。
どうやらJDoodle側の仕様のようです。
https://gemini.google.com/share/18bab6daead1
本日はこの後、衆議院議員選挙の街頭演説を聞きに行く用事があるため、大変恐縮ですが、このあたりで失礼いたします。
