• ベストアンサー

なぜプログラミングは英語なのでしょうか?

プログラミングはなぜ英語なのでしょうか? 日本語のプログラミングもあるそうですが、用途が限られているみたいです。 英語以外のコンピュータ言語の場合、オブジェクトコードに変換するために数段階の変換-つまり英語に-がなされるので複雑になり、処理速度も遅くなるようです。 コンピュータ言語は英語つまりラテン語・ギリシャ語系列の表音文字が適しているのでしょうか。アセンブリ言語がローマ字、アラビア数字になじみやすいからでしょうか?コンピュータ=白人文化・・・ASCIIが世界標準になっているせいもあると思いますが、まるでコーカソイドの独占ですね。 プログラムのことをよく理解していない上での質問かもしれませんが、教えていただければ助かります。よろしくお願い致します。 【疑問点】 1.コンピュータ言語は、なぜ英語なのでしょうか? 2.ローマ字、アラビア数字は機械語に直すとき、処理しやすいのでしょうか? 3.漢字など表意文字は、コンピュータ言語としてあり得ないのでしょうか?(補足:コンパイルしにくい?)

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

  • ベストアンサー
  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.5

こういうことが聞きたかったのですね 興味の方向から、専門的な言葉を使ってしまいますが、ついでに調べれば有益だと思うのでご容赦願います 1 厳密に言えば、自然英語ではないですよね。単に英単語を羅列した物です。 ですから、これを母国語に置き換えたプロダクトというのは各国にあります。日本だとぴゅう太のカナBASIC(BASICのステートメントをカナ化した)とか前にご紹介したMind(Forthの基本辞書を日本語化し、語尾の変化に対応)などがありますし、旧ソ連などでは、キリル文字でプログラムする環境があるようで、ステートメントもロシア語になっていると聞きます。 ただ、圧倒的に英単語でプログラムすることが多いのは、元々の経緯、初期のプログラミング言語であるFORTRAN、COBOLが当時の計算機科学の先進国(今でもそうですが)である米英で生まれたことから来ているのでしょう。そして、コンピュータのインターフェース(パンチカードや紙テープのさん孔装置の入力デバイスとしてはコンピュータ以前から)として英文タイプライタのシステムが使われたことが大きいと思います。コンピュータでは生まれたときから英語がアドバンテージを持っているのです。 このあたりはコンピュータの歴史を調べてみるとよくわかるでしょう。最初のコンピュータとされるいくつかのもの、ABCマシンとENIACがアメリカ、Mark.1とColossusはイギリスです。 また、COBOLは元々、自然英語でのプログラミングを標榜してCODASYLで制定されたものですから、英語に近いのは当然です。 2 最終的にコンピュータが理解できる2進文字列になればいいのですから、その元の言語がなんであっても大きな問題はないでしょう。ステートメントをニーモニックに置き換えてしまえば、その後はアセンブラの仕事ですから、現在のCPUの能力であれば、字句解析とパーサがちゃんと作ってあれば大きなオーバーヘッドにはならないと思います。自然言語に対応しようとすれば大変ですが、MIndでは、送りがなは無視して語幹だけを処理して逃げています。ですから、以下のような書き方ができます、()が命令や実行番地、リテラルになります。 (財布)に (500)円を (追加)する まあ、これだと「追加しない」としても追加してしまうのはご愛敬ですが、追加しないなら書かなきゃいいだけですからね。ただ、これを ADD 500 TO PURSE(COBOLですね) とか PURSE = PURSE + 500(FORTRANやC) と書くのと、どちらを選びますか。 3 あり得ないわけではないことはわかると思いますが、キーボード入力のオーバーヘッドを受け入れてまで普及することはないでしょうね。 漢字入力にしても、実際には一番ストロークのの多い(そういう意味では効率の悪い)ローマ字かな変換が一番普及している状況ですからね。もっとも、一番効率のいい(プロ御用達の)2ストローク入力やオアシスの入力を使っても英文でのプログラムにはかないません。 英文キーボードでの入力に太刀打ちできる入力メソッドが登場しない限り、2バイト文字がプログラミングの主役になることはないでしょう。 追加しておくとプログラマに限らず人間というのはかなり保守的です、ローマ字入力が主流なのもそうですが、英文キーボードがより高効率のものがいくつも提唱され、本当にスピードを求めるプロフェッショナルな場面(速記など)では採用されているにもかかわらず、わざと入力速度を遅くした(タイプライタのバーがもつれないように)QWERTY配列が滅びないのもそのひとつです。 そう考えると定着してしまった英語のプログラミングは滅びないでしょうね。

Fortuna21
質問者

お礼

