yeildをめぐる冒険

 最近のスクリプト言語には大抵"yeild"という命令があります。これ今まではずかしげもなく「イエールド」と読んでいましたが、「イールド」が正しいらしいです^^;。
 さてyeildとはなにか? 辞書を引くとこうなってます。

yield (スペースアルクより)
【レベル】4、【発音】ji':ld、【@】イールド、【変化】《動》yields | yielding | yielded
【名】 生産{せいさん}、産出{さんしゅつ}(高)、収穫{しゅうかく}(高)、出来高{できだか}、利益{りえき}、収益{しゅうえき}、報酬{ほうしゅう}、(運用{うんよう})利回り{りまわり}、出産{しゅっさん}(高)、効力{こうりょく}、収率{しゅうりつ}、歩留まり{ぶどまり}◆【略】yld
【自動-1】 作物{さくもつ}ができる、報酬{ほうしゅう}をもたらす
【自動-2】 曲がる、屈服{くっぷく}する、降伏{こうふく}する、従う、譲る、譲歩{じょうほ}する、劣る
・ I might yield a bit on price. : 価格に関して少し譲歩してもかまいません。
【自動-3】 病気{びょうき}が治る
【他動-1】 〜をもたらす、引き起こす、産する、産出{さんしゅつ}する、出産{しゅっさん}する、生じる、〔利益{りえき}・利子{りし}などを〕生む
・ This bank account yields high interest. : この銀行口座に預金しておくと高い利息が付いてくる。
【他動-2】 降伏{こうふく}する、〜を支払う{しはらう}、譲渡{じょうと}する、放棄{ほうき}する、与える
・ I can't yield an inch. : もう一歩も後へ引けない。
【他動-3】 《野球》(点)を許す 

さっぱりわかりません。

 コンピュータプログラミングにおけるyieldは「譲る」の意味で、コルーチン処理を切り替える際に呼び出されます。
 コルーチン(co-rutin)処理とは、メインルーチンとサブルーチンのように親子関係を持たない(co-は「共」くらいの意味か)ルーチンを指します。コルーチン関数はマルチスレッドのように実行され、yieldが呼ばれた時点で処理を停止し、再開を待ちます。外部からresumeが実行されると、yieldを呼んだ直後から処理を再開します。
 コルーチンのメリットは、まずメソッド呼び出しなのにローカル変数が保持されるという事(コルーチン毎に別スタック管理にされる為に実現できます)。そして、自分の停止タイミング(スリープみたいなものと考えてよいと思います)を制御できる点です。
デメリットは今の逆で、コルーチン毎にスタック管理が必要になる点(コルーチンが膨大な数になった場合そのスタックも膨大な数になる)、ループ制御の把握が困難になる事です。
 みはえるは、今の所ゲームプログラミングでコルーチン(マイクロスレッドとも言う)を活用する方法を見出していません。タスクシステムより大きく、シーン管理より小さな概念なのかなーとも思うのですが、スタック管理の事を考えると……うむむ。
 なぜ悩んでいるかというと、使いたいからなんだけどね(笑)