• ベストアンサー

[COBOL] ソースの復帰

COBOLのプログラムなのですが、 コンパイル済みのオブジェクトから ソースを引っ張りだす、というようなことはできるのでしょうか? プログラム自体はあるのですがソースが見つからなくて 困っております。 宜しくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

機械語、アッセンブラやそれにやや近いC言語なら、元に 近い形にReverseConpileが出来るかもしれません。 (記事を読んだことあり。) しかし高級言語(1語が沢山の機械語と対応するもの)は 作るのも難しいでしょう。最適化というのも行われるようだし。それにデータネームには戻すのは不可能でしょう。 ADD A0001 to A0002 なんて出来あがったとしても、A0001は何を表すのか割り出すのってお手上げではありませんか。 結論は貴社が使っているCOBOL処理系のメーカーに、逆コンパイラーがあるか聞いて、「ない」という返事で一巻の終わりでしょう。自作は出来ず、他社ソフトメーカーでも作るわけがないでしょう。マーケットがない。 ソース文書ベースもハードディスクやテープライブラリにもないのでしょうか。

その他の回答 (2)

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.2

>ソースを引っ張りだす、というようなことはできるのでしょうか? オブジェクトファイル内にソースが埋め込まれているわけではありませんから引っ張り出すことはできません。 また、逆コンパイルしても元通りのソースにはなりません。 コンパイルした時にコメントやユーザー定義の名前などは失われていますから。 開発したソースが紛失してしまったのか、納品されたものなのか疑問ですが後者なら開発元へ前者なら設計書を探された方が良いと思います。 プログラムの変更は出来なくてもパッチとなるプログラムを間に挟みこんで対応とかできると思います。 余計なお世話でした(^^;)

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

何度か同様の質問に対して同様の答えをしています。 1.逆コンパイラは研究段階のものであり、実用的ではない 2.通常、プログラムは(逆アセンブルを含む)リエンジニアリングを禁止している 3.例え目的プログラムのドキュメントに「リエンジニアリング禁止」を明記していなくても、プログラムが利用しているライブラリなどがリエンジニアリングを禁止していることが多い 以上の理由で逆アセンブル、逆コンパイルは現実的ではありません。

