Lenguaje de programación fuertemente tipado

Lenguaje de programación fuertemente tipado

Lenguaje de programación fuertemente tipado

Un lenguaje de programación es fuertemente tipado si no se permiten violaciones de los tipos de datos, es decir, dado una variable de un tipo concreto, no se puede usar como si fuera una variable de otro tipo distinto a menos que se haga una conversión. No hay una única definición de este término. Un lenguaje que no es fuertemente tipado se dice que no está tipado.

La mayoría de los lenguajes imperativos son fuertemente tipados mientras que los lenguajes declarativos no suelen estar tipados.

Contenido

Explicación detallada

Los lenguajes de programación suelen contar con un sublenguaje de tipos para declarar variables. Este sublenguaje instruye al compilador respecto al tipo de valores que puede adoptar cada variable. Por ejemplo:

int X;

en el Lenguaje de programación C significa "la variable X adopta valores numéricos enteros".

Estos tipos también se declaran para todos los argumentos de procedimientos o subrutinas. Por ejemplo:

float subrutina(float Parametro)
{
   return Parametro + 1.5;
}

Este procedimiento acepta un número en coma flotante (número real) y le suma 1,5.

En los lenguajes fuertemente tipados, el compilador no permite que se use una variable como parámetro de un procedimiento si sus tipos no coinciden exactamente. En el ejemplo anterior, no sería posible invocar la subrutina con la variable "X":

subrutina(X)

ya que el compilador generaría un error. El motivo es que este tipo de expresiones suelen ser debidas a errores o despistes del programador.

Conversión de tipos (typecasting)

Cuando un lenguaje es fuertemente tipado, el programador debe explícitamente convertir un tipo de datos en otro. Esto se conoce como conversión o moldeado de tipos (typecasting) y también debe estar soportado por el compilador. Por ejemplo:

subrutina((float)X)

Indica al compilador que no estamos cometiendo un error y realmente deseamos convertir la variable "X" (entera) en una variable de coma flotante para invocar a "subrutina".

Cada lenguaje de programación puede ser más o menos tipado según en que casos exige el typecasting. Por ejemplo, la conversión automática entre entero y coma flotante podría ser admitida, pero no al contrario. Si no es factible la conversión entre un tipo u otro, el compilador también emitirá un error de compilación.

Lenguajes no tipados

Los lenguajes de programación no tipados no controlan los tipos de las variables que declaran, de este modo, es posible usar variables de cualquier tipo en un mismo escenario. Por ejemplo, una función puede recibir como parámetro un valor entero, cadena de carácteres, flotante...

No hay que confundir el término con los lenguajes de tipos dinámicos, en los que los tipos de las variables se deciden en tiempo de ejecución, si bien es cierto que muchos lenguajes de programación de tipos dinámicos (en los que no se declaran los tipos de datos) son también no tipados.

No son necesarias las conversiones de tipos, por lo tanto el siguiente ejemplo es correcto

a = 2  //a es un entero
cad = "prueba de texto"  //cad es una cadena de carácteres
resultado = cad + a  //resultado es una cadena de caracteres (las conversiones dependen del lenguaje)

Ejemplos de lenguajes fuertemente tipados

Ejemplos de lenguajes no tipados

Obtenido de "Lenguaje de programaci%C3%B3n fuertemente tipado"

Wikimedia foundation. 2010.

См. также в других словарях:

  • Lenguaje de programación fuertemente tipado — Un lenguaje de programación es fuertemente tipado si el compilador comprueba que no se violan los tipos de datos. No hay una única definición de este término. Un lenguaje que no es fuertemente tipado se dice que no está tipado. La mayoría de los… …   Enciclopedia Universal

  • Lenguaje de programación Miranda — Saltar a navegación, búsqueda Miranda fue desarrollado entre los años 1985 y 1986 por David Turner. Se trata de un lenguaje de programación funcional sucesor de SASL y KRC. El principal objetivo de este lenguaje era el desarrollar una versión… …   Wikipedia Español

  • Lenguaje de programación Limbo — Saltar a navegación, búsqueda Limbo Paradigma: Concurrente Apareció en: 1995 Diseñado por: Sean Dorward, Phil Winterbottom, and Rob Pike Desarrollador: Bell Labs/Vita Nuova …   Wikipedia Español

  • Lenguaje de programación Gödel — Saltar a navegación, búsqueda Gödel es un lenguaje de programación declarativo, de propósito general que adhiere al paradigma de la programación lógica. Es un lenguaje fuertemente tipado, con un sistema de tipos basado en many sorted logic con… …   Wikipedia Español

  • Lenguaje de programación Oberon — Saltar a navegación, búsqueda Oberon es un lenguaje de programación orientado a objetos y procedimental creado por Niklaus Wirth (autor también de Pascal, Modula y Modula 2) y sus colaboradores del ETHZ (Suiza). Oberon puede considerarse una… …   Wikipedia Español

  • Lenguaje de programación Ada — Ada es un lenguaje de programación estructurado y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los EE.UU. Es un lenguaje multipropósito, orientado a… …   Enciclopedia Universal

  • Lenguaje de programación Oberon — Oberon es un lenguaje de programación orientado a objetos y procedimental creado por Niklaus Wirth (autor también de Pascal, Modula y Modula 2) y sus colaboradores del ETHZ (Suiza). Oberon puede considerarse una evolución de Modula 2 con un… …   Enciclopedia Universal

  • Miranda (lenguaje de programación) — Miranda fue desarrollado entre los años 1985 y 1986 por David Turner. Se trata de un lenguaje de programación funcional sucesor de SASL y KRC. El principal objetivo de este lenguaje era el desarrollar una versión comercial de un lenguaje… …   Wikipedia Español

  • Java (lenguaje de programación) — Este artículo o sección se encuentra desactualizado. Es posible que la información suministrada aquí haya cambiado o sea insuficiente …   Wikipedia Español

  • Ada (lenguaje de programación) — Ada es un lenguaje de programación orientado a objetos y fuertemente tipado de forma estática que fue diseñado por Jean Ichbiah de CII Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje multipropósito,… …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»