- ベストアンサー
言語は誰が作ってるの?
漠然とした質問なのですが、あらゆる言語でプログラムが成り立っている訳ですよね?じゃあそもそも言語自体は誰がつくってるのですか?また何故コンピューターはその言語を認識すると開発者はわかるのですか教えてください、気になって夜も眠れません、あとあまり難しい用語はわからないのでイージーによろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>あらゆる言語でプログラムが成り立っている訳ですよね? 違います。プログラムは「0と1の組み合せ」で成り立っています。 もっと詳しく言うと「0と1の組み合せを、CPU開発者が決めた通りに組み合せて、順番に並べる事」で成り立っています。 「0と1をどう組み合わせれば良いか」は「CPUの開発者」が決めます。そして、それはCPUメーカーから開発者用資料として公開されます。 パソコン所有者は「自分のパソコンに、どこの何っていうCPUが入ってるか知ってる筈」なので、「自分のパソコン用に、0と1をどう組み合わせれば良いか」は判る筈です。 ここで、どこかの「面倒臭がり屋」が「0と1の組み合せを、CPU開発者が決めた通りに組み合せて、順番に並べる事」を手作業でやると、とっても疲れるので「ある文字を、ある規則に従って並べておくと、0と1の組み合せに変換してくれるプログラム」を作る事にしました。 それが「プログラミング言語」です。 「ある文字を、ある規則に従って並べておく」の部分の「ある規則」が、その言語の「文法」になります。これを「言語」と言います。 で「Aという規則に従って並べておくと変換してくれるプログラム」を「A言語翻訳プログラム」とか「Bという規則に従って並べておくと変換してくれるプログラム」を「B言語翻訳プログラム」とか言うようになりました。 因みに「アセンブリ言語」を翻訳するプログラムを「アセンブラ」と言います。「C言語」を翻訳するプログラムを「Cコンパイラ」と言います。 開発者自身は「Aという規則に従って並べておくと変換してくれるプログラムを自分のパソコンに入れよう」と思って自分でそれを入れるので、プログラミングを「A言語で書けば良い」と判って当然です。 (但し、いきなり上司に「これ、中に何が入ってるか知らんが、これ使って開発しろ」と他人が使ってたパソコンを押しつけられたら、話は別です。下手すると「CPUは何?」って所から調べる為にパソコンを分解しないとならないかも) 整理すると以下のようになります。 >あらゆる言語でプログラムが成り立っている訳ですよね? 違います。プログラムは「0と1の組み合せ」で成り立っています。 >じゃあそもそも言語自体は誰がつくってるのですか? どこかの「面倒臭がり屋」です。 >何故コンピューターはその言語を認識すると開発者はわかるのですか コンピューターは言語を認識してはいません。「0と1の並び」だけを認識します。 言語を認識しているのは「アセンブラ」や「コンパイラ」などの「言語翻訳プログラム」です。 開発者自身が、どの言語用の「言語翻訳プログラム」を入れるか自分で決めるので、どの言語で書けば良いかは開発者自身が知っています。
その他の回答 (2)
- mac_res
- ベストアンサー率36% (568/1571)
>あらゆる言語でプログラムが成り立っている訳ですよね? ちょっと意味不明です。 プログラムが成り立っているとは、どのような状態を指しているのでしょうか? >じゃあそもそも言語自体は誰がつくってるのですか? プログラミング言語ごとに作者がいます。 >また何故コンピューターはその言語を認識すると開発者はわかるのですか 順序が逆です。開発者は、コンピューターが理解しやすく、かつ、人間にも分かりやすいようにコンピュータ言語を設計しているのです。 Cの場合を考えて見ましょう。 Cは、1973年にAT&Tベル研究所のデニス・リッチーが主体になって、開発された言語です。 元々UNIXオペレーティングシステムを記述する目的を持っていたので、マンマシンインターフェースとしては、かなり機械よりの仕様となっています。 今ではさまざまな、コンピュータに移植されそれぞれのマシン用のオブジェクトコードを生成します。 Cの文法を解釈する部分と、実際にオブジェクトコードを生成する部分は分離されていて、後者を入れ替えれば、別のマシンのコードを作れるようになっています。
補足
ありがとうございます。言語を作る人というのは、もの凄く頭の良い非凡な人なのでしょうか?変な質問ならごめんなさい、言語を作る人と、それらを使ってソフト等を開発する人はどっちが凄いですか?
- PED02744
- ベストアンサー率40% (157/390)
>あらゆる言語でプログラムが成り立っている訳ですよね? いいえ。 唯一「マシン語」と呼ばれる情報でのみ、プログラムは成り立っています。 マシン語は、CPUによって決まります。 例えば、インテル社製のCPUを使っている32bitPCの場合、 80386と呼ばれるCPUの互換プログラムとして実行されます。 >じゃあそもそも言語自体は誰がつくってるのですか? プログラミング言語は、その実行可能な情報に変換するための言語です。 この言語自体は誰が作ってもかまいません。 もちろん、私もあなたでもかまいません。 ただし、プログラミング言語自体を「実行可能な情報」で記述しなくてはいけませんが。 >また何故コンピューターはその言語を認識すると開発者はわかるのですか? 上にも書いたように、「実行可能な情報に変換するための言語」として「プログラミング言語」が存在するから。 プログラミング言語もプログラミング言語で書かれていて、それは実際には、 「マシン語」というCPUが認識できる形式の情報に変換されている・・・ってことです。 ・・・では答えになっていませんでしょうか(^-^; じゃ、一般的な例で。 ネジを自動生産する機械自身にもネジは使われている・・・ってことです(笑)
補足
ありがとうございます。 >プログラミング言語もプログラミング言語で書かれていて それはc言語に対してcコンパイラーが変換するという考えでよいでしょうか、ズレタ理解の仕方であればごめんなさい、気になっている問題なのですが、この分野は本当にはじめてなので
補足
ありがとうございます。 ずれた理解の仕方ならごめんなさい、例えばAというCPUがあったとして、そのAに対して 互換性のある言語でしかプログラムを作成することができないということなのですね?当然ソフトを開発する人たちは、このCPUにはこの言語が使えるとわらるわけですよねー凄いな 私はphotoshopやillustratorなんかをよく使いますが、それらのソフトが0 と1で動いてることが不思議で仕方ありません