関連するQ&A

  • cobolの関連ソースについて

    今、触ったこともないcobolのソースの管理をやれ、と言われてます。 で、cobolの実行プログラム、拡張子は、*****.so 見たいな感じなのですが、それをコンパイルするのに、多くのソースがいるみたいなのです、その関連を調べろ、と言われました。たとえば、cobolのmakefileと呼ばれているものを、unix上でviで開いてみると、「ヘッダープログラム」なるコメント文が書いていたり、オブジェクトとか書いていたり、、そして、そのヘッダーの部分をみると、たしかにプログラムの名称が書いているので、今度はそのプログラムの中身を見てみると、同じように、また違うプログラムを参照しているようなのです。ひとつの実行ファイルを生成するのに、ソースがツリー構造になっていて、それをすべて理解する必要があるのですが、中身をみたときに、どういうコマンド等を参照していけばいいのかわかりません。 分かりやすく整理すると、ある実行プログラムを生成するのに、ソースが必要なのですが、そのソースの全てを洗い出すには、どうすればいいのか?ということなのですが、 詳しい方、ぜひよろしくお願いします!

  • COBOL85からCOBOL2002移行

    HPのOSバージョンアップして、COBOL85からCOBOL2002移行の作業をしました。再コンパイルして、生成されたモジュール(又はオブジェクトファイル.o)のサイズは元の2、3倍になってしまいましたが、どういうことですか?ご教示お願いします。

  • SQLをcobolに記述することでのエラー

    NetCOBOLでSQLを埋め込んだプログラムを作成しています。 その中でどうしてもうまくいかないのが、短いSQLをCOBOLに記述すると、コンパイル(プレコンパイル→コンパイル→.dll)は通るのですが、実行の際にプログラムが見つからない旨のエラーが出てしまっています。 ソースを色々いじって分かったのは SQLを実行しなくてもソース内に記述するだけで実行エラーとなる。ということです。 コンパイルの時点で何かオプションが必要なのか、SQLが内部的にcallしているモノが何かおかしいのか、幾らか思い当たる部分はあるもののどうしていいかは全くわからずです。 どなたか似た経験ある方や、おもいあたる節のある方いらっしゃいましたら、どんな些細な事でもいいのでご教示願います。

  • COBOLでプログラミング

    Xp HomeEdition のPCでCOBOLのプログラムは出来ますか? 可能でしたらソフトのインストール、プログラミング、コンパイル、 実行の仕方が書かれた本かHPをお教え下さい。

  • COBOLの考え方からJavaへ

    今までIBMホスト畑で働いていたので、使用できる言語は COBOLやPL/Iだけでしたが、今後の仕事の展開も考え Javaを習得したいと思っています。 とりあえずJava言語の入門書を終えたので、 次は、以前新人のCOBOL研修用に作成した仕様書を Javaで書きかえてみようと思いたったのですが・・・ できませんでした。。。 COBOLは、MAINルーチンをプログラムの主とし 個々の機能(FILEのREAD処理など)をそれぞれの SUBルーチンで記述するといった構造的な作りになっています。 これをJavaにすると「FileのREAD処理」を1つのクラスとして考え、 「MAINルーチン的」な実行クラスから 「FileのREAD処理」クラスを呼ぶ(継承する)のか? オブジェクト指向とは、もっと別のことではないか? といったように、全然ちんぷんかんぷんな状況です。 みなさん、Javaでプログラムを記述するときは どういったアルゴリズムを考えながら記述しているのでしょうか? 是非ともご教授ください。 また、COBOLには、誰がソースをみてもわかりやすいように 記述するなどの暗黙的な決まり(ネストは3回程度など)があるのですが、 Javaにもあるのでしょうか?

    • ベストアンサー
    • Java
  • アセンブラソースをCOBOLソースに自動変換

    アセンブラソースをCOBOLソースに自動変換するようなソフトは有るのでしょうか。

  • COBOLについて

    COBOLの開発を仕事ですることになったのですが、 仕様書がない為、解読に時間がかかります。 もし、何か解読の補助となるような物があれば 教えていただきたいです。 ※「階層構造図作成プログラム(MODULEC) 」が便利そうでしたが 「エラー : ペタルの文法エラー : 空のファイル」となり作成できませんでした。 AS/400でソースを作成しています。そこから、csvファイルで ソースをローカルに保存して何か補助になるツールを使用したいと 考えております。

  • COBOLについて

    COBOL言語を使う会社にいますが、自分はプログラムの経験や知識がなく、苦戦しています。 PC教室のHPを見ても、COBOLを教えている所は少ないようで、都内埼京線か山の手沿いにあるCOBOLを使ったPC教室を知りたいです。 自分で本を購入しましたが、本を理解するのもなかなか難しく習いに行きたいと思ってます。 ちなみに、まったくの未経験でCOBOLを理解するには時間はかかるのでしょうか?自分はPCにすごく詳しいわけでもないのです。

  •  cobolのカーソルについて

     cobolのカーソルについて  初投稿させていただきます。ですので体裁やルールを守れていない場合は、ご指摘願います。  cobolにおいて埋め込みSQL文によるカーソルをオープンし、fetchでテーブルを読み込む作業についてなんですが、一度のプログラム起動において同じテーブルを複数回読むにはどのようなソースを描けばよいのでしょうか。  具体的にはあるテーブルの5個のレコードを上から順に何度も読むといった次第です。  お分かりになられる方がいましたら、ご指導願います。よろしくお願いします。

  • COBOL

    以下のURLの内容のCOBOLソースを教えてください。 https://drive.google.com/open?id=0ByQsPLJesRSPazJEcjhROVFPbG8

専門家に質問してみよう