| dbpprop:abstract
|
- 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, <math>a := b + c</math> would mean that <math>a</math> is being assigned the result of <math>b + c</math> in the instant the expression is evaluated. Later, the values of <math>b</math> and <math>c</math> can be changed with no effect on the value of <math>a</math>. In reactive programming, the value of <math>a</math> would be automatically updated based on the new values. 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 or in real time systems, but is essentially a general programming paradigm. For example, in a Model-view-controller architecture, reactive programming can allow changes in the underlying model to automatically be reflected in the view, and vice versa.
- Реактивное программирование – это парадигма программирования ориентированная на потоки данных и распространении изменений. Это означает, что должна существовать возможность легко выражать статические и динамические потоки данных, а также то, что выполняемая модель должна автоматически распространять изменения сквозь поток данных. К примеру, в императивном программировании присваивание a: = b + c будет означать, что переменной a будет присвоен результат выполнения операции b+c, используя текущие (на момент вычисления) значения переменных. Позже значения переменных b и c могут быть изменены без какого-либо влияния на значение переменной a. В случае реактивного программирования, значение a будет автоматически перерасчитано, основываясь на новых значениях. Современные табличные процессоры представляют собой пример реактивного программирования. Ячейки таблицы могут содержать строковые значения или формулу вида «=B1+C1», значение которой будет вычислено исходя из значений соответствующих ячеек. Когда значение одной из зависимых ячеек будет изменено, значение этой ячейки будет автоматически обновлено. Другой пример – это языки описания аппаратуры (HDL), такие как Verilog. Реактивное программирование позволяет моделировать изменения в виде их распространения внутри модели. Реактивное программирование предлагалась как путь для легкого создания пользовательских интерфейсов, анимации или моделирования реальных временных систем (time systems). К примеру, в MVC архитектуре с помощью реактивного программирования можно реализовать автоматическое отражение изменений из Model в View.
|