イベント駆動型プログラミング
提供: miniwiki
イベント駆動型プログラミング(イベントくどうがたプログラミング)は、起動すると共にイベントを待機し、起こったイベントに従って処理を行うプログラミングパラダイムのこと。フロー駆動型プログラミングと呼ばれる従来のプログラミングパラダイムに対する概念。「イベント駆動」は「イベントドリブン (event-driven)」とも呼ぶ。
Contents
概要
規則型(宣言型)のイベント駆動型プログラミングにおいては、規則の条件部が満たされ指定されたイベントが発生すると、その規則が実行される。このような規則を ECA規則 (event-condition-action rule) という。
手続き型のイベント駆動型プログラミングにおいては、イベントに対応する処理をイベントハンドラと呼ばれるコールバック関数に記述する。実行時にはシステムからイベントハンドラが呼ばれたときのみ処理を行い、イベントの待機中の処理はシステムに任せる。
イベント駆動型プログラミングを行うメリットは、プログラムを書く際に必要なイベントハンドラにのみ処理を書けば良いということや、処理の記述をハンドラごとに分けるので、見通しの良いプログラムが期待できるだろう、ということ。その他、イベント駆動型プログラミング環境を提供するフレームワーク作者が、フレームワークユーザのプログラムの振る舞いをある程度制御できる。
一般的に、グラフィカルユーザインタフェース (GUI) を使用するプログラムでは、マウス操作やキーボード操作に対する処理にイベント駆動型プログラミングを利用している。
イベント駆動型プログラミングの用語
- イベント
- 「キーボードを押した」、「時計がある時刻になった」などのプログラムの流れとは別に発生する事象。または、その事象に関する情報を含んだメッセージを指す。 →イベント (プログラミング)
- イベントハンドラ
- イベントが発生した際に実行すべきサブルーチンのこと。イベントフック、イベントリスナーなどの呼び方がある。
- トリガ
- イベントを発生させるきっかけ。プログラム内部でイベントを起こすことを「イベントをトリガする」と表現することもある。
- イベントディスパッチャ
- 発生したイベントをイベントハンドラに振り分ける機能のこと。
- イベントキュー
- 複数のイベントが連続して発生した場合に、それらのイベントを待ち行列として保持するデータ構造。イベントの発生間隔が短く、次のイベントが発生するまでにイベントハンドラの処理が間に合わない場合にバッファとして用いられる。→メッセージキュー
- イベントループ
- イベントを待機するループを持つ機構。イベントループ内にイベントディスパッチャを持つ構造が一般的である。メッセージループ、メッセージポンプとも言われる。
関連項目
- 命令型プログラミング(フロー駆動型プログラミング)
- データフロープログラミング
- シグナルプログラミング
- コールバック関数
- イベント (プログラミング)
- イベントループ
- 出版-購読型モデル
- メッセージ指向ミドルウェア
- 割り込み