jueves, 18 de noviembre de 2010

Lenguaje de programación fuertemente tipado

Se dice que un lenguaje de programacion fuertemente tipado es cuando no se permiten violaciones sobre los tipos de datos, esto quiere decir que, necesitamos una variable de un tipo concreto, no se puede usar como si fuera de otro tipo, solo que se haga una conversión.


La mayoría de los lenguajes que vimos en la clase de imperativos son fuertemente tipados a diferencia de los lenguajes declarativos que suelen no estar tipado.


Los lenguajes de programación algunas veces tiene otro lenguaje de tipos de datos al momento de declarar variables, lo que hace es instruir a el compilador respecto al tipo de valor que puede tomar cada variable.


int robert; //o sea, la variable roberto 
     //puede tener valores numericos enteros.


Los tipos también se necesitan que declarar en funciones ejemplo:

float Calculo(float ingreso)
{
   ingreso = ingreso + 0.75;
   return ingreso;
}

En donde se requiere que al salir de la función sea float, si ponemos.

int robert;
Calculo(robert);
float Calculo(float ingreso)
{
   ingreso = ingreso + 0.75;
   return ingreso;
}


Nos marcaría error el compilador ya que ingreso es float y necesita a fuerzas entrar y regresar un float porque sus tipos no coinciden exactamente.

¿Que hacer en estos casos?
Utilizar typcasting que convierte los tipos de datos, debemos de convertirlos explícitamente y debe de estar soportado por el compilador.

por ejemplo

Calculo((float(rober)
float Calculo(float ingreso)
{
   ingreso = ingreso + 0.75;
   return ingreso;
}

En donde indicamos a el compilador que queremos convertir la variable robert a flotante para poder así mandarla a la función.


Es importante decir que la conversión de entero a flotante es asi como en el ejemplo pero si queremos hacer el caso contrario no es admitido, ya que emitirá un error de compilación.

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.

1 comentario: