sábado, 5 de abril de 2008

Tipado en lenguajes de programación

Últimamente estoy trabajando bastante no por gusto sino por necesidades académicas con Linux pero no en el entorno gráfico sino en la Shell, o sea la pantalla negra.
Al principio la verdad es que era como el típico garrulo del pueblo, creía que un editor de texto era como un compilador, no sabía que era un script, en fin que producía bastantes carcajadas y como en mi clase muchos vienen de modulos o ya controlan el tema pues los pocos que venimos de selectividad al menos en esa asignatura pues los profesores daban clase ya dando muchas cosas por sabido.
Si algo me ha llamado la atención es el tipado, es decir las diferencias entre si algo es un número entero, un caracter que no sea un dígito o una cadena de texto.
Evidentemente puedo utilizar un lenguaje más técnico pero al fin y al cabo quiero que esto lo lea la gente mdio interesada en el tema.
Por otro lado en otra asignatura estoy programando en Ada95 un lenguaje con uso en aplicaciones militares mayoritariamente. En este caso por ejemplo si defines un subtipo que son los dígitos del 1 al 9 si lo defines como un tipo nuevo no es posible operar con números enteros que vayan entre 1 y 9.
Esto es la propiedad de tipado fuerte presente en lenguajes de alto nivel.
Por otro lado también estoy con C, un lenguaje bastante odioso para mí porque es de muy bajo nivel dentro de los lenguajes de alto nivel.
El compilador GCC se traga casi todo lo que le pongas que no tenga errores sintácticos.
Esto es un peligro para la ejecución evidentemente pero es de gran utilidad ya no digo en C pero por ejemplo en la Shell de Linux que cortes una cadena de caracteres yo que se cuando haces un ping a otra máquina del tiempo que tarda y te lo interpreta si lo comparas con test y la opción -eq como un entero que es lo que hace este comando y si lo comparas con un test y un = de opción pues te lo saca como string.
Yo personalmente lo prefiero así la verdad porque el usuario al fin y al cabo es el que controla lo que ocurre en su programa y en Ada95 hay que hacer conversiones que tienes funciones que te las hace pero si no fuera tan fuerte el tipado pues que el usuario controle lo que quieres meter que al final la complejidad entre unas cosas y otras es la misma.
No voy a hablar de medidas de complejidad porque a lo mejor resulta más legible vuestro nombre en japonés con el Gadget que he puesto.
No digo que un compilador permita hacer cualquier cosa pero tanto como para programadores principiantes como yo como para expertos sería mucho mejor que por ejemplo si tienes un 1 un caracter lo codificara con el código ASCII como en C y cosas así no como en Ada95 que por poder no se puede ni escribir un entero como texto, es decir hay que convertirlo a string o una biblioteca especifica para escribir enteros.

1 comentario:

Anónimo dijo...

No se la verdad es que depende un poco de las necesidades. Para hacer algo en plan software para el usuario es mejor que sea fuerte porque siempre el programador puede descuidarse y a veces hacer una traza con el debugger pues cansa la verdad.
Para un servidor o llamadas al sistema pues si mejor que no exista el concepto de "tipo".

Bueno y ya estoy en Fuenlabrada, esto ha crecido bastante. He ido a ver el pabellon y bueno no tengo pasta mas que para el McDonalds y encima lo tengo al lado asi que o eso o nada jeje.
A ver si conoces un restaurante mas o menos bueno y barato para comer mañana despues del partido antes de irnos guia fuenlabreño jaja.

Es que el hotel ese al lado del pabellon te cobraban 75 por A.D solo que abusones.