Activity

名前

Activity — アクション型のインタプリタによる処理のレベル。

説明

現在の実装でサポートされているのは、単一のシリアルプロセッサだけです。シリアル実行では、同時にアクティブにできるアクティビティは1つに限られます。つまり、現在のアクティビティの単一のスタックによって現在の処理状態を表現できます。これは、実行可能なアクティビティツリーにある1枚の葉へのパスをトレースします。シリアルモードで実行しているとき、メッセージを利用すれば、現在実行中の末端アクティビティ、あるいは現在時刻のようなそれから利用できる便利なコンテキスト情報を取得できます。

Activity型は、現在実行中のツリー、あるいは潜在的に実行可能なサブアクティビティを維持します。各アクティビティオブジェクトは、1つのアクションプラン内の処理状態を表現します。複数のアクティビティは同時に実行したり、実行する資格を持つことが可能なため、アクティビティオブジェクトの構造はツリー形式です。2つのアクティビティが並行に指定されていれば、かならずこの状況が起こります。なぜなら、ある他のプランの並行アクションによってこれらが実行されているため、あるいは同じSwarm下の自律実行に対して開始されたためです。並列処理装置があれば、各アクティビティは、他のあらゆるアクティビティの状態に独立したそれ自身の状態で進むこともできます。

新しいアクティビティオブジェクトを作成するには、それぞれにactivateIn:メッセージをアクション型に送ります。activateIn:は新しいアクティビティオブジェクトを初期化し、処理の準備をしますが、それ自身が何かのアクションを実行することはありません。アクティビティ内の処理を開始するためには、runのようなメッセージを後ろに伴う必要があります。Swarmコンテキスト下で実行するようにアクティビティがアクティブ化されているときは、オーナーであるSwarm自身がサブアクティビティ内のすべての処理をコントロールします。

Activity型は、アクションプランインタプリタの仮想処理装置の一部です。現在の処理状態を含み、この装置の主要なエレメントはデバッガなどの汎用ツールの開発に役立ちます。アプリケーション自身を投影するアクティビティを作成して実行する必要のあるアプリケーションを除き、アプリケーションをモデル化することによってアクティビティ型を直接的に使用すべきではありません。

Activity型のオブジェクトは、アクションプラン内のアクションの処理を実装します。アクションプランの各サブタイプは、それぞれにプランの型の処理を実装した対応するActivityのサブタイプを持ちます。

Activityに採用されているプロトコル

DefinedObject Drop

メソッド

フェーズ: Using