CobolとJavaのトップレベルのアーキテクチャにはどのような違いがありますか?
プログラマーがこれらの2つの言語で採用するスタイルと文化は何ですか?
CobolからJavaへの最適な移植方法は何ですか?
私は、上記の NACA プロジェクト (400 万行の Cobol の Cobol から Java への自動トランスコーディング) のプロジェクト リーダーでした。
特定の質問がある場合は、上記の記事の下部にあるコメントからお気軽にお問い合わせください。
当社のツールを再利用するプロジェクトは世界中で数多くあり、成功を収めています。NACA 技術に基づくこれらのプロジェクトのニーズを満たすために、定期的に改善を行っています ( http://code.google.com/p/nacaを参照してください)。
どちらも呼び出しスタック ベースの言語であり、オブジェクト指向および手続き型のプログラミング スタイルをサポートしています。ただし、静的サブルーチンを使用して巨大な main() メソッドの手続き型コードを書き直すだけでは、Java に移植するメリットはほとんどありません。同様に、言語のオブジェクト指向機能を利用する COBOL コードはほとんどありません。
COBOL は主にお金に関係するアプリケーションに使用されるため、COBOL ショップやプログラマーは、エレガントで美しいコードを書くことよりも、ビジネス面に重点を置く傾向があります。私が見た Cobol から Java への移植は 1 つのクラスを持つ傾向があり、すべての変数は上部で static として宣言され、main() メソッドは、段落を実行したりサブプログラムを呼び出したりするのとほぼ同じ方法で一連の静的メソッドを呼び出します。
私が見た Java から Cobol への移植は、正反対の傾向があります。それらは、ほとんどの Cobol プログラマーがまったく使用しない OO 拡張機能を使用しています。
IBM Enterprise Cobol ショップにいる場合は、実際に移植する必要はありません。2 つの言語は適切に相互運用され、新しい部分を Java に置き換えても、うまくやり取りできます。
しかし、Cobol から Java に真に移植するための最善の方法は、言語とパラダイムの両方をよく学ぶことです。COBOL システムの既存の機能を詳細に文書化します。次に、その機能も備えた新しいオブジェクト指向スタイルの Java システムを設計して作成します。
John C. Byrneによる「Java for Cobol Programmers」という、1 ドル (ペーパーバック) で入手できる興味深い本があります。