前回も回答ありがとうございました。 今回の丁寧な回答でわからなかった箇所がよく理解できました。本当にありがとうございます! 今書いている本の中で、汎神教と一神教(キリスト教)の文字に与える影響と違いを考察しているところです。恣意的かもしれませんが、古代ギリシャ文字をベースとする英語は2元論的表現を多く持ちます。英語文化圏の宗教のシンボル、十字架がよい例で縦と横のクロスからできています。ビットつまり0と1にアナロジーしています。論理の飛躍かもしれませんが、コンピュータ創出の背景にキリスト教の思考方法が内在しているように思えます。

その他の回答 (5)

  • notnot
  • ベストアンサー率47% (4845/10255)
回答No.6

1.多くの人に使ってもらうためにはキーワードは英語ベースの方が有利です。例えば、サンスクリット語ベースのとても優れたプログラミング言語があったとして、仮に日本語に翻訳されたマニュアルがあったとしても、それを使うためにはサンスクリット語の辞書もいるし、サンスクリットのフォントやIMEも要ります。 2.文字の違いは昔ならともかくいまどきはほとんど差はありません。 アラビア数字じゃなくて漢数字(壱万参=10003)とかローマ数字(XXIV=24)とかを使うのはアラビア数字を扱うよりちょっと難しいですが、プログラミング入門書の上級練習問題レベルでしょうか。言語を作る難しさの中では無視出来る範囲の違いです。 3.英語ベースの言語も、キーワードが英語由来なだけです。1つの言語のキーワードは有限個(多くて数十個)ですから、表意文字で置き換えても言語を作る難しさは変わりません。 「多数の国の人が参加する国際会議ではなぜ英語を使うのでしょうか?」と同じような質問・答えだと思います。 ちなみに、 「英語以外のコンピュータ言語の場合、オブジェクトコードに変換するために数段階の変換-つまり英語に-がなされるので複雑になり、処理速度も遅くなるようです。」 は誤解です。そういう作り方も出来ますが、そうで無い作り方も出来ます。英語ベースの言語でも簡単に作るためにいったん別の言語に翻訳するものもあります。

Fortuna21
質問者

お礼

回答ありがとうございました!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

1,2. 7ビットで表せるような限られた種類の文字を扱えばいいのですから、簡単だからですかね。 3. 現在のマルチバイトをちゃんと扱える言語では、変数などに漢字を使えます。プログラムの予約語などにも漢字を当てはめて言語自体を作成することは、長くなることを除けばそれほど問題になるとは思えません。 しかし、マルチバイト文字を入力するには、 例えば、ローマ字入力の場合 kanjinohennsuuなどと入力して変換キーや文節移動キーを押して確定するのであれば、1つの意味の言葉を入力する時に、入力するキーが増えてしまいます。 同じ意味を英語などのアルファベットのワードを使えば、大抵の場合タイプが少なくて済みますから、そういうことがマルチバイト文字の言語を広めにくくなっていると思います。

Fortuna21
質問者

お礼

わかりやすい説明ありがとうございます。 マルチバイトだと字数が増えて手間がかかるのですね。

noname#30727
noname#30727
回答No.3

>1.コンピュータ言語は、なぜ英語なのでしょうか? コンピュータが米国で発達したものだからでしょう。 しかしコンピュータだけを特別に考える必要はないと思います。柔道の技の名前はなぜ日本語なのかというのと同じです。 >2.ローマ字、アラビア数字は機械語に直すとき、処理しやすいのでしょうか? >3.漢字など表意文字は、コンピュータ言語としてあり得ないのでしょうか?(補足:コンパイルしにくい?) 自然言語とプログラミング言語を同列に考えているのですか? すくなくとも英語の文章を機械語に翻訳できるコンパイラは存在しないと思います。 単に予約された単語や新たに追加できる単語がアルファベット等でなければならないというだけの事で、言語というより数式のようなルールがあるだけです。 それらを日本語で記述する言語があったとしても、漢字変換をいちいちやらなければならないので、日本人からも支持されないでしょう。 式 a=b*2 を、アはイ掛二 と書いても、文字が変わっただけだです。全く意味がないです。 今時Unicodeなどを扱える言語は珍しくもなんともありませんから、ASCII文字が処理しやすいなんて事は特に無いと思います。

Fortuna21
質問者

お礼

回答ありがとうございました。 プログラミングを知らない人間にとって、ゼロから一つの世界を構築するプログラミング技術は、魔法みたいです。適切なアドバイスありがとうございました。

Fortuna21
質問者

補足

VBしかさわった事がないので、私自身CPUにたどり着くまでの全体の流れが文章上でしか理解できていません。 >すくなくとも英語の文章を機械語に翻訳できるコンパイラは存在しないと思います。 コンパイラは、ソースコードをオブジェクトコードに変換するソフトと理解していたのですが。英語(数式含む)を機械語に変換(つまり翻訳)。この理解は間違っているのでしょうか?

  • neo_ap1
  • ベストアンサー率26% (105/395)
