About the Language Reference 言語リファレンスについて

This part of the book describes the formal grammar of the Swift programming language. The grammar described here is intended to help you understand the language in more detail, rather than to allow you to directly implement a parser or compiler. 本のこの部分は、スウィフトプログラミング言語の形式文法を記述します。ここで記述される文法は、あなたが更に詳細に言語を理解するのを手伝うつもりのもので、あなたに直ちにパーサーまたはコンパイラを実装させるようにするものではありません。

The Swift language is relatively small, because many common types, functions, and operators that appear virtually everywhere in Swift code are actually defined in the Swift standard library. Although these types, functions, and operators aren’t part of the Swift language itself, they’re used extensively in the discussions and code examples in this part of the book. スウィフト言語は比較的小さいです、スウィフトのコードのほとんど至る所で見かける多くの通常の型、関数、そして演算子がスウィフト標準ライブラリで実際には定義されるからです。これらの型、関数、そして演算子は、スウィフト言語自身の一部ではないけれども、それらは本のこの部分の議論とコード例で広く使用されます。

How to Read the Grammar この文法を読む方法

The notation used to describe the formal grammar of the Swift programming language follows a few conventions: スウィフトプログラミング言語の形式文法を記述するために使用される表記法は、2、3の規則に従います:

  • An arrow (→) is used to mark grammar productions and can be read as “can consist of.” 矢印(→)を使って文法導出を示します、「その文法はこうしたものから成り立つことができる」と読まれることができます。
  • Syntactic categories are indicated by italic text and appear on both sides of a grammar production rule. 統語論のカテゴリーは、イタリックのテキストによって示されて、文法導出規則の両側に現れます。
  • Literal words and punctuation are indicated by boldface constant width text and appear only on the right-hand side of a grammar production rule. リテラルの単語と句読点は、太字体の テキストによって示されて、文法導出規則の右側だけに現れます。
  • Alternative grammar productions are separated by vertical bars (|). When alternative productions are too long to read easily, they’re broken into multiple grammar production rules on new lines. 代替の文法導出は、垂直バー(|)で区別されます。代替の導出が簡単に読むにはあまりに長いとき、それらが新しい行で複数部分の文法導出規則へとばらされます。
  • In a few cases, regular font text is used to describe the right-hand side of a grammar production rule. 2、3の場合には、標準活字のテキストが説明のために文法導出規則の右側で使われます。
  • Optional syntactic categories and literals are marked by a trailing subscript, opt. 任意である統語論のカテゴリーとリテラルは後に続く下つき文字、optによって印されます。

As an example, the grammar of a getter-setter block is defined as follows: 例として、ゲッターセッター・ブロックの文法は、次のように定義されます:

Grammar of a getter-setter block ゲッターセッター・ブロックの文法

getter-setter-block { getter-clause setter-clause opt } | { setter-clause getter-clause }

This definition indicates that a getter-setter block can consist of a getter clause followed by an optional setter clause, enclosed in braces, or a setter clause followed by a getter clause, enclosed in braces. The grammar production above is equivalent to the following two productions, where the alternatives are spelled out explicitly: この定義は、1つのゲッターセッター・ブロックが、1つのゲッター節とそれに続く任意の1つのセッター節、それを波括弧でくくったもの、または、1つのゲッター節に1つのセッター節を続けて波括弧でくくったものから成ることができることを示します。上の文法導出は以下の2つの導出に等しいです、そこでは代替物がそれぞれ分けて書かれます:

Grammar of a getter-setter block ゲッターセッター・ブロックの文法

getter-setter-block { getter-clause setter-clause opt }

getter-setter-block { setter-clause getter-clause }

Advanced Operators 先進の演算子

Lexical Structure 語彙の構造