• ベストアンサー

プログラミング言語とは

こんにちは。 今、パソコンの系統図的理解をしたいと思って、必死こいてるのですが・・・ パソコンに入っている、プログラミング言語のソフトというのは、 目に見ることのできない僕が知っている知識としてのプログラミング言語と、 ハードの物理的動作、あるいはさらに下の抽象的な階層に位置するプログラムを動作させるプログラムだ、という定義は、間違っているでしょうか? だめ・・ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21373)
回答No.2

パソコンに限らず、コンピュータは機械語で動作しています。 機械語とは2進数で書かれた命令体系で、この命令を既定の 順序でcpuが読みだして、周辺装置の動作を指定することで コンピュータは動作します。 ですので、機械語を直接メモリに書き込めば、コンピュータ は動作します。日本初の「マイコン」と言われているNECの TK-80も、機械語を直接メモリに書き込むことで動作します。 http://ja.wikipedia.org/wiki/%E3%83%AF%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%89%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3 ただ、機械語は2進数なので何をやってるのか分かりません。 ですので、人間の話す言葉に近い書式でデータ(ソース)を 作ると、それを機械語に自動的に翻訳してくれるプログラムが 作られました。これをコンパイラ、またはインタープリターと 言います(双方で動作が微妙に異なる)。 この「コンパイラ、またはインタープリターで自動的に機械語 (正確に言えばより下位の処理体系)に翻訳できる言語体系」 のことを「プログラム言語」と言います。 ということで、質問者さんの定義は「そういう理解でだいたい 合っている」と言えると思います。

sheep67
質問者

お礼

お返事ありがとうございます。 質問みすったかなーと思ってしまったのですが、 回答文読んで昔の疑問が蘇ります。 昔々、MSXで、ベーシックと、ニーモニックというマシン語のなんちゃらかんちゃらを組み合わせて、プログラムを作って遊んでいたのですが、 その頃出てきた、「MSX-DOS」というのが意味不明で、 もちろんこれはDOSで、今のウィンドウズのOSにもつながるんでしょうが、 僕にとっては、ニーモニックとベーシック=パソコン、みたいな式がいまだに消えないので、 混乱しています。 DOSの位置づけを、このニーモニックやベーシックとの関連性で考えると、 なんというか、プログラムの階層性のようなものを感じるのですが、今ひとつはっきりしません。 最初からこういう聞き方をしたら良かったかも、です。 あ、でも、そういう理解で大体会ってる、とのことでちょっとほっとします。

その他の回答 (2)

  • tadys
  • ベストアンサー率40% (856/2135)
回答No.3

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

sheep67
質問者

お礼

分かりやすい説明をありがとうございます。 例え分かりやすかったです。 コンパイルとか、アセンブルとか、なつかしい言葉ですねー。 ウィンドウズが出てきてから、自分でプログラムを見ることもなくなったので・・ 上手な人が生み出すフリーソフトを使うだけで、僕には精一杯なので、昔かじったプログラミングをやり直すゆとりがありません。 また質問文があやふやでしたが、 質問は、やはりソースプログラムのことの質問だと思ってて、 コンパイラや実行プログラムは、バックグラウンドですし。 ビジュアルベーシックがやり直しにいいよ、と言われたのですが昔のベーシックとはなんかえらい違いで、 さらに混乱しております。orz もうちょっといい質問を考えたいと思います。m(__)m

  • rk_les
  • ベストアンサー率63% (23/36)
回答No.1

こんにちは。 Sheep67さんが考える >パソコンの系統図的理解 はどういうものでしょうか? >パソコンに入っている、プログラミング言語のソフトというのは、 >目に見ることのできない僕が知っている知識としてのプログラミング言語と、 >ハードの物理的動作、あるいはさらに下の抽象的な階層に位置するプログラムを動作させるプログラムだ、という定義は、間違っているでしょうか? プログラムの面でいうのであればパソコンという括りは正しくは無いと思います。パソコンという括りであればまずはパソコンを構成されている部品から理解しなければいけません。 ご参考までに

sheep67
質問者

お礼

ありがとうございます。 パソコンではなく、メモリやROMや、そういうのに入ってる、ということでしょうか? でもなるだけおおざっぱに把握したいもので。

関連するQ&A

専門家に質問してみよう