質問: cpuの言語処理系の種類はそんなに多くないですか 確認までになのですが。 c言語に限らず言語開発環境を構築する際にインストーラとして「win.x86」「win.x64」や「macos」は選択することはあっても、「cpuはintelですか、amdですか?」と尋ねられることはないことから、 「コンパイラはどうやって導入されるpcのcpuに対応するのか?」という疑問がありました。 もしも言語処理系というものが、 ・数種類のメーカーのルールしかない ・cpuの世代(intel i7, i9など)の世代間で言語処理系に互換性がある ・コンパイラ内に必要な数種類のメーカーの処理系はもうすでに入っている ・コンパイラは今後しばらく修正される必要が今のところない のであれば新品のwindowsosにサードパーティのコンパイラをダウンロードしてきて利用できる意味が理解できるのですが、これは正しいですか?
回答: 正しくない。 コンパイルとは、プログラミング言語で記述されたソースコードを、コンピュータが実行可能なオブジェクトコードに変換すること。 コンパイラはコンパイルするためのツール。 cpuはintel製, amd製が有名ではあるけど、それだけではない。 スマートフォンに使用されているarmもあるし、古くはザイログ社のz80シリーズ、モトローラ社のmc68000シリーズ等、多種多様なcpuが存在する。(存在していた) cpuのメーカー、種類だけコンパイラは存在するし、同じメーカーの同系統のcpuでも世代が重なるごとに新たな構成、命令が追加されるため、コンパイラはそれに追随していかなければならない。 よって、コンパイラは現在でもどんどん更新されて行っている。