Dataströmsprogrammering

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 4 augusti 2019; kontroller kräver 10 redigeringar .

Dataflödesprogrammering är ett programmeringssätt  där ett program modelleras som en dataflödesdigraf mellan operationer, liknande ett dataflödesdiagram . Utvecklad inom mjukvaruteknik sedan 1970 -talet [1] .

Naturlig visuell presentation tillsammans med stöd för samtidighet är två funktioner i detta paradigm som är attraktiva för utvecklare [1] . Naturligtvis involverar dataflödesprogrammering inte nödvändigtvis visuella programmeringsverktyg .

Unix - programmerare är bekanta med dataflödesprogrammering eftersom Unix- skalet använder namngivna pipes och andra sådana interprocesskommunikationsfaciliteter [2] .

Beskrivning

Grunden för arbetet med dataflödesprogram (dataflöde) är aktiveringen av beräkningar på noder (nod), som kan betraktas som svarta lådor , orsakade av ändringar, uppdateringar av indata. En nod (i modellen, toppen av en graf) är ett element som bearbetar indata och omvandlar dem till utdata. Driften av en nod under aktiveringsperioden betraktas som en enda beräkning. Noder skickar och tar emot data genom portar (port) - anslutningspunkter för bågar (grafkanter) och noder. Portar är allt som kopplar en värd till sin miljö. Noder kan ha namn för att skilja dem åt. Resultatet av att beräkna en nod är ofta, men inte nödvändigtvis, en funktion av inmatningen, det vill säga resultatet kan förändras över tiden. Nodens beräkningsarbete kallas aktivering (aktivering, avfyring). I det aktiverade tillståndet tar noden indata, utför beräkningar, skickar utdata till lämpliga portar. De överförda data, oavsett deras typ, kallas tokens . Tokens kommer längs bågar (de kan kallas kanter, länkar, anslutningar). Uppkomsten av data på den inkommande bågen kan orsaka aktivering av noden. Man brukar anta att det inte finns mer än en token i bågen, men i teorin är det möjligt att skapa modeller med obegränsad kapacitet. I mer utvecklade modeller kan bågar smälta samman till en eller förgrena sig [3] [4] .

Som ett resultat av programmering erhålls ett dataflödesprogram - en riktad graf. Alla sätt för interaktion mellan element är uttryckligen inställda av programmeraren. I det enklaste fallet med pipeline -bearbetning (pipeline-dataflöde) kan element specificeras genom en sekvens av enstaka beräkningar. Beräkningar görs i tur och ordning när tokens tas emot vid ingången. Ett sådant schema kallas datadriven exekvering [3] .

Egenskaper

I dataflödesprogrammering kan mer komplexa konfigurationer användas än en pipeline. I synnerhet kan följande funktioner läggas till den enklaste modellen (i en eller annan kombination) [3] :

Se även

Anteckningar

  1. 1 2 Tiago Boldt Sousa dataflödesprogrammeringskoncept, språk och applikationer Arkiverad 12 november 2020 på Wayback Machine
  2. Jon Orwant. Datavetenskap och Perl-programmering: Best of The Perl Journal. - O'Reilly Media, Incorporated, 2002. - S. 146. - 737 sid. — ISBN 9780596003104 .
  3. 1 2 3 Carkci, 2014 , 2. Dataflow Explained.
  4. 12 Sharp , 1992 , sid. 293.
  5. En strukturerad beskrivning av dataflödesaktörer och dess tillämpning [1] Arkiverad 27 juli 2020 på Wayback Machine
  6. Hewitt, Carl; Biskop, Peter; Steiger, Richard. A Universal Modular Actor Formalism for Artificial Intelligence  (engelska)  : tidskrift. — IJCAI, 1973.

Litteratur

Länkar