Re: [Programación] Ayuda con código para procesar textos

Angel Arancibia angel.arancibia en gmail.com
Mar Feb 24 16:24:12 ART 2009


El día 24 de febrero de 2009 16:16, Nicolás Aimetti <> escribió:
> Eso no es excusa. En ML (
> http://en.wikipedia.org/wiki/ML_(programming_language) )uno puede escribir
> un programa entero sin explicitar ningún tipo y el interprete (o compilador)
> inducir todos los tipos automáticamente. Y ML tiene un tipado super fuerte.
>
> Ver también: http://en.wikipedia.org/wiki/Hindley-Milner_type_inference
>
> Saludos,
> Nicolás.

Quizas fuera un poco del topic original, pero me parece interesante la
informacion que se esta dando sobre los sistemas de tipos. Mi granito
de arena sobre la teoria de tipos.

Los sistemas de tipos (asi a la pasada y muy por arriba) son mucho mas
que ponerle int char o string a delante de las variables. Sirven para
distinguir entre expresiones validas y no.

Cada expresion valida denota un valor. Cada valor pertenece a un
conjunto. Los tipos denotan conjuntos. Luego, toda expresion debe
tener tipo para ser valida.

Basicamente el sistema de tipos esta formado por dos grandes partes,
que se busca que sean lo mas perfectas posibles (que no le den tipo a
la mayor cantidad posible de expresiones invalidas + que le den tipo a
la maxima cantidad de expresiones validas + que sea automatica):

Inferencia de Tipos:
Se encarga de que dada una expresion E, determina si tiene tipo o no
(por ende valida o no) segun las reglas.

Chequeo de tipos:
dado una expresion E y un tipo T, verifica si E es de tipo T

Un sistema de tipado fuerte, considera expresiones validas solo a
aquellas que tienen (o se les puede calcular .....) su tipo segun las
reglas del sistema de tipos, de lo contrario son invalidas.

Quien alguna vez vio o programo en lenguajes de alto orden, usando
alto orden (y con "alto" orden no me refiero a como se dice ahora
"uuu.. alta yantas papa", sino que se interpretan a las funciones como
valores, luego, una funcion puede tomar y/o devolver funciones)
aprecia mucho le sistema de tipos ya que si tu programa (o funcion, o
expresion, o valor ... son todo lo mismo no :) ?) tipa, podes estar un
99% seguro que el programa hace lo que vos queres que haga.

Los sistemas no tipados, son mucho mas rapidos (en tiempo de
compilacion) ya que omiten todo el chequeo del sistema de tipos.

Bueno eso es todo, como dije, un poco fuera del topic original, pero
quizas le sirva a alguien (quizas a mi?) para aclarar los conceptos.

Saludos,

Angel



Más información sobre la lista de distribución Programacion