回答No.2

1.言うなれば業界標準ということでしょう。   英語圏が最先端を行く限りは業界標準は英語になると思います。   それに加え、アルファベットがプログラミング言語に   向いていると言うのも大きいと思います。   ほとんどがA-Z、0-9の組み合わせで表現できます。 2.アルファベットとアラビア数字は機械語に   直しやすいと思います(日本語と比較して)   また、人間にも理解しやすいと思います。 3.完全に日本語のプログラミング言語もあるようです。   コンパイルしにくいかどうかと言われれば、   ややしにくいのかもしれませんね。   コンパイル自体はともかく、コンパイラを作るのが大変そうです。   当然ですが、必要な容量は大きくなります。 別の観点からも、やはり日本語でのプログラミングは 色々と難が有りそうです。 例えば、漢字を使うとなればコンパイラも相当な規模のになるでしょうし、 コンパイル自体も重い処理になるでしょう。 (漢字を解釈しなければならないため) かといって、ひらがなまたはカタカナで書けば とても読みにくい、メンテナンス性の低いプログラムになると思います。 また、タイピングにしてもローマ字入力するのであれば、 ほぼ一文字に2タイプが必要になりタイピング数も倍増します。 まあ、かな文字入力にすればいいのですが・・・。 そういった、「扱いやすさ」で言えば英語ベースの方が プログラマとしても助かるのではないかと思います。 ちなみに、プログラミング言語は英語とも違うと思いますよ。 英語がベースですが、文法も命令語も厳密には独自だと思います。

Fortuna21
質問者

お礼

わかりやすい説明ありがとうございます。 「言語の歴史」について書いているところで、コンピュータ言語も論及しようかとか考えましたが、プログラミングの知識がないもので皆様のお力をお借りしました。ある程度流れが理解できました。本当にありがとうございます。

回答No.1

ASCIIは7ビット(2進数で7桁)だけです。 他の文字を使うと扱わなければいけないデータ量が増え、取り扱いが難しくなりますし、処理速度が遅くなります。 (日本語を扱うには16ビット必要です。半角カタカナなら8ビットで済みますが、それは表音文字ということになりますね。) 一度だけコンパイルすれば実行形式のファイル(ソフト)が出来るプログラミング言語なら、上記のことはあまり問題にならないかもしれませんが。 プログラマーの慣れ、新しい言語を作る手間、新しい言語を作って割に合うか(普及するかどうか)などを考えると、どうしても英語が基本にならざるを得ないと思います。

Fortuna21
質問者

お礼

早速の回答ありがとうございます。 英語がデータ量からもプログラミングしやすい言語だということがわかりました。

