Últimos artículos:

Microgravedad
15/04/12

Energía azul
20/03/12

Reseña de libros (II)
06/01/12

Lenguajes de programación
06/11/11

El estereotipo del científico
01/10/11

Últimos comentarios:

El estereotipo del científico
Marlene

El estereotipo del científico
Angel Garcimartín Montero

El estereotipo del científico
Ion Apesteguia Bardi

El estereotipo del científico
Ion Apesteguia Bardi

El estereotipo del científico
Dalia Hernández.

Buscar artículos

Buscar 
 

Materia Blanda
Ángel Garcimartín Montero

< artículo anterior artículo siguiente >
Lenguajes de programación
06/11/11

            El mes pasado murió Dennis Ritchie. Fue el creador del lenguaje de programación C. La revista Time recogía en portada el deceso de Steve Jobs; en cambio, a Ritchie sólo le dedicó una brevísima nota (de una sola frase) en la columna de obituarios. Y sin embargo, sin embargo … sería discutible si Ritchie no contribuyó en mayor medida al avance de la informática.

            A fin de que un ordenador realice una tarea es necesario traducir nuestras ideas para expresarlas en términos de las escasas operaciones que puede llevar a cabo el microprocesador. Estas consisten básicamente en mover los bits de un lado a otro, cambiar su estado de cero a uno o de uno a cero, comparar dos bits, sumarlos, y no mucho más. Al principio de la era de los ordenadores, los programadores escribían en lenguaje máquina: ristras de números que indicaban exactamente esas órdenes. Imagínense lo complicado que podía llegar a ser multiplicar dos números enteros.

            El siguiente paso (“segunda generación” de los lenguajes informáticos) fue el assembly o lenguaje ensamblador. Consta de unos pocos comandos que son representaciones simbólicas de las operaciones del lenguaje máquina. Por lo menos ya no son listas de números completamente ilegibles. Por ejemplo:

push    ax                     

mov     ah,9                   

mov     dx,sp                  

int     21h                    

add     sp,6                   

            Todavía duro de leer, por supuesto. Una vez escrito, hay que traducirlo a lenguaje máquina. Eso se hace con un compilador. El lenguaje ensamblador es fácil de compilar porque cada orden corresponde exactamente a una instrucción en lenguaje máquina.

            Aquí es donde llega Ritchie, el C, y otros lenguajes de “tercera generación”. Téngase en cuenta que el ensamblador depende del microprocesador (del chip que tenga el ordenador, vamos). Los lenguajes de tercera generación (como el COBOL o el FORTRAN) ya no utilizan código directamente trasladable a lenguaje máquina. Por el contrario, el compilador contiene librerías donde están implementadas varias funciones usadas habitualmente (así, pueden contener código para calcular el coseno de un ángulo). El compilador toma el programa y lo traduce al lenguaje máquina del procesador en el que se va a ejecutar con la ayuda de las librerías. Los lenguajes de tercera generación son portables (el código se lleva de un ordenador a otro y se compila donde se quiera ejecutar), y son más fáciles de leer (pues sus comandos son parecidos a las palabras del lenguaje humano).

            Este avance permitió que muchas personas empezaran a escribir sus propios programas: no hacía falta conocer los arcanos de cada procesador ni dedicar largas y tediosas horas a escribir código que más parece una cábala que un algoritmo. La informática progresó entonces, hacia los años 70, de manera increíble, irrumpiendo en todos los ámbitos: la ciencia, los negocios, el hogar … El C es un lenguaje de tercera generación, muy potente, elaborado por Ritchie. Su uso, 40 años después de su invención, sigue siendo muy intenso. El sistema operativo UNIX, en cuya creación también colaboró Ritchie, y su pariente el Linux, están escritos en C, por ejemplo. Hay muchísimos lenguajes de programación. Cada uno de ellos suele tener ventajas para alguna tarea específica. El C es sumamente versátil.

            Aún hay una “cuarta generación”. Conforme vamos avanzando de nivel, los programas tienen una sintaxis y unas palabras más parecidas al lenguaje humano que al de la máquina. Por ejemplo, Mathematica y Matlab son lenguajes de cuarta generación. En realidad, más que lenguajes son entornos de programación, en los que se integra el editor de texto, las representaciones gráficas, etc. Para que se aprecie la diferencia, he aquí una captura de la pantalla de mi ordenador donde se muestra un programa escrito en C y su correspondiente salida; el programa escribe Hola y calcula 2 + 3

           

           

            Y ahora, lo mismo en Matlab:

         
            


            Es un ejemplo gráfico de la diferencia entre un lenguaje de bajo y alto nivel (la "generación" a la que pertenecen). Pero por el camino hemos perdido velocidad. En muchas aplicaciones, el C resulta unas diez veces más rápido que Matlab. Así que muchos usamos C cuando se necesita eficiencia, y valoramos el trabajo de Dennis Ritchie. En señal de aprecio, vaya esta foto de mi ejemplar del libro en el que describió el lenguaje C, junto con B. Kernighan. La influencia que ha tenido esta obra ha sido profunda y duradera.

           

 

0 comentarios a "Lenguajes de programación"

Escribir comentario

Escribir comentario  Escribir comentario

Nombre:

Comentario:

Código de validación:   Nuevo código
Introduzca el código:
 

Enviar 

Revista Investigación y Ciencia: 428 -MAYO 2012
Artículos (entre otros):
La singularidad de cada cerebro
El futuro de las estrellas
Cerrar el paso al VIH
El futuro de la energía solar
Dinosaurios de un continente desaparecido

 más información

Revista Mente y cerebro: 54 -Naturaleza y psique
Artículos (entre otros):
El poder de la naturaleza
La influencia de las flores
Sentimiento social en pañales
Sin rumbo fijo
Sinapsis para recordar

 más información