• ベストアンサー

[COBOL] ソースの復帰

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答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