プログラミング言語と自然言語

  • 7
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

これは 【その2】ドリコム Advent Calendar 2015 25日目(最終日)の記事です。
24日目の記事は tiger さんの Firewall を貫くツールを自作してみたです。
【その1】ドリコム Advent Calendar 2015 もあわせてどうぞ。

自己紹介

こんにちは、バードです。顔がアングリーバードに似ているのでバードです。

中国の遼寧省から来ました。三国志で言うと公孫瓚の領土です。袁紹の領土にもなりました。

talk_with_ko_yuan_new.jpg

ドリコムに新卒として入社しました。今年4年目です。普段の仕事はサーバーサイドのエンジニアです。趣味はダイビング、言語学習、旅行などです。彼女はいません。好きなタイプは蒼井そらです。餃子はそんなに食べません。

そして、今日はサーバーの話はしまへん。
言語の話をしまっせ。

いま興味を持って取り組んでいること

ワシは言語学習という周りから理解されない趣味を持っています。

今まで、世界各国の言語とパソコンの言語を勉強する機会が多かったので、最近私はこう思うのです。「人間の言語とパソコンの言語の違いは一体なんなんだろう?」

まず言語の目的なんなんだろ

人間の言語はNatural Language(自然言語)と呼ばれます。
パソコンの言語はProgramming Language(プログラミング言語)と呼ばれます。

自然言語もプログラミング言語も基本的な目的は一緒です。それは、コミュニケーションです。自然言語は人間と人間のコミュニケーション、プログラミング言語は人間とパソコンのコミュニケーションです。

同類の言語を学習しやすい

プログラミング言語は見た目はわかりにくいかも知れませんが、似てるところが非常に多いのです。一つのプログラミング言語を上手く学習できれば、他のプログラミング言語を上手に使えるようになります。最初の1つ目、二つ目の言語は結構苦しく勉強しましたが、三つ目から勉強の苦しみがなくなります。4つ目からは楽勝やねん。

自然言語にも同じことがあります。英語が分かれば、ラテン系言語は結構簡単に学習出来ます。例えばフランス語とスペイン語です。しかし、非ラテン系言語、例えヒンディー語や日本語はそうはいきまへん。全く違うのです。

私が最初に学んだ言語はCです。次は、C++,C#,MATALAB,Rubyです。全部手続き型プログラミング言語です。異なる箇所だけを勉強するだけで、言語の学ぶことができるのは気持ちよろしゅうおます。
でも、関数型言語のLISP/Schemeはヒンディー語や日本語みたいに難しいです。

文法も一緒?

文法は、プログラミング言語に、expressionとsyntaxは大事です。例えばif, then, else, while, for, foreach, break, continue, blocks, yieldsなどを把握できれば、複雑なアイデアでもパソコンに通じます。プログラミング言語をうまく自分のアイデアをプログラムにフローコントロールで表現できることです。

自然言語のフローコントロールは日常に我々はよく使ってる名詞、動詞、数量詞、形容詞など。自然言語を上手く表現できるのは、うまく自分のアイデアを色々な単語で表現できることです。

でもね、プログラミング言語の中にも、変わらないことがあるアルヨ。それはアルゴリズムです。各プログラミング言語によって見た目は違うかも知れませんが、メインのアルゴリズムは一緒です。
一方、自然言語も、言語にとらわれず、アイデアは同じです。

same_idea_talk.jpg

文字全然違うけど、意味は一緒です。

エンジニアとしてのメリットあるんじゃ!!

そして私は次のように考えるようになりました。
自然言語を勉強した経験は新たなプログラミング言語を勉強することに役立てるのでは?

そう考えましたが実は違いました。
今のプログラミング言語はほとんどアメリカで生まれたから、文法は英語の文法っぽい感じました。つまり、プログラミング言語はラテン系の言語になりました。

human_pc_talk.jpg

英語が分かれば、プログラミング言語を勉強しやすくなりますが、残念ながら中国語か日本語のみを覚えてもプログラミング言語には全く役に立たないじゃないか!
WHY JAPANESE PEOPLE!!

jason.png
(c) http://www.nissin-ufo.jp/recipe/

まとめ

プログラミング言語と自然言語は皆様が思ってるよりは近いです。将来、自然言語とプログラミング言語が統一されるかもしれませんね。人間とパソコンの会話は自然にできるかもしれませんね。日本語と中国語がなくなるかもしれませんね。
でも、目の前は、安心してください。日本語と中国語まだいけます。

おかず

最後、この度に、この場を借りて、一つのソングを送ります。

Single boy,single boy,
single all the way .
Online game, mobile game,
we go all the way ,hey!

以上