私は英語がたいへん苦手です。
特に英語の冠詞については、何をしたいのかよくわかりません。数えられる、数えられない、とか何を言っているのでしょう。
『日本人の英語』という本では、冠詞が主体で、それに Pen や Cat などの名詞をつけるのだ、といいます。
この言葉をヒントにあれこれ考えていたところ、英語の冠詞と、オブジェクト指向と、アリストテレスが、実は同じアイデアの元にあるものなのではないか…と思い当たりました。
英語の名詞と冠詞(a, the) の関係は、クラスとインスタンスの関係によく似ているなと。という訳で、オブジェクト指向プログラマのための(?)、a と the についての妄想です。
オブジェクト指向プログラミング
コンピュータプログラミングの手法に「オブジェクト指向」というものがあります。
これは大きなプログラムを作るときに、全部をひとかたまりで作ってしまうと、訳が分からなくなってしまうので、ある範囲に閉じた「オブジェクト」という部品の集まりとして書くことで、楽に作れるようにする手法です。
その手法では、まず「クラス」という設計図を決めた後、その実物(インスタンス(実例)と呼びます)をつくる様になっています。車にタイヤが4つある場合、タイヤのクラスを一つ作った後、そこから4つの実物を作り出す感じでしょうか。
C++という言語風に書くと以下のような感じです。(正確ではありません)
まずクラスの設計図を定義します。
class Tire {…定義…}
クラスは定義した後、 new という単語(演算子)をつけると、実物にすることができ、できたものには名前をつけることができます。(左側がつけた名前)
tire1 = new Tire();
tire2 = new Tire();
ここで注意しないといけないのは、Tire は設計図で、実物になった new Tire() とは違う。ということです。
クラスと実物は違う。実物化していないタイヤを、車につけようとするな。というわけです。
オブジェクト指向プログラミングをしている人なら、クラスと実物(インスタンス)をきちんと区別しているわけですね。
普遍論争
ところで、西洋やインドのの哲学の本を読んでいると、一般名詞と個別の名前の違いは一体何なのか?みたいな議論を延々とされることがあります。こういう議論は「普遍論争」と呼ばれています。
個別のネコ「ミケ」や「タマ」がいるのは良いとして、一般名詞の「ネコ」というのは何なのだ?を議論しているわけです。
そしてこれは結局、オブジェクト指向のクラスと実物(インスタンス)を分けるのと、発想が同じなわけです。
似たような議論を、西欧でもインドでもしているのは「インド・ヨーロッパ語」に何か原因があるのではないか…なんて疑ってしまいます。
英語の冠詞
で、ここで気がつくわけです。
This is a cat.
はOKなのに、
This is cat.
がエラーなのはなぜなのか…?
どうも英語は、オブジェクト指向言語のように、実物とクラスをはっきりと分けている様なのです。
This は、「ミケ」や「タマ」などの個別の実物なのに、一般名の「ネコ」はクラスだから、同じではありえません。だから「This is cat.」はエラーになるわけです。
そこで、さっきのC++で「new」をつけたように、英語では「a」をつけるわけです。
My や The などの冠詞は、既に実体化したものがあるときに、それを参照するための記号と言えそうです。[1]更に言えば、プログラミング言語での配列が、複数形になるのでしょう。
Earth や(西洋の)God はそういくつもあるわけではありませんから、The をつけとけば良いわけです。同様に、皆さん既にご存知の場合にも「The」をつけてよいようです。
かぞえられる?
さて『日本人の英語』にはおかしな英語の例とて以下のようなものも出てきます。
I ate a chicken.
正解は以下の文だそうです。
I ate chicken.
上の文は、チキンが具体的すぎて、まるごとのニワトリを貪り食っている様に感じるそうです。
先程の話だと、せっかく実物にして食べたのに、なんで抽象的なクラスのニワトリを食べたのが正解なのでしょう?
アリストテレスの形相因と質量因
そこでもう一度普遍論争に戻ります。
西洋の普遍論争の議論の根っこには、古代ギリシアのアリストテレスの考え方があります。
アリストテレスには、四原因と言われるものがあります。
「これはなんですか?」の答えに、「質料因(材質)」「形相因(形)」「目的因」「作動因」の4つの方法で答えるように整理したものでしょうか。
ここで重要なのは、「質料因(材質)」と「形相因(形)」です。この2つをはっきりと分けるのです。
そして、アリストテレスは、形相因(形)がに質料因(材質)が入ることで物ができていると考えました。
ガラスのハートや、鉛のハートというのは、心臓という「形(形相因)」に、ガラスや鉛の「材質(質料因)」を流し込んで作られたものだ、という理解をしているようなのです。
実物にできる条件とは?
そして、アリストテレスは、「形(形相因)」が一番重要な性質だと考えました。つまり、どんなものであれ、形が無ければこの世に存在ができない、というわけです。
ここで、「数えられる」で言いたいことがなんとなく分かってきます。先程のオブジェクト指向で言うと、材料(質料因)には形がないから、a をつけても「実物化」できないというのが、基本的な考え方にあるようなのです。材質は設計図ではないのです。
さて、ここで「I ate chicken.」に戻ります。
I ate a chicken.
という文章は、先程のオブジェクト指向で考えると、「a (new)」をつけることで、「chicken」を実物化をしています。そして、実物化できるのは「形」があるものでした。
つまり、ここではニワトリの「形」をしたものを食べた、と言っているわけです。
しかし、ここでいいたいのは「鶏肉を食べた」ことです。ではどうすればいいのか。
「chicken」 の場合、たまたまニワトリの形(形相因)と材料(質料因)(鶏肉)に同じ言葉「chicken」が当てられているのです。だから、材料(質料因)をそのまま使えばいい。ということのようです。
I ate chicken.
では、常にそれが出来るのか、というとそうではありません。形しかない言葉、材質しかない言葉、もあるわけです。それが、数えられる、数えられない、の正体のようなのです。
I want a water. [Error]
は、water という形のない材料を、無理やり実体化しようとしているから、「水の形って?」というエラーになるようです。
で、形を与えるために、
I want a grass of water.
I want some water.
などという面倒なことして、コップなどで形を与える訳です。
(some は、何らかの形を持っているらしい)
chicken の場合、形と材質の両方の意味を持っていたために、エラーにならずに、おもしろ文章になった様です。
でも、だったら「材質(質料因)」である、water をくれ、と言っても良さそうなものですが…これだけでは説明しきれませんね…。
終わりに
さて、私は英語がたいへん苦手なので、鵜呑みにはしないように…。
関連記事
References
↑1 | 更に言えば、プログラミング言語での配列が、複数形になるのでしょう。 |
---|