fbpx
Wikipedia

Tipado sensitivo al flujo

En teoría de lenguaje de programación, tipado sensitivo 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 tipado estático, una variable queda ligada a un tipo durante todo su tiempo de uso. En los sistemas de tipado 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:

// Object? significa que la variable "name" es de tipo Object pero puedes ser null void hello(Object? name) {  if (is String name) {  // Ahora "name" has tipo String en este bloque  print("Hola, ``name``!");  // es posible ahora usar métodos sobre String en ella  print(" String.size vale ``name.size``");  }  else if (exists name) {  // Ahora "name" tiene tipo Object en este bloque  print("Hola, objeto ``name``!");  }  else {  print("Hola a todos!");  } } 

Su salida es la siguiente:

Hola a todos! Hola, objeto 1! Hola, Pedro Pérez! String.size vale 8 

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.[1]

Implementaciones

Whiley, creado por David J. Pearce, fue el primer lenguaje en hacer uso de tipado sensitivo al flujo en 2009.[2][3]

Desde su introducción, otros lenguas han hecho uso de él, concretamente Ceylon, Kotlin, TypeScript[4]​ y Facebook Flow.[5][6][7][8]

Referencias

  1. Lukas Eder (11 de diciembre de 2014). «The Inconvenient Truth About Dynamic vs. Static Typing». blog.jooq.org. Consultado el 29 de marzo de 2016. 
  2. David J. Pearce (22 de septiembre de 2010). «On Flow-Sensitive Types in Whiley». whiley.org. Consultado el 29 de marzo de 2016. 
  3. David J. Pearce (8 de abril de 2012). «Whiley - Flow Typing». whiley.org. Consultado el 29 de marzo de 2016. 
  4. Ryan Cavanaugh (18 de noviembre de 2014). «TypeScript 1.4 sneak peek: union types, type guards, and more». blogs.msdn.microsoft.com. Consultado el 29 de marzo de 2016. 
  5. «Ceylon - Quick introduction - Typesafe null and flow-sensitive typing». ceylon-lang.org. Consultado el 29 de marzo de 2016. 
  6. «Null Safety». kotlinlang.org. Consultado el 29 de marzo de 2016. 
  7. «Type Checks and Casts». kotlinlang.org. Consultado el 29 de marzo de 2016. 
  8. Avik Chaudhuri, Basil Hosmer, Gabriel Levi (18 de noviembre de 2014). «Flow, a new static type checker for JavaScript». code.facebook.com. Consultado el 29 de marzo de 2016. 
  •   Datos: Q23656741

tipado, sensitivo, flujo, teoría, lenguaje, programación, tipado, sensitivo, flujo, sistema, tipos, donde, tipo, variable, determinado, flujo, control, clásicamente, lenguajes, tipado, estático, variable, queda, ligada, tipo, durante, todo, tiempo, sistemas, t. En teoria de lenguaje de programacion tipado sensitivo al flujo es un sistema de tipos donde el tipo de una variable es determinado por el flujo de control Clasicamente en los lenguajes con tipado estatico una variable queda ligada a un tipo durante todo su tiempo de uso En los sistemas de tipado sensible al flujo el tipo de una variable puede cambiar dentro del cuerpo de un metodo mientras atraviesa o fluye a traves de las estructuras de control El tipo se determina usando inferencia de tipos y la informacion de tipos fluye usando Tipo de dato algebraico Indice 1 Ejemplo 2 Beneficios 3 Implementaciones 4 ReferenciasEjemplo EditarEl siguiente ejemplo en Ceylon ilustra el concepto Object significa que la variable name es de tipo Object pero puedes ser null void hello Object name if is String name Ahora name has tipo String en este bloque print Hola name es posible ahora usar metodos sobre String en ella print String size vale name size else if exists name Ahora name tiene tipo Object en este bloque print Hola objeto name else print Hola a todos Su salida es la siguiente Hola a todos Hola objeto 1 Hola Pedro Perez String size vale 8Beneficios EditarEsta tecnica en conjunto con la inferencia de tipos reduce la necesidad de escribir anotaciones de tipo para todas las variables o hacer conversion de tipos como ocurre en lenguajes con sistemas dinamicos de tipos reduce la verbosidad en los lenguajes y ayuda a producir codigo mas conciso mas facil de leer y modificar Puede tambien ayudar a obtener implementaciones mas rapidas de lenguajes con tipos dinamicos al predecir estaticamente el tipo de objetos 1 Implementaciones EditarWhiley creado por David J Pearce fue el primer lenguaje en hacer uso de tipado sensitivo al flujo en 2009 2 3 Desde su introduccion otros lenguas han hecho uso de el concretamente Ceylon Kotlin TypeScript 4 y Facebook Flow 5 6 7 8 Referencias Editar Lukas Eder 11 de diciembre de 2014 The Inconvenient Truth About Dynamic vs Static Typing blog jooq org Consultado el 29 de marzo de 2016 David J Pearce 22 de septiembre de 2010 On Flow Sensitive Types in Whiley whiley org Consultado el 29 de marzo de 2016 David J Pearce 8 de abril de 2012 Whiley Flow Typing whiley org Consultado el 29 de marzo de 2016 Ryan Cavanaugh 18 de noviembre de 2014 TypeScript 1 4 sneak peek union types type guards and more blogs msdn microsoft com Consultado el 29 de marzo de 2016 Ceylon Quick introduction Typesafe null and flow sensitive typing ceylon lang org Consultado el 29 de marzo de 2016 Null Safety kotlinlang org Consultado el 29 de marzo de 2016 Type Checks and Casts kotlinlang org Consultado el 29 de marzo de 2016 Avik Chaudhuri Basil Hosmer Gabriel Levi 18 de noviembre de 2014 Flow a new static type checker for JavaScript code facebook com Consultado el 29 de marzo de 2016 Datos Q23656741 Obtenido de https es wikipedia org w index php title Tipado sensitivo al flujo amp oldid 125755279, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos