Mis on andmevoo programmeerimine?

Andmevoo programmeerimine on mudel, mida kasutatakse tarkvara kontseptualiseerimisel ja juurutamisel. Andmevoo programmeerimise fookus on keskenduda süsteemi ülesehitusele töödeldavatele andmetele, mitte koodile, mida kasutatakse teabega manipuleerimiseks. Tulemuseks on süsteem, milles põhilised arvutusfunktsioonid on eraldatud väikesteks mooduliteks, mida nimetatakse sõlmedeks; need aktsepteerivad teatud oleku saavutamisel mõningaid andmeid, töötlevad andmeid ja suruvad väljundi tagasi programmi juhtimisvoogu, edastades teabe potentsiaalselt teisele sõlmele. See on vastupidine imperatiivse programmeerimise tavapärasele paradigmale, mille puhul vahetu käskude loend määratleb programmi juhtimisvoo, mitte andmete oleku. Andmevoo ümber üles ehitatud programmidel on mitu kasutust, sealhulgas paralleeltöötlus, reaalajas süsteemid ja manussüsteemid.

Kaudse programmeerimise puhul, mis on kõige sagedamini kasutatav arvutiprogrammeerimiskeele tüüp, koostatakse programmid sageli vooskeemidest, mis sisaldavad funktsiooni- või meetodikutsete jada, kusjuures iga kõne hargneb teistele funktsioonidele. Seda tüüpi programmeerimine keskendub oma olemuselt protseduuridele, mida kasutatakse programmiandmetega manipuleerimiseks. Andmevoo programmeerimise kasutamisel eemaldatakse fookus selgesõnalistest funktsioonikutsetest ja keskendutakse selle asemel abstraktsete moodulite loomisele, mis aktsepteerivad andmeid, kui andmed või programm on täitnud või saavutanud teatud tingimused. Sel hetkel põhjustab programmi ülesehitus funktsiooni kutsumise asemel andmete voolu moodulite või sõlmede suunas, kus need potentsiaalselt sisenevad voogu, mida töödeldakse mitme sõlmega.

Üks abstraktne näide andmevoo programmeerimise toimimisest on näha, kui mõelda, kuidas täita klaas kraanist veega. Vajalik oleks luua funktsioonid vee sisselülitamiseks, viia klaas vastavasse kohta kraani all ja seejärel täita klaas veega. Andmevoo programmeerimise näite kaudu ootab segisti selle asemel, kuni tass on selle alla asetatud, et seda täitma hakata, ja kõik, mis tassi liigutab, ootab kuni tass on saavutanud teatud oleku, näiteks täis, et see segisti alt eemaldada. . Tegelikud programmeerimismehhanismid, mis muudavad andmete olekut, ei ole disaini vahetu murekoht.

Andmevoo programmeerimise eeliseks on rakendus või süsteem, milles erinevaid sõlme saab manööverdada täiesti ainulaadsete andmevoogude loomiseks, ilma et oleks vaja seost kõvasti kodeerida. Lisaks on andmevoo programmeerimist kasutav programm aktiivselt ette valmistatud kogu aeg andmeid töötlema, selle asemel, et siseneda olekusse või mustrisse, mis lukustab ühe või mitme sõlme juurdepääsu või täitmise. Sõlmede disain ja kontseptsioon tähendab, et andmevoo programmeerimisrakendusi saab hõlpsasti kujundada kasutamiseks hajutatud süsteemides ja paralleelprotsessorites.