“Los
tipos se infieren, es decir se comprueban, de forma estática, en tiempo de
compilación.”
En los
lenguajes de programación con disciplina de tipos, cada tipo
representa una colección de valores o datos similares. El conocer los tipos de
las funciones ayuda a documentar los programas y evitar errores en tiempo
de ejecución.
Un lenguaje
tiene disciplina de tipos si los errores de tipos se detectan siempre ⇒ es necesario determinar los tipos de todos los
operandos, ya sea en tiempo de compilación o de ejecución
·
Pascal
• Cercano a
tener disciplina de tipos pero no realiza comprobación de tipos en los
registros variantes (incluso puede omitirse la etiqueta discriminatoria en
dichos registros)
·
Ada
• Resuelve
el problema de los registros variantes realizando comprobación dinámica de
tipos (sólo en este caso)
• Tiene una
función de biblioteca que permite extraer un valor de una variable de cualquier
tipo (como una cadena de bits) y usarlo como un tipo diferente (no es una
conversión de tipos) ⇒ se trata de
una suspensión temporal de la comprobación de tipos
·
C
• No tiene
disciplina de tipos por:
− No se
realiza comprobación de tipos sobre las uniones
− Permite
funciones con parámetros sobre los que no se realiza comprobación de tipos
·
Java
• Tiene
disciplina de tipos (no hay uniones)
·
ML y
Haskell
• Poseen
disciplina de tipos
• Los tipos
de los parámetros de las funciones (y de estas mismas) se conocen en tiempo de
compilación (ya sea por declaración del usuario o por inferencia de tipos)
Haskell y
otros lenguajes funcionales utilizan el sistema de tipos de Milner, que tiene
dos características fundamentales:
·
Disciplina
estática de tipos: Los programas bien tipados se pueden conocer en tiempo de
compilación. Un programa bien tipado se puede utilizar sin efectuar
comprobaciones de tipo en tiempo de ejecución, estando garantizado que no se
producirán errores de tipo durante el computo.
·
Polimorfismo:
Permite que una misma función se pueda aplicar a parámetros de diferentes
tipos, dependiendo del contexto en el que la función se utilice.
No hay comentarios:
Publicar un comentario