2. 最低限の文法
この章では講座の他の部分を理解するために必要な最低限の文法を説明します。もし文法をある程度理解しているなら、次の 3. 単語 に進んで構いません。文法に自信がなければ、この章を読み進めてください。
ここでは分かりやすいように説明を単純にしています。文法というトピックは実際にはこの章にあるよりずっと複雑です。
品詞 (part of speech) の数と種類について、文法学者の意見は一致しません。このコースに登場する分の品詞を次の表に示します:
品詞 | 説明 | 例 |
---|---|---|
名詞 (noun) |
人物・場所・概念・物体 | Sam runs races. (サムはレースで走る) |
代名詞 (pronoun) |
他の名詞の代わりとなる名詞 | Sam runs races. He likes to compete. (サムはレースで走る。彼は競争が好きだ) |
形容詞 (adjective) |
名詞を修飾する語または句 | Sam wears blue shoes. (サムは青い靴を履く) |
動詞 (verb) |
動作を表す語または句 | Sam runs races. (サムはレースで走る) |
副詞 (adverb) |
動詞・形容詞・副詞を修飾する語または句 | Sam runs slowly. (サムはゆっくり走る) |
名詞
名詞 (noun) は人物・場所・物事を表します。Judy (ジュディ)・Antarctica (南極大陸)・hammer (ハンマー) は全て名詞であり、他にも robustness (頑丈さ) や perfection (完璧) のような物理的に存在しない概念も名詞です。例として、名詞を全て強調した文章を次に示します:
In the framework, an object must copy any underlying values that the object wants to change. The protos in the codebase are huge, so copying the protos is unacceptably expensive.
(そのフレームワークでは、オブジェクトは変更しようとする全ての内部の値をコピーしなければならない。コードベースに含まれる proto は膨大なので、proto をコピーするのは受け入れられないほど高価になる。)
プログラミングでは、クラスや変数がプログラムの名詞だと言えるかもしれません。
練習問題
次の文章に含まれる名詞を六つ見つけてください:
C enables programmers to control pointers and memory. Great power brings great responsibility.
(C ではプログラマーがポインタとメモリを管理できる。大いなる力には大いなる責任が伴う。)
名詞を太字で示します:
C enables programmers to control pointers and memory. Great power brings great responsibility.
(C ではプログラマーがポインタとメモリを管理できる。大いなる力には大いなる責任が伴う。)
もし二つ目の文が
Great control brings great responsibility.
(大いなる管理には大いなる責任が伴う。)
だとしたら、この "control" は動詞でしょうか? それとも名詞でしょうか?
最初に示した文の "control" は動詞でしたが、こうした場合の "control" は名詞となります。多くの英単語は文脈に応じて名詞にも動詞にもなります。
代名詞
代名詞 (pronoun) は間接参照レイヤーです ──他の名詞または文を指すポインタとして機能します。代名詞は他の単語を置き換えると考えることもできるでしょう。例えば
Janet writes great code. She is a senior staff engineer.
(ジャネットは素晴らしいコードを書く。彼女はシニアスタッフエンジニアだ。)
という二つの文では、一つ目の文で Janet という名詞が提示され、二つ目の文で代名詞 She が名詞 Janet を置き換えています。
次の例文では、代名詞 This が一つ前の文全体を置き換えています:
Most applications aren't sufficiently tested. This is poor engineering.
(多くのアプリケーションは十分テストされていない。これは稚拙なエンジニアリングである。)
練習問題
次の文章に含まれる代名詞を三つ見つけてください:
The cafeteria featured peashew butter and pluot jam on pumperye toast. Employees found it awesome and wished they could eat this every day.
(そのカフェテリアはピーシューバターとプルオットジャムを付けたプンパーライ麦トーストを販売していた1。それは従業員に大ウケで、彼らは毎日これを食べたいと願った。)
The cafeteria featured peashew butter and pluot jam on pumperye toast. Employees found it awesome and wished they could eat this every day.
(そのカフェテリアはピーシューバターとプルオットジャムを付けたプンパーライ麦トーストを販売していた。それは従業員に大ウケで、彼らは毎日これを食べたいと願った。)
動詞
動詞 (verb) は動作を表す語または句です。二つの名詞 (主語と目的語) の間にある関係を表したいとき、動詞が利用できます。動詞は主語が目的語に対して行うことを表します。
一つの文は少なくとも一つの動詞を持たなければなりません。例えば次に示す文はどれも一つの動詞を持ちます:
-
Sakai prefers pasta.
(サカイはパスタを好む。)
-
Rick likes the ocean.
(リックは海が好きだ。)
-
Smurfs are blue.
(スマーフは青い。)
-
Jess suffers from allergies.
(ジェスはアレルギーに苦しんでいる。)
次に示すように、複数の動詞を含む文もあります:
-
Nala suffers from allergies and sneezes constantly.
(ナラはアレルギーに苦しんでいて、よくくしゃみをする。)
-
Chung likes snacks to eat while riding the train.
(チャンは電車に乗っている間にスナックを食べるのが好きだ。)
時制と活用によっては動詞が複数の語から構成されることもあります。例を示します:
-
Tina was eating breakfast a few hours ago.
(ティナは数時間前に朝食を食べていた。)
-
Tina is eating lunch right now.
(ティナは今ランチを食べている。)
-
Tina will eat dinner tonight at 7:00.
(ティナは今晩 7:00 に夕食を食べるだろう。)
練習問題
次の文章に含まれる動詞を全て見つけてください:
Samantha is coding Operation Bullwinkle in C++. This project currently consumes over 80,000 lines of code. She previously used Python, but recently gravitated to C++. Samantha leads a team of four software engineers, which will grow to six software engineers next quarter.
(サマンサは Operation Bullwinkle を C++ でコーディングしている。このプロジェクトは現在 80,000 行以上のコードを占める。彼女は以前 Python を使っていたが、最近 C++ に引き寄せられた。サマンサは四人のソフトウェアエンジニアのチームを率いており、このチームは次のクオーターで六人のソフトウェアエンジニアに成長する予定である。)
Samantha is coding Operation Bullwinkle in C++. This project currently consumes over 80,000 lines of code. She previously used Python, but recently gravitated to C++. Samantha leads a team of four software engineers, which will grow to six software engineers next quarter.
(サマンサは Operation Bullwinkle を C++ でコーディングしている。このプロジェクトは現在 80,000 行以上のコードを占める。彼女は以前 Python を使っていたが、最近 C++ に引き寄せられた。サマンサは四人のソフトウェアエンジニアのチームを率いており、このチームは次のクオーターで六人のソフトウェアエンジニアに成長する予定である。)
形容詞と副詞
形容詞 (adjective) は名詞を修飾します。例えば次の文章では、三つある形容詞がそれぞれ直後にある名詞を修飾しています:
Tom likes red balloons. He prepares delicious food. He fixed eight bugs at work.
(トムは赤い風船が好きだ。彼は美味しい料理を作る。彼は仕事で八個のバグを修正した。)
大部分の副詞 (adverb) は動詞を修飾します。例えば次の文では、副詞 efficiently が動詞 fixes を修飾しています:
Jane efficiently fixes bugs.
(ジェーンはバグを素早く修正する。)
副詞の位置は修飾される動詞のすぐ隣でなくても構いません。例えば次の文では、副詞 efficiently が修飾する動詞 fixes から二単語単語離れています:
Jane fixes bugs efficiently.
(ジェーンは素早くバグを修正する。)
副詞は動詞だけではなく形容詞や他の副詞も修飾できます。
練習問題
次の文章に含まれる形容詞を四つ見つけてください:
Engineering is a great career for brilliant minds. I know five engineers who could excel at any intellectual task.
(エンジニアリングは優れた頭脳にとって素晴らしいキャリアだ。私はどんな知的なタスクに対しても非常に優れた結果を残せるに違いない五人のエンジニアを知っている。)
Engineering is a great career for brilliant minds. I know five engineers who could excel at any intellectual task.
(エンジニアリングは優れた頭脳にとって素晴らしいキャリアだ。私はどんな知的なタスクでも活躍できるに違いない五人のエンジニアを知っている。)
接続詞と連結語
接続詞 (conjunction) は一つの文に含まれる複数の句または名詞を結び付けます。連結語 (transition) は複数の独立した文を結び付けます。
最も重要な接続詞は次の通りです:
- and (と)
- but (しかし)
- or (または)
例えば次の文に含まれる接続詞 and は "code" と "documentation" を結び付け、接続詞 but は文の前半と文の後半を結び付けます:
Natasha writes great internal code and documentation but seldom works on open-source projects.
(ナターシャは素晴らしい内部コードとドキュメントを書くが、オープンソースプロジェクトに取り組むことはほとんどない。)
テクニカルライティングで最も重要な連結語は次の通りです:
- however (しかし)
- therefore (よって)
- for example (例えば)
例えば次の文章では、二つの連結語がそれぞれ前後の文を結び付け、その間の関係を説明しています:
Juan is a wonderful coder. However, he rarely writes sufficient tests. For example, Juan coded a 5,000 line FFT package that contained only a single 10-line unit test.
(ジュアンは素晴らしいコーダーだ。しかし、彼は十分なテストを書くことがほとんどない。例えば、ジュアンは 5,000 行の FFT パッケージを書いたが、そこにはたった一つ 10 行のユニットテストがあるだけだった。)
練習問題
空欄を適切な連結語で埋めてください:
Barbara typically studies problems for a long time before writing the first line of code. _____________, she spontaneously coded a method the other day when she was suddenly inspired.
(バーバラはいつもコードの最初の行を書く前に長い時間をかけて問題を研究する。_____________、彼女はふと思い付いたメソッドをそのままコードにしたことがある。)
この文脈では連結語 However が適切です。
-
訳注: プンパーライ麦 (pumperye) はプンパーニッケル (pumpernickel) とライ麦 (rye) を組み合わせた造語。ピーシュー (peashew) はピーナッツ (peanut) とカシューナッツ (cashew nut) を組み合わせたスラング。プルオット (pluot) はプラム (plum) とアプリコット (apricot) を交配してできる (実在する) フルーツの名前。[return]