Spec2.8Chap0a

「Spec2.8Chap0a」の編集履歴(バックアップ)一覧はこちら

Spec2.8Chap0a - (2011/02/13 (日) 12:09:19) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

#setmenu2(spec2.8-r-menu) &aname(0.1,option=nolink){ } * 序文 Scala はオブジェクト指向と関数型プログラミングを融合した Java に似た プログラミング言語です。 すべての値がオブジェクトであるという点で、 純粋なオブジェクト指向言語です。クラスによってオブジェクトの型と振る舞いを 記述します。 クラスはミックスイン合成を使って構築できます。 Scala は、 2つのそれほど純粋ではないが主流のオブジェクト指向言語 - Java、C# とシームレスに動作するよう設計されています。 すべての関数が値であるという意味で、Scala は関数型言語です。 関数定義のネストと高階関数は当然サポートされています。 Scala は パターン・マッチングの汎用的な概念もサポートし、多くの関数型言語で 使われる代数型をモデル化できます。 Scala は Java (.NET でも Scala の代替実装が動作します) とシームレスに 相互運用できるよう設計されてきました。 Scala のクラスは、Java メソッドの 呼び出し、Java オブジェクトの生成、Java クラスの継承、そして Java インタフェースを実装できます。 それはインターフェース定義あるいは 接着コードを全く必要としません。 Scala は EPFL で 2001年からプログラミング方式研究所で開発されてきました。 バージョン1.0 が 2003年 11月にリリースされました。 このドキュメントは 2006年 3月にリリースされた、言語の2番目のバージョンを記述しています。 これは言語定義といくつかのコアライブラリモジュールのリファレンスの 役を果たします。 このドキュメントは Scala やその概念を伝えることを 意図していません;そのためのドキュメントとしては [Oa04、Ode06、OZ05b、 OCRZ03、OZ05a] 等があります。 Scala は多くの人達の共同の努力のたまものです。 バージョン1.0 の設計と実装は Philippe Altherr、Vincent Cremet、Gilles Dubochet、Burak Emir、 Stephane Micheloud、Nikolay Mihaylov、Michel Schinz、Erik Stenman、 Matthias Zenger と著者によって完成されました。 Iulian Dragos、 Gilles Dubochet、Philipp Haller、Sean McDirmid、Lex Spoon と Geoffrey Washburn は、言語およびツールの 2 番目のバージョン開発の取り組みに 参加しました。 Gilad Bracha、Craig Chambers、Erik Ernst、Matthias Felleisen、Shriram Krishnamurti、Gary Leavens、Sebastian Maneth、 Erik Meijer、Klaus Ostermann、Didier Remy、Mads Torgersen、 and Philip Wadler は、この文書の活発な、そして人を元気づける ディスカッションと前バージョンについてのコメントを通して、 言語設計を具体化しました。 Scala メーリングリストへの貢献者からも 大変有用な意見をもらい、言語とそのツールの改善を助けられました。 &br() &br() &aname(0.2,option=nolink){ } * 訳者注 &br() ** 用語・訳 ● element type -> 要素型 、result type -> 結果型 、expected type -> 要請型、 parameter type -> パラメータ型 と訳しましたが、 実際にそういった特定の型があるわけではなく、それぞれ、要素の型、 返される結果の型、要求される(期待される)型、パラメータの型、 と読み替えると理解できる場合がよくあります。 (Chapter A の BNF 記法での用語にも「パラメータ型」が出てきますが、 本文中で使う場合とは意味合いが違うことがあります) しかし、subtype -> サブ型、supertype -> スーパー型 その他、「の」を入れて 解釈することができないものも多数あります。 ● parameter ->パラメータ、argument -> 引数と訳しました。 parameterは仮引数、argumentは実引数を表すのかもしれません。 ● value -> 「値」、value types -> 「値型」と単純に訳しました。 一般に値型とは Int,shortなどの数値型のことみたいですが、この資料ではそうとは 限らないようです。「値定義」とは val x:T ...のことであり、 メソッドの「値パラメータ」とは、型パラメータではない方の従来のパラメータ部を 意味するようです。「関数値(function values)」とは関数が返す値のことではなく、 「値としての関数」というような意味合いだそうです。 すみませんが、適宜読み替えてみてください。 ● 書籍にならい view bound ->可視境界 と訳しましたが、ビュー境界 と 読み替えたほうがよいと思います。単なる view を 「可視」では なく「ビュー」と訳したのは、英文中では "view" を機能名として 使うことがよくあり、それを「可視」とは言い難いからです。 ●「/」を 「あるいは」の代わりに用いていることがあります。&br() 例:クラス/オブジェクト <---> class or object ・&br() ps = パラメータ部(parameter section) &br() tps = 型パラメータ部(type parameter section) &br() targs = 型引数部(type arguments section) &br() の略と思われます。 ・ 第 1 章では parentheses を ()[]{} と定義していますが、他の場所では、 ()の意味で使っているようなので、第 1 章と Chapter A を除き、基本的には parenthesesを丸括弧と訳しました。 ・ stable memberを「安定メンバー」と訳しましたが「不変メンバー」とでもした ほうがいいのかもしれません。 &br() ** 字体・表示 Wiki上の制約、日文PDFで使う restとの兼ね合い・制約、労力、日文中での 見栄え等を考慮して、字体(太字・斜体字・他)は英文PDFとは変えています。 ・Scala予約語は英文では基本的に太字ですが、本文中では通常の字体です。 英文中で斜体字になっているもののうち、T や Anといった記号的なものは 日文では通常の字体に、用語的なものは斜体字ではなく太字にしています。 また、5章で使われている上線は、Wiki上で表現できないので、下線表示しています。 ・添え字は、いくつかの例外を除き、基本的には小さくなっていません。 ・5章 英文PDFでは、見た目が大きく異なるフォントを記号的に使っていることが ありますが、日文では代わりに字を重ねて表現しています。 例 : 線形化のシンボル L(C) --> LL(C) ● wikiの PDF表示では記号の類が正しく表示されないことがあります。 たとえば、プライム記号(´)や±です。 &br() ** その他 ・構文(BNF記法)については、本文中では 英文のまま記載していますが、 Chapter A では、日文と英文両方を記載しています。 ・今後のWiki表示とPDF化のときに使うrestを考慮して、wikiソース中にごたごた コメントが入ってますが、できれば消さないようお願いします。 例: #co(){------bgn-hide0} ・・・ Wiki/PDF非表示 #center(){[[目次>Spec2.8和訳]] [[次:1章>Spec2.8Chap1a]]}
#setmenu2(spec2.8-r-menu) &aname(0.1,option=nolink){ } * 序文 Scala はオブジェクト指向と関数型プログラミングを融合した Java に似た プログラミング言語です。 すべての値がオブジェクトであるという点で、 純粋なオブジェクト指向言語です。クラスによってオブジェクトの型と振る舞いを 記述します。 クラスはミックスイン合成を使って構築できます。 Scala は、 2つのそれほど純粋ではないが主流のオブジェクト指向言語 - Java、C# とシームレスに動作するよう設計されています。 すべての関数が値であるという意味で、Scala は関数型言語です。 関数定義のネストと高階関数は当然サポートされています。 Scala は パターン・マッチングの汎用的な概念もサポートし、多くの関数型言語で 使われる代数型をモデル化できます。 Scala は Java (.NET でも Scala の代替実装が動作します) とシームレスに 相互運用できるよう設計されてきました。 Scala のクラスは、Java メソッドの 呼び出し、Java オブジェクトの生成、Java クラスの継承、そして Java インタフェースを実装できます。 それはインターフェース定義あるいは 接着コードを全く必要としません。 Scala は EPFL で 2001年からプログラミング方式研究所で開発されてきました。 バージョン1.0 が 2003年 11月にリリースされました。 このドキュメントは 2006年 3月にリリースされた、言語の2番目のバージョンを記述しています。 これは言語定義といくつかのコアライブラリモジュールのリファレンスの 役を果たします。 このドキュメントは Scala やその概念を伝えることを 意図していません;そのためのドキュメントとしては [Oa04、Ode06、OZ05b、 OCRZ03、OZ05a] 等があります。 Scala は多くの人達の共同の努力のたまものです。 バージョン1.0 の設計と実装は Philippe Altherr、Vincent Cremet、Gilles Dubochet、Burak Emir、 Stephane Micheloud、Nikolay Mihaylov、Michel Schinz、Erik Stenman、 Matthias Zenger と著者によって完成されました。 Iulian Dragos、 Gilles Dubochet、Philipp Haller、Sean McDirmid、Lex Spoon と Geoffrey Washburn は、言語およびツールの 2 番目のバージョン開発の取り組みに 参加しました。 Gilad Bracha、Craig Chambers、Erik Ernst、Matthias Felleisen、Shriram Krishnamurti、Gary Leavens、Sebastian Maneth、 Erik Meijer、Klaus Ostermann、Didier Remy、Mads Torgersen、 and Philip Wadler は、この文書の活発な、そして人を元気づける ディスカッションと前バージョンについてのコメントを通して、 言語設計を具体化しました。 Scala メーリングリストへの貢献者からも 大変有用な意見をもらい、言語とそのツールの改善を助けられました。 &br() &br() &aname(0.2,option=nolink){ } * 訳者注 &br() ** 用語・訳 ● element type -> 要素型 、result type -> 結果型 、expected type -> 要請型、 parameter type -> パラメータ型 と訳しましたが、 実際にそういった特定の型があるわけではなく、それぞれ、要素の型、 返される結果の型、要求される(期待される)型、パラメータの型、 と読み替えると理解できる場合がよくあります。 (Chapter A の BNF 記法での用語にも「パラメータ型」が出てきますが、 本文中で使う場合とは意味合いが違うことがあります) しかし、subtype -> サブ型、supertype -> スーパー型 その他、「の」を入れて 解釈することができないものも多数あります。 ● parameter ->パラメータ、argument -> 引数と訳しました。 parameterは仮引数、argumentは実引数を表すのかもしれません。 ● value -> 「値」、value types -> 「値型」と単純に訳しました。 一般に値型とは Int,shortなどの数値型のことみたいですが、この資料ではそうとは 限らないようです。「値定義」とは val x:T ...のことであり、クラスの値メンバとは val 定義されたメンバのこと、メソッドの「値パラメータ」とは型パラメータではない方の 従来のパラメータ部を意味するようです。 「関数値(function values)」とは関数が返す値のことではなく、 「値としての関数」というような意味合いだそうです。 すみませんが、適宜読み替えてみてください。 ● 書籍にならい view bound ->可視境界 と訳しましたが、ビュー境界 と 読み替えたほうがよいと思います。単なる view を 「可視」では なく「ビュー」と訳したのは、英文中では "view" を機能名として 使うことがよくあり、それを「可視」とは言い難いからです。 ●「/」を 「あるいは」の代わりに用いていることがあります。&br() 例:クラス/オブジェクト <---> class or object ・&br() ps = パラメータ部(parameter section) &br() tps = 型パラメータ部(type parameter section) &br() targs = 型引数部(type arguments section) &br() の略と思われます。 ・ 第 1 章では parentheses を ()[]{} と定義していますが、他の場所では、 ()の意味で使っているようなので、第 1 章と Chapter A を除き、基本的には parenthesesを丸括弧と訳しました。 ・ stable memberを「安定メンバー」と訳しましたが「不変メンバー」とでもした ほうがいいのかもしれません。 &br() ** 字体・表示 Wiki上の制約、日文PDFで使う restとの兼ね合い・制約、労力、日文中での 見栄え等を考慮して、字体(太字・斜体字・他)は英文PDFとは変えています。 ・Scala予約語は英文では基本的に太字ですが、本文中では通常の字体です。 英文中で斜体字になっているもののうち、T や Anといった記号的なものは 日文では通常の字体に、用語的なものは斜体字ではなく太字にしています。 また、5章で使われている上線は、Wiki上で表現できないので、下線表示しています。 ・添え字は、いくつかの例外を除き、基本的には小さくなっていません。 ・5章 英文PDFでは、見た目が大きく異なるフォントを記号的に使っていることが ありますが、日文では代わりに字を重ねて表現しています。 例 : 線形化のシンボル L(C) --> LL(C) ● wikiの PDF表示では記号の類が正しく表示されないことがあります。 たとえば、プライム記号(´)や±です。 &br() ** その他 ・構文(BNF記法)については、本文中では 英文のまま記載していますが、 Chapter A では、日文と英文両方を記載しています。 ・今後のWiki表示とPDF化のときに使うrestを考慮して、wikiソース中にごたごた コメントが入ってますが、できれば消さないようお願いします。 #center(){[[目次>Spec2.8和訳]] [[次:1章>Spec2.8Chap1a]]}

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。