どういう時に冠詞を付ける/付けないかがイマイチわかりづらく、結局、何となく雰囲気でつけたりつけなかったりしてしまっているのではないでしょうか。
実は冠詞の使い分けに関しては、プログラムを書く人間であれば即座に理解できる法則があります。もちろん英語は人間が使う言葉の一つのため多少の例外はありますが、ほとんどの場合通用します。少なくともここ一年のネイティブチェックで誤用を指摘されたことはありません。
その法則とは、「冠詞と名詞は classとインスタンス」と考えるということです。下記で順番に見ていきましょう。
I have a book.この文では book クラスのインスタンスを生成し、そのインスタンス自体のことを指しています。メモリやヒープが確保されているため、当然実体が存在します。
ちなみに複数形の名詞の場合にインスタンス生成する場合には some を付けることが多いようです。
例: I have some books.
I also have the book. I also have the books.
既に生成された book インスタンスへのポインタとなります。対象インスタンスが一つならthe+名詞で、複数ならthe+名詞(s)となります(英語の語感としては、後者は the じゃなくて these や those を使う方が自然な場合の方が多いかも)。
また、別々に生成されたインスタンスをグルーピングして一つにまとめて参照することもできます。
Mr. A: I bought a funny book. Mr. B: I also bought a funny book. Mr. C: So did I. Mr.Z: I read the books 10 years ago.当然ですが、生成していないものを指すことはできませんので、生成してもいないものをいきなり the を使って指すことはできません。
I have the apple. (apple インスタンスは生成してないので、何のことを指しているかわからない)
ただしインスタンスは自分自身で生成する必要はありません。相手(や読者)が容易に特定でき、実体があるものであればtheで参照することができます(容易かどうかは、「アレ」と言って通じるかどうかで判断できるのではないかと)。
例えば地球ができた時には生成されていた(はず)の太陽(the Sun)や月(the moon)はtheを付けて参照します。また、インターネットは the net などと呼称されることがありますね。
I like books.
これはbookクラス自体を指しているのではなく、bookクラスを複数保持するbooksコレクションクラスを指しているため、本一般のことを指します。
既に更新が途絶えて久しい hykw blogに以前書いたものですが、死蔵するのもアレなので転載します。気が向いたら、そのうちに続編でも書こうかと思います。