Changeset 15748

Show
Ignore:
Timestamp:
07/13/08 20:24:17 (5 years ago)
Author:
nowelium
Message:
 
Location:
docs/nowelium
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • docs/nowelium/ioDocs/IoGuide_ja.html

    r15479 r15748  
    8181</td> 
    8282<td valign=top style="width:33%"> 
    83  
    84 <!-- 
    85 <div class=indexSection>Metaprogramming</div> 
    86 <div class=indexItem><a href=>Object</a></div> 
    87 <div class=indexItem><a href=>Block</a></div> 
    88 <div class=indexItem><a href=>Message</a></div> 
    89 <div class=indexItem><a href=>Syntax</a></div> 
    90 --> 
    9183 
    9284<div class=indexSection><a href="#Primitives">プリミティブ</a></div> 
     
    246238</pre> 
    247239 
    248 Don't worry if some of the addons won't build unless it's a particular addon that you need. Addons are just optional libraries. 
     240いくつかのアドオンがビルドできなくても、そのアドオンがあなたが特別必用としていないなら、それは心配しなくても大丈夫です。 アドオンは任意のライブラリです。 
    249241 
    250242<h4>ノート</h4> 
     
    278270</pre> 
    279271 
    280 The io_static executable contains the vm with a minimal set of primitives all statically linked into the executable. The io executable contains just enough to load the iovm dynamically linked library and is able to dynamically load io addons when they are referenced. 
     272io_static は最小量のセットの基本関数が静的にすべてリンクされている vm を含んでいる実行可能な形式です。 io は実行時に、iovm が動的にリンクされたライブラリをロードすることができます。それは、io のアドオンが参照されたときに動的に組み込まれます。 
    281273 
    282274 
     
    364356</pre> 
    365357 
    366 Only ReadLine is seen in the Addons since no other Addons have been loaded yet. 
    367 <p> 
    368 Inspecting a method will print a decompiled version of it: 
     358他の Addons が組み込まれていないので、RadLine だけが Addons に表示されています。 
     359<p> 
     360メソッドをインスペクトすると、その時のバージョンで逆コンパイルされたものが表示されるでしょう: 
    369361 
    370362<pre> 
     
    418410<h2>構文<a name="Syntax"></a></h2> 
    419411<div class=indent> 
     412 
     413<div class=quote> 
     414より少ないことは、より豊かなこと<br> 
     415- Ludwig Mies van der Rohe 
     416</div> 
    420417 
    421418<div class=quote> 
     
    677674 
    678675<div class=quote> 
     676今まで考案された全ての言語 - Fortran, Algol60, Lisp, APL, Cobol, Pascal - では、プログラムは一方に受動的なデータオブジェクトを持ち、もう一方にそれを操作する実行可能なプログラムを持つ構造だった。 この二部構成を同質に塗り替え、それぞれが自身で操作できるデータ系の集合で構成したのが、オブジェクト指向プログラムである。 <br> 
     677- David Gelernter and Suresh J Jag 
     678</div> 
     679 
     680<div class=quote> 
    679681In all other languages we've considered [Fortran, Algol60, Lisp, APL, Cobol, Pascal], a program consists of passive data-objects on the one hand and the executable program that manipulates these passive objects on the other. Object-oriented programs replace this bipartite structure with a homogeneous one: they consist of a set of data systems, each of which is capable of operating on itself. <br> 
    680682- David Gelernter and Suresh J Jag 
     
    811813<h3>ブロック</h3> 
    812814 
    813 A block is the same as a method except it is lexically scoped. That is, variable lookups continue in the context of where the block was created instead of the target of the message which activated the block. A block can be created using the Object method block(). ブロックを生成する例: 
     815ブロックは変数のスコープの違いを除いて、メソッドと同じです。 つまり変数検査は、ブロックが実行されるメッセージのターゲットの代わりに、ブロックが生成された時点での文脈に従います。 ブロックは Object の block() メソッドで生成できます。 ブロックを生成する例: 
    814816 
    815817<pre> 
     
    819821<h4>ブロック vs メソッド</h4> 
    820822 
    821 This is sometimes a source of confusion so it's worth explaining in detail. Both methods and blocks create an object to hold their locals when they are called. 違いは、ローカル領域のオブジェクト &quot;proto&quot; と &quot;self&quot; に何がセットされるかです。 メソッドでは、それらのスロットには、メッセージのターゲットがセットされる。 ブロックでは、そのブロックが作り出されたときのローカル領域オブジェクトがセットされる。 従ってブロック中では、ローカル領域にない変数は、そのブロックが作成されたときのローカル領域を辿って検索される。 そしてメソッド中では、ローカル領域にない変数は、そのメソッドを呼び出したオブジェクトを辿って検索される。 
    822  
    823 <h4>call and self slots</h4> 
    824  
    825 When a locals object is created, its self slot is set (to the target of the message, in the case of a method, or to the creation context, in the case of a block) and its call slot is set to a Call object that can be used to access information about the block activation: 
     823混乱の種になりそうなので、詳細を説明します。 両方とも、呼び出されるとローカル領域にオブジェクトを作成するのは同じです。 違いは、ローカル領域のオブジェクト &quot;proto&quot; と &quot;self&quot; に何がセットされるかです。 メソッドでは、それらのスロットには、メッセージのターゲットがセットされる。 ブロックでは、そのブロックが作り出されたときのローカル領域オブジェクトがセットされる。 従ってブロック中では、ローカル領域にない変数は、そのブロックが作成されたときのローカル領域を辿って検索される。 そしてメソッド中では、ローカル領域にない変数は、そのメソッドを呼び出したオブジェクトを辿って検索される。 
     824 
     825<h4>call と self スロット</h4> 
     826 
     827ローカル領域にオブジェクトが作られる際、その self スロットには、メソッドの場合はメッセージのターゲット、ブロックの場合は生成時の文脈に沿ってセットされ、call スロットには Call オブジェクトがセットされ、ブロック実行時のアクセス情報が参照できます: 
    826828 
    827829<p> 
     
    838840<i>call sender </i> 
    839841</td><td> 
    840 <i>locals object of caller</i> 
     842<i>呼び出し側のローカルオブジェクト</i> 
    841843</td> 
    842844</tr> 
     
    845847<i>call message </i> 
    846848</td><td> 
    847 <i>message used to call this method/block</i> 
     849<i>メソッドまたは、ブロックへの呼び出し時に使われたメッセージ</i> 
    848850</td> 
    849851</tr> 
     
    852854<i>call activated</i> 
    853855</td><td> 
    854 <i>the activated method/block</i> 
     856<i>実行されたメソッドまたはブロック</i> 
    855857</td> 
    856858</tr> 
     
    859861<i>call slotContext</i> 
    860862</td><td> 
    861 <i>context in which slot was found</i> 
     863<i>スロットが見つかった文脈</i> 
    862864</td> 
    863865</tr> 
     
    866868<i>call target</i> 
    867869</td><td> 
    868 <i>current object</i> 
     870<i>カレントオブジェクト</i> 
    869871</td> 
    870872</tr>