No.1ベストアンサー
- 回答日時:
プログラムは、コンピュータという機械が実行しますから「機械語」というものに翻訳される必要があります。
ただ、直接それを人間が書くのは複雑だし間違いも起きやすいので、高級言語というのがあるのです。
たとえば、C言語やBasicだというようなものです。
こういうものは、最終的に機械語にするために、一種の翻訳システムを使います。
それがインタープリタとかコンパイラと呼ぶものだと思ってください。
C言語のソース
↓
中間表現
↓
機械語
というように変換されて機械語になります。実際に実行するのは機械語です。ExeやComです。
単純に矢印で2段階として書きましたが、実はその間に「コード最適化」という工程が入っています。
たとえばAレジスタに何かの値が入っているのに、また同じ値を計算するような処理があったら、その計算処理のコードをなくします。
それで処理は早くなり、事故の危険もすくなくなるのです。
ここで、ソースのときは読みやすく書かれていた情報が失われています。
当然ですが、ソースのとき読みやすいように書いたコメントのようなものは、機械語には展開されていません。
実際に動く機械には必要のない情報だからです。
さて機械語になったものを読みくだす必要があるとき、「逆アセンブラ」というのを使ったりします。
人間に読めるように機械語をリスト表現できるようにしたのがアセンブラというものですが、これはすぐに逆翻訳できます。
そのアセンブラをC言語にしようとすると、もとのソース表現にもどせるかというと非常にむつかしい。
理由は、いま書きました「最適化」を戻すことが不可能だから。
さらに、捨ててしまったコメントを戻すことも不可能です。
優秀な開発系の高級言語ほど、この逆向きが困難です。
アセンブラを読みこなすことが求められます。
しかしながらオブジェクト指向のソースをアセンブラから想像できるかというと出来るわけがない。
手足の細かい動きはわかるけれど、バレーのシュートカットをしたのか手マリをしたのかボクシングをしたのか、じゃんけんをしたのかがわからないということです。
おそらく唯一Javaだけはソースに戻すことができます。
Javahという「逆コンパイラ」が提供されています。これによって、コメント以外のロジックはJavaソースに戻すことができます。
warからclassの入ったjarを取り出し、classをJavahにかければソースは出現します。
なお、ソースそのものを公開していれば、それは見ることができますけど、商品として販売しているソースを公開するようなことは普通しません。
そういうことをするのはOpenSourceといって公開されているものだけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 分譲マンション マンション大規模修繕工事の資金不足 神奈川県の築37年総戸数36戸のマンションの管理組合理事長を今年 7 2022/09/03 19:55
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- 分譲マンション 皆さんのマンションの第2回目・長期修繕計画書見直では)管理会社への作成依頼は→無償作成か?有償作成か 1 2022/08/21 18:44
- 運輸業・郵便業 ●(令和なのですが…) 今時、 (倉庫会社の在庫の)倉庫管理システムが、 “紙”(商品依頼書•注文書 2 2022/08/07 18:09
- 分譲マンション 分譲マンションの管理組合で明らかに管理組合の会計ミスについて 10 2023/05/21 01:34
- 財務・会計・経理 会社のシステムで財務会計上の決算整理仕訳を、毎回、管理会計のシステムへ投入しなければならない仕様にな 2 2022/07/13 08:00
- その他(暮らし・生活・行事) 町内会費、組費の集金等の管理方法について 5 2023/03/16 15:34
- 会計ソフト・業務用ソフト 事業内容に適した、見積・請求書・顧客管理ソフト、システムを探しています。 2 2022/11/11 13:28
- 経営情報システム 飲食店4人の従業員の勤怠管理 良いシステムご存知の方お勧め教えてください。 知人の店で今は紙に書いて 5 2023/07/23 08:38
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ウィンドーズのメモ帳が使いに...
-
fireFoxブラウザでcgiで生成し...
-
IEでソースの表示ができない
-
参考になるソースコード
-
google chromeの閲覧履歴が下ま...
-
discord内での動画共有について
-
PDF Xchange viewerの書体変更
-
Windows Media Player10でフル...
-
エクセルでセルの内容を表示す...
-
勝手に一番上まで戻らないで欲しい
-
テレビで YouTube を見ています...
-
自分のiPadからアマプラ契約を...
-
GMAILで自動で表示される宛先の...
-
Gmailのログインで登録もしてい...
-
エクセルのセルに同じ大きさの...
-
北斗の拳「画像準備中?」
-
iPhone6(だけ)で動画を見ると...
-
文字が斜体になってしまうので...
-
google chrome でツールバーが...
-
VLCメディアプレイヤーでの拡大...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウィンドーズのメモ帳が使いに...
-
各ブラウザでフレームのソース...
-
VBAのコードをカラーで印刷する...
-
TampermonkeyでHTMLソースの文...
-
秀丸でフォルダツリーを常に表...
-
VC++6.0でソースの行番号を表示...
-
fireFoxブラウザでcgiで生成し...
-
iPhone SEです。 ソースからコ...
-
Firefox でソース 赤文字にな...
-
F12 開発者ツールでのテキスト...
-
文字化けの修正方法
-
保存形式としてのUnicode、UTF-8
-
IEからメモ帳を表示
-
html の文字列をテキスト エデ...
-
IE すべてのソースが見たい
-
UWSCで、htmlソース取得
-
IEでオフライン作業時のソース表示
-
ソースコードの表示
-
こんなドット絵エディタはあり...
-
参考になるソースコード
おすすめ情報