Qu'est ce qu'un flux de données, langage de programmation? Pourquoi l'utiliser? et quels sont les avantages?
Réponses
Trop de publicités?Dans un flux de contrôle de la langue, vous avez un flux d'instructions qui opèrent sur des données externes. Exécution conditionnelle, des sauts et des appels de procédure de changement de l'instruction stream pour être exécuté. Cela pourrait être considéré comme des instructions qui coule à travers les données (par exemple, les instructions fonctionnent sur des registres qui sont chargés avec des données par les instructions - les données sont statiques, à moins que le volet enseignement déplace). Un flux de contrôle "si" déclaration de sauts vers la bonne direction dans le volet enseignement, mais les données ne sont pas déplacés.
Dans un flux de données de la langue, vous avez un flux de données qui est passé de l'enseignement à l'instruction pour être traitées. Exécution conditionnelle, les sauts et les appels de la procédure d'acheminer les données vers des instructions différentes. Cela pourrait être considéré comme des données circulant à travers autrement instructions statiques, comme la façon dont les signaux électriques de flux par le biais de circuits ou de l'eau coule à travers les tuyaux. Un flux de données instruction "if" permettrait d'acheminer les données vers la bonne direction.
Quelques exemples de flux de données de fonctionnalités et de langues:
- Les feuilles de calcul sont essentiellement des flux de données
- Les contrats à terme et les promesses sont des flux de données ou flux de données comme des constructions retrouve dans de nombreuses langues modernes
- La messagerie dans le modèle de l'acteur est de flux de données
- Certaines langues ont des flux de données caractéristiques:
Les langages textuels
- VHDL, Verilog et d'autres langages de description de matériel sont essentiellement des flux de données
- Chuck
- Lustre, utilisés dans la défense, de l'aérospatiale et de la centrale des industries
- Ptolémée II
- Esterel
- Nyquist
Langages Visuels
- LabVIEW (capture d'écran [source])
- Max/MSP (capture d'écran [source])
- Pure Data (capture d'écran [source])
- Reaktor (capture d'écran [source])
- SCADE (capture d'écran [source]), l'environnement de programmation graphique pour Lustre
- SynthMaker (capture d'écran [source]) et FlowStone
- vvvv (capture d'écran [source])
- Expecco (capture d'écran [source])
- Shake (capture d'écran [source])
- [BLOK] (capture d'écran [source])
- Quartz Composer (capture d'écran [source])
- AudioMulch (capture d'écran [source])
Les produits qui comportent un visuel de flux de données langue:
- Blender (capture d'écran)
- Voreen (capture d'écran)
- Le Moteur d'Unreal du Kismet (capture d'écran)
- ANKHOR Schéma de traitement (capture d'écran)
Des flux de données, les langages de programmation sont ceux qui se concentrent sur l'état du programme et de la cause des opérations en fonction de tout changement dans l'état. Des flux de données, les langages de programmation sont intrinsèquement parallèle, parce que les activités reposent sur des données qui lorsqu'ils sont réunis sera la cause de l'opération à exécuter. Cela signifie que contrairement à un programme normal où une opération est suivie par l'opération suivante, dans un flux de données pour les opérations du programme sont exécutées tant que les entrées sont respectées et, par conséquent il n'y a pas d'ordre.
Souvent des flux de données, les langages de programmation utilisent une grande table de hachage dont les clés sont les données du programme et les valeurs de la table sont des pointeurs vers des opérations du programme. Cela rend multicœur programmes plus facile de créer un flux de données, langage de programmation, étant donné que chaque de base aurait seulement besoin de la table de hachage pour le travail.
Un exemple courant d'un flux de données, langage de programmation est un tableur qui a des colonnes de données qui sont affectés par d'autres colonnes de données. De ces données dans une colonne de changement, d'autres données dans les autres colonnes seront probablement changer avec elle. Bien que le tableur est l'exemple le plus commun d'un flux de données, langage de programmation, la plupart d'entre eux ont tendance à être langages graphiques.
Un genre de programmation par flux de données est réactif de programmation. Lorsque ce style de programmation est utilisé dans un langage fonctionnel, on l'appelle fonctionnel réactif de programmation. Un exemple fonctionnel réactif langage de programmation pour le web est Flapjax.
Aussi, anic est un flux de données à la langue récemment discuté sur Hacker News.
Un autre exemple est Martlet d'Oxford.
Des flux de données, les langages de programmation proposent d'isoler certains locaux comportements dans les soi-disant "acteurs", qui sont censés fonctionner en parallèle et d'échanger des données par le biais de point-à-point des canaux. Il n'y a pas de notion de mémoire centrale (à la fois pour le code et données) à la différence de Von Neumann modèle d'ordinateurs.
Ces acteurs consommer des données jetons sur leurs intrants et de produire de nouvelles données sur leurs produits.
Cette définition n'impose pas les moyens d'exécuter ce dans la pratique. Cependant, la production/consommation de données doivent être analysées avec soin : par exemple, si un acteur B ne consomme pas à la même vitesse que l'acteur qui produisent les données, puis potentiellement illimitée de la mémoire (fifo) est nécessaire entre eux. De nombreux autres problèmes peuvent survenir comme des blocages.
Dans de nombreux cas, cette analyse va échouer parce que l'entrelacement de l'intérieur comportements est intraitable (au-delà de la portée des aujourd'hui des méthodes formelles).
Malgré cela, des flux de données, langages de programmation demeurent intéressantes dans de nombreux domaines :
- par exemple pour définir des modèles de référence pour l'encodage vidéo : un pur programme C ne seront pas faire le travail parce qu'il fait l'hypothèse que tout marche comme une séquence d'opérations, ce qui n'est pas vrai dans les ordinateurs (pipeline, VLIW, mutlicores, VLSI). Peut-être que vous pourriez avoir un coup d'oeil à ceci : la récente thèse de Doctorat. CAL flux de données de la langue est proposé comme un unificateur de la langue pour la prochaine génération de vidéo encodeurs/décodeurs de référence.
- Mission critique où la sécurité est nécessaire : si vous ajoutez quelques hypothèses fortes sur la production/consommation de données, alors vous obtenez une langue à fort potentiel en termes de génération de code, épreuves etc (voir synchrone langues)
Excel (et d'autres feuilles de calcul) sont essentiellement des flux de données langues. Des flux de données, les langues sont comme les langages de programmation fonctionnelle, sauf que les valeurs, les feuilles de l'ensemble du programme graphique ne sont pas des valeurs, mais des variables (ou des flux de valeur), de sorte que quand ils sont modifiés, les changements d'ondulation et de flux de la graphique.