「英語の習得」とプログラミングの意外な関係 ネイティブ話者の考え方を解くヒントがある
その「1」と「0」の情報を大きくまとめて、人間にとって意味のある文字や単語や文章や画像にしたりして、それに状況判断で変化を加える(あるいはそのままにしている)処理を行います。
たとえば、一例として、以下のプログラムのようになります。
1. int a=0; (変数a=0と設定しておく)
(状態に変化が起こる)
2. if (a==0)(もし変数aが0なら)
3. {a=a+1;}(aに1を加える)
コンピュータの処理の流れは、音楽のように時間軸の中で入力された情報を前から後ろへ、上から下へと順番に処理していくようになっています。ここで強調したいことは、コンピュータの処理は抽象的にミクロなレベルで見ると、ものすごく単純なことをやっていて、それを高速で行うことで、人間にとって有益な処理を行っているということです。
「いる時にいる分だけ」
次に具体的に英語を理解するプログラムのレベルで考えてみます。単語が文頭から1つずつ入ってきます。その都度、その単語が入ってきた所まででわかることを瞬時に判断して、意味を取っていきます。その時、英語の「意味」と「形式」(ここで「形式」とは英語の場合は主に「品詞」とそれらの並び方が作る「構文」のこととします)を同時に処理していきます。たとえば、次のような英文があったとします。
これを単語が1つずつ入ってくるたびに、英語の「形式」(つまり「品詞」と「構文」)の面から1つずつ判断処理を行い、「意味」が生じる最小単位に区切って「意味」を取っていくということをします。基本的に(副詞以外の)単語ごとに区切り、単語が前置詞の場合は次に来る名詞とセットにして区切ります。
この英文なら以下のような感じです。
② to Friday(金曜まで)
③ I(私は)
④ usually work(普通は働く)
⑤ as an office worker(オフィスワーカーとして)
「月曜から、金曜まで、私は、普通は働く、オフィスワーカーとして」となります。「私は普通、月曜から金曜までオフィスワーカーとして働く」という通常の日本語ほどではないにしても、十分に意味がわかります。
このとき、英語1文全体を受け取ってから1文単位で日本語の「意味」を考えるのではなく、英語の「意味」が生じる最小単位で少しずつ、「意味」を「いる時にいる分だけ」取るということを考えます。
このときの一つひとつの処理過程で判断するパターンは、数え方にもよりますが、実は30個程度しかありません。その一つひとつは単純な判断処理のルールを、単語が入ってくるたびに適用して判断処理を実行していきます。
無料会員登録はこちら
ログインはこちら