タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

coroutineに関するinoshirouのブックマーク (3)

  • Pythonでコルーチン - なんたらノート第三期ベータ

    Luaはコルーチンがとても特徴的で、こんなに継続オブジェクトが扱いやすい言語は、他にありません。 http://www.lua.org/manual/5.1/manual.html#2.11 Luaまではムリでも、Pythonでそれに近いことができないか、挑戦してみました。 Python2.5以上じゃないとダメですが、ジェネレータ関数を入力として作成される、コルーチン「もどき」オブジェクトです。 class Coroutine: def __init__(self, func): self._gen = func self._itr = None self.response = None self.alive = True def resume(self, *args): if not self.alive: raise "cannot resume dead coroutine" try

    Pythonでコルーチン - なんたらノート第三期ベータ
  • コルーチン - Wikipedia

    コルーチン(英: co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。 サブルーチンと異なり、状態管理を意識せずに行えるため、協調的処理、イテレータ、無限リスト、パイプなど、継続状況を持つプログラムが容易に記述できる。 コルーチンはサブルーチンを一般化したものと考えられる。コルーチンをサポートする言語には Modula-2、Simula、Icon、Lua、C#、Limbo、Swift などがある。マルチスレッドで理論的には同じことができるため、現在はそちらが使われるケースが多い。これはマルチスレッドであれば直接OSやCPUスレッドの支援を受けられることや、エント

  • http://madeira.cc.hokudai.ac.jp/RD/yamamoto/Essay/11.html

    何をいまさらと言われるかもしれないが、プログラミング言語におけるサブルーチンという概念の発明はノイマン型計算機のアーキテクチャの発明に匹敵する影響を後生の計算機科学に与えたと思う。もっともその影響があまりに大きかったので、プログラミングのスタイルや計算機アーキテクチャまでサブルーチン型の構造になってしまい、新しいアーキテクチャに脱皮できなくなってしまっているのも事実である。 サブルーチンのサブルーチンたるゆえんは、それがメイン・ルーチンという”親”から呼び出されることにある。サブルーチンに与えられた自由は親に帰ること(return)だけである。つまり、メイン・ルーチンはサブルーチンよりも偉いという厳然たる階層構造の上に成り立っている。そして、サブルーチン呼び出しはメイン・ルーチンを中断することで行われるという遂次性ゆえに、現在の遂次実行型の計算機アーキテクチャにぴったりはまるわけである。

  • 1