Kas yra duomenų srauto programavimas?

Duomenų srauto programavimas yra modelis, naudojamas kuriant ir diegiant programinę įrangą. Duomenų srauto programavimo tikslas yra sutelkti sistemos dizainą į duomenis, kurie yra apdorojami, o ne į kodą, kuris naudojamas informacijai manipuliuoti. Rezultatas yra sistema, kurioje pagrindinės skaičiavimo funkcijos yra atskirtos į mažus modulius, žinomus kaip mazgai; jie priima kai kuriuos duomenis, kai pasiekiama tam tikra būsena, apdoroja duomenis ir grąžina išvestį atgal į programos valdymo srautą, galbūt perduoda informaciją kitam mazgui. Tai prieštarauja įprastai imperatyvaus programavimo paradigmai, kai tiesioginis komandų sąrašas apibrėžia programos valdymo srautą, o ne duomenų būseną. Yra keletas programų, sukurtų remiantis duomenų srautu, naudojimo būdai, įskaitant lygiagretų apdorojimą, realaus laiko sistemas ir įterptąsias sistemas.

Taikant numanomą programavimą, kuris yra dažniausiai naudojamas kompiuterių programavimo kalbos tipas, programos dažnai sudaromos iš schemų, kuriose yra funkcijų arba metodų iškvietimų seka, o kiekvienas iškvietimas išsišakoja į kitas funkcijas. Šio tipo programavimas iš esmės sutelktas į procedūras, kurios naudojamos manipuliuoti programos duomenimis. Kai naudojamas duomenų srauto programavimas, dėmesys pašalinamas iš aiškių funkcijų iškvietimų, o sutelkiamas į abstrakčių modulių kūrimą, kurie priima duomenis, kai duomenys arba programa atitinka arba pasiekia tam tikras sąlygas. Šiuo metu, užuot iškvietusi funkciją, programos dizainas priverčia duomenis tekėti link modulių arba mazgų, kur jie potencialiai patenka į srautą, kurį apdoroja keli mazgai.

Vienas abstraktus duomenų srauto programavimo pavyzdys gali būti matomas svarstant, kaip pripildyti stiklinę vandens iš maišytuvo. Būtinas būdas būtų sukurti funkcijas, skirtas įjungti vandenį, perkelti stiklą į atitinkamą vietą po maišytuvu ir tada užpildyti stiklą vandeniu. Taikant duomenų srauto programavimo pavyzdį, maišytuvas laukia, kol puodelis bus pastatytas po juo, kad pradėtų jį užpildyti, o viskas, kas juda, laukia, kol puodelis pasieks tam tikrą būseną, pvz., prisipildys, kad būtų pašalintas iš po maišytuvo. . Tikrieji programavimo mechanizmai, keičiantys duomenų būseną, nėra tiesioginis dizaino rūpestis.

Duomenų srauto programavimo pranašumas yra programa arba sistema, kurioje skirtingi mazgai gali būti manevruojami, kad būtų sukurti visiškai unikalūs duomenų srautai, nebūtinai reikalaujant, kad ryšys būtų užkoduotas. Be to, programa, kuri naudoja duomenų srauto programavimą, yra aktyviai paruošta apdoroti duomenis visą laiką, o ne aiškiai pereiti į būseną ar šabloną, kuris blokuoja vieno ar kelių mazgų prieigą arba vykdymą. Mazgų konstrukcija ir koncepcija reiškia, kad duomenų srauto programavimo programas galima lengvai sukurti naudoti paskirstytose sistemose ir lygiagrečiuose procesoriuose.