Flux (informatique)

Pour les articles homonymes, voir Flux.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

En informatique, un flux (en anglais : stream) est une suite infinie d'éléments gérés de façon temporelle. Un flux présente ainsi une analogie avec une bande transporteuse où les éléments sont traités séquentiellement, plutôt que globalement.

Les flux ne sont pas traités comme les lots de données \- en effet les fonctions usuelles n'y fonctionnent pas de façon globale - parce qu'ils sont des données potentiellement illimitées et non pas des données classiques (par définition finies). Les fonctions qui opèrent sur des flux, produisant des autres flux, fonctionnent plutôt comme des filtres, et peuvent être comparées à des chaînes de traitement (ou pipelines), car elles agissent de manière analogue à la composition des fonctions. Comme les filtres, ces fonctions sur les flux calculent sur un constituant à la fois ou parfois peuvent produire un élément du flux de sortie à partir de plusieurs constituants de l'entrée, à la manière d'un moyenneur glissant.

## Origine

[modifier | modifier le code]

Les flux ont été introduits par Gilles Kahn et David MacQueen en 1977 sous le nom de canaux (channels en anglais) dans le cadre de processus producteur-consommateur[1]. Le concept avait déjà été esquissé, par Peter J. Landin en 1965, sous le nom de stream, pour des listes finies[2].

## Références

[modifier | modifier le code]

1. ↑ Gilles Kahn, David B. MacQueen: Coroutines and Networks of Parallel Processes. IFIP Congress 1977: 993-998
2. ↑ Peter J. Landin: Correspondence between ALGOL 60 and Church's Lambda-notation: part I. Commun. ACM 8(2): 89-101 (1965)

## Voir aussi

[modifier | modifier le code]

* Streaming
* Structure de données
* Type (informatique)

v · m

Types de données

Non interprétée |

* Bit
* Byte
* Trit
* Tryte
* Mot

Numérique |

* Bignum
* Complexe (en)
* Décimal (en)
* Virgule fixe
* Virgule flottante
* Entier
* Non signé (en)
* Intervalle
* Rationnel (en)

Texte brut |

* Caractère
* Chaîne de caractères

Pointeur |

* Adressage mémoire
* Physique
* Virtuelle
* Référence

Composite (en) |

* Type algébrique de données
* Généralisé
* Tableau
* Tableau associatif
* Classe
* Dépendant
* Égalité (en)
* Inductive (en)
* Liste
* Objet
* Métaobjet
* Option (en)
* Produit
* Enregistrement
* Ensemble (set)
* Vecteur
* Union (en)
* Disjointe

Autres |

* Booléen
* Type vide
* Collection
* Conteneur
* Type énuméré
* Exception
* Fonction
* Opaque (en)
* Type récursif
* Sémaphore
* Flux
* Top (en)
* Type class (en)
* Type unité
* Void

Articles liés |

* Type abstrait
* Structure de données
* Généricité
* Kind (en)
* Métaclasse
* Parametric polymorphism (en)
* Primitive data type (en)
* Interface
* Subtyping (en)
* Type constructor (en)
* Conversion de type
* Type system (en)

* Portail de l’informatique
* Portail de la programmation informatique

*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.