A reaktív programozás egy olyan programozási paradigma , amely az adatáramlásra és a változások terjedésére összpontosít. Ez azt jelenti, hogy lehetővé kell tenni a statikus és dinamikus adatfolyamok egyszerű kifejezését, és az alapul szolgáló végrehajtási modellnek automatikusan tovább kell terjesztenie a változásokat az adatfolyamon keresztül.
Például a kötelező programozásban a hozzárendelés a = b + cazt jelenti, hogy a változó aa művelet eredményét a változók b + caktuális (számítási) értékei alapján rendeli hozzá. bKésőbb a és a változók értékei cmegváltoztathatók anélkül, hogy ez befolyásolná a változó értékét a.
A reaktív programozásnál az érték aautomatikusan újraszámításra kerül az új értékek alapján.
A modern táblázatkezelő processzorok a reaktív programozás példái. A táblázat cellái tartalmazhatnak karakterlánc-értékeket vagy olyan képletet, mint a "=B1+C1", amelyek értéke a megfelelő cellák értékei alapján kerül kiszámításra. Ha az egyik függő cella értéke megváltozik, az adott cella értéke automatikusan frissül.
Egy másik példa a hardverleíró nyelvek (HDL), például a Verilog . A reaktív programozás lehetővé teszi a modellen belüli változások modellezését.
A reaktív programozást a felhasználói felületek, animációk vagy időben változó rendszerek szimulációinak egyszerű létrehozásának módjaként javasolták.
Például az MVC architektúrában a reaktív programozás segítségével megvalósíthatja a változások automatikus tükrözését a modellről a nézetre, és fordítva, a nézetről a modellre.
Lehetőség van a reaktív és az imperatív programozás paradigmáinak kombinálására. Egy ilyen csomagban az elengedhetetlen programok reaktív adatstruktúrákon dolgozhatnak.
Az objektum-orientált reaktív programozás (OORP) az objektum-orientált megközelítés és a reaktív megközelítés kombinációja. Ennek valószínűleg az a legtermészetesebb módja, hogy a metódusok és mezők helyett az objektumokban olyan reakciók vannak , amelyek automatikusan újraszámolják az értékeket, más reakciók pedig ezen értékek változásától függenek.
A funkcionális programozás a reaktív architektúra megvalósításának legtermészetesebb alapja, amely jól párosul a párhuzamossággal .
A Funkcionális Reaktív Programozás (FRP) 1997-ben alakult meg a Fran nyelv javaslatával [1] . Később olyan nyelveket fejlesztettek ki, mint a Fruit, FRP és RT-FRP, FAL, Frob, Fvision, Yampa [2] .
A legegyszerűbb funkcionális reaktív kifejezés a következő formában van [3] :
b1 ` -ig ` e => b2ami szó szerint azt jelenti, hogy " viselkedj úgy, mint b1az esemény bekövetkezése előtt e, utána viselkedj úgyb2 ".