Sistema de tipos

En los lenguajes de programación, un sistema de tipos es un sistema lógico que comprende un conjunto de reglas que asigna una propiedad llamada tipo a las diversas construcciones de un programa de computadora, como variables, expresiones, funciones o módulos. Estos tipos formalizan y hacen cumplir las categorías implícitas que el programador utiliza para tipos de datos algebraicos, estructuras de datos u otros componentes (p. ej., "cadena", "matriz de flotantes", "función que devuelve booleanos"). El propósito principal de un sistema de tipos es reducir las posibilidades de errores en los programas de computadora.definiendo interfaces entre diferentes partes de un programa de computadora y luego verificando que las partes se hayan conectado de manera consistente. Esta verificación puede ocurrir de forma estática (en tiempo de compilación), dinámicamente (en tiempo de ejecución) o como una combinación de ambas. Los sistemas de tipos también tienen otros propósitos, como expresar reglas comerciales, permitir ciertas optimizaciones del compilador, permitir el envío múltiple, proporcionar una forma de documentación, etc.

Un sistema de tipos asocia un tipo con cada valor calculado y, al examinar el flujo de estos valores, intenta garantizar o probar que no pueden ocurrir errores de tipo. El sistema de tipo dado en cuestión determina qué constituye un error de tipo, pero en general, el objetivo es evitar que las operaciones que esperan un cierto tipo de valor se utilicen con valores para los que esa operación no tiene sentido (errores de validez). Los sistemas de tipos a menudo se especifican como parte de los lenguajes de programación y se integran en intérpretes y compiladores, aunque el sistema de tipos de un lenguaje se puede ampliar con herramientas opcionales que realizan comprobaciones adicionales utilizando la sintaxis y la gramática de tipos originales del lenguaje.

Un ejemplo de un sistema de tipo simple es el del lenguaje C. Las partes de un programa en C son las definiciones de funciones. Una función es invocada por otra función. La interfaz de una función establece el nombre de la función y una lista de parámetros que se pasan al código de la función. El código de una función de invocación establece el nombre de la función invocada, junto con los nombres de las variables que contienen valores para pasarle. Durante la ejecución, los valores se colocan en el almacenamiento temporal, luego la ejecución salta al código de la función invocada. El código de la función invocada accede a los valores y hace uso de ellos. Si las instrucciones dentro de la función se escriben con la suposición de recibir un valor entero, pero el código de llamada pasó un valor de punto flotante, entonces la función invocada calculará el resultado incorrecto. El compilador de C comprueba los tipos de los argumentos pasados ​​a una función cuando se llama contra los tipos de los parámetros declarados en la definición de la función. Si los tipos no coinciden, el compilador genera un error en tiempo de compilación.

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.

You must log in to access this content
Iniciar con Google
Iniciar con Facebook
x