【プログラミング言語】1959年に開発された「COBOL」が抱える現代の問題にIBMはどう立ち向かっているのか? [すらいむ★]
■ このスレッドは過去ログ倉庫に格納されています
1959年に開発されたプログラミング言語「COBOL」が抱える現代の問題にIBMはどう立ち向かっているのか?
1959年に開発されたプログラミング言語「COBOL」は、自然言語に近いコマンド構文が採用されていることから、金融や自動車、医療業界などで広く使用されています。
しかし、柔軟性に欠けるCOBOLを扱える人材は減少傾向にあり、COBOLを用いたシステムは窮地に陥っています。
このような状況を打開するために、IBMはCOBOLを最新のプログラミング言語に変換できるジェネレーティブAI「watsonx Code Assistant」を開発しています。
The World Depends on 60-Year-Old Code No One Knows Anymore | PCMag
https://www.pcmag.com/articles/ibms-plan-to-update-cobol-with-watson
(以下略、続きはソースでご確認ください)
Gigazine 2023年12月17日 13時00分
https://gigazine.net/news/20231217-cobol-code-depend/ >>1
COBOLの問題点は
・開発時期が大昔で増改築もされているので、システムやプログラムの正確な内容が不明
・画面表示を方言たっぷりで作っている。画面の項目、画面遷移などの正確内容が不明
ということである
つまり、言語仕様とはほとんど関係無い
Cでドキュメントが無かったら、COBOL以上にヤバイ
アセンブリ言語でドキュメントが無かったら、解析するなどほとんど不可能 ソースによると、IBMがやっているのは COBOL →JAVAであるらしい
JAVAに書き換えれば、メンテが楽になるなどということは、ありえない
もちろんIBMも分かっているようで
>>After IBM and the customer have a thorough understanding of
>> the application landscape, the data flow, and the existing dependencies,
>>“we help them refactor their applications,” she says.
単に変換することで終わりではなく、顧客が把握と理解をしなければならない、とのこと COBOLはPICの桁割りが全てって感じ。
後は単純な制御文しか無い。
言語って程でもない気がするんだが。 もとは1キロワード程度の主記憶しかないようなマシンの上で
インタープリターとして動いていた言語の発展系だったと思う。
だが事務処理の本質を押さえたものであって、国防省が規格の
厳格化を推進したから、ビジネス会計用に定着したし、大量の
コードが書かれて今日に至っている。多分AIを使って、手直し
させれば、新しいCOBOL言語の仕様を使ってブラッシュアップ
ができるに違い無い。 COBOLなんてIDENTIFICATION DIVISION.の.さえ忘れなければ楽勝
高卒、大卒文系でも研修で3日もすれば作れるようになる
他の言語を知っていればその日のうちに作れるようになる
COBOLプログラマーが枯渇する心配など全く無い
開発環境、実行環境を整備するのは誰かに頼まないといけないが、COBOLに限った話ではない 私がCOBOLに対して思うことなど、一つしかない。国防総省とCODASYLを恨みながらさっさと滅べ。そうすれば、二度と不幸な子供も生まれまい 未来永劫、陳腐化しないコンピューター言語は
あるだろうか? COBOLは理系のprogramin'言語が有効数字桁数決めて大まかな数字が判ればいいというのと違って
20桁の数値計算でも四捨五入無しでちゃんと計算するから金額計算に持って来いだ
というわけで長年使われてる。
C言語は汎用のアセンブリー言語としてOSの様なコンピュータ制御も出来る。
我輩が専門学校でCOBOLを習ってすぐ入社した新入社員にC言語を教えたが
defineのような便利なものがCOBOLになかったので
配列の大きさ定義に生の数字を使ってバグをやらかした時
そのプログラムを徹夜で修正しなくてはいけない場面で
なんでdefine使って無かったんだという愚痴とため息の連続だった。 >>8
Pascal,Visual Basic,Delphi,Ruby 名前が全てを表している
Common Business Oriented Language
特にCOBOL全盛期に書かれたコードは方言満載でディスク装置とのスワッピングやIOCSに一部まで手が入っているこんなの置き換えても動くCPUが無いでしょ >>13
Commonは
ベンダー方言をなくしました
って意味だぞ
共通言語仕様 計算機には語長が12ビット、16ビット、18ビット、24ビット、32ビット、36ビット、40ビット、48ビット、
60ビット、64ビットなどさまざまなものがあり、また整数の演算機も、2進のもの10進のものがあり、
浮動小数点数も,仮数部が2進のものと16進のものや10進のものがあり、指数部の表せる範囲や仮数部の長さ
などまちまちであったりした。浮動小数点数の丸めの方式にもいろいろあった。
アドレスも、語単位のものが昔は普通で、その後バイトアドレスのものが多くなった。
語の中のビットの上位下位をメモリ上でそのような向きに割り付けるかにも
主に二通りあったし、文字列は整数や浮動小数点数とは同じ領域には割り当てが
できないというようなものもあったかと思う。整数も0が正負二通りあるものと
そうでないものとかね。 そういったさまざまな計算機の特性や仕様を吸収して、
演算の結果が最後の桁まで同じになり、しかもデータをファイルに書いたものが
別の機種の機械で読んでも内容が同じものとして読めることを保証することが
特にビジネスでは重要だったのだ。 ■ このスレッドは過去ログ倉庫に格納されています