
En informática , un flujo de datos es una secuencia de elementos de datos potencialmente ilimitados que se ponen a disposición a lo largo del tiempo. Un flujo de datos puede imaginarse como elementos en una cinta transportadora que se procesan uno a uno, en lugar de en grandes lotes. Los flujos de datos se procesan de forma diferente a los datos por lotes .
Las funciones normales no pueden operar sobre flujos de datos en su totalidad porque estos contienen datos potencialmente ilimitados. Formalmente, los flujos de datos son codatos (potencialmente ilimitados), no datos (que son finitos).
Las funciones que operan sobre un flujo para producir otro flujo se conocen como filtros y se pueden conectar en tuberías de forma análoga a la composición de funciones . Los filtros pueden operar sobre un elemento del flujo a la vez o basar un elemento de salida en varios elementos de entrada, como una media móvil .
Ejemplos
El término corriente se utiliza de varias maneras similares:
- La edición de flujo , al igual que con sed , awk y perl , procesa uno o varios archivos directamente, sin necesidad de cargarlos en una interfaz de usuario. Un ejemplo de su uso es realizar una búsqueda y reemplazo en todos los archivos de un directorio desde la línea de comandos.
- En Unix y sistemas relacionados basados en el lenguaje C , un flujo es una fuente o destino de datos, generalmente bytes o caracteres individuales . Los flujos son una abstracción que se utiliza al leer o escribir archivos, o al comunicarse a través de sockets de red . Los flujos estándar son tres flujos disponibles para todos los programas.
- Los dispositivos de entrada/salida pueden interpretarse como flujos de datos, ya que producen o consumen una cantidad potencialmente ilimitada de datos a lo largo del tiempo.
- En la programación orientada a objetos , los flujos de entrada generalmente se implementan como iteradores o secuencias , como se utiliza en Simula . [ 1 ] : 12.1
- En el lenguaje Scheme y otros, un flujo es una secuencia de elementos de datos que se evalúa de forma diferida o con retraso . Un flujo se puede usar de forma similar a una lista, pero los elementos posteriores solo se calculan cuando son necesarios. Por lo tanto, los flujos pueden representar secuencias y series infinitas . [ 2 ]
- En la biblioteca estándar de Smalltalk y también en otros lenguajes de programación , un flujo es un iterador externo . Al igual que en Scheme, los flujos pueden representar secuencias finitas o infinitas.
- Procesamiento de flujos : en el procesamiento paralelo , especialmente en el procesamiento gráfico, el término flujo se aplica tanto al hardware como al software . En este contexto, define el flujo de datos casi continuo que se procesa en un lenguaje de programación de flujo de datos tan pronto como el estado del programa cumple la condición de inicio del flujo.
Aplicaciones
Los flujos de datos pueden utilizarse como tipo de datos subyacente para los canales en la comunicación entre procesos .
Otros usos
El término flujo también se aplica a las bifurcaciones del sistema de archivos , donde varios conjuntos de datos se asocian a un único nombre de archivo. Generalmente, existe un flujo principal que conforma los datos normales del archivo, mientras que los flujos adicionales contienen metadatos . En este contexto, el término flujo se utiliza para indicar datos de tamaño variable, a diferencia de los metadatos de tamaño fijo, como los atributos extendidos , pero difiere del uso habitual del término flujo , que se refiere a datos disponibles a lo largo del tiempo, potencialmente de forma infinita.
Véase también
Referencias
- ↑ Dahl, Ole Johan ; Myhrhaug, Bjørn; Nygaard, Kristen (1970). Lenguaje base común (PDF) (Reporte). Centro de Computación de Noruega. Archivado desde el original el 19 de septiembre de 2024 . Consultado el 20 de agosto de 2025 .
- ↑ SRFI 41: Corrientes
Enlaces externos
- Un algoritmo aproximado de diferencia L1 para flujos de datos masivos, 1995 Feigenbaum et al.
- Datos informáticos
- Comunicación entre procesos