11. 約物

この章では約物やくもの (punctuation mark) について簡単に復習します。この章は飛ばしても構いません。

コンマ

プログラミング言語は約物に関して厳密な規則を課します。一方英語では、コンマに関する規則は比較的適当です。一つの指針として、読者が文を読んだときに自然に間を置くであろう場所にコンマを置いてください。音楽用語が分かるなら、ピリオドが全休符でコンマは二分休符あるいは四分休符だと考えてください。つまりコンマはピリオドよりも短い間を生みます。例えば次の文を声に出して読むと、just の後に小さな間が生まれるでしょう:

C behaves as a mid-level language, just a couple of steps up in abstraction from assembly language.

(C は中水準言語であり、アセンブリ言語をほんの何段か抽象化しただけである。)

コンマが必要になる状況もあります。例えば文の中に埋め込まれたリストの要素を隔てるには次のようにコンマを使います:

Our company uses C++, Python, Java, and JavaScript.

(我が社は C++, Python, Java そして JavaScript を使う。)

埋め込まれたリストの最後のコンマ、つまり N-1 個目の要素と N 個目の要素を隔てるコンマが気になるかもしれません。このコンマはシリアルコンマ (serial comma) あるいはオックスフォードコンマ (Oxford comma) と呼ばれ、よく議論の的になります。私たちはこの最後のコンマを付けることを推奨しますが、それはテクニカルライティングでは最も曖昧さの少ない方法を選択するべきだからというただそれだけの理由です。また、文の中に埋め込まれたリストを箇条書きに書き換えてこの議論を避けた方が賢明だとも考えています。

文の中に条件を提示する節が含まれるなら、条件と結果の間にコンマを置いてください。例えば、次の二つの文はどちらもコンマを正しい位置に置いています:

If the program runs slowly, try the --perf flag.

(そのプログラムの実行が遅いなら、--perf フラグを試すこと。)

If the program runs slowly, then try the --perf flag.

(そのプログラムの実行が遅いなら、そのときは --perf フラグを試すこと。)

短い定義や余談を二つのコンマの間に挟むこともできます。例を次に示します:

Python, an easy-to-use language, has gained significant momentum in recent years.

(Python は、使いやすい言語であり、近年すさまじい勢いを獲得している。)

最後に、二つの独立した考えや意見を繋げるのにコンマを使わないでください。例えば、次の文は接続のコンマ (comma splice) と呼ばれる重大な過ちを犯しています:

Samantha is a wonderful coder, she writes abundant tests.

(サマンサは素晴らしいコーダーで、彼女はたくさんのテストを書く。)

二つの独立した考えや意見を分けるときは、コンマではなくピリオドを使ってください:

Samantha is a wonderful coder. She writes abundant tests.

(サマンサは素晴らしいコーダーだ。彼女はたくさんのテストを書く。)

練習問題

次の文章の適切な位置にコンマを入れてください:

Protocol Buffers sometimes known as protobufs are our team's main structured data format. Use Protocol Buffers to represent store and transfer structured data. Unlike XML Protocol Buffers are compiled. Consequently clients transmit Protocol Buffers efficiently which has led to rapid adoption.

(Protocol Buffers は protobufs と呼ばれることもあり我々のチームのメイン構造化データフォーマットである。Protocol Buffers を構造化データの表現と保存と転送に使うこと。XML と異なり Protocol Buffers はコンパイルされる。そのためクライアントは Protocol Buffers を効率よく転送できるので素早く採用されていった。)

ヒント: 文章を声に出して読んで、短い間があった場所にコンマを置いてください。

解答例を示します:

Protocol Buffers, sometimes known as protobufs, are our team's main structured data format. Use Protocol Buffers to represent, store, and transfer structured data. Unlike XML, Protocol Buffers are compiled. Consequently, clients transmit Protocol Buffers efficiently, which has led to rapid adoption.

(Protocol Buffers (protobufs と呼ばれることもある) は我々のチームのメイン構造化データフォーマットである。Protocol Buffers を構造化データの表現・保存・転送に使うこと。XML と異なり、Protocol Buffers はコンパイルされる。そのためクライアントは Protocol Buffers を効率よく転送でき、これが理由で素早く採用されていった。)

セミコロン

セミコロンの前後は文法的に完全な文である必要があります。例えば次の例文ではセミコロンに続く文が完全な文ではないので、セミコロンの使い方が正しくありません:

