In computing, reactive programming is a programming paradigm oriented around data flows and the propagation of change. This means that it should be possible to express static or dynamic data flows with ease in the programming languages used, and that the underlying execution model will automatically propagate changes through the data flow.
For example, in an imperative programming setting, would mean that is being assigned the result of in the instant the expression is evaluated. Later, the values of and can be changed with no effect on the value of .
In reactive programming, the value of would be automatically updated based on the new values.
それは静的ないし動的なデータフローを容易に表現できることを意味します。背後にある実行モデルが、変更をデータフローへ自動的に伝播させるということです。
たとえば、命令型プログラミングでは、a := b + c という式は、b + c が直ちに評価され、aに代入されることを意味します。あとで b や c が変更されたとしても、それは a には反映されません。一方、リアクティブプログラミングの場合では、値が自動的に更新されることになります。
例えは、命令形プログラミングではa:=b+cは式が評価されると直ちにb+cの結果がaに割り当てられることになります。その後、bやcの値が変更されてもaの値は影響されません。リアクティブプログラミングでは新しい値に基づいてaの値が自動的に更新されます。
A modern spreadsheet program is an example of reactive programming. Spreadsheet cells can contain literal values, or formulas such as "=B1+C1" that are evaluated based on other cells. Whenever the value of the other cells change, the value of the formula is automatically updated.
Another example is a hardware description language such as Verilog. In this case reactive programming allows us to model changes as they propagate through a circuit.
Reactive programming has foremost been proposed as a way to simplify the creation of interactive user interfaces, animations in real time systems, but is essentially a general programming paradigm.
もう一つの例としては、Verilogのようなハードウェア記述言語があります。この場合、リアクティブプログラミングを使うことにより変化が回路を通して伝搬するのに伴い、変化をモデリングすることができます。
リアクティブプログラミングは主に、インタラクティブなユーザーインターフェース、リアルタイムシステムでのアニメーションの作成を容易化する方法として提案されてきましたが、本質的には汎用的なプログラミングパラダイムです。
スプレッドシートのセルは、定数または"=B1+C1"のような他のセルに依存する式を入力することができます。他のセルの値が変更されると、式の結果となる値は自動的に更新されます。
別の例としては、ハードウェア記述言語であるVerilogが挙げられます。この例では、リアクティングプログラミングが、回路を通したモデルチェンジを可能にしていることを示します。
リアクティブプログラミングは、インタラクティブなユーザインターフェイスやリアルタイム環境でのアニメーションなどを簡単に作成できると紹介されることもありますが、本質的にはプログラミングパラダイムのことを指します。
こちらで利用させていただいています。
http://matome.naver.jp/odai/2136364154359452401