88 votes

Des Flux De Données, Langages De Programmation

Qu'est ce qu'un flux de données, langage de programmation? Pourquoi l'utiliser? et quels sont les avantages?

114voto

Dan Points 4107

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 langages textuels

Langages Visuels

Les produits qui comportent un visuel de flux de données langue:

30voto

Anton Points 3522

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.

20voto

Jeff Hammerbacher Points 2020

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.

12voto

JCLL Points 1553

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)

6voto

Barry Kelly Points 30330

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X