title: Tipado sensitivo al flujo
text: # Tipado sensitivo al flujo
  
  En teoría de lenguaje de programación, tipificación sensible al flujo es un sistema de tipos donde el tipo de una variable es determinado por el flujo de control.
  
  Clásicamente, en los lenguajes con tipifícado estático, una variable queda ligada a un tipo durante todo su tiempo de uso. En los sistemas de tipificación sensible al flujo, el tipo de una variable puede cambiar dentro del cuerpo de un método, mientras atraviesa (o fluye a través de) las estructuras de control. El tipo se determina usando inferencia de tipos y la información de tipos fluye usando Tipo de dato algebraico.
  
  ## Ejemplo
  
  El siguiente ejemplo en Ceylon ilustra el concepto:
  
  Su salida es la siguiente:
  
  ## Beneficios
  
  Esta técnica en conjunto con la inferencia de tipos reduce la necesidad de escribir anotaciones de tipo para todas las variables o hacer conversión de tipos, como ocurre en lenguajes con sistemas dinámicos de tipos, reduce la verbosidad en los lenguajes y ayuda a producir código más conciso, más fácil de leer y modificar.
  
  Puede también ayudar a obtener implementaciones más rápidas de lenguajes con tipos dinámicos al predecir estáticamente el tipo de objetos.
  
  ## Implementaciones
  
  Whiley, creado por David J. Pearce, fue el primer lenguaje en hacer uso de tipificación sensible al flujo en 2009.
  
  Desde su introducción, otros lenguas han hecho uso de él, concretamente Ceylon, Kotlin, TypeScript y Facebook Flow.
  
  