Reaktivní programování

Reaktivní programování  je programovací paradigma zaměřené na tok dat a šíření změn. To znamená, že musí být možné snadno vyjádřit statické a dynamické datové toky a že základní prováděcí model musí automaticky šířit změny datovým tokem.

Například v imperativním programování a = b + cbude přiřazení znamenat, že proměnné abude přiřazen výsledek operace b + cpomocí aktuálních (v době výpočtu) hodnot proměnných. Později lze hodnoty proměnných ba cměnit bez jakéhokoli vlivu na hodnotu proměnné a.

Při reaktivním programování bude hodnota aautomaticky přepočítána na základě nových hodnot.

Moderní tabulkové procesory jsou příkladem reaktivního programování. Buňky tabulky mohou obsahovat řetězcové hodnoty nebo vzorec jako "=B1+C1", jehož hodnota bude vypočtena na základě hodnot odpovídajících buněk. Když se změní hodnota jedné ze závislých buněk, hodnota této buňky se automaticky aktualizuje.

Dalším příkladem jsou jazyky pro popis hardwaru (HDL), jako je Verilog . Reaktivní programování vám umožňuje modelovat změny tak, jak se šíří v modelu.

Reaktivní programování bylo navrženo jako způsob, jak snadno vytvářet uživatelská rozhraní, animace nebo simulace časově proměnných systémů.

Například v architektuře MVC můžete pomocí reaktivního programování implementovat automatickou reflexi změn z modelu do pohledu a naopak z pohledu na model.

Koncepty

Reaktivní přístupy k programování

Imperativní reaktivní programování

Je možné kombinovat paradigmata reaktivního a imperativního programování. V takovém balíku by imperativní programy mohly pracovat na reaktivních datových strukturách.

Objektově orientované reaktivní programování

Objektově orientované reaktivní programování (OORP) je kombinací objektově orientovaného přístupu s reaktivním přístupem. Pravděpodobně nejpřirozenější způsob, jak toho dosáhnout, je, že místo metod a polí mají objekty reakce , které automaticky přepočítávají hodnoty, a další reakce závisí na změnách těchto hodnot.

Funkční reaktivní programování

Funkční programování je nejpřirozenějším základem pro implementaci reaktivní architektury, která se dobře spáruje se souběžností .

Funkční reaktivní programování (FRP) vzniklo v roce 1997 s návrhem jazyka Fran [1] . Později byly vyvinuty jazyky jako Fruit, FRP a RT-FRP, FAL, Frob, Fvision, Yampa [2] .

Nejjednodušší funkční reaktivní výraz má následující tvar [3] :

b1 ` ` e => b2

což doslovně znamená " chovej se jako b1před výskytem události e, po tom se chovej jakob2 ".

Implementace

Odkazy

  1. Funkční reaktivní animace . Získáno 8. září 2015. Archivováno z originálu 11. listopadu 2020.
  2. Mun Hong Cheong. Funkční programování a 3D hry . — The University of New South Wales, 2005.
  3. Pavel Hudák. Modulární jazyky a nástroje specifické pro doménu . — IEEE Computer Society Press, Department of Computer Science, Yale University, 1998. Archivováno z originálu 17. října 2013.