関連するQ&A

  • 表意文字と表音文字

    今日ふっと思ったのですが、日本語って表意文字と表音文字がありますよね。さらに、表音文字が二種類(ひらがなとカタカナ)もありますよね。戦後になって意図的に作られたローマ字は別にするとして・・・世界中の言語で、表意文字と表音文字が別々にある言語って他にあるのですか?それも、昔の万葉仮名のように表意文字の音だけ借りて表音文字として使いのではなくて、ひらがなやカタカナのように(元は漢字ですが)表意文字とはまったく違う形の表意文字が二種類もある言語は他にあるのでしょうか? だれか知っていたら教えて下さい。

  • 文章をパッ、、、と見て一瞬で理解できること

    を、なんと言うのでしたか、知っておられる方いらっしゃいましたら、 教えていただきたいです。 日本語や中国語などの表意文字のほうが、 ローマ字や他の表音文字よりも、識別できる速度が早い、 ということを何か専門用語があったと思うのですが。。 よろしくお願いいたします。

  • ヒエログリフと日本語について

    古代エジプト王朝の言語ヒエログリフが、表音文字と表意文字の両方を組み合わせた文体であることを知りました。 よく考えると、日本語も漢字とひらがなを組み合わせます。 昔の韓国語も漢字とハングルの組み合わせで、日本語に似ています。 こういった表意文字と表音文字を組み合わせる言語は、かなり複雑な文法・表記法を使うと思います。 それで質問です。 日本語や韓国語以外に、表音文字と表意文字を混同して使う言語がありますか。ありましたら教えてください。過去の言語でもかまいません。 よろしくお願いします。

  • 英語と相性が良い文字は何でしょうか?

    英語の表記法について質問(長文)です。 ローマ字で書かれた英語の文章を見ていると、他のローマ字使用言語と違って特殊記号を使わない分、外見がすっきりしていると感じます。 しかし実際に声に出して読んでみると、英語の豊富な母音と子音を26個の文字で完全に表せているとは言い難く、母音字は実際の発音と乖離し、子音字も複数の字を並べないと一部の音素を表記できないことに気付きます。 このような点から、音素が少ないラテン語を表記するために作られたローマ字は、英語の表記に適していないのではないかと思いました。 このままだと、全世界数十億人に及ぶ英語学習者の意欲と勉強の効率に悪影響が及ぶのではないか、と心配になります。 そこで、英語を合理的に表記できる文字を選んでみたいと勝手に思いました。 世界中の文字体系の中で、英語と相性が良いものは何でしょうか。 私個人としては、漢字とアラビア文字が相性良好ではないかと思います。 漢字…孤立語である中国語を表記するための文字で、年々孤立語化している英語とよく馴染む気がします。語順も英語と似ているので、どの単語にどの字を当てるか工夫すれば、漢文と同じ調子で書ける? アラビア文字…母音を表記しない文字体系で、子音優位の言語である英語にも意外と適応できる? 子音字も相当に豊富で、英語の子音を一文字で書き分けられます。母音交替で品詞の変化を表す(song…singなど)点でも、英語とアラビア語はよく似ています。 皆さんはどの文字が音声学的に英語と相性が良いと思いますか。 ご意見を聞かせて頂ければ嬉しいです。 ※ 英語のtsに関しては、私は独立した子音ではないと考えています。t+sで大丈夫ではないでしょうか。 chやpの音はペルシャ語などの字母に存在するので、そちらで補えば良いと思います。 私はペルシャ語からアラビア文字に入ったので、چやپが出てこないアラビア語の文章を見ると寂しい気分になることがありますپ)چ _ چ(پ

  • 数字、英語以外で直接入力できるコンピュータ言語はあるのでしょうか?

    自国語入力するプログラミングソフトはありますが、逆コンパイルというのですか、ソースコードは英語に変換されています。プログラム言語の中でアラビア数字や英語以外の数詞や言語で、そのまま変換なしで打ち込めるプログラミングは存在するのでしょうか?よろしくお願い致します。

  • cocoonについて(表意文字?)

    cocoon(繭)という単語がありますが、これ、なんだか表意文字のような気がするんです。どうもこの単語の形じたいが、繭そのものをならべたか、蚕のかたちをあらわした感じがする。表意文字、という言い方より「表意語」(そんなことばはありませんが‥)と言ったほうがいいんでしょうか。でも、英語にそんなことってあるんでしょうか? 「cocoon」の成り立ちを知っているかたがいましたら、教えてください。 そしてもしこの「cocoon」が「表意語」だとしたら、ほかにもそういう例はあるのでしょうか。 英語圏のみならず、アルファベットやキリル文字などの表音文字の言語のなかに、そういう例が見受けられるようでしたら、教えてくださるとさいわいです。

  • 一番難しい言語は?

    一番難しい言語は? 世界には様々な言語がありますが一番難しいのはどれだと思いますか? 自分は尊敬語や謙譲語など文法も難しく、カタカナ ひらがな 漢字など表意文字や表音文字が入り混じる日本語が一番難しいと思うのですが。

  • 英語の名前について

    英語の名前について 英語の名前ありますよね。 Tom,Mike,Linda,Susan... でもこれらってつづりが決まっているじゃないですか。 日本語(ひらがな)なら表音文字だから音と音をくみあわせて無限に名前が作れますが英語ってそうは行かなくないですか? マイクなんてローマ字でいけばMaikuなのにつづりがきまっているからMike。 だとしたら英語圏には同じ名前の人だらけじゃありませんか?! またそうならばどれぐらいの名前のつづりが決まっているのでしょうか?

  • ローマ数字で文字化けするんです。

    iMac DVを使っているんですが、ホームページを見ている時や、 送られてきたメールのローマ数字がいつも変な字になってしまうのですが、どうしたらいいんでしょうか?  あと、特定のアプリケーション?を使う時でも文字化けして、 何かアラビア語見たいな英語?がでてきてしまいます。

    • ベストアンサー
    • Mac
  • 現在も使われている漢字以外の表意文字

    世界では色んな言語が使われていて その数は3000から6000くらいあるそうですね。それに対してそれらの言語を表す文字の数も沢山ありますが、言語の数から見ると ずっと少ないですよね。文字を持たない言語もあるし、一つの文字が何ヶ国語でも使われているケースも多いからですよね。そして 文字のルーツを探るとエジプト象形文字、楔形文字、インダス絵文字、インダス(アステカ)文字、甲骨文字になりますが、現在使われている表音文字はラテン、ギリシャ、キリルアルファベットやアラビア文字、インド系の文字も殆ど全て やはり エジプト象形文字に辿り着くそうですね。 そこで質問なんですが、現在でも漢字のような表意文字を使っている国(または地方)はあるのでしょうか?

専門家に質問してみよう