Corrutina

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

En un programa, una corrutina es una unidad de tratamiento semejante a una subrutina, con la diferencia de que, mientras que la salida de una subrutina pone fin a esta, la salida de una corrutina puede ser el resultado de una suspensión de su tratamiento hasta que se le indique retomar su ejecución (multitarea cooperativa). La suspensión de la corrutina y su reanudación pueden ir acompañadas de una transmisión de datos.

Las corrutinas permiten realizar tratamientos basados en algoritmos cooperativos como iteradores, generadores, tuberías, etcétera.

Según Donald Knuth, el término corrutina fue inventado por Melvin Conway en 1958, cuando trabajaba en la escritura de un programa en ensamblador.[1]​ Más tarde, Conway propuso organizar un compilador en un conjunto de corrutinas, lo que trajo la posibilidad de utilizar diferentes rutas durante la depuración y de utilizar una sola estructura en producción.[2]

Véase también[editar]

Referencias[editar]

  1. Knuth, Donald Ervin. «1.4.5: History and Bibliography». Fundamental Algorithms. The Art of Computer Programming (en inglés) (3.ª edición). Addison-Wesley. p. 229. ISBN 0-201-89683-4. 
  2. Conway, Melvin E. (julio de 1963). «Design of a separable transition-diagram compiler». Communications of the ACM (en inglés) 6 (7).