プロが教える店舗&オフィスのセキュリティ対策術

出来上がったシステムのソースコードを見たいのですが、
なにかありますか?
単なる処理や画面のサンプルでなく、
システムとしてある程度規模のあるものが良いです。

例えばプロジェクト管理とか経費管理とか在庫管理とか会計とか。

codeprojectなどで調べても出て来ません。

よろしくお願いします。

A 回答 (1件)

プログラムは、コンピュータという機械が実行しますから「機械語」というものに翻訳される必要があります。



ただ、直接それを人間が書くのは複雑だし間違いも起きやすいので、高級言語というのがあるのです。

たとえば、C言語やBasicだというようなものです。
こういうものは、最終的に機械語にするために、一種の翻訳システムを使います。
それがインタープリタとかコンパイラと呼ぶものだと思ってください。

 C言語のソース
  ↓
 中間表現
  ↓
 機械語
 
というように変換されて機械語になります。実際に実行するのは機械語です。ExeやComです。

単純に矢印で2段階として書きましたが、実はその間に「コード最適化」という工程が入っています。
たとえばAレジスタに何かの値が入っているのに、また同じ値を計算するような処理があったら、その計算処理のコードをなくします。
それで処理は早くなり、事故の危険もすくなくなるのです。
ここで、ソースのときは読みやすく書かれていた情報が失われています。
当然ですが、ソースのとき読みやすいように書いたコメントのようなものは、機械語には展開されていません。
実際に動く機械には必要のない情報だからです。

さて機械語になったものを読みくだす必要があるとき、「逆アセンブラ」というのを使ったりします。
人間に読めるように機械語をリスト表現できるようにしたのがアセンブラというものですが、これはすぐに逆翻訳できます。

そのアセンブラをC言語にしようとすると、もとのソース表現にもどせるかというと非常にむつかしい。
理由は、いま書きました「最適化」を戻すことが不可能だから。
さらに、捨ててしまったコメントを戻すことも不可能です。
優秀な開発系の高級言語ほど、この逆向きが困難です。
アセンブラを読みこなすことが求められます。

しかしながらオブジェクト指向のソースをアセンブラから想像できるかというと出来るわけがない。
手足の細かい動きはわかるけれど、バレーのシュートカットをしたのか手マリをしたのかボクシングをしたのか、じゃんけんをしたのかがわからないということです。

おそらく唯一Javaだけはソースに戻すことができます。
Javahという「逆コンパイラ」が提供されています。これによって、コメント以外のロジックはJavaソースに戻すことができます。
warからclassの入ったjarを取り出し、classをJavahにかければソースは出現します。


なお、ソースそのものを公開していれば、それは見ることができますけど、商品として販売しているソースを公開するようなことは普通しません。
そういうことをするのはOpenSourceといって公開されているものだけです。
    • good
    • 0
この回答へのお礼

そりゃそうですよね。OpenSource探します。
丁寧にありがとうございます。

お礼日時:2013/03/06 02:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!