Introducción a los Lenguajes y Paradigmas de Programación

Los primeros computadores costaban millones de dólares de 1940, ocupaban una o varias habitaciones y consumían tanta electricidad como una fábrica de tamaño mediano.

El Colossus fué el primer computador electrónico digital completamente programable (1943-1944).

Los primeros computadores se programaban en lenguaje máquina: una secuencia de bits que controla directamente al procesador. Los programadores usaban lenguaje máquina entre otras cosas porque estaban convencidos de que el tiempo del computador era mucho mas valioso que el tiempo del programador.

El lenguaje ensamblador fue inventado para permitir que las operaciones fueran expresadas mediante abreviaciones nemónicas.

Al principio la correspondencia era uno-uno entre nemónicos e instrucciones de la máquina. Luego se les añadieron expansiones de macros, que permiten la abreviación de secuencias parametrizadas de secuencias de instrucciones que aparecen a menudo.

Cuando los computadores empezaron a evolucionar y a tener distintos diseños, comenzó también la frustración de tener que reescribir los programas para cada nueva máquina. empezó a ser clara la necesidad de disponer de un lenguaje que fuera independiente de la máquina en el cual fuera posible expresar usando una notación matemática los cálculos. En la década de los 50 aparece el lenguaje Fortran. El lenguaje Lisp especificado en 1958 por John McCarthy es sólo un año mas joven. También de esa época es el lenguaje Algol.

Los compiladores son los programas del sistema que se encargan de la traducción desde un lenguaje de alto nivel al lenguaje ensamblador o al lenguaje máquina.

Al comienzo los programadores podían escribir código en ensamblador que era mas eficiente que el que el compilador producía. Hoy en día, en parte debido a la complejidad del hardware (pipelining, multiples unidades funcionales, etc.) un compilador puede producir mejor código que el escrito por un humano. Además el coste del trabajador hoy en día sobrepasa con mucho al costo del hardware. Se trata por tanto de economizar en la construcción de programas y su mantenimiento.



Subsecciones
Casiano Rodriguez León 2015-01-07