LoginSignup
4
3

More than 3 years have passed since last update.

2020年はCOBOL元年なので1時間でHello Worldに挑戦

Last updated at Posted at 2020-03-31

はじめに

2020年は色々あってCOBOLが世界を制します。
1時間でチュートリアルしてみました。

実行環境

Dockerで動くものを用意しました。
リポジトリ

COBOLのランタイムはこちらからダウンロードしたものをあらかじめgit管理しています。

実行コマンド

$ git clone https://github.com/glassmonkey/hello-cobol
$ cd hello-cobol
$ docker-compose up

出力

$ hello world

ソースコード

QiitaにCOBOLのシンタックスなくてわろた。

プログラムちょい替え(4)COBOLを40年ぶりにうごかしてみた:dockerでcobol, docker(81)からソースコードお借りしました。

000010 IDENTIFICATION                   DIVISION.
000020 PROGRAM-ID.                      SAMPLE-01.
000030*
000040 ENVIRONMENT                      DIVISION.
000050*
000060 DATA                             DIVISION.
000070*
000080 PROCEDURE                        DIVISION.
000090 MAIN.
000100     DISPLAY "Hello world!"  UPON CONSOLE.
000110     STOP RUN.

プログラムの構成

COBOLプラグラム入門様を元に参考にしました。
COBOLは部と段落から構成させるプログラム言語とのこと。部は段落から構成されており、それぞれ部には必要な段落を記載するとのこと。

見出し部(IDENTIFICATION DIVISION)

プログラムのメタ情報を記述するところ。今回は内部的にSample-01と名前をつけている。
作成者などもここに書く模様。

環境部(ENVIRONMENT DIVISION)

実行マシン名(SOURCE-COMPUTER)や環境変数の受け渡し情報やプログラムから読み書きするファイルの名前や種類を書くところ。今回は空。

データ部(DATA DIVISION)

変数や外部IOに関して記述するところ。今回は空。

手続き部(PROCEDURE DIVISION)

いわゆるロジックを書くところ。今回はこのような形でHello worldを標準出力することを記載。

000090 MAIN.
000100     DISPLAY "Hello world!"  UPON CONSOLE.
000110     STOP RUN.

感想

友人が仕事でCOBOLをやり始めたみたいだったので、エイプリルフールネタで入門してみました。学生時代にポケコンでBasic書いてた時代を思い出して、懐かしい気持ちになりました。

なんだかんだコンテナ化できれば、過去の資産は活かせそうかなと思いましたが、やはり使うのはやめましょう。人類には早すぎます。

適当にプログラミング関係のことやグラブル関係のことをつぶやいてたりします。もしよければ@glassmonekeyをフォローしてくれるとうれしいです。

参考

下記をお借りしました。
* ランタイム
https://sourceforge.net/projects/open-cobol/files/gnucobol/3.0/

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3