Programmazione orientata al flusso di dati
La programmazione del flusso di dati proviene da un flusso di dati continuo , di solito i dati del segnale vengono modificati in tempo reale e l'uscita viene disattivata. Esempi noti sono Simulink , Pure Data , Luster_ (linguaggio di programmazione) o LabVIEW .
storia
La programmazione orientata al flusso è stata inventata da J. Paul Morrison all'inizio degli anni '70 : da allora una prima implementazione di questa tecnologia è stata costantemente utilizzata nelle più grandi banche canadesi.
All'inizio, la programmazione orientata al flusso di dati era fortemente influenzata dai linguaggi di simulazione IBM dell'epoca, in particolare dal GPSS . Ma le sue radici risalgono all'eccezionale lavoro di Melvin Conway sulle coroutine .
Oggetti
I singoli elementi che creano e modificano il flusso di dati sono chiamati oggetti. Il loro comportamento può essere influenzato da parametri. Possono essere approssimativamente suddivisi nelle seguenti categorie:
fonte
Una sorgente è un oggetto che genera un flusso di dati. Ha almeno un output che può servire come input per un altro oggetto.
- Fonti esterne: le fonti esterne ottengono i propri dati dall'esterno del programma, principalmente dai dati o dai dispositivi di input (ad es. Microfono o videocamera).
- Fonti interne: le sorgenti interne generano un certo flusso di dati predefinito. Può essere un valore costante, ma anche curve sinusoidali o simili.
nodo
I nodi hanno almeno un input a cui è possibile applicare un flusso di dati. Eseguono operazioni specifiche sul flusso di dati (ad es. Aggiunta dei segnali di ingresso). Il risultato è disponibile all'uscita o alle uscite e può essere ulteriormente elaborato.
Ridurre
I sink sono responsabili dell'output del flusso di dati, quindi hanno input ma non output. Possono rappresentare un file in fase di scrittura o un dispositivo di output, ad es. B. un altoparlante o uno schermo.
Flusso di dati
Il flusso di dati è principalmente dati audio o video, più raramente valori numerici puri. Fluisce sempre dall'uscita di un oggetto a tutti gli input associati degli oggetti fino a raggiungere un sink.
aree di applicazione
La pura programmazione orientata al flusso di dati è attualmente utilizzata da un lato da artisti dei media per creare opere multimediali , interattive e distribuite (vedi anche: arte digitale ) . D'altra parte, il software musicale Reaktor è popolare tra gli artisti dei generi di musica elettronica, che offre funzionalità puramente grafiche simili ai dati puri , ma più su misura per la creazione di dispositivi musicali virtuali.
Questo tipo di programmazione è da tempo affermato nell'ingegneria di controllo e sempre più anche nello sviluppo di sistemi embedded .
Prove individuali
- ^ J. Paul Morrison, Flow-Based Programming , http://jpaulmorrison.com/fbp/ . Estratto il 10 giugno 2010
- ^ ME Conway, Progettazione di un compilatore separabile del diagramma di transizione , Communications of the ACM, Vol.6, No. 7 luglio 1963