- ベストアンサー
手続き型言語からオブジェクト指向型言語にコンバート
COBOLで書かれたプログラムをC#、JAVAなどのプログラムに書き換えるって簡単ですか? COBOLは構造化プログラミングと呼ばれ、JAVAなどはオブジェクト指向でタイプが違うのではないかと思うのですがいかがでしょう?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
がるです。 このあたりは、「リファクタリング」というものについて調べると、色々と出てくるかと思うのですが。 以下、我流ですが「一つの方法」として捕らえていただけると。 1クラスを「ある意味のあるデータの塊を表す」ものであると仮定します。わかりやすいところですと、DBの1テーブルの1レコードを1インスタンスにするイメージです。 構造体でもよいのですが、後々を考えて、クラスにされるとよろしいかと思います。この場合、構造体に+αしたものがクラスである、程度の認識でよろしいかと。 そうすると「このデータを扱うときはこのクラス」という感じで集約することが出来るので、後々楽に処理をしたりすることが出来るようになります。 以上、参考になれば幸いです。
その他の回答 (2)
- galluda
- ベストアンサー率35% (440/1242)
がるです。 とりあえずまず「ベタ」で書いてしまって。 その後で、リファクタリングの手法で、ゆっくりオブジェクト化していくのが、業務をベースに考えると現実的であるように思われます。 リファクタリングのコツは「まずはコアとなるデータクラス群の実装」からでしょうか。 共通化がすら出来ていない(コピペの嵐)なソースであれば、まず「共通化」をするところから、かもしれませんが。
お礼
回答ありがとうございます。 初心者なのでよくわからないのですが。 データクラス群の実装とは、構造体を使うのでしょうか。1レコードをCSV形式でリードして構造体を使うのかな??と考えているところです。 またよかったらご教授ください。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 …まぁ物凄くアバウトな発言をすると「JavaやC#で、mainのみのベタ書きなコードを書く」ことで、ある程度まで似た様な書式で移植は出来るかと思うのですが。 真面目に考えると、やはり一度はきちんとクラス化してオブジェクト切って…という作業が必要で。その場合、結構な工数がかかるのではないかと思われます。
お礼
おっしゃるとおりですね。 オブジェクト指向の特性を生かしてないですが、 mainベタ書きで仕方ないんでしょうね。 ありがとうございました。
お礼
ご回答ありがとうございます。 なるほどと思う意見ですね。 現在、試しに1本だけCOBOLをC#に変更しています。 C#には慣れていないので苦しんでいます。