書き方は昔ながら古い「正書法」とその後導入された「自由書式」の2種類
正書法
- 厚手の紙に書かれたコードをパンチカードに転写してコンピュータに読み込ませるための書き方
1 12345678901234567890123456789012345678901234567890
2 ------ --A--+---------------------------- B ------
3 000000 IDENTIFICATION DIVISON.
4 000010 PROGRAM-ID. HELLO.
5 000020 PROCEDURE DIVISION.
6 000030 MAIN SECTION.
7 000040 DISPLAY 'hello world!'.
8 000050 STOP RUN.
- 1列目から6列目までは必ず「行番号」でなければいけない
- 7列目はその行の区分コード
- 8列目からコード
- コードの後にコメント
自由書式
IDENTIFICATION DIVISON.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
MAIN SECTION.
DISPLAY 'hello world!'.
STOP RUN.
- 列の制約はない
-
EOF
は必ず改行 - インデントで整形(しなくてもコンパイルは通る)
Hello Worldを表示する
hello.cob
を作成
- 拡張子は
.cob
が一般的
hello.cob
IDENTIFICATION DIVISON.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
MAIN SECTION.
DISPLAY 'hello world!'.
STOP RUN.
コンパイルする
$ cobc -x --free hello.cob
オプション | 意味 |
---|---|
-x |
実行ファイルを作成 |
-free |
自由書式で作成する |
cobc
は 「COBOL Compiler」
コンパイルが成功
![スクリーンショット 2020-08-29 2.12.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320855/a62d8b39-38e6-2703-05f1-b1cebee3ad43.png) エラーが出なければコンパイル成功実行ファイルが作成される ![スクリーンショット 2020-08-29 2.27.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320855/02fd1a7e-dd57-add7-027f-1df2280eb6ed.png)
エラーの場合
コンパイルが失敗し実行ファイルは作成されない ![スクリーンショット 2020-08-29 2.20.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320855/eebece61-b182-b7bf-51f8-53f2f56bfefe.png) `hello.cob: 6: warning: line not terminated by a newline` -> ファイルの終端が改行ではない `hello.cob: 1: error: syntax error, unexpected Identifier, expecting DIVISION` -> タイポ実行
$ ./hello