「Spec2.8Chap0a」の編集履歴(バックアップ)一覧はこちら
Spec2.8Chap0a - (2011/02/04 (金) 10:24:42) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
&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()
** 用語
● elemten type -> 要素型 、result type -> 結果型 、expected type -> 要請型、
parameter type -> パラメータ型 と訳しましたが、
実際にそういった特定の型があるわけではなく、それぞれ、要素の型、
返される結果の型、要求される型、パラメータの型と読み替えると理解できる場合が
よくあります。 (Chapter A のBNF記法での用語にも「パラメータ型」が出てきますが、
本文中で使う場合とは意味合いが違います)
しかし、subtype -> サブ型、supertype -> スーパー型 その他、「の」を入れて
解釈することができないものも多数あります。
● parameter ->パラメータ、argument -> 引数と訳しました。
パラメータは仮引数、引数は実引数を指すのかもしれません。
● 書籍にならい view bound ->可視境界 と訳しましたが、ビュー境界 と
読み替えたほうが理解しやすいと思います。単なる view を 「可視」では
なく「ビュー」と訳したのは、英文中では "view" を機能名として
使うことがよくあり、それを「可視」とは言い難いからです。
● value -> 値、value types -> 値型と単純に訳しました。
一般に値型とは Int,shortなどの数値型のことみたいですが、この資料ではそうとは
限らないようです。
● 第 1 章では parentheses を ()[]{} と定義していますが、他の場所では、
()の意味で使っているようなので、第 1 章と Chapter A を除き、基本的には
parenthesesを丸括弧と訳しました。
&br()
** 書体
・Scala予約語は英文では基本的に太字ですが、日本語本文中では
手を抜いて通常の字体です。
・添え字は、基本的には小さくなっていません。
・英文中で斜体字になっているもののうち、T や Anといった記号的なものは
日文では通常の字体になっています。
・5章 英文PDFでは、見た目が大きく異なるフォントを記号的に使っていることが
ありますが、restを使う日文PDFとの兼ね合いで、日文ではそのようなフォントを
使いませんでした。代わりに字を重ねて表現しています。
例 : 線形化のシンボル L(C) --> LL(C)
&br()
** その他
・「/」を 「あるいは」の代わりに用いていることがあります。
例:クラス/オブジェクト <--> class or object
・構文(BNF記法)については、本文中では 英単語のまま記載していますが、
Chapter A では、日文と英文両方を記載しています。
・&br()
ps = パラメータ部(parameter section) &br()
tps = 型パラメータ部(type parameter section) &br()
targs = 型引数部(type arguments section) &br()
の略と思われます。
・今後のWiki表示とPDF化のときに使うrestを考慮して、ソース中にごたごた
コメントが入っていますが、できることなら消さないようお願いします。
例: #co(){------bgn-hide0} ・・・ Wiki/PDF非表示
#center(){[[目次>Spec2.8和訳]] [[次ページ>Spec2.8Chap1a]]}
&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()
** 用語
● elemten type -> 要素型 、result type -> 結果型 、expected type -> 要請型、
parameter type -> パラメータ型 と訳しましたが、
実際にそういった特定の型があるわけではなく、それぞれ、要素の型、
返される結果の型、要求される型、パラメータの型、と読み替えると理解できる場合が
よくあります。 (Chapter A のBNF記法での用語にも「パラメータ型」が出てきますが、
本文中で使う場合とは意味合いが違うことがあります)
しかし、subtype -> サブ型、supertype -> スーパー型 その他、「の」を入れて
解釈することができないものも多数あります。
● parameter ->パラメータ、argument -> 引数と訳しました。
パラメータは仮引数、引数は実引数を指すのかもしれません。
● 書籍にならい view bound ->可視境界 と訳しましたが、ビュー境界 と
読み替えたほうが理解しやすいと思います。単なる view を 「可視」では
なく「ビュー」と訳したのは、英文中では "view" を機能名として
使うことがよくあり、それを「可視」とは言い難いからです。
● value -> 値、value types -> 値型と単純に訳しました。
一般に値型とは Int,shortなどの数値型のことみたいですが、この資料ではそうとは
限らないようです。
● 第 1 章では parentheses を ()[]{} と定義していますが、他の場所では、
()の意味で使っているようなので、第 1 章と Chapter A を除き、基本的には
parenthesesを丸括弧と訳しました。
&br()
** 書体
・Scala予約語は英文では基本的に太字ですが、日本語本文中では
手を抜いて通常の字体です。
・添え字は、基本的には小さくなっていません。
・英文中で斜体字になっているもののうち、T や Anといった記号的なものは
日文では通常の字体になっています。
・5章 英文PDFでは、見た目が大きく異なるフォントを記号的に使っていることが
ありますが、restを使う日文PDFとの兼ね合いで、日文ではそのようなフォントを
使いませんでした。代わりに字を重ねて表現しています。
例 : 線形化のシンボル L(C) --> LL(C)
&br()
** その他
・「/」を 「あるいは」の代わりに用いていることがあります。
例:クラス/オブジェクト <--> class or object
・構文(BNF記法)については、本文中では 英単語のまま記載していますが、
Chapter A では、日文と英文両方を記載しています。
・&br()
ps = パラメータ部(parameter section) &br()
tps = 型パラメータ部(type parameter section) &br()
targs = 型引数部(type arguments section) &br()
の略と思われます。
・今後のWiki表示とPDF化のときに使うrestを考慮して、ソース中にごたごた
コメントが入っていますが、できることなら消さないようお願いします。
例: #co(){------bgn-hide0} ・・・ Wiki/PDF非表示
#center(){[[目次>Spec2.8和訳]] [[次ページ>Spec2.8Chap1a]]}