Rerun Frambus after updating your configuration file; not after updating existing source code.

(設定ファイルを更新した後に Frambus を再起動すること。既存のソースコードを更新した後ではない。)

セミコロンを使うときは、セミコロンの両側にある文を逆にしたとしても意味が通ることを確認してください。例えば、一つ前の例を修正した正しい文を次に示します:

Don't rerun Frambus after updating existing source code; rerun Frambus after updating your configuration file.

(既存のソースコードを更新した後に Frambus を再起動してはいけない。設定ファイルを更新した後に Frambus を再起動すること。)

文の中に埋め込まれたリストの要素を分けるときはまず間違いなくセミコロンではなくコンマを使うべきです。例えば次のセミコロンの使い方は正しくありません:

Style guides are bigger than the moon; more essential than oxygen; and completely inscrutable.

(スタイルガイドは月より大きく、酸素より重要で、完全に謎に包まれている。)

セミコロンの後に接続詞 (句) が続く場合もよくあります。このときは、接続詞の後にコンマを置いてください。次の二つの例文では接続詞の後に正しくコンマが置かれています:

Frambus provides no official open source package for string manipulation; however, subsets of string manipulation packages are available from other open source projects.

(Frambus は文字列操作のための公式オープンソースパッケージを提供しない。しかし、文字列操作パッケージの一部は他のオープンソースプロジェクトから利用できる。)

Even seemingly trivial code changes can cause bugs; therefore, write abundant unit tests.

(一見自明に見えるコードの変更さえバグを引き起こす。そのため、たくさんのユニットテストを書くこと。)

練習問題

次の文に含まれるピリオドとコンマの中でセミコロンで置き換えられるのはどれですか?

  1. Python is a popular programming language. The C language was developed long before Python. (Python は有名なプログラミング言語である。C 言語は Python よりずっと昔に開発された。)
  2. Model learning for a low value of X appears in the top illustration. Model learning for a high value of X appears in the bottom illustration. (小さい X の値に対するモデル学習を図の上部に示す。大きい X の値に対するモデル学習を図の下部に示す。)
  3. I'm thankful for my large monitor, powerful CPU, and blazing bandwidth. (私は大きなモニター・パワフルな CPU・圧倒的な帯域に感謝している。)
  1. 二つの文の関連性は薄いので、この文の一つ目のピリオドをセミコロンにしてはいけません。
  2. 二つの文は関連性が高いので、この文の一つ目のピリオドはセミコロンにして構いません。
  3. この文のコンマはセミコロンにできません。文の中に埋め込まれたリストの要素はコンマで分けてください。

エムダッシュ

エムダッシュ (—) は様々な機能を備えた魅力的な約物です。エムダッシュはコンマよりも長い間 ──長い中断── を表します1。コンマが四分休符なら、エムダッシュは二分休符です。例を示します:

C++ is a rich language—one requiring extensive experience to master.

(C++ は高級な言語である ──習得に相当の経験が必要な言語だ。)

次の例文のように、二つのエムダッシュを使って補足情報を入れることもできます:

Protocol Buffers—often nicknamed protobufs—encode structured data in an efficient yet extensible format.

(Protocol Buffers ──protobufs と呼ばれることが多い── は構造化データを効率的かつ拡張可能なフォーマットにエンコードする。)

上の例でエムダッシュの代わりにコンマを使えるでしょうか? 使えます。ではなぜコンマの代わりにエムダッシュを使ったのでしょうか? 感性が、技術が、経験がそう伝えているからです。忘れないでください ──英語の約物は変幻自在です。

括弧

括弧はちょっとしたポイントや余談を入れるのに使ってください。括弧はその部分が重要でないことを読者に伝えます。括弧の中の文章は重要でないということで、ドキュメントに括弧は一切必要ないと考える編集者もいます。妥協点として、テクニカルライティングでは括弧の利用を最小限としてください。

ピリオドと括弧に関する規則は完全に定まっているわけではありません。標準的な規則を次に示します:

例を示します:

(Incidentally, Protocol Buffers make great birthday gifts.)

(ちなみに、Protocol Buffers は誕生日プレゼントに最適です。)

Binary mode relies on the more compact native form (described later in this document).

(バイナリモードは (ドキュメントの後半で説明される) コンパクトなネイティブ形式を利用します。)


  1. 訳注: 日本語の文章ではエムダッシュを二つ続けて使う場合が多い。この翻訳でもそうしている。[return]