質問: プログラミング言語とは こんにちは。 今、パソコンの系統図的理解をしたいと思って、必死こいてるのですが・・・ パソコンに入っている、プログラミング言語のソフトというのは、 目に見ることのできない僕が知っている知識としてのプログラミング言語と、 ハードの物理的動作、あるいはさらに下の抽象的な階層に位置するプログラムを動作させるプログラムだ、という定義は、間違っているでしょうか? だめ・・ですか?
回答: ちょっと違います。 プログラムを書く時にどのように書くのが正しいのかという文法を定めたものがプログラミング言語です ですから、日本語や英語と同じような言語であって、プログラムを書くのに便利なように文法を定めた言語というほうがいいでしょう。 プログラムを作って動作させるには大きく分けて次のような二つの方法が有ります。 (1)プログラムを書くー>プログラムを機械語に翻訳するー>翻訳したプログラムを実行可能な形にするー>実行する (2)プログラムを書くー>プログラムを解釈して実行する 前者の「プログラムを機械語に翻訳する」部分を「コンパイラ」、 後者の「プログラムを解釈して実行する」部分を「インタープリタ」と呼びます。 「翻訳したプログラムを実行可能な形にする」を分けたのは「機械語に翻訳」しただけでは実行可能にならないシステムがあるためで、パソコンの場合は翻訳した時点で実行可能となるのが大部分です。 この流れを機械工作でたとえれば、 製品の設計図にあたるプログラムを作る 設計図に基づいて工作機械(コンパイラ)で工作する 出来上がった製品を使用する の三つにあたります。 ソフトウエアの場合にはこれらの三つともソフトウエアなので厳密な話をする時は分けて話をしないと混乱の元になります。 はっきりさせるには、例えば「c言語のソースプログラム」、「c言語のコンパイラ」、「(c言語で書いた)実行プログラム」などと区別します。 普通の人が使うパソコンには「設計図」や「工作機械」に当たるソフトは入っていません。