Teoría de tipos
# Teoría de tipos

En matemáticas, lógica y ciencias de la computación, la teoría de tipos es cualquiera de varios sistemas formales que pueden servir como alternativas a la teoría de conjuntos como fundamento de las matemáticas constructivas, o al estudio de tales formalismos en general. En la teoría de lenguajes de programación, una rama de las ciencias de la computación, la teoría de tipos puede referirse al diseño, análisis y estudio de los sistemas de tipos, aunque algunos teóricos de la computación limitan el significado del término al estudio de formalismos abstractos como el cálculo lambda tipado.

## Historia

Bertrand Russell inventó la primera teoría de tipos en respuesta a su descubrimiento de que la versión de Gottlob Frege de la teoría ingenua de conjuntos es afectada por la paradoja de Russell. Este tipo de la teoría de tipos aparece primariamente en el Principia Mathematica de Whitehead y Russell. Esta teoría evita la paradoja de Russell creando una jerarquía de tipos, luego asignando cada entidad matemática a un tipo. Objetos de un tipo dado son creados exclusivamente por objetos de un tipo anterior (aquellos más abajo en la jerarquía), por lo tanto evitando ciclos.

Alonzo Church, inventor del cálculo lambda, desarrolló una lógica de orden superior comúnmente llamada Teoría de Tipos de Church, para evitar la paradoja de Kleen-Rosser que afectaba al cálculo lambda puro original. La teoría de tipos de Church es una variante del cálculo lambda en el cual las expresiones (también llamadas fórmulas o términos lambda) son clasificadas en tipos, y los tipos de expresiones restringen las maneras en que pueden ser combinadas. En otras palabras, es un cálculo lambda tipado. Hoy en día muchos otros cálculos están en uso, incluyendo la teoría de tipos intuicionista de Per Martin-Löf, el Sistema F de Jean-Yves Girard y el Cálculo de Construcciones. En el cálculo lambda tipado, los tipos juegan un papel similar al de los conjuntos en la teoría de conjuntos.

