メインフレームのCOBOLと他の言語の違いの記事をまとめて勉強
今回はCOBOLを中心に勉強のためにまとめていく予定。
理由は、最近他の言語を読んでいて、COBOLとの違いを感覚ではなく、言語化できるようにしたい、と思ったため。
とりあえず、興味湧いた記事の感想を書いて理解を深めて勉強…
「事務計算に強い」とかは省いてます…
①chatGPTと話したCOBOL
データの構造化の部分がC言語の構造体と似ているという話。
chatGPTと話す系今っぽい。
COBOLは、DATA DIVISIONという部分に、ファイルの構造(レコード)を書きます。これはね、データを構造化してあるんです。C言語の構造体とよく似てます。
「データと処理が分かれているのが、COBOLの特徴。
分けているから、データの部分を考えずに、処理の変更に対応しやすい。」
と理解…
②他の言語目線から見たCOBOL
コンパイラー言語、静的な言語、バッチ処理向き、
以下に書いている通り、メモリ上で物理的にどうなっているのかを理解しやすい?
具体的なイメージが湧きやすいのかも…
ところが、COBOLプログラマは自分が宣言した数字タイプの変数(COBOLではデータ項目と呼びます)が、メモリ上で物理的にどのようなバイト並びで格納されているかを知っています。
③具体的にPHPとCOBOLを比較
COBOL歴の長い方が書いた記事。
処理を書くのはPHPの方が短く済むけど、覚えることがPHPの方が多いと書いていたので、経験値がたまるのはPHPなのかなあ…と思った。
COBOLは業務要件への対応が大変な気もする…
④COBOLのデータの扱い
データの扱いが物理を意識できる?言語。
エンディアンの話も情報処理試験で暗記していたので、そのことか…と納得…
ビッグエンディアンが常識だと思っていた…
オープンの言語使ったことないとわからなそう….
↓以下の記事に
ビッグエンディアン:TCP/IP,メインフレーム
リトルエンディアン:USB,Windows PC
とそれぞれ例が載っていて理解が深まった…
⑤JavaとCOBOLとの共通点
バッチ処理だったりDBのレコードの参照更新だったりの話が理解しやすい受け皿としてある感じ…
VSAMとかもオブジェクト指向っぽいところがある…?
調べてみたら、Javaバッチ処理についての話の記事があって面白かった…
メインフレームのことにも少し触れられていた…
感想
COBOLの経験も、言語の歴史の流れの一端(今でも現役だけど…笑)として捉えて、自分で咀嚼できるようにしたい….
あと、自分はコーディングが好きとかではなく、どんな仕組みで動いているかを知るのが好きなタイプなんだろうなあ…と思った…
(ネットワークの勉強が好きとかもその辺に起因しそう…)
あと、COBOLでもメインフレームで動いているかどうかでの違いもあるんだなあ…と以下の呟きを見て思った…
いくら上物がCOBOLをサポートしたところで
— ✞きょう✞ (@2ZGRG) September 13, 2023
「10進数を2進数に一切変換せず、10進数をそのまま演算できる」
というCPU命令セットレベルでの特徴を持っているメインフレームの代替にはならない
現行のx86-64アーキなCPUは10進数演算命令を持ってはいるが、CPU内部では2進数に変えてから演算しているので https://t.co/fP3dq4u5CS