アプリ版:「スタンプのみでお礼する」機能のリリースについて

「プログラミング言語」というものが全然イメージできないんですけど、コンピュータの内部の構造によって使い分けてるわけではなくて、同じコンピュータのままでもいろんなプログラミング言語を使えるんですよね。

人間の言葉でいえば、複数の言語で意味が成立する文章があった場合そこだけ聞いた人はその文章の意味を特定できないので、あらかじめどの言語で話すか知っておかないといけませんよね。

コンピュータにおける、その「どの言葉で話すか」を共有する行為って何に当たるんですか?それともそんなのは全く必要ないのでしょうか?

A 回答 (7件)

プログラミング言語 回答 下書き 2019-01-23



ちょっと視野の狭い回答が多いですね^^;

私は、わかり易さを優先して、ざっくばらんな説明をします。

プログラミング言語は、言語とはいっても双方向でコミュニケーションするものではありません。
普通は、プログラムを作る側からプログラムを実行する側への一方通行の言葉です。
だから、プログラムを作る側は、プログラムを実行する側が理解できる言語で作成します。
よって、「どの言葉で話すか」を共有する行為は必要ありません。

なお、システムや環境によっては、複数の言語に対応している場面もあります。
そういう環境では、「どの言葉で話すか」がプログラムを読み込む部分に書かれています。
「どの言葉で話すか」を指定する言葉は、それを読み込む環境の言語で書かれます。

あくまで例ですがたとえば、
プログラム読み込み環境は言語Aで書かれていて、
その中に、
「ここで、言語Bで書かれたプログラムB’を読む」
とか
「ここで、言語Cで書かれたプログラムC’を読む」
とか
書かれている事もあります。

---
ちなみに、コンピューターとは、必ずしも物理的な存在のコンピューターを意味しません。
むしろ、物理的な存在を意識しないコンピューターのほうが多いと思います。
もちろん、いかなるコンピュータープログラムも最終的にはどこかの物理的なコンピューター上で動いている訳ですが、
使う人間から見ればあくまで「プログラム実行環境」に対して「プログラムを与える」だけです。

なぜそう言えるかというと、
ひとつは、コンピューターの構造が複雑過ぎて、直接コンピューターの中を具体的に操作するプログラムを記述することは、非現実的だからです。
そもそも、本来のコンピューターが実行できる基本的な処理要素は細かすぎて、人間がやりたい具体的で現実的な処理とは掛け離れているのです。そのため、両者の間を取り持つ「翻訳システム」が必ず用意されているのです。
だから、目の前の単独のコンピューターを操作しているようでも、人間がプログラム言語で「指示を与える」対象は「翻訳システム」といえる訳です。
さらに、現在はコンピューターはネットに繋がってるので、「翻訳システム」が実際にどこに存在するコンピューターに実行させているのか曖昧なことも珍しくないのです。
ーーー

私も偉そうな事は言えませんが、数十年の間に技術や環境が異次元的に変化しているのに、いまから学ぼうとする人に古い考えをそのまま教えるのは混乱の元だと思いますよ。
    • good
    • 0

人間が話す「言語」(日本語、英語、フランス語、など)のイメージで考えると、ちょっと違うかな、と。



1つのコンピュータが理解できる命令は、本来は1種類しかありません。
でも、その命令文をそのまま書こうとすると、とんでもなく長くて面倒で、すっごく大変なんです。
なので、それをもっと簡単に書けるようにしたのが、「プログラミング言語」なんですね。
よく使う命令をひと纏めにしておいたり、人間が指示しやすい名前をつけたりしてあります。
でも、その纏め方とか、名前の付け方とかは、いろんな人や会社が、「こっちの方が使いやすい」「いや、こっちの方がいいよ」って独自に試行錯誤して作り上げてきたので、いろんな種類が出来ちゃったんですね。
どれが優れているとか劣っているとかはあまりなくて、どういう用途に使いたいのか、速度重視か使い勝手重視か、いろんな用途に使えるのか限定した用途か、といった方向性の違いで、統一するわけにもいかず、現在もいろいろあるままになってます。

プログラムを実行するコンピュータには、その言語を理解できるソフトが入っている必要があります。これは、よく使うものなら最初からインストールされていることもありますし、別途インストールする必要がある場合もあります。
更に、実行時に「このプログラムは○○のソフトで実行してね」と指定します。
Windowsの場合だと、拡張子を使って「htmlまたはhtmならWebブラウザ」等と予め指定しておくことが多いので、あまり意識することはないですね。
    • good
    • 0

全ての「プログラミング言語」は「マシン語」(コンピューターが読んで実行する事が出来る唯一の言語)


で有り、「コンパイラー」と「インタープリタ」の2種類に分かれます。

用途別(商用の大規模な計算やWebページの製作等)に色々なプログラミング言語をそれに応じて使用
します。

人間の言葉でいえば、複数の言語で意味が成立する文章があった場合そこだけ聞いた人はその文章の意味を特定できないので、あらかじめどの言語で話すか知っておかないといけませんよね。<

これは、プログラミングの段階でどの言語を使用するか予め規定して置きます。


コンピュータにおける、その「どの言葉で話すか」を共有する行為って何に当たるんですか?それともそんなのは全く必要ないのでしょうか?<

前の記述の様に予め規定した言語を使うので例えばアプリケーションをインストールする時に言語の選択
の欄から自分の使用言語を選ぶ事(複数選択できるモノも有る)で他言語との共有は可能です。

極大雑把な内容ですがこれで理解できますでしょうか?
    • good
    • 0

もともとの意味で,コンピュータが理解できるのは,機械語と言われる,「コンピュータの内部の構造によって」それぞれ決められる言語です。


プログラミング言語と機械語をとりもつ 翻訳または通訳を担う役割のシステムがあれば,
同一の「プログラミング言語」を別のコンピュータでも扱うことができますし,一つのコンピュータでいろいろな「プログラミング言語」を扱うことができます。
このシステムはコンピュータのオペレーティングシステムの中に含まれているのが普通です。
    • good
    • 0

> 同じコンピュータのままでもいろんなプログラミング言語を使えるんですよね。


その通りです。

プログラミングとは、処理手順を文章として記述することを言い、
プログラミング言語とは、その文章のための専用言語、になります。

実際に利用する際は、その文章をCPU向けに翻訳しなければなりませんが、
それをコンパイルするとかアセンブルするとか、そういう表現をします。

プログラミング言語が複数あるのは、
表現(言葉)の違いや言葉の豊かさ(効率性)などからであり、
それぞれ専用のコンパイラー(翻訳ソフト)が必要になります。

おまけ
x,yの値からtan角を求める場合、同じ関数でも記述が変わってきます。
EXCELでは、ATAN2(x,y)
JAVAでは、 ATAN2(y,x)
プログラム言語も、種類が違えばそれぞれを覚えなければなりません。
    • good
    • 0

>その「どの言葉で話すか」を共有する行為って何に当たるんですか?


どの言葉でプログラミングするか? でしょうね

パソコン、サーバー上なら、C言語やJava でHPならHTML が主流でしょうね
    • good
    • 0

>全然イメージできないんですけど


そうですか。勉強不足ですね

>コンピュータの内部の構造によって使い分けてるわけではなくて、
>同じコンピュータのままでもいろんなプログラミング言語を使えるんですよね。
「いろんなプログラミング言語を使える環境が整っていれば」ですけけどね。

「プログラミング言語」は最終的に生成する「機械語(マシンコード)」を生成する為のツール(道具)です。
その道具が誰かの手によって用意されていないのなら、その方法は使えません。

>コンピュータにおける、その「どの言葉で話すか」を共有する行為
「言語」という名ですけど、「それらにより作られたプログラム同士が会話できる」という意味ではありません
コンピュータ同士が会話というか通信し合うには
「プロトコル(通信し合うための約束事)」に沿った会話能力(通信能力)を
予めプログラミング、プログラムの一部としてプログラマがインプリメントしておく必要があります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!