Le flux de données de programmation est un modèle qui est utilisé lors de la conception et l'implémentation de logiciels. La mise au point de programmation de flux de données est de centrer la conception d'un système sur les données qui sont en cours de traitement, par opposition à ce code qui est utilisé pour manipuler les informations. Le résultat est un système dans lequel les fonctions de calcul de base sont isolés dans de petits modules appelés noeuds; ceux-ci acceptent des données quand un certain état est atteint, traiter les données et appuyez sur la sortie arrière dans le flux de contrôle du programme, ce qui pourrait passer l'information à un autre noeud. Ceci est en contraste avec le paradigme normal de programmation impératif , dans lequel une liste de commandes immédiates définit le flux de contrôle d'un programme, et non pas l'état des données. Il y a plusieurs utilisations pour les programmes qui sont construits autour d'un flux de données, y compris le traitement parallèle, les systèmes temps réel et des systèmes embarqués.
Dans la programmation implicite, qui est le type le plus couramment utilisé deprogrammation informatique langue, les programmes sont souvent construits à partir de diagrammes de flux qui contiennent une séquence d'appels de fonction ou méthode, à chaque appel de bifurquer à d'autres fonctions. Ce type d'émission est essentiellement axé sur les procédures qui sont utilisées pour manipuler les données de programme. Lorsque la programmation de flux de données est utilisée, la mise au point est retirée d'appels de fonctions explicites et se concentre plutôt sur la création de modules abstraits qui acceptent des données lorsque les données ou le programme a satisfait ou atteint certaines conditions. À ce stade, au lieu d'appeler une fonction, la conception du programme amène les données à s'écouler vers les modules, ou nœuds, où il entre potentiellement un flux de traitement par plusieurs nœuds.
Un exemple résumé de la façon dont fonctionne la programmation de flux de données peut être vu lors de l'examen comment remplir un verre d'eau du robinet. Une approche impératif serait de générer des fonctions pour tourner sur l'eau, placez le verre à l'endroit approprié sous le robinet, puis remplir le verre avec de l'eau. Grâce à un exemple de programmation de flux de données, le robinet attend la place jusqu'à ce que la coupe a été placé en dessous pour commencer à le remplir, et tout ce qui bouge les attentes de la coupe jusqu'à ce que la coupe a atteint un certain état, tels que le plein, pour le retirer de sous le robinet . Les mécanismes de programmation réels qui modifient l'état des données ne sont pas la préoccupation immédiate de la conception.
L'avantage de la programmation par flux de données est une application ou d'un système dans lequel les différents nœuds peuvent être manœuvrés pour créer les flux de données entièrement uniques sans nécessairement que la relation soit figé. En outre, un programme qui utilise la programmation par flux de données est activement préparé à traiter des données à tout moment, au lieu d'entrer explicitement dans un état ou un motif qui bloque l'accès ou de l'exécution d'un ou plusieurs nœuds. La conception et le concept de nœuds signifient applications de programmation flux de données peuvent facilement être conçus pour une utilisation sur les systèmes distribués et des processeurs parallèles.