Los lenguajes de programacin son lenguajes de caracteres (alfabeto) para
comunicarse con una maquina en lo particular las computadoras. Este tipo de lenguaje han evolucionado a lo largo del tiempo y se han vuelto ms complejos. Estos surgieron por la necesidad del hombre que tiene el hombre para comunicarse con ellas, es por eso que el hombre se dio a la tarea de buscar lenguajes para que se diera esta comunicacin y que las maquinas pudieran realizar sus rdenes. No todos los lenguajes de programacin se an transformado con el paso del tiempo pues algunos resultaron ser algo obsoletos y actualmente no se usan mientras que unos cuantos han sido operativos en un transcurso muy largo e incluso se siguen utilizando. Los primeros lenguajes de programacin no eran muy complicados de entender pues solo utilizaban informaciones numricas digitales e incluso se llegaron a escribir programas con este tipo de cdigos un ejemplo de ello es el denominado cdigo maquina basado en el 0 y el 1. Pero como era algo tedioso programar en este tipo de lenguaje hizo que los lenguajes de programacin evolucionaran pudiendo utilizar juegos de caracteres. As hoy en da la mayora de las computadoras trabajan con diferentes tipos de juegos de caracteres en los que destacan el cdigo ASCII y el EBCDIC. Al igual que los diferentes tipos de lenguajes humanos estos lenguajes tambin tiene una estructura y un significado definindolo como un conjunto de reglas y smbolos y palabras especiales que permiten construir un programa. Es un conjunto de rdenes o comandos que describen un proceso deseado, cabe mencionar que cada lenguaje de programacin tienen sus propios tipos de instrucciones y enunciados verbales que se combinan para formar los diferentes programas de computo. Estos lenguajes no se deben de considerar como aplicaciones si no como la herramienta para poder realizar las aplicaciones Hay, al menos, dos formas fundamentales desde las que pueden verse o clasificarse los lenguajes de programacin: por su nivel y por sus principales aplicaciones. Adems, estas visiones estn condicionadas por la evolucin histrica por la que ha transcurrido el lenguaje. Adems, hay cuatro niveles distintos de lenguajes de programacin, como indicamos en la figura. Los primeros lenguajes de programacin surgieron de la idea de Charles Babagge, la cual se le ocurri a este hombre a mediados del siglo XIX. Era un profesor matemtico de la universidad de Cambridge e inventor ingles, que la principio del siglo XIX predijo muchas de las teoras en que se basan los actuales ordenadores. Consista en lo que l denominaba la maquina analtica, pero que por motivos tcnicos no pudo construirse hasta mediados del siglo XX. Con l colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aqulla supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programacin, sobre todo si observamos que en cuanto se empez a programar, los programadores utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan entre otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia de la que se hallaban dotados. En 1823 el gobierno Britnico lo apoyo para crear el proyecto de una mquina de diferencias, un dispositivo mecnico para efectuar sumas repetidas. Pero Babagge se dedico al proyecto de la mquina analtica, abandonando la maquina de diferencias, que se pudiera programar con tarjetas perforadas, gracias a la creacin de Charles Jacquard (francs). Este hombre era un fabricante de tejidos y haba creado un telar que poda reproducir automticamente patrones de tejidos, leyendo la informacin codificada en patrones de agujeros perforados en tarjetas de papel rgido. Entonces Babagge intento crear la mquina que se pudiera programar con tarjetas perforadas para efectuar cualquier clculo con una precisin de 20 dgitos. Pero la tecnologa de la poca no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribucin es decisiva, ya que los ordenadores actuales responden a un esquema anlogo al de la mquina analtica. En su diseo, la mquina constaba de cinco unidades bsicas: 1) Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecucin de las operaciones; 4) Unidad Aritmtico-Lgica, que efecta las operaciones; 5) Unidad de salida, encargada de comunicar al exterior los resultados. Charles Babbage, conocido como el "padre de la informtica" no pudo completar en aquella poca la construccin del computador que haba soado, dado que faltaba algo fundamental: la electrnica. El camino sealado de Babbage, no fue nunca abandonado y siguindolo, se construyeron los primeros computadores. Cuando surgi el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programacin se basaba en componentes fsicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que s hacia era cambiar cables de sitio para conseguir as la programacin de la maquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas. Clasificacin de los lenguajes de programacin
Los lenguajes declarativos son los ms parecidos al castellano o ingls en su potencia expresiva y funcionalidad y estn en el nivel ms alto respecto a los otros. Son fundamentalmente lenguajes de rdenes, dominados por sentencias que expresan lo que hay que hacer en vez de cmo hacerlo. Ejemplos de estos lenguajes son los lenguajes estadsticos como SAS y SPSS y los lenguajes de bsqueda en bases de datos, como NATURAL e IMS. Estos lenguajes se desarrollaron con la idea de que los profesionales pudieran asimilar ms rpidamente el lenguaje y usarlo en su trabajo, sin necesidad de programadores o prcticas de programacin. Los lenguajes de alto nivel son los ms utilizados como lenguajes de programacin. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fcilmente legible y comprensible por otros programadores. Adems, los lenguajes de alto nivel suelen tener la caracterstica de transportabilidad. Es decir, estn implementados sobre varias mquinas, de forma que un programa puede ser fcilmente transportado (transferido) de una mquina a otra sin una revisin sustancial. En este sentido, se llaman independientes de la mquina. Ejemplos de estos lenguajes de alto nivel son PASCAL, APL y FORTRAN (lenguajes de programacin utilizados para aplicaciones cientficas), COBOL (para aplicaciones de procesamiento de datos), SNOBOL (para aplicaciones de procesamiento de textos), LISP y PROLOG (para aplicaciones de inteligencia Lenguajes Declarativos Lenguajes De Programacin Lenguajes Ensambladores Lenguajes De Alto Nivel Lenguajes De Maquina artificial), C y ADA (para aplicaciones de programacin de sistemas) y PL/I (para aplicaciones de propsito general). Todos estos lenguajes de alto nivel los desarrollaremos ms detenidamente en otro apartado de la presentacin. Los lenguajes ensambladores y los lenguajes mquina son dependientes de la mquina. Cada tipo de mquina tiene su propio lenguaje mquina distinto y su lenguaje ensamblador asociado. El lenguaje ensamblador es simplemente una representacin simblica del lenguaje mquina asociado, lo cual permite una programacin menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecnica subyacente para realizar una programacin efectiva en cualquiera de estos niveles de lenguajes.