[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

デコンパイラ (decompiler)

pointこの用語のポイント

pointソフトだよ

pointコンパイラの逆だよ

point機械語を(無理やり)人間語に翻訳するよ

pointプログラムからソースコードを取り出すときに使うよ

スポンサーリンク

簡単に書くよ

デコンパイラ (decompiler)とは

「逆コンパイラ」のこと。
つまり

できあがっているプログラムからソースコード(プログラムの元ネタ)を取り出すときに使うソフト
であり

コンピュータさんが分かる言葉(機械語)を無理やり人間様が分かる言葉(人間語)に翻訳してくれるソフト
です。

image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として、プログラムを作る一般的な流れと

ソースコード
コンパイル
コンパイラ
デコンパイル


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は、適当に読み飛ばしてください。

プログラムを作って動かすまでの一般的な流れは

1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従ってコンピュータさんがお仕事する


です。

デコンパイラ

コンピュータさんは人間語が分かりません。

デコンパイラ2

一方、人間様はコンピュータさんの言葉が分かりません。

デコンパイラ3

プログラムは人間様が作る物です。
そこで、最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これもやって」な命令を人間語で書くのです。

デコンパイラ4

次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に仕事をするのはコンピュータさんです。
コンピュータさんが命令の内容を理解してくれないと話になりませんからね。

デコンパイラ5

コンピュータさんが分かる言葉に翻訳したので、これでコンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。

デコンパイラ6

かなり簡略化した説明ですが、これがプログラムを作る際の流れです。

この話で登場した「人間語で書いたプログラムの元ネタ」を「ソースコード」と言います。

デコンパイラ7

また「人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳する作業」は「コンパイル」と言います。
コンパイルは人間語を機械語に翻訳する作業です。

デコンパイラ8

コンパイルするのがお仕事なプログラムは「コンパイラ」と呼びます。
コンパイラは人間語を機械語に翻訳してくれるプログラムです。

デコンパイラ9

ところで、コンパイルされる前のソースコードは人間語で書かれていました。
ということは、コンピュータさんが見てもサッパリ分かりません。

デコンパイラ10

一方、コンパイルされたプログラムは機械語に翻訳されています。
こちらは人間様が見てもサッパリ分かりません。

デコンパイラ11

コンピュータさんが見て分かるプログラムから人間様が見て分かるソースコードを取り出す作業を「デコンパイル」と言います。
デコンパイルは、機械語を無理やり人間語に翻訳する作業です。

デコンパイラ12

コンパイルで行ったのは「翻訳」です。
コンパイルをしても中に書いてある内容自体は変わっていないはずです。
ということは、コンパイルで行った作業を完全に逆の手順で行えば、機械語のプログラムを人間語のソースコードに戻せるはずです。

そんな理屈で無理やり機械語を人間語に翻訳するのがデコンパイルです。

以上を踏まえて、デコンパイルするときに使うソフトが「デコンパイラ」です。
逆コンパイラ」と呼ばれる場合もあります。
デコンパイラは、機械語を無理やり人間語に翻訳してくれるソフトです。

デコンパイラ13

注意点として、デコンパイラを使えば完全に元に戻せるわけでは、ありません。
プログラミング言語によって、デコンパイルしやすかったり、しにくかったりします。
また、ソフトの性能やプログラムの作り方によっても変わってくるでしょう。

日本語を英語に翻訳して、それをさらに日本語に翻訳すると、ニュアンスや言い回しが変わってしまったりしますよね。
それと同じです。

デコンパイラで抽出できるのは「それっぽいけど正しいか分からない」ソースコードです。

image piyo2

一言でまとめるよ

まぁ「デコンパイラ」って単語が出てきたら「プログラムからソースコードを取り出すときに使うソフトなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク