コンパイルした結果がダウンロードされれば、コンパイラーはユーザーには必要ありません。
▽2
●
ぽけっとしすてむ ベストアンサー |
場合によりますが、一般的には「ライブラリ」と呼ばれる部品となったものを纏めてダウンロードしています。
例えば、現在見ているこのページを表示するブラウザの場合、データを送受信する部品、ページを表示させるために使う部品、JavaScriptを実行する部品などを組み合わせて表示させています。
アプリの中に埋め込んだり、他のアプリでも使いまわす事ができるように分離してあったりと、様々です。
ライブラリの中には、機能によって呼ばれ方が変わるものもあります。
データを小さく効率よく取り扱うために変換(エンコード)したファイルを元に戻して動画や音声に変えるデコーダーなどがあります。
OSにあらかじめ含まれている部品(ライブラリ)のみで動作するアプリの場合は、アプリ本体をダウンロードするだけで済みます。
しかし、OSに元々準備されているライブラリよりも新しい開発環境に対応したアプリが動作できるように「Visual C++ 再頒布可能パッケージ」といったライブラリをダウンロード・インストールする場合もあります。次世代となるバージョンのOSには基本的に含まれるため、利用者によっては不要に見えることもあります。
最後に、Linuxなどで時折行われるパターンとなりますが、アプリのソースコードをダウンロードして、利用したい環境に合わせてコンパイル・実行するために、コンパイラのダウンロードが必要となることがあります。
プログラミング言語を機械語に置き換える作業の事をコンパイル、それを実行するプログラムの事をコンパイラと呼びます。プログラミング言語は人間が理解できる形なんですがCPUにとってはちんぷんかんぷんなので、これをそのままCPUに渡しても実行する事ができません。そこでコンパイルという、プログラミング言語から機械語へと翻訳する作業が必要となるわけです。
例えば多くのプログラミング言語では四則演算が当たり前のように使えますが、CPUには加算減算の命令セットはあるものの、乗算除算の命令セットがありませんので、後者についてはコンパイルする過程で乗算除算を「再現できるように」やや長文の機械語が配列されます。
つまり、コンパイラ(翻訳者)を必要とするのはプログラミング言語の段階ですので、機械語に置き換わった後にはコンパイラ(翻訳者)を必要としません。アプリと呼ばれるのは基本的にコンパイル後(翻訳後)の機械語の塊なので、コンパイラを必要とせずそのまま実行できます。
質問者がコンパイラを何のために欲しているのかが、はたから見ていると疑問です。
まず、コンパイラは生産者がアプリなどの製品を作成するために必要なもので、
消費者が持っていても、基本的には何の役にも立ちません。
たとえば、アプリの作成を、一本の鉛筆を作成するのと置き換えて説明します。
「プログラム」は鉛筆の設計図、もしくは製造工程図に当たるものです。
どの材質を使って、どのくらいの長さ、太さで、材料ををどのように組み合わせて、、
という内容が事細かく書いてあるものです
「コンパイラ」は、鉛筆を作るための組立設備にあたるものです。
特注で作った、全自動の専用機械で作っているかもしれませんし、
汎用の木材工作機械をいくつか使用して作っているかもしれません。
手作業でカンナやノミを駆使してひとつひとつ丁寧に作っているかもしれません。
「アプリ(製品)」である、出来上がった鉛筆を、消費者が購入して使います。
もちろんこの製品には、設計図も工作機械も付いてきません。
コンパイラをくれ、というのは、
アプリの「工場」や「職人」をくれ、と言っているのに近しいので
元々提供するのはおかしな話ですし、
仮に、カンナやノミを売っている場所を教えたとしても、
何に使うか不明なうえに、役に立てるとも思えないのです。
皆様、つたない質問や、やり取りにお付き合い頂き、ありがとうございました。
やり取りしているうちに、当初の質問より、いつの間にか深耕していくことに。
それも、こちらの至らないことによります。
ベストアンサーについては、当初の質問の視点より選ばせて頂きました。
どうぞ、ご容赦くださいませ。