eniac

Los primeros ordenadores programables utilizaban combinaciones de interruptores y cambios en el cableado para establecer el comportamiento de la máquina. Un ejemplo es ENIAC, considerada la primera computadora electrónica de propósito general, que fue presentada en 1946. Fue utilizada para el cálculo de trayectorias de proyectiles, pudiendo resolver, por ejemplo, 5000 sumas en 1 segundo.

Otra forma de indicar las operaciones que debía realizar el ordenador, así como los datos sobre los que debía operar, era mediante tarjetas perforadas. En ellas se realizaban una serie de perforaciones que permitían codificar la información como si fuera un código binario (perforado, no perforado). Un dispositivo lector de tarjetas realiza la lectura columna a columna obteniendo la información que se encuentra codificada en la tarjeta.

tarjeta_perforada

Con el fin de facilitar la tarea de realizar la programación surge el lenguaje ensamblador, mediante el cual cada instrucción del lenguaje máquina se convierte en un código nemotécnico más fácil de utilizar por los programadores. Por ejemplo, para indicar al ordenador que realice una suma se debe utilizar la instrucción ADD. Este tipo de lenguaje de programación se considera de bajo nivel por su cercanía con el lenguaje máquina que utiliza internamente el procesador.

Este lenguaje tiene como inconvenientes que requiere un alto conocimiento del funcionamiento interno del ordenador, los programas no son transportables de un tipo de ordenador a otro, y resulta bastante difícil escribir los programas. Por otro lado, tiene la ventaja de que la ejecución de los programas es muy rápida.

Ejemplo de programa "Hola mundo" en lenguaje ensamblador para procesadores x86:

 .model small
.stack
.data
Cadena1 DB 'Hola Mundo.$'
.code
programa:
mov ax, @data
mov ds, ax
mov dx, offset Cadena1
mov ah, 9
int 21h
end programa

A medida que los programas van siendo más complejos, la programación en ensamblador se va haciendo más complicada, así como la tarea de mantenimiento de la programas escritos en ese lenguaje. Por ello van apareciendo otros lenguajes llamados de alto nivel que se asemejan más al lenguaje humano.

Los programas escritos en lenguajes de alto nivel son más fáciles de escribir por los programadores y realizar su mantenimiento, pueden ser ejecutados en distintos tipos de ordenadores sin tener que modificar el código y no requieren un alto nivel de conocimiento del funcionamiento interno del ordenador. Pero las instrucciones escritas en esos lenguajes deben ser traducidas a lenguaje máquina para que puedan ser comprendidas por el procesador, por lo que es necesario utilizar programas traductores como los compiladores o intérpretes.

Uno de los primeros lenguajes de alto nivel que aparecieron, sobre el año 1955, y que tuvo una gran difusión fue Fortran. Este lenguaje se considera de propósito general, aunque estaba especialmente orientado al cálculo numérico y científico.

Ejemplo de programa "Hola mundo" escrito en Fortran: 

PROGRAM HOLA
PRINT *, '¡Hola, mundo!'
END

Otros lenguajes de propósito general que han sido amplamente utilizados: Basic (1964), Pascal (1970), C (1972), C++ (1983), Perl (1987), Java (1995), etc.

Han aparecido también lenguajes que, en vez que tener un enfoque de propósito general, están especializados en el desarrollo de aplicaciones de un determinado tipo. Por ejemplo, Cobol (1960) está orientado al sector empresarial, Prolog (1972) a la inteligencia artificial, SQL (1978) a la gestión de bases de datos, PHP (1995) al desarrollo web, etc.

Linea de tiempo de la historia de los lenguajes de programación