コンピュータ内の演算と日本語文法の親和性
コンピュータ内での演算は、スタックを用いた逆ポーランド記法(後置記法)で行われます。
スタックとは
スタックはお皿を積み重ねる動作がよく例として用いられます。お皿を積み重ねていくと、最初に積んだお皿が一番下、最後に積んだお皿が一番上となり、お皿を取ると最後に積んだお皿から取っていく事になります。
後入れ先出し(LIFO)という言い方もされ、スーパーの陳列などで行う先入れ先出し(FIFO)などとは逆の出し入れの方法ですね。
後入れ先出しを行うのがスタック、先入れ先出しを行うのがキューです。
例えば、
(3+2)×(5-2)
は、逆ポーランド記法で記述すると
3 2 + 5 2 - ×
です。
これはコンピュータ内では、スタックを用いて以下のように計算します。
3をスタックに積む→3
2をスタックに積む→3 2
+は演算子であるため、2つのオペランド(3と2)を取り出して足す→5
5をスタックに積む→5 5
2をスタックに積む→5 5 2
-は演算子であるため、2つのオペランド(5と2)を取り出して引く→5 3
×は演算子であるため、2つのオペランド(5と3)を取り出して掛ける→15
結果は15になります。
この逆ポーランド記法、何だか読みやすくないですか?
そう、3 2 + 5 2 - ×は、3と2を足して、5から2を引いて、(それらを)掛けると普通に日本語で読めてしまいます。
つまり、後置記法は動詞が後にくる日本語と同じ文法なのです。
コンピュータ内部でのスタックを用いた計算は、意外にも日本語の文法と同様の順番で演算を行っており、何だか興味深いですよね。 そう考えると日本語というのは、何だか先進的な言語に思えてきます。
ちなみに日本語は、いわゆる主要部終端型(文章が常に動詞で終わる)の言語ですが、完全な主要部終端型と言える言語は日本語くらいのようです。(主要部先導型と主要部終端型の混在型は多い)
基本情報技術者試験の勉強をしている方は、逆ポーランド記法=日本語記法と覚えておくと理解しやすいですよ。
参考ちになみに、ポーランド記法の命名はポーランド人の論理学者ヤン・ウカシェヴィチが考案したことに由来し、ポーランド語とは関係ありません。
以上、コンピュータ内の演算と日本語文法の親和性についてでした。公開日:2020年01月03日