stringtranslate.com

Tipificación manifiesta

En informática, la tipificación manifiesta es la identificación explícita por parte del programador de software del tipo de cada variable que se declara. Por ejemplo: si la variable X va a almacenar números enteros, entonces su tipo debe declararse como entero. El término "tipificación manifiesta" se utiliza a menudo junto con el término tipificación latente para describir la diferencia entre la pertenencia al tipo estático en tiempo de compilación del objeto y su identidad de tipo en tiempo de ejecución .

Por el contrario, algunos lenguajes de programación utilizan tipado implícito (también conocido como inferencia de tipos ), donde el tipo se deduce del contexto en tiempo de compilación, o permiten tipado dinámico en el que la variable simplemente se declara y se le puede asignar un valor de cualquier tipo en tiempo de ejecución.

Ejemplos

Considere el siguiente ejemplo escrito en el lenguaje de programación C :

#incluir <stdio.h> int main ( void ) { char s [] = "Cadena de prueba" ; float x = 0.0f ; int y = 0 ;               printf ( "Hola, mundo! \n " ); return 0 ; }  

Las variables s , x e y se declararon como una matriz de caracteres, un número de punto flotante y un entero, respectivamente. El sistema de tipos rechaza, en tiempo de compilación, falacias como intentar sumar s y x . Desde C23 , la inferencia de tipos se puede utilizar en C con la palabra clave auto. [1] Utilizando esa característica, el ejemplo anterior podría convertirse en:

#incluir <stdio.h> int main ( void ) { char s [] = "Cadena de prueba" ; // auto s = "Cadena de prueba"; es equivalente a char* s = "Cadena de prueba"; auto x = 0.0f ; auto y = 0 ;                 printf ( "Hola, mundo! \n " ); return 0 ; }  

De manera similar al segundo ejemplo, en ML estándar no es necesario declarar explícitamente los tipos , sino que el tipo se determina mediante el tipo de la expresión asignada.

sea  ​​val  s  =  "Cadena de prueba"  val  x  =  0.0  val  y  =  0 en  print  "¡Hola, mundo! \n " fin

No hay tipos manifiestos en este programa, pero el compilador aún infiere los tipos stringy realpara intellos, y rechazaría la expresión s+xcomo un error de tiempo de compilación.

Referencias

  1. ^ "WG14-N3007: Inferencia de tipos para definiciones de objetos". open-std.org . 2022-06-10. Archivado desde el original el 24 de diciembre de 2022.

Enlaces externos