• ベストアンサー

手続き型言語からオブジェクト指向型言語にコンバート

COBOLで書かれたプログラムをC#、JAVAなどのプログラムに書き換えるって簡単ですか? COBOLは構造化プログラミングと呼ばれ、JAVAなどはオブジェクト指向でタイプが違うのではないかと思うのですがいかがでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.3

がるです。 このあたりは、「リファクタリング」というものについて調べると、色々と出てくるかと思うのですが。 以下、我流ですが「一つの方法」として捕らえていただけると。 1クラスを「ある意味のあるデータの塊を表す」ものであると仮定します。わかりやすいところですと、DBの1テーブルの1レコードを1インスタンスにするイメージです。 構造体でもよいのですが、後々を考えて、クラスにされるとよろしいかと思います。この場合、構造体に+αしたものがクラスである、程度の認識でよろしいかと。 そうすると「このデータを扱うときはこのクラス」という感じで集約することが出来るので、後々楽に処理をしたりすることが出来るようになります。 以上、参考になれば幸いです。

uchi38
質問者

お礼

ご回答ありがとうございます。 なるほどと思う意見ですね。 現在、試しに1本だけCOBOLをC#に変更しています。 C#には慣れていないので苦しんでいます。

その他の回答 (2)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がるです。 とりあえずまず「ベタ」で書いてしまって。 その後で、リファクタリングの手法で、ゆっくりオブジェクト化していくのが、業務をベースに考えると現実的であるように思われます。 リファクタリングのコツは「まずはコアとなるデータクラス群の実装」からでしょうか。 共通化がすら出来ていない(コピペの嵐)なソースであれば、まず「共通化」をするところから、かもしれませんが。

uchi38
質問者

お礼

回答ありがとうございます。 初心者なのでよくわからないのですが。 データクラス群の実装とは、構造体を使うのでしょうか。1レコードをCSV形式でリードして構造体を使うのかな??と考えているところです。 またよかったらご教授ください。

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 …まぁ物凄くアバウトな発言をすると「JavaやC#で、mainのみのベタ書きなコードを書く」ことで、ある程度まで似た様な書式で移植は出来るかと思うのですが。 真面目に考えると、やはり一度はきちんとクラス化してオブジェクト切って…という作業が必要で。その場合、結構な工数がかかるのではないかと思われます。

uchi38
質問者

お礼

おっしゃるとおりですね。 オブジェクト指向の特性を生かしてないですが、 mainベタ書きで仕方ないんでしょうね。 ありがとうございました。

関連するQ&A

  • オブジェクト指向の教え方

    新入社員にJavaを教えているところなのですが、オブジェクト指向プログラミングをどのように教えていいか困っています。 全員がC言語研修を受講済みで、さらにJava言語も、継承やオーバーロード、例外まで一通り教えて、一応理解しています。 そこで、次のレベルとして、C言語風のプログラミング(「プログラム=関数の集まり」の考え方)から、オブジェクト指向(「プログラム=オブジェクトの集まり」の考え方)に意識改革させたいところです。 問題領域をオブジェクトの集まりとしてとらえ、そこからクラスを抽出していく、という説明がよくありますが、 「何をオブジェクトにするのか」「どのようにクラスを抽出したらいいのか」の部分を詳しく教えたいのですが、どのように説明したらいいでしょうか。また、参考になるWebサイトなどありませんでしょうか? 自分が普段作るときは、ほぼ「勘」でクラス設計していますので、それでは教えられなくて困っています。よろしくお願いします。

    • ベストアンサー
    • Java
  • オブジェクト指向で作るプログラミング

    オブジェクト指向プログラミングで作るものってどんなものですか??(たとえば、、、ゲームとか、エクセルとかですか??) あと・・・Cを勉強してから、javaにいく人がいますが、Cとjavaは似ているのですか??

  • オブジェクト指向の利点とは?

    汎用機でCOBOLのSEを10数年やってました。(今は自営業) COBOLはプロセス型の言語といわれているのに対して C言語はオブジェクト指向型の言語といわれています。 私はC言語やJAVAで開発したことはないのですが、 C言語、すなわちオブジェクト指向の利点ってなんでしょう? JAVA、C言語はオブジェクト指向ですよね。 私はソフトウェア開発技術者の資格など持っていますのでオブジェクト指向の表面的な意味は分かります。 ですが実際、アプリ開発時・運用時にどのような利点があるのかがイマイチ分かりません。 「どっちでもいいんじゃないか」なんて思ってしまいます。 プロセス指向(VB、COBOL等)とオブジェクト指向(C言語、JAVA)の差異って何なんでしょう。 よろしくお願いします。

  • オブジェクト指向について

    C#でプログラミングをしているのですが、オブジェクト指向を一切使わずに作っています。 作っていくにしたがってツールが重くなってきたのですが、オブジェクト指向を使ってい書いたほうがアプリケーションは軽くなりますか?

  • オブジェクト指向、理解しやすい?

     最近、Javaの解説書や解説サイトを見ていて、しばしば、「Javaは完全なオブジェクト指向だから理解しやすい」といった記述を見かけます。(「プログラムが見やすくなる」とかではなく)  Javaに限った話ではないのですが、個人的に、オブジェクト指向の概念は、プログラミング初心者の最大の関門ではないかと勝手に思っています。僕はPHPから入ったのですが、ある程度基本事項をマスターした後も、オブジェクト指向だけは長い間苦手としてきました。(最近やっと慣れてきたところです。)  そこで伺いたいのですが、最初にやったプログラミング言語がオブジェクト指向だったという方、オブジェクト指向の概念は、 1.わかりやすかった 2.そこでつまずいた 3.特に意識せずに通り過ぎた 4.その他 いずれでしょうか? ※最初にJavaについて書きましたが、これはただの例なので、オブジェクト指向言語全般についての質問であるととらえてください。

  • オブジェクト指向が先?言語が先?

    これからプログラミングを勉強するとして、オブジェクト指向の本と言語の本があるとすれば、どちらを先に読むべきなんでしょうか? オブジェクト指向って考え方ですよね? どんな分野も考え方の部分って、やる前に教わるより、ある程度経験を積んでからの方が理解できることが多いと思います。 となると、プログラミングもまずは言語を覚えて、ある程度いろいろ作れるようになってからオブジェクト指向に手を出した方が良いんでしょうか? それともオブジェクト指向を勉強してからの方が、言語を理解しやすくなったりするのでしょうか? そもそも個人が趣味レベルでプログラムをするのに、オブジェクト指向って必要なんでしょうか?

  • オブジェクト指向ではない指向は、何指向と言う?

    プログラミングでオブジェクト指向ではない指向は、何指向と言うのですか?

  • オブジェクト指向プログラミング学習向けのサンプルプログラム

    「これは参考になるよ」というような、 オブジェクト指向プログラミング学習向けのサンプルプログラムを教えていただけませんか? 言語はDelphiです。 Delphiに限らず、他言語(Java、C#、C++あたり)でも結構です (移植しますので、出来ればCUI、GUIが少ないものが理想です) よろしくお願いいたします。 Delphiにてオブジェクト指向プログラミングを学んでいます。 書籍等で、基本的なことは学びました。 理解度およびスキルを上げるために、実際にプログラミングしたいと思います。 (入門書を利用してや、 自分で考えながらのテスト的なプログラミングには限界を感じてまして^^;)

  • オブジェクト指向という考え方がいまいちわかりません。

    オブジェクト指向という考え方がいまいちわかりません。 オブジェクト指向とは一体どういう意味なのでしょうか? また、いわゆるオブジェクト指向の言語(Javaなど)とそうでない言語(PL/SQLなど?)との違いも合わせて教えていただけないでしょうか? 宜しくお願い致します。

  • オブジェクト指向について

    オブジェクト指向に対応したプログラミングはいっぱいあるけどオブジェクト指向の考え方を考えた人はだれなのですか?!

    • ベストアンサー
    • Java