竜太のテクニカルメモ

物理やへっぽこなゲーム作りについて易しく解説するよ

ユニティちゃんライセンス

このブログはユニティちゃんライセンス条項の元に提供されています

プログラム言語の本質は何語で書いても違いはなかった!

どーも竜太です.

今回は実はプログラミング言語の本質は中国語で書こうが日本語で書こうが英語風なプログラミング言語と本質的に 速度の面でも正確さの面でも何ら遜色がないという点について書きます. これが分かると,従来のプログラミング言語が本質的に英語風な言語がほとんどでしたが,互換性の問題を除けばその必要が全くないことが 分かります.

代表的なプログラミング言語は全て英語風

僕が触ったことがあるプログラミング言語JavaScript,PHP,Python,C#ぐらいですが, これらの言語は全てif,for,whileなどの英単語で命令を出す,英語風なプログラミング言語です. ここで挙げたプログラミング言語はすべて英語風ですが,実は世界中の代表的なプログラミング言語は 全て英語風なプログラミング言語になっています. ウムラウトが付いたりする言語すら代表的な言語には存在しません. プログラミング言語に最適な言語は英語しかないのでしょうか?

機械が理解するのは本質的に2進数だけ.

実はよく知られているようにコンピュータが理解できるのは0と1だけの2進数しか理解できません. 何故なら信号があるのHighと無いのLowの2種類しか用いていないからです. ここでマシン語の知識がある人はこう反論するかもしれません,

マシン語は16進数で書かれているぞ!」

しかしこれはあまりにお粗末な反論です.マシン語すら人間が分かりやすいように少しだけ人間的な言語に翻訳されている りっぱな?高級言語だからです(笑

文法構造が同じなら何語でも差し支えない

ここから分かることは次のことです. 実は何語で書いても機械が機械的に解釈できれば全く問題がないという事実です. 必要であればエスキモー語で書いたって問題ないのです. 機械的コンパイルするだけですので,コンパイル後のプログラムの実行速度も正確性も何語で書いても全く変わりません. 文法構造の違いだけは各言語に違いがあるため,性能差に若干違いが出る可能性は全くないとは言えません. しかしそれを言ったら,英語風のプログラミング言語も実は元々の英語と全く違った文法構造になってしまっている部分が 多々ありますので,これだけは機械が解釈しやすいような文法構造にする必要があります. しかも恐らく英語の文法構造が最も機械が理解しやすい文法構造とは考えられませんので, これは日本語風にしたら悪くなるとも言い切れません. 良くなるところもあれば悪くなるところもあるでしょう. いずれにしても何語を用いても機械が理解しやすいような文法構造にする必要だけはあります. それでも文字を

if a == 1: print("こんにちは世界")

と書くよりは

もし,a == 1 ならば, 「こんにちは世界」 と表示せよ.

と書く方が日本語話者にとってはるかに負担が少ないはずです.

分かち書きの問題

一点だけ注意したほうが良いこともあります. 一番機械が簡単に理解できるのが,恐らくは分かち書きされた言語でしょう. 例えばもちろん英語は分かち書きされていますし,中国語や日本語は分かち書きされていません. これは本当は意味の句切れが機械的に判定できればどんな書き方だってよいはずなのですが, 人間には簡単に判読できる日本語の意味の句切れが機械には難しいという問題があります. この問題があるため,最も単純には分かち書きされた日本語プログラミング言語が良いのですが, この点だけは残念です. 但し工夫次第で分かち書きされていない日本語プログラミングは可能であり, 事実,そのようなものも存在します.

ディープラーニングで解釈するのはダメ

最近マシンラーニングがはやっていますのですぐに,

分かち書きされていなくたってディープラーニングで解析すればいいじゃないか!」

という声が聞こえてきそうですが,これは全く醜い方法でダメです. そもそも,ディープラーニング機械的に解釈するといった用途には大変不向きで, 大変危険です.何でもかんでもディープラーニングすればよいわけじゃありません.

言語パックを搭載した多言語化はどうか?

このように考えると実は言語パックを導入して一つのプログラミング言語分かち書きされた多言語化ができるのではないだろうかというアイデアが出ます. ただしこの目的のためには最も優れているのはユニコード文字を使うことで, 日本語プログラミングも中国語プログラミングもすべてユニコードを使用して書くのが理想的です. これで未来のプログラミング言語は文法構造はやや不自然になってしまいますが, 多言語化が可能です. 

実際に存在する日本語プログラミング言語

これは私が説明するよりウィキペディアを引用する方が早いでしょう:

ja.wikipedia.org

日本語でプログラムを組んでみたい!

これは純粋な好奇心として,ぜひ僕も日本語でプログラムを組んでみたいものです, 有志の方,ぜひまだまだ少ない日本語プログラミング言語を開発してみませんか?

この案を実際に作ってみたいという方を募集いたします. ソフトバンクさん,如何でしょうか?

ここまで読んでくださって有難うございます. 何か間違い等ございましたら,ご報告いただけると幸いです^^


物理学ランキング


宇宙開発ランキング


量子力学ランキング

にほんブログ村 科学ブログ 科学情報へ
にほんブログ村

にほんブログ村 科学ブログ 最先端科学・最新科学へ