SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
85
Autores científico-técnicos y académicos
El conjunto de órdenes e instrucciones que se dan al
ordenador para que resuelva un problema o ejecute una
determinada misión, recibe el nombre de programa. En
los primeros tiempos de la informática, la programación
se efectuaba en el único lenguaje que entiende el micro-
procesador: su propio código binario, también denomi-
nado lenguaje máquina o código máquina.
Pero la programación en lenguaje máquina resulta
muy lenta y tediosa, pues los datos e instrucciones se
deben introducir en sistema binario y, además, obliga a
conocer las posiciones de memoria donde se almace-
nan los datos. Como puede imaginar, este tipo de pro-
gramación conlleva gran número de errores y la tarea
de depuración exige bastante tiempo y dedicación.
Por este motivo, a principios de los 50 se creó una
notación simbólica, denominada código de ensamblaje
(ASSEMBLY), que utiliza una serie de abreviaturas
mnemotécnicas para representar las operaciones (figura
1): ADD (sumar), STORE (copiar), etc.. Al principio, la
traducción del código de ensamblaje al código máqui-
na se realizaba manualmente, pero enseguida se vio
que el ordenador también podía encargarse de esa tra-
ducción; se desarrolló así un programa traductor, lla-
mado ensamblador1 (ASSEMBLER).
Figura 1. Ejemplo de programa en código de ensamblaje
Conforme los ordenadores fueron introduciéndose
en el mundo empresarial y académico, aquellos primiti-
vos lenguajes fueron sustituidos por otros más sencillos
de aprender y más cómodos de emplear. Estos lengua-
jes, llamados de alto nivel, tienen una estructura que se
adapta más al pensamiento humano que a la forma de
trabajar del ordenador. Por ejemplo, seguro que le sue-
nan lenguajes como BASIC, PASCAL, C, etc.
Vicente Trigo Aranda
Historia y evolución
de los lenguajes
de programación
Historia y evolución
de los lenguajes
de programación
1 En la actualidad, se acostumbra identificar el ensamblador, que es el programa traductor, con el código de ensamblaje.
86 Autores científico-técnicos y académicos
¿Y cuántos lenguajes de programación existen?
Pues sucede algo así como con los lenguajes humanos:
existen centenares, si bien sólo unos pocos de ellos son
ampliamente utilizados. En este artículo me voy a cen-
trar en los lenguajes de programación más difundidos,
siguiendo un criterio cronológico, y lo finalizaré presen-
tándole una somera relación de otros lenguajes de pro-
gramación más minoritarios o que ya han caído en
desuso.
INTÉRPRETES Y COMPILADORES
Antes de pasar a ver los principales lenguajes de
programación, debemos hacer un alto para comentar
una característica común a todos ellos: las órdenes
dadas en cualquier lenguaje siempre deben traducirse
al código binario del ordenador, que es el único que
realmente comprende su unidad central. Esta labor de
traducción se lleva a cabo mediante un intérprete o un
compilador. ¿Y qué diferencia hay entre estas dos
cosas? Retomemos el símil de los lenguajes humanos y
todo quedará aclarado.
Imagine que no sabe nada de inglés y necesita con-
versar con alguien que sólo conoce ese idioma. La
forma más sencilla de establecer comunicación es con-
seguir una persona que ejerza de intérprete. Cuando
diga una frase en castellano, su intérprete la traducirá
al inglés y, de esta forma, podrá entenderla aquella
persona con la que esté conversando; análogo proceso
se seguirá para traducir del inglés al castellano. En
resumen, mientras esté presente su intérprete, la con-
versación es posible.
El intérprete informático realiza, más o menos, el
mismo papel. Traduce instrucción a instrucción y, de
esta forma, favorece la interactividad, la depuración y
puesta a punto del programa, la ejecución inmediata
de una orden, etc. Por ejemplo, entre los lenguajes que
suelen ser interpretados, se encuentran BASIC, LOGO,
etc.
No obstante, existe otro tipo de traducción, la escri-
ta, que presenta diferencias con respecto a la traduc-
ción oral. Suponga, por ejemplo, que uno de sus libros
vaya a ser editado en Gran Bretaña. Desde luego, no
tiene sentido que, quien compre su libro, tenga un
intérprete cerca cada vez que desee leer su libro. Resul-
ta más lógico traducir el libro al inglés, ¿no? Cuando el
traductor haya finalizado su trabajo, se tendrán dos
copias del libro; el original, en castellano, y su traduc-
ción, en inglés, que ya puede ser leída por cualquier
persona que conozca el idioma de Shakespeare, sin
necesidad de intérprete a su lado.
El equivalente informático de esta modalidad de
traductor se denomina compilador2. Observe que, en
contraste con el intérprete, que traduce las instruccio-
nes una a una, el compilador traduce todo el programa
de golpe, dejándolo listo para ser ejecutado3. De esta
forma, se logra mayor rapidez en la ejecución y, ade-
más, se liberan recursos de la memoria, pues el progra-
ma, una vez compilado, no exige que el traductor esté
residente en memoria, como sucede con los intérpre-
tes. Por ejemplo, entre los lenguajes que siempre son
compilados se pueden destacar PASCAL, FORTRAN,
COBOL, etc.
Sin embargo, no todo son ventajas en los lenguajes
compilados. Así, la depuración del programa resulta
más cómoda con un intérprete, ya que el compilador
no informa de los posibles errores hasta el momento de
la compilación. Por otra parte, cada vez que se modifi-
ca algo en el programa es preciso volver a compilarlo
de nuevo4.
Una vez aclarada la diferencia entre intérprete y
compilador, vayamos ya con el primer lenguaje de alto
nivel de amplia difusión.
FORTRAN
Al comienzo de la década de los 50, John Backus
estaba trabajando con SSEC (Selective Sequence Elec-
tronic Calculator), uno de los primeros ordenadores de
IBM, y desarrolló el programa SPEEDCODING para él.
Tomando éste como base, se emprendió, en otoño de
1954, la creación de un lenguaje para añadirle más
prestaciones al modelo IBM 704, que iba a salir pronto
al mercado.
Historia y evolución de los lenguajes de programación
2 La introducción del término compilador (compiler, en inglés) en informática, se debe a la pionera Grace Hopper, que designó con ese nom-
bre a su programa traductor A-O (1949). Más tarde, desarrolló el compilador B-O para UNIVAC.
3 Se llama programa fuente al programa original y programa objeto al programa resultante de la traducción.
4 Debido a que los intérpretes ocupan menos memoria que los compiladores y, además, siempre deben estar en memoria, en los microorde-
nadores (¿recuerda el ZX-Spectrum o el VIC-20?) se incluía, a modo de sistema operativo, un lenguaje interpretado (BASIC, generalmente).
87
Autores científico-técnicos y académicos
En 1956 se terminó el compilador FORTRAN
(FORmula TRANslator) y se incluyó en el IBM 704,
junto con un manual de 51 páginas (figura 2).
Figura 2. Primera página del primer manual
de FORTRAN, con la firma de Backus
Como su nombre indica, FORTRAN estaba (y está)
destinado a la resolución de problemas científico-técni-
cos, resultando relativamente sencillo de aprender si se
domina la notación matemática.
Figura 3. Programa en FORTRAN
Aunque ha ido perfeccionándose a lo largo del
tiempo (con sus versiones II, IV, 77 y 90), lo cierto es
que se ha visto superado por otros muchos lenguajes,
ya que sus programas carecen de estructuración y son
difíciles de seguir (figura 3). Sin embargo, todavía se
sigue utilizando, sobre todo en el ámbito universitario.
¿Por qué? La respuesta radica en la gran biblioteca de
subrutinas y funciones que se ha ido creando en sus
más de treinta años de existencia.
COBOL
A finales de los 50, el Departamento de Defensa
USA estaba bastante preocupado con los lenguajes de
programación existentes, especialmente por dos razo-
nes: los programas no podían llevarse de un ordenador
a otro y resultaban bastante difíciles de leer y modificar.
Para solventar estos inconvenientes, patrocinó una
conferencia sobre lenguajes (CODASYL, COnference
on DAta SYstems Languages), que tuvo lugar en 1959
y en la que participaron las grandes empresas del sec-
tor (IBM, Sperry Rand, Honey Well, etc.). Como era
previsible, formaba parte del comité la gran dama de la
informática, Grace Hopper (figura 4).
Figura 4. Hopper junto al monumento a COBOL
Fruto de aquella conferencia fueron las especifica-
ciones para desarrollar COBOL (COmmon Business
Oriented Language), un lenguaje orientado hacia fun-
ciones administrativas, de gran portabilidad y legibili-
dad. Su primera versión apareció al año siguiente y,
con el paso de los años, surgieron nuevas actualizacio-
nes: COBOL 74, COBOL 85, etc.
Ya que se buscaba su facilidad de lectura, COBOL
tiene una sintaxis muy similar al inglés común (figura
5), cuya terminología aparece continuamente: verbos,
párrafos, frases, etc. Así, los programas se estructuran
en cuatro divisiones (Identification, Enviroment, Data,
Procedure), que se subdividen en secciones y éstas, a
su vez, en párrafos, que constan de frases e instruccio-
nes.
Historia y evolución de los lenguajes de programación
88 Autores científico-técnicos y académicos
Figura 5. Antigua hoja de codificación en COBOL
En la actualidad, COBOL se utiliza casi exclusiva-
mente en algunos grandes sistemas informáticos (enti-
dades bancarias, sobre todo), si bien más para mante-
ner el código existente que para desarrollar nuevas
aplicaciones.
BASIC
John G. Kemeny y Thomas E. Kurtz eran profesores
del Dartmouth College (New Hampshire) y, en 1964,
diseñaron un nuevo lenguaje que permitiera introducirse
a sus estudiantes en los sistemas de tiempo compartido.
Ese lenguaje, al que llamaron BASIC por su sencillez5, es,
sin duda, el más difundido, aplicándose tanto en tareas
de gestión como en aplicaciones científicas (figura 6).
Figura 6. Programa BASIC que simula
un sorteo de la Primitiva
¿Y a qué se debe la gran popularidad del BASIC?
Lo cierto es que no era el mejor lenguaje ni el más
potente, pero tenía dos ventajas a su favor: se trataba
de un lenguaje sencillo de aprender y, además, su
intérprete ocupaba poca memoria. Por estos motivos,
cuando se creó el primer ordenador personal (Altair de
MITS), no es extraño que se desarrollase un BASIC
para él. ¿Y sabe qué empresa lo diseñó? ¡Exacto!
Microsoft.
Más tarde, Microsoft adaptó su BASIC a los produc-
tos de Apple, a los microordenadores y, lo más impor-
tante, al PC de IBM; de hecho, el sistema operativo MS-
DOS incluía la versión GW-BASIC. En resumen, mucha
gente aprendió a programar en BASIC con su ZX-Spec-
trum o su primer PC y, una vez dominado un lenguaje,
es comprensible una cierta reticencia al cambio.
Además de GW-BASIC, hubo otras versiones que
tuvieron cierta difusión en los 80, como Turbo BASIC
(de Borland) y QuickBASIC (de Microsoft). De hecho,
hasta Kemeny y Kurtz intentaron aprovechar el éxito
de su creación y, en 1983, crearon True BASIC (figura
7), cuya comercialización no resultó muy fructífera6.
Figura 7. True BASIC, casi desconocido
BASIC ha sabido adaptarse a las necesidades del
mercado en el transcurso de los años. Así, las primeras
versiones eran interpretadas y sus programas resulta-
ban un tanto ilegibles; en cambio, las actuales incorpo-
ran bastante estructuración y son compiladas. El expo-
nente máximo de los modernos BASIC es Visual
BASIC… también de Microsoft, claro está.
Historia y evolución de los lenguajes de programación
5 BASIC son las siglas de Beginners All Purpose Symbolic Instruction Code (código de instrucciones simbólicas multiuso para principiantes),
aunque, en mi opinión, se trata de uno más de los juegos de palabras tan comunes en informática. Lo más probable es que primero surgiera
el nombre y, luego, se buscase la forma de encajarlo como siglas de algo, porque lo cierto es que el larguísimo nombre oficial se las trae.
6 True BASIC todavía sigue vigente. Si lo desea, puede visitar su Web:
http://www.truebasic.com/
89
Autores científico-técnicos y académicos
LOGO
En 1964, Seymour Papert se incorporó al MIT, tras
haber permanecido cinco años en Suiza, colaborando
con el pedagogo Jean Piaget (1896-1980). Tres años
después, Papert comenzó a diseñar un lenguaje que
sirviera para introducir en el mundo de la programa-
ción al alumnado de menor edad (figura 8)… “¡Que
los niños programen a los ordenadores y no los orde-
nadores a los niños!”
Figura 8. Papert con unos niños programadores (1984)
Poco a poco, LOGO fue poniéndose a punto y
cuando, en 1980, Papert lo divulgó en todo el mundo
con su libro “Mindstorms: Children Computers and
Powerful Ideas” (figura 9), fue muy bien acogido en los
ámbitos educativos, especialmente en enseñanza pri-
maria y secundaria.
Figura 9. Versión en castellano de “Mindstorms”
Teniendo en cuenta los pocos conocimientos mate-
máticos de sus potenciales usuarios, LOGO introduce al
mundo de la programación de una forma gráfica,
mediante la geometría de la tortuga. En los primeros
tiempos, con LOGO se controlaba un pequeño robot
con ruedas, motor y un lápiz retráctil, que admitía órde-
nes sencillas e intuitivas (Avanza, Retrocede, Gira a la
derecha, etc.) y al desplazarse por el papel iba trazando
el dibujo ordenado. Como el robot tenía forma abomba-
da (figura 10) se le llamó tortuga7 (también influyó en el
nombre el hecho de que era bastante lento).
Figura 10. Una de las tortugas de la primera época
Sin embargo, tras un impulso inicial muy ilusionan-
te, LOGO ha ido desapareciendo de los centros de
enseñanza españoles. ¿Las causas? Por un lado, resulta
que el lenguaje LOGO no es nada sencillo cuando se
quiere ir más allá de la tortuga gráfica, ya que se basa
en la utilización continua de listas y procedimientos
recursivos, que no son fáciles de manejar. Por otra
parte, la informática educativa ha ido perdiendo su
componente formativa y creativa (la programación) y
ha sido sustituida por una informática de usuario
(manejo de aplicaciones ofimáticas).
C
En los Laboratorios Bell (New Jersey) trabajaron dos
de los investigadores más conocidos de la moderna infor-
mática, Kenneth Thompson y Dennis Ritchie (figura 11),
creadores del sistema operativo UNIX, en 1969.
Figura 11. Thompson y Ritchie recibiendo la Medalla
National Technology en 1999
Historia y evolución de los lenguajes de programación
7 En los ordenadores actuales, la tortuga se representa en pantalla mediante un pequeño triángulo.
90 Autores científico-técnicos y académicos
En 1970, Thompson desarrolló un lenguaje experi-
mental, al que llamó B. Dos años después, Ritchie se
basó en B para crear un nuevo lenguaje de propósito
general, que denominó C8. Como no depende de la
arquitectura del hardware, C es uno de los lenguajes
más portables del mercado y, como además ofrece
amplias prestaciones, su difusión es amplísima.
A principios de los 80, Bjarne Stroustrup (figura 12)
diseñó una ampliación de C y, en 1984, la convirtió en
un compilador que llamó C++9, especialmente enfo-
cado a la programación orientada a objetos.
Figura 12. La dirección es
http://www.research.att.com/~bs/homepage.html
PASCAL
A principios de los 70, el profesor suizo Niklaus
Wirth (figura 13), del Instituto Politécnico Federal de
Zurich, emprendió la creación de un nuevo lenguaje
(PASCAL) que permitiera introducirse en la programa-
ción de una forma fácil pero a la vez potente y, sobre
todo, siguiendo unas pautas estructuradas. De hecho,
PASCAL es el lenguaje más sencillo que posibilita el
acceso a la informática teórica: descomposición modu-
lar, recursividad, punteros, etc.
Figura 13. Niklaus Wirth
PASCAL, que surgió como una derivación de
ALGOL (ver último apartado), fue definido en el libro
“PASCAL - User Manual and Report” (1974), escrito
por Kathleen Jensen y Niklaus Wirth (figura 14). En
1980 sufrió la primera formalización y se estandarizó
en 198310. Al poco tiempo, Borland lanzó al mercado
su compilador PASCAL, cuyo nombre se precedía con
la palabra Turbo, para recalcar su rapidez. Su éxito fue
tan grande11 que vendió casi medio millón de copias
de su compilador sólo en 1985.
Figura 14. Portada del libro que divulgó el PASCAL
Durante más de un década, Turbo PASCAL ha sido
sinónimo de PASCAL, pero, por desgracia, en el año
2000, Borland dejó de darle soporte técnico y su pre-
sencia es cada día menor en el ámbito de la programa-
ción, sobreviviendo a duras penas en el mundo univer-
Historia y evolución de los lenguajes de programación
8 Posteriormente, se reescribió UNIX en C. También están desarrollados en C el propio compilador C y la mayoría de sistemas operativos.
9 En C el operador ++ equivale a incrementar la variable. Como el nuevo lenguaje incrementaba la potencialidad de C con la programación
orientada a objetos, se optó por el nombre C++.
10 Poco después, para solventar todos los inconvenientes que presentaba PASCAL, Wirth diseñó el lenguaje MODULA-2 (MODUlar LAngua-
je number 2), que está basado en el manejo de módulos, como bloques independientes.
11 Microsoft, que había lanzando su propia versión de PASCAL (Quick PASCAL), acabó retirándola del mercado.
91
Autores científico-técnicos y académicos
sitario. Sin embargo, en 1995 surgió una nueva ver-
sión, DELPHI, que amplía PASCAL a la programación
visual e intenta hacerle la competencia a Visual BASIC.
PROLOG
En 1972, Robert Kowalski (universidad de Edim-
burgo) y Alain Colmerauer y Phillippe Roussell (univer-
sidad de Aix-Marseille) expusieron la revolucionaria
idea de que la lógica podía emplearse como lenguaje
de programación. Siguiendo esta línea, al año siguien-
te, el grupo de inteligencia artificial de la universidad
de Aix-Marseille comenzó a diseñar ese lenguaje, al
que se llamó PROLOG (PROgramation LOGique).
Figura 15. Alain Colmerauer
PROLOG es el prototipo de lenguaje declarativo
por excelencia. ¿Y qué es eso de declarativo? Todos los
lenguajes que hemos ido viendo hasta ahora son algo-
rítmicos; es decir, los ordenadores se consideran
máquinas de Turing a las que debemos indicar todos y
cada uno de los pasos a seguir para realizar una cierta
tarea. Frente a estos lenguajes imperativos, los declara-
tivos no están basados en órdenes sino en descripcio-
nes. En otras palabras, en los programas PROLOG se
proporcionan al ordenador una serie de conocimientos
sobre un tema, junto con una serie de reglas, y el pro-
grama nos contestará todas aquellas preguntas que
deseemos hacerle sobre el tema… siempre que las res-
puestas puedan deducirse lógicamente de los conoci-
mientos dados al inicio.
Como es fácil suponer, PROLOG no está destinado
al cálculo científico. Su aplicación en el campo de la
inteligencia artificial, definiendo objetos y establecien-
do relaciones, permite resolver problemas lógicos,
desarrollar sistemas expertos, investigar en la compren-
sión del lenguaje humano, etc.
ADA
Quince años después de intentar uniformizar los
lenguajes con COBOL, el Departamento de Defensa
USA percibió que su objetivo no se había cumplido, ni
mucho menos12. Por ese motivo, en 1975 formó un
grupo de trabajo para evaluar los lenguajes existentes
en aquel entonces13 y ver si alguno de ellos podía
adaptarse a las necesidades del Departamento.
¿Y qué condiciones debía cumplir el lenguaje dese-
ado? En principio, debía permitir el diseño de progra-
mas modulares y estructurados, de modo que fuesen
fáciles de leer y de depurar. También era necesario
que, como debía controlar instrumentos militares de
todo tipo, gestionase sin problemas cualquier periférico.
Además, tenía que aceptar el trabajo en paralelo, de
modo que varios procesos se ejecutaran de forma
simultánea o cuasisimultánea.
¿Qué lenguaje eligió el grupo de trabajo? Lo cierto es
que ninguno le convenció y en su informe final propuso
la creación de un nuevo lenguaje, recomendando que se
basara en PASCAL, PL/I (ver último apartado) y ALGOL
68, ya que eran los más apropiados de los evaluados14.
Poco después, se convocó un concurso para desa-
rrollar un nuevo lenguaje que se ajustara a los requeri-
mientos del Departamento de Defensa. Se presentaron
17 propuestas que, tras una selección previa, quedaron
Historia y evolución de los lenguajes de programación
12 Se estima que, a comienzos de los ochenta, sus ordenadores manejaban del orden de cuatrocientos lenguajes distintos, si bien muchos de
ellos eran dialectos creados específicamente para determinados equipos militares. Teniendo en cuenta, además, que los programas tenían un
promedio de cien mil líneas de código, no es extraño que hubiera un cierto caos informático.
13 Los lenguajes evaluados fueron: ALGOL 60, ALGOL 68, CMS-2, COBOL, CORAL 66, CS-4, ECL, EUCLID, FORTRAN, HAL/S, JOVIAL
J-3B, JOVIAL J-73, LIS, LTR, MORAL, RTL/2, PASCAL, PDL/2, PEARL, PL/I, SIMULA 67, SPL/1, TACPOL.
14 The unanimous recommendations of the evaluation committee, adopted unanimously by the HOLWG were:
• That none of the evaluated languages met the requirements to such an extent as to be selected with little or no modifications for a DoD-
wide standard;
• That it appeared feasible within the state-of-the-art to construct a single language to meet essentially all of the requirements;
• That the construction of such a language would most likely be done by modification (albeit substantial) of an existing language. The
approaches recommended as a basis for further development were the language families of PL/I, Pascal, and ALGOL-68.
92 Autores científico-técnicos y académicos
reducidas a cuatro, a las que se asignó los nombres
clave de Red, Green, Yellow y Blue, por aquello de
preservar el anonimato.
Finalmente, Green fue el lenguaje elegido. Propuesto
por Honeywell-Bull (Francia), fue diseñado por un equi-
po encabezado por Jean Ichbiah (figura 16)15. En un pri-
mer momento, se le dio el nombre de DoD-1 pero acabó
cambiándose por ADA, en honor de Ada Lovelace.
Figura 16. Jean Ichbiah
Sin embargo, a pesar de los años transcurridos
desde entonces y a las mejoras que han ido introdu-
ciéndose en él (figura 17), lo cierto es que ADA no es
un lenguaje popular, salvo por su nombre. Se le repro-
cha ser un tanto complejo, bastante estricto y sólo
apropiado para el desarrollo de grandes programas.
Figura 17. Programa realizado con el compilador
GNAT ADA 95
JAVA
Este lenguaje16, hoy en día ampliamente utilizado
en Internet, fue desarrollado en 1990 por James Gos-
ling (figura 18), de Sun Microsystems, basándose en C
y C++. ¿Un lenguaje para Internet cuando, en aquella
época, la Red estaba casi circunscrita al ámbito univer-
sitario? En realidad, el objetivo de Sun no tenía nada
que ver con Internet; era crear un interfaz atractivo e
intuitivo para electrónica de consumo (calculadoras,
televisión interactiva, etc.).
Figura 18. James Gosling
Sin embargo, la electrónica de consumo no evolu-
cionó como se esperaba y, durante unos años, el len-
guaje de Gosling permaneció aparcado, hasta que Bill
Joy (cofundador de Sun) consideró que podía ser inte-
resante para Internet y propuso modificarlo para el
nuevo medio. En agosto de 1995, ya con el nombre de
JAVA, se presentó en sociedad17.
A pesar de que JAVA resulta un tanto lento en su
ejecución, cada día es más popular. Por un lado, es
relativamente sencillo y bastante potente; además, es
válido para cualquier plataforma y, sobre todo, muy
fiable y seguro, manteniendo alejado a los virus.
ALGUNOS OTROS LENGUAJES
Como le indicaba al comienzo del artículo, además
de los lenguajes de programación vistos anteriormente,
Historia y evolución de los lenguajes de programación
15 Los otros tres proyectos correspondían a Intermetrics [Benjamin M. Brosgol] (Red), SofTech [John Goodenough] (Blue) y SRI Internatio-
nal [Jay Spitzen] (Yellow). El nombre que aparece entre corchetes es el del director de cada equipo.
16 Su nombre era inicialmente OAK (roble, en inglés), debido a la abundancia de ese árbol en los alrededores de las oficinas donde se estaba
desarrollando.
17 El nombre OAK estaba registrado por otra empresa y durante una reunión del equipo, en una cafetería, se propuso llamar a su lenguaje
JAVA… el nombre de una marca de café.
93
Autores científico-técnicos y académicos
se han ido desarrollando otros muchos, si bien su
ámbito de aplicación es más reducido o ya han dejado
de utilizarse. A modo de ejemplo, le muestro una
somera relación de algunos que han tenido cierto inte-
rés y/o influencia.
PLANKALKÜL
Podríamos decir que es el antepasado de los
modernos lenguajes de programación. Fue creado por
Konrad Zuse, a mediados de los 40, para su serie de
máquinas Z. Su nombre es una combinación de las
palabras Plan y Kalkül, así que podría traducirse por
“plan de cálculo”.
SHORT CODE
Basándose en las ideas de John W. Mauchly,
William F. Schmitt creó este lenguaje interpretado en
1950 y fue utilizado en la primera serie de UNIVAC. Es
considerado el precursor de los lenguajes de alto nivel.
FLOWMATIC
El primer lenguaje de programación destinado al
tratamiento de aplicaciones de gestión. Desarrollado
por el equipo de Grace Hopper en 1957, este lenguaje
compilado sólo fue implementado en UNIVAC.
LISP
Durante un encuentro sobre inteligencia artificial
celebrado en el verano de 1956, H. A. Simon, A.
Newell y J. C. Shaw describieron su lenguaje IPL
(Information Processing Language), creado para el
ordenador JOHNIAC. Inspirándose en ese lenguaje, en
1958 John McCarthy creó el LISP (LISt Processing lan-
guage) como parte de un proyecto de inteligencia arti-
ficial del MIT, teniendo como soporte un equipo IBM
70418. Se trata de un lenguaje conciso e interactivo,
basado en el tratamiento de listas (de ahí su nombre),
ya que tanto los programas como los datos se estructu-
ran mediante listas.
ALGOL
Con vistas a obtener un lenguaje universal, que no
dependiera de la máquina donde se implementara, se
formó un comité internacional, formado por la ACM
(Association for Computing Machinery) y la GAMM
(siglas alemanas de la Sociedad para las Matemáticas
aplicadas), que, en 1958, publicó en Zurich un informe
dando carta de nacimiento al IAL (International Alge-
braic Language), posteriormente denominado ALGOL
58 (ALGOritmic Language). Su versión operativa se
presentó en Paris en 1960 y, más adelante, fue perfec-
cionada (ALGOL 68).
Aunque ha caído en desuso, su influencia ha sido
decisiva en el desarrollo de los lenguajes de programa-
ción posteriores, ya que muchos de los más importan-
tes (PASCAL, C, ADA, JAVA, etc.) descienden, directa
o indirectamente, de ALGOL.
JOVIAL
Su nombre son las siglas de “Jules’ Own Version of
the International Algorithmic Language” y fue desarro-
llado en 1959, partiendo de IAL (de ahí el nombre19),
para Air Force USA, que deseaba un lenguaje válido
tanto para usos científicos como de gestión… y
JOVIAL todavía sigue en activo (figura 19).
Figura 19. La dirección es: http://www.jovial.hill.af.mil
Historia y evolución de los lenguajes de programación
18 Para conocer más a fondo la historia de LISP, según John McCarthy, vaya a la siguiente dirección:
http://www-formal.stanford.edu/jmc/history/lisp/lisp.html
19 El nombre original del lenguaje era OVIAL (Our Own Version of the International Algebraic Language) pero se le añadió la J inicial por-
que, según palabras de Jules Schwartz, director del proyecto: “In the late 1950s, society wasn’t quite as free thinking as it is today. The name
OVIAL seemed to have a connotation relative to the birth process that did not seem acceptable to some people”.
94 Autores científico-técnicos y académicos
APL
El profesor Kenneth E. Iverson ideó una notación
para describir, sin ambigüedad y con concisión, algorit-
mos matemáticos y la dio a conocer en su libro “A Pro-
gramming Language” (cuyas siglas corresponden al
nombre del lenguaje), publicado en 1962. Partiendo de
esa notación, IBM desarrolló el lenguaje APL, orienta-
do a usos científicos. Todavía se sigue utilizando y sus
programas se reconocen visualmente por su brevedad
y la inclusión de caracteres especiales (figura 20).
Figura 20. Ordenación de una lista en FORTRAN y APL.
La concisión de éste último es innegable
PL/I
Este lenguaje fue desarrollado por IBM, a partir de
1963, que deseaba un lenguaje polivalente, en el senti-
do de que podía aplicarse tanto a gestión como al ámbi-
to científico. Buscando aunar las ventajas de COBOL,
FORTRAN y ALGOL, PL/I20 resultó un lenguaje muy
flexible y potente, por lo que todavía sigue en uso.
RPG
A principios de los 60, IBM comenzó a desarrollar
un lenguaje orientado la obtención de informes (ven-
tas, pagos, etc.) en el ámbito de gestión (RPG son las
siglas de Report Program Generator). En 1964 salió al
mercado con la serie IBM 360 y, desde entonces, ha
sufrido diversas actualizaciones: II, III, 400, IV, Visual
RPG. Es un lenguaje sencillo de aprender, si bien su
versatilidad no es mucha. En las cuatro secciones en
que se estructura cada programa, se deben indicar los
archivos y dispositivos a emplear, fijar las especificacio-
nes de entrada, determinar las operaciones a realizar y
establecer los formatos de salida. A partir de la versión
IV se añadió la sección de subprocedimientos.
SIMULA
Basado en ALGOL, se trata del primer lenguaje
orientado a objetos. Fue desarrollado por los noruegos
Ole-Johan Dahl y Kristen Nygaard (figura 21) que bus-
caban un lenguaje adecuado para la simulación de
eventos discretos (su nombre es una contracción de
Simulation Languaje). Su primer compilador estuvo
disponible en 1964, para la serie 1100 de UNIVAC, si
bien hasta 1967 no adquirió una amplia funcionalidad.
En la actualidad hay disponibles diversas versiones fre-
eware de su compilador21.
Figura 21. Nygaard y Dahl, ya fallecidos, recibieron
el premio Turing de la ACM en el año 2001
FORTH
Este lenguaje fue creado a finales a los 60 por
Charles H. Moore, para controlar los radiotelescopios
de Kitt Peak y procesar sus datos. Se trata de un len-
guaje22 funcional e interactivo que ha ido evolucionan-
Historia y evolución de los lenguajes de programación
20 PL/I son las siglas de Programming Language/I, donde I representa el uno… ¿El primer lenguaje de programación? ¿El número uno de los
lenguajes de programación?
21 Por ejemplo, en:
http://www.simula-c.de/download.htm
http://www.ifi.uio.no/~cim/sim_index.shtml
22 El origen de su nombre es ciertamente curioso. Moore consideraba que su lenguaje era tan avanzado que debía pertenecer a la cuarta
(fourth, en inglés) generación de ordenadores (en aquel entonces estaban en la tercera). Pero como su implementación tuvo lugar en un IBM
1130 que sólo admitía identificadores de cinco letras, perdió la U y se quedó en FORTH.
95
Autores científico-técnicos y académicos
do con el paso del tiempo. Debido a la poca memoria
que ocupa y a su rapidez, fue uno de los primeros en
difundirse entre los microordenadores (figura 22).
Figura 22. FORTH para Commodore
LSE
Con objeto de que el profesorado francés de secun-
daria fuese capaz de crear sus propios materiales edu-
cativos informáticos, se diseñó el lenguaje este lenguaje
(Lenguage Symbolique d’Enseignement) en 1971, que
no tuvo mucho éxito23.
SMALLTALK
Creado por Alan Kay en el Centro de Investigacio-
nes Xerox de Palo Alto, en los primeros 70, es un len-
guaje muy influenciado por SIMULA, estando también
orientado a objetos. Tuvo sucesivas versiones (72, 76 y
80) y ofrece un entorno completo para el desarrollo de
programas.
COMAL
Destinado a la informática educativa en los países
escandinavos, fue desarrollado por Benedict Loefstedt
y Borge Christensen en 1973, combinando las ventajas
de BASIC y PASCAL (sus siglas corresponden a COM-
mon Algorithmic Language). En 1980 se estandarizó y
todavía sigue siendo utilizado, sobre todo en la Europa
del norte.
¿Se ha quedado con ganas de conocer más lengua-
jes? Si la respuesta es afirmativa, puede darse un paseo
por la Web Dictionary of Programming Languages
(figura 23), donde encontrará referencias y comenta-
rios sobre un centenar y medio de lenguajes.
Figura 23. Su dirección es http://cgibin.erols.com/ziring/cgi-
bin/cep/cep.pl
Historia y evolución de los lenguajes de programación
23 En la Escuela Superior de Electricidad se desarrollaron, entre 1968 y 1976, varios lenguajes con una filosofía similar: LSD, LSE, LSG y
LST.

Más contenido relacionado

La actualidad más candente

Lenguajes de Programación
Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación lobi7o
 
Lenguajes de alto_nivel
Lenguajes de alto_nivelLenguajes de alto_nivel
Lenguajes de alto_nivelANALI GOMEZ
 
Presentacion de la Unidad 2
Presentacion de la Unidad 2Presentacion de la Unidad 2
Presentacion de la Unidad 2Friasolan
 
Evolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónEvolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónjuanbryanc
 
Cronologia de los Lenguajes de Programación
Cronologia de los Lenguajes de ProgramaciónCronologia de los Lenguajes de Programación
Cronologia de los Lenguajes de ProgramaciónIris Coronado
 
Lenguaje de programacion UFT
Lenguaje de programacion UFT Lenguaje de programacion UFT
Lenguaje de programacion UFT jose chavez
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionSergio Maidana
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónfarmero
 
Historia de los lenguajes de programacion
Historia de los lenguajes de programacionHistoria de los lenguajes de programacion
Historia de los lenguajes de programacionJANIIER
 
Historia Y EvolucióN De Los Lenguajes De ProgramacióN
Historia Y EvolucióN De Los Lenguajes De ProgramacióNHistoria Y EvolucióN De Los Lenguajes De ProgramacióN
Historia Y EvolucióN De Los Lenguajes De ProgramacióNda4
 
lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de ProgramacionLauracks
 
Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.Anastacio Mendoza
 

La actualidad más candente (19)

Lenguajes de Programación
Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación
 
Linea del tiempo
Linea del tiempoLinea del tiempo
Linea del tiempo
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Cap1 intro
Cap1 introCap1 intro
Cap1 intro
 
Lenguajes de alto_nivel
Lenguajes de alto_nivelLenguajes de alto_nivel
Lenguajes de alto_nivel
 
Deber
DeberDeber
Deber
 
Presentacion de la Unidad 2
Presentacion de la Unidad 2Presentacion de la Unidad 2
Presentacion de la Unidad 2
 
Evolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programaciónEvolución y clasificación de los lenguajes de programación
Evolución y clasificación de los lenguajes de programación
 
Cronologia de los Lenguajes de Programación
Cronologia de los Lenguajes de ProgramaciónCronologia de los Lenguajes de Programación
Cronologia de los Lenguajes de Programación
 
Lenguaje de programacion UFT
Lenguaje de programacion UFT Lenguaje de programacion UFT
Lenguaje de programacion UFT
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacion
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Historia de los lenguajes de programacion
Historia de los lenguajes de programacionHistoria de los lenguajes de programacion
Historia de los lenguajes de programacion
 
Historia Y EvolucióN De Los Lenguajes De ProgramacióN
Historia Y EvolucióN De Los Lenguajes De ProgramacióNHistoria Y EvolucióN De Los Lenguajes De ProgramacióN
Historia Y EvolucióN De Los Lenguajes De ProgramacióN
 
Herramientas
HerramientasHerramientas
Herramientas
 
lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de Programacion
 
Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.Evolución de los Lenguajes de Programación.
Evolución de los Lenguajes de Programación.
 

Similar a Historia e evoluvion de los lenguaje de programcion

Clasificasion de los lenguajes
Clasificasion de los lenguajesClasificasion de los lenguajes
Clasificasion de los lenguajesagustinbilmer
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programaciónmarco
 
Lenguaje de programacion, clasificaion-historia.
Lenguaje de programacion, clasificaion-historia.Lenguaje de programacion, clasificaion-historia.
Lenguaje de programacion, clasificaion-historia.Anyi Vielma
 
Evolucion de los lenguajes de programación
Evolucion de los lenguajes de programaciónEvolucion de los lenguajes de programación
Evolucion de los lenguajes de programaciónfercho-nava
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la ProgramaciónAlessandro Viera
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezRafael Hernandez
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladoresCJAO
 
Los lenguajes de programación son herramientas que nos permiten crear program...
Los lenguajes de programación son herramientas que nos permiten crear program...Los lenguajes de programación son herramientas que nos permiten crear program...
Los lenguajes de programación son herramientas que nos permiten crear program...edwin6886
 
Unidad 1.1 ensayo
Unidad 1.1 ensayoUnidad 1.1 ensayo
Unidad 1.1 ensayoJesuiMosco
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionJesús Navarro
 
Metreología programación
Metreología programaciónMetreología programación
Metreología programaciónLaura Martos
 
Preguntas y Respuestas
Preguntas y RespuestasPreguntas y Respuestas
Preguntas y RespuestasFede Garcia
 
Tema 01 introducción a compiladores
Tema 01   introducción a compiladoresTema 01   introducción a compiladores
Tema 01 introducción a compiladoresikky2345
 
Metreología programacion
Metreología programacionMetreología programacion
Metreología programaciontamaaraa
 
Metreología programacion
Metreología programacionMetreología programacion
Metreología programaciontamaaraa
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacionsam9205
 

Similar a Historia e evoluvion de los lenguaje de programcion (20)

Lenguajes
LenguajesLenguajes
Lenguajes
 
Clasificasion de los lenguajes
Clasificasion de los lenguajesClasificasion de los lenguajes
Clasificasion de los lenguajes
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Lenguaje de programacion, clasificaion-historia.
Lenguaje de programacion, clasificaion-historia.Lenguaje de programacion, clasificaion-historia.
Lenguaje de programacion, clasificaion-historia.
 
Evolucion de los lenguajes de programación
Evolucion de los lenguajes de programaciónEvolucion de los lenguajes de programación
Evolucion de los lenguajes de programación
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la Programación
 
Lenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandezLenguaje de programacion fernando hernandez
Lenguaje de programacion fernando hernandez
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Los lenguajes de programación son herramientas que nos permiten crear program...
Los lenguajes de programación son herramientas que nos permiten crear program...Los lenguajes de programación son herramientas que nos permiten crear program...
Los lenguajes de programación son herramientas que nos permiten crear program...
 
Unidad 1.1 ensayo
Unidad 1.1 ensayoUnidad 1.1 ensayo
Unidad 1.1 ensayo
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Metreología programación
Metreología programaciónMetreología programación
Metreología programación
 
Preguntas y Respuestas
Preguntas y RespuestasPreguntas y Respuestas
Preguntas y Respuestas
 
Tema 01 introducción a compiladores
Tema 01   introducción a compiladoresTema 01   introducción a compiladores
Tema 01 introducción a compiladores
 
Metreología programacion
Metreología programacionMetreología programacion
Metreología programacion
 
Metreología programacion
Metreología programacionMetreología programacion
Metreología programacion
 
Lenguajes De Programación
Lenguajes De ProgramaciónLenguajes De Programación
Lenguajes De Programación
 
G lenguajes de-programacion
G lenguajes de-programacionG lenguajes de-programacion
G lenguajes de-programacion
 
Cuaderno2
Cuaderno2Cuaderno2
Cuaderno2
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacion
 

Más de JuanMiguelCustodioMo

Los precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teoríasLos precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teoríasJuanMiguelCustodioMo
 
Investigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizajeInvestigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizajeJuanMiguelCustodioMo
 
Cuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizajeCuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizajeJuanMiguelCustodioMo
 
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.JuanMiguelCustodioMo
 
Las Competencias : Didáctica General
Las Competencias : Didáctica GeneralLas Competencias : Didáctica General
Las Competencias : Didáctica GeneralJuanMiguelCustodioMo
 
Los Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidosLos Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidosJuanMiguelCustodioMo
 
Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.JuanMiguelCustodioMo
 
Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1 Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1 JuanMiguelCustodioMo
 
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4JuanMiguelCustodioMo
 
Criterios para selección de recursos didácticos
Criterios para selección de recursos didácticosCriterios para selección de recursos didácticos
Criterios para selección de recursos didácticosJuanMiguelCustodioMo
 

Más de JuanMiguelCustodioMo (20)

DIAGRAMAS DE FLUJO
DIAGRAMAS DE FLUJODIAGRAMAS DE FLUJO
DIAGRAMAS DE FLUJO
 
Los precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teoríasLos precursores de la Didáctica: sus aportes y teorías
Los precursores de la Didáctica: sus aportes y teorías
 
Investigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizajeInvestigaciones sobre la enseñanza y el aprendizaje
Investigaciones sobre la enseñanza y el aprendizaje
 
Cuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizajeCuadros comparativos sobre las teorías de aprendizaje
Cuadros comparativos sobre las teorías de aprendizaje
 
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
Profundizaciones sobre la enseñanza, el aprendizaje el rol del docente.
 
Las Competencias : Didáctica General
Las Competencias : Didáctica GeneralLas Competencias : Didáctica General
Las Competencias : Didáctica General
 
Los Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidosLos Contenidos Didácticos: Tipos y selección de contenidos
Los Contenidos Didácticos: Tipos y selección de contenidos
 
Reflexiones sobre evaluación
Reflexiones sobre evaluaciónReflexiones sobre evaluación
Reflexiones sobre evaluación
 
Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.Actividad práctica para aplicar criterios de evaluación.
Actividad práctica para aplicar criterios de evaluación.
 
Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1 Introducción a la Didáctica General: Unidad 1
Introducción a la Didáctica General: Unidad 1
 
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4ESTRATEGIAS DIDÁCTICAS.: Unidad 4
ESTRATEGIAS DIDÁCTICAS.: Unidad 4
 
RECURSOS Didácticos
 RECURSOS Didácticos RECURSOS Didácticos
RECURSOS Didácticos
 
Criterios para selección de recursos didácticos
Criterios para selección de recursos didácticosCriterios para selección de recursos didácticos
Criterios para selección de recursos didácticos
 
6. Cuestionario Unidad 3
6. Cuestionario Unidad 36. Cuestionario Unidad 3
6. Cuestionario Unidad 3
 
5. Diario de Campo
5. Diario de Campo5. Diario de Campo
5. Diario de Campo
 
4. Reproducciones
4. Reproducciones4. Reproducciones
4. Reproducciones
 
1. presentacion
1. presentacion1. presentacion
1. presentacion
 
3. Productos
3. Productos 3. Productos
3. Productos
 
2. Competencias especificas
2. Competencias especificas2. Competencias especificas
2. Competencias especificas
 
Medidas de Dispersión
Medidas de DispersiónMedidas de Dispersión
Medidas de Dispersión
 

Último

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 

Último (20)

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 

Historia e evoluvion de los lenguaje de programcion

  • 1. 85 Autores científico-técnicos y académicos El conjunto de órdenes e instrucciones que se dan al ordenador para que resuelva un problema o ejecute una determinada misión, recibe el nombre de programa. En los primeros tiempos de la informática, la programación se efectuaba en el único lenguaje que entiende el micro- procesador: su propio código binario, también denomi- nado lenguaje máquina o código máquina. Pero la programación en lenguaje máquina resulta muy lenta y tediosa, pues los datos e instrucciones se deben introducir en sistema binario y, además, obliga a conocer las posiciones de memoria donde se almace- nan los datos. Como puede imaginar, este tipo de pro- gramación conlleva gran número de errores y la tarea de depuración exige bastante tiempo y dedicación. Por este motivo, a principios de los 50 se creó una notación simbólica, denominada código de ensamblaje (ASSEMBLY), que utiliza una serie de abreviaturas mnemotécnicas para representar las operaciones (figura 1): ADD (sumar), STORE (copiar), etc.. Al principio, la traducción del código de ensamblaje al código máqui- na se realizaba manualmente, pero enseguida se vio que el ordenador también podía encargarse de esa tra- ducción; se desarrolló así un programa traductor, lla- mado ensamblador1 (ASSEMBLER). Figura 1. Ejemplo de programa en código de ensamblaje Conforme los ordenadores fueron introduciéndose en el mundo empresarial y académico, aquellos primiti- vos lenguajes fueron sustituidos por otros más sencillos de aprender y más cómodos de emplear. Estos lengua- jes, llamados de alto nivel, tienen una estructura que se adapta más al pensamiento humano que a la forma de trabajar del ordenador. Por ejemplo, seguro que le sue- nan lenguajes como BASIC, PASCAL, C, etc. Vicente Trigo Aranda Historia y evolución de los lenguajes de programación Historia y evolución de los lenguajes de programación 1 En la actualidad, se acostumbra identificar el ensamblador, que es el programa traductor, con el código de ensamblaje.
  • 2. 86 Autores científico-técnicos y académicos ¿Y cuántos lenguajes de programación existen? Pues sucede algo así como con los lenguajes humanos: existen centenares, si bien sólo unos pocos de ellos son ampliamente utilizados. En este artículo me voy a cen- trar en los lenguajes de programación más difundidos, siguiendo un criterio cronológico, y lo finalizaré presen- tándole una somera relación de otros lenguajes de pro- gramación más minoritarios o que ya han caído en desuso. INTÉRPRETES Y COMPILADORES Antes de pasar a ver los principales lenguajes de programación, debemos hacer un alto para comentar una característica común a todos ellos: las órdenes dadas en cualquier lenguaje siempre deben traducirse al código binario del ordenador, que es el único que realmente comprende su unidad central. Esta labor de traducción se lleva a cabo mediante un intérprete o un compilador. ¿Y qué diferencia hay entre estas dos cosas? Retomemos el símil de los lenguajes humanos y todo quedará aclarado. Imagine que no sabe nada de inglés y necesita con- versar con alguien que sólo conoce ese idioma. La forma más sencilla de establecer comunicación es con- seguir una persona que ejerza de intérprete. Cuando diga una frase en castellano, su intérprete la traducirá al inglés y, de esta forma, podrá entenderla aquella persona con la que esté conversando; análogo proceso se seguirá para traducir del inglés al castellano. En resumen, mientras esté presente su intérprete, la con- versación es posible. El intérprete informático realiza, más o menos, el mismo papel. Traduce instrucción a instrucción y, de esta forma, favorece la interactividad, la depuración y puesta a punto del programa, la ejecución inmediata de una orden, etc. Por ejemplo, entre los lenguajes que suelen ser interpretados, se encuentran BASIC, LOGO, etc. No obstante, existe otro tipo de traducción, la escri- ta, que presenta diferencias con respecto a la traduc- ción oral. Suponga, por ejemplo, que uno de sus libros vaya a ser editado en Gran Bretaña. Desde luego, no tiene sentido que, quien compre su libro, tenga un intérprete cerca cada vez que desee leer su libro. Resul- ta más lógico traducir el libro al inglés, ¿no? Cuando el traductor haya finalizado su trabajo, se tendrán dos copias del libro; el original, en castellano, y su traduc- ción, en inglés, que ya puede ser leída por cualquier persona que conozca el idioma de Shakespeare, sin necesidad de intérprete a su lado. El equivalente informático de esta modalidad de traductor se denomina compilador2. Observe que, en contraste con el intérprete, que traduce las instruccio- nes una a una, el compilador traduce todo el programa de golpe, dejándolo listo para ser ejecutado3. De esta forma, se logra mayor rapidez en la ejecución y, ade- más, se liberan recursos de la memoria, pues el progra- ma, una vez compilado, no exige que el traductor esté residente en memoria, como sucede con los intérpre- tes. Por ejemplo, entre los lenguajes que siempre son compilados se pueden destacar PASCAL, FORTRAN, COBOL, etc. Sin embargo, no todo son ventajas en los lenguajes compilados. Así, la depuración del programa resulta más cómoda con un intérprete, ya que el compilador no informa de los posibles errores hasta el momento de la compilación. Por otra parte, cada vez que se modifi- ca algo en el programa es preciso volver a compilarlo de nuevo4. Una vez aclarada la diferencia entre intérprete y compilador, vayamos ya con el primer lenguaje de alto nivel de amplia difusión. FORTRAN Al comienzo de la década de los 50, John Backus estaba trabajando con SSEC (Selective Sequence Elec- tronic Calculator), uno de los primeros ordenadores de IBM, y desarrolló el programa SPEEDCODING para él. Tomando éste como base, se emprendió, en otoño de 1954, la creación de un lenguaje para añadirle más prestaciones al modelo IBM 704, que iba a salir pronto al mercado. Historia y evolución de los lenguajes de programación 2 La introducción del término compilador (compiler, en inglés) en informática, se debe a la pionera Grace Hopper, que designó con ese nom- bre a su programa traductor A-O (1949). Más tarde, desarrolló el compilador B-O para UNIVAC. 3 Se llama programa fuente al programa original y programa objeto al programa resultante de la traducción. 4 Debido a que los intérpretes ocupan menos memoria que los compiladores y, además, siempre deben estar en memoria, en los microorde- nadores (¿recuerda el ZX-Spectrum o el VIC-20?) se incluía, a modo de sistema operativo, un lenguaje interpretado (BASIC, generalmente).
  • 3. 87 Autores científico-técnicos y académicos En 1956 se terminó el compilador FORTRAN (FORmula TRANslator) y se incluyó en el IBM 704, junto con un manual de 51 páginas (figura 2). Figura 2. Primera página del primer manual de FORTRAN, con la firma de Backus Como su nombre indica, FORTRAN estaba (y está) destinado a la resolución de problemas científico-técni- cos, resultando relativamente sencillo de aprender si se domina la notación matemática. Figura 3. Programa en FORTRAN Aunque ha ido perfeccionándose a lo largo del tiempo (con sus versiones II, IV, 77 y 90), lo cierto es que se ha visto superado por otros muchos lenguajes, ya que sus programas carecen de estructuración y son difíciles de seguir (figura 3). Sin embargo, todavía se sigue utilizando, sobre todo en el ámbito universitario. ¿Por qué? La respuesta radica en la gran biblioteca de subrutinas y funciones que se ha ido creando en sus más de treinta años de existencia. COBOL A finales de los 50, el Departamento de Defensa USA estaba bastante preocupado con los lenguajes de programación existentes, especialmente por dos razo- nes: los programas no podían llevarse de un ordenador a otro y resultaban bastante difíciles de leer y modificar. Para solventar estos inconvenientes, patrocinó una conferencia sobre lenguajes (CODASYL, COnference on DAta SYstems Languages), que tuvo lugar en 1959 y en la que participaron las grandes empresas del sec- tor (IBM, Sperry Rand, Honey Well, etc.). Como era previsible, formaba parte del comité la gran dama de la informática, Grace Hopper (figura 4). Figura 4. Hopper junto al monumento a COBOL Fruto de aquella conferencia fueron las especifica- ciones para desarrollar COBOL (COmmon Business Oriented Language), un lenguaje orientado hacia fun- ciones administrativas, de gran portabilidad y legibili- dad. Su primera versión apareció al año siguiente y, con el paso de los años, surgieron nuevas actualizacio- nes: COBOL 74, COBOL 85, etc. Ya que se buscaba su facilidad de lectura, COBOL tiene una sintaxis muy similar al inglés común (figura 5), cuya terminología aparece continuamente: verbos, párrafos, frases, etc. Así, los programas se estructuran en cuatro divisiones (Identification, Enviroment, Data, Procedure), que se subdividen en secciones y éstas, a su vez, en párrafos, que constan de frases e instruccio- nes. Historia y evolución de los lenguajes de programación
  • 4. 88 Autores científico-técnicos y académicos Figura 5. Antigua hoja de codificación en COBOL En la actualidad, COBOL se utiliza casi exclusiva- mente en algunos grandes sistemas informáticos (enti- dades bancarias, sobre todo), si bien más para mante- ner el código existente que para desarrollar nuevas aplicaciones. BASIC John G. Kemeny y Thomas E. Kurtz eran profesores del Dartmouth College (New Hampshire) y, en 1964, diseñaron un nuevo lenguaje que permitiera introducirse a sus estudiantes en los sistemas de tiempo compartido. Ese lenguaje, al que llamaron BASIC por su sencillez5, es, sin duda, el más difundido, aplicándose tanto en tareas de gestión como en aplicaciones científicas (figura 6). Figura 6. Programa BASIC que simula un sorteo de la Primitiva ¿Y a qué se debe la gran popularidad del BASIC? Lo cierto es que no era el mejor lenguaje ni el más potente, pero tenía dos ventajas a su favor: se trataba de un lenguaje sencillo de aprender y, además, su intérprete ocupaba poca memoria. Por estos motivos, cuando se creó el primer ordenador personal (Altair de MITS), no es extraño que se desarrollase un BASIC para él. ¿Y sabe qué empresa lo diseñó? ¡Exacto! Microsoft. Más tarde, Microsoft adaptó su BASIC a los produc- tos de Apple, a los microordenadores y, lo más impor- tante, al PC de IBM; de hecho, el sistema operativo MS- DOS incluía la versión GW-BASIC. En resumen, mucha gente aprendió a programar en BASIC con su ZX-Spec- trum o su primer PC y, una vez dominado un lenguaje, es comprensible una cierta reticencia al cambio. Además de GW-BASIC, hubo otras versiones que tuvieron cierta difusión en los 80, como Turbo BASIC (de Borland) y QuickBASIC (de Microsoft). De hecho, hasta Kemeny y Kurtz intentaron aprovechar el éxito de su creación y, en 1983, crearon True BASIC (figura 7), cuya comercialización no resultó muy fructífera6. Figura 7. True BASIC, casi desconocido BASIC ha sabido adaptarse a las necesidades del mercado en el transcurso de los años. Así, las primeras versiones eran interpretadas y sus programas resulta- ban un tanto ilegibles; en cambio, las actuales incorpo- ran bastante estructuración y son compiladas. El expo- nente máximo de los modernos BASIC es Visual BASIC… también de Microsoft, claro está. Historia y evolución de los lenguajes de programación 5 BASIC son las siglas de Beginners All Purpose Symbolic Instruction Code (código de instrucciones simbólicas multiuso para principiantes), aunque, en mi opinión, se trata de uno más de los juegos de palabras tan comunes en informática. Lo más probable es que primero surgiera el nombre y, luego, se buscase la forma de encajarlo como siglas de algo, porque lo cierto es que el larguísimo nombre oficial se las trae. 6 True BASIC todavía sigue vigente. Si lo desea, puede visitar su Web: http://www.truebasic.com/
  • 5. 89 Autores científico-técnicos y académicos LOGO En 1964, Seymour Papert se incorporó al MIT, tras haber permanecido cinco años en Suiza, colaborando con el pedagogo Jean Piaget (1896-1980). Tres años después, Papert comenzó a diseñar un lenguaje que sirviera para introducir en el mundo de la programa- ción al alumnado de menor edad (figura 8)… “¡Que los niños programen a los ordenadores y no los orde- nadores a los niños!” Figura 8. Papert con unos niños programadores (1984) Poco a poco, LOGO fue poniéndose a punto y cuando, en 1980, Papert lo divulgó en todo el mundo con su libro “Mindstorms: Children Computers and Powerful Ideas” (figura 9), fue muy bien acogido en los ámbitos educativos, especialmente en enseñanza pri- maria y secundaria. Figura 9. Versión en castellano de “Mindstorms” Teniendo en cuenta los pocos conocimientos mate- máticos de sus potenciales usuarios, LOGO introduce al mundo de la programación de una forma gráfica, mediante la geometría de la tortuga. En los primeros tiempos, con LOGO se controlaba un pequeño robot con ruedas, motor y un lápiz retráctil, que admitía órde- nes sencillas e intuitivas (Avanza, Retrocede, Gira a la derecha, etc.) y al desplazarse por el papel iba trazando el dibujo ordenado. Como el robot tenía forma abomba- da (figura 10) se le llamó tortuga7 (también influyó en el nombre el hecho de que era bastante lento). Figura 10. Una de las tortugas de la primera época Sin embargo, tras un impulso inicial muy ilusionan- te, LOGO ha ido desapareciendo de los centros de enseñanza españoles. ¿Las causas? Por un lado, resulta que el lenguaje LOGO no es nada sencillo cuando se quiere ir más allá de la tortuga gráfica, ya que se basa en la utilización continua de listas y procedimientos recursivos, que no son fáciles de manejar. Por otra parte, la informática educativa ha ido perdiendo su componente formativa y creativa (la programación) y ha sido sustituida por una informática de usuario (manejo de aplicaciones ofimáticas). C En los Laboratorios Bell (New Jersey) trabajaron dos de los investigadores más conocidos de la moderna infor- mática, Kenneth Thompson y Dennis Ritchie (figura 11), creadores del sistema operativo UNIX, en 1969. Figura 11. Thompson y Ritchie recibiendo la Medalla National Technology en 1999 Historia y evolución de los lenguajes de programación 7 En los ordenadores actuales, la tortuga se representa en pantalla mediante un pequeño triángulo.
  • 6. 90 Autores científico-técnicos y académicos En 1970, Thompson desarrolló un lenguaje experi- mental, al que llamó B. Dos años después, Ritchie se basó en B para crear un nuevo lenguaje de propósito general, que denominó C8. Como no depende de la arquitectura del hardware, C es uno de los lenguajes más portables del mercado y, como además ofrece amplias prestaciones, su difusión es amplísima. A principios de los 80, Bjarne Stroustrup (figura 12) diseñó una ampliación de C y, en 1984, la convirtió en un compilador que llamó C++9, especialmente enfo- cado a la programación orientada a objetos. Figura 12. La dirección es http://www.research.att.com/~bs/homepage.html PASCAL A principios de los 70, el profesor suizo Niklaus Wirth (figura 13), del Instituto Politécnico Federal de Zurich, emprendió la creación de un nuevo lenguaje (PASCAL) que permitiera introducirse en la programa- ción de una forma fácil pero a la vez potente y, sobre todo, siguiendo unas pautas estructuradas. De hecho, PASCAL es el lenguaje más sencillo que posibilita el acceso a la informática teórica: descomposición modu- lar, recursividad, punteros, etc. Figura 13. Niklaus Wirth PASCAL, que surgió como una derivación de ALGOL (ver último apartado), fue definido en el libro “PASCAL - User Manual and Report” (1974), escrito por Kathleen Jensen y Niklaus Wirth (figura 14). En 1980 sufrió la primera formalización y se estandarizó en 198310. Al poco tiempo, Borland lanzó al mercado su compilador PASCAL, cuyo nombre se precedía con la palabra Turbo, para recalcar su rapidez. Su éxito fue tan grande11 que vendió casi medio millón de copias de su compilador sólo en 1985. Figura 14. Portada del libro que divulgó el PASCAL Durante más de un década, Turbo PASCAL ha sido sinónimo de PASCAL, pero, por desgracia, en el año 2000, Borland dejó de darle soporte técnico y su pre- sencia es cada día menor en el ámbito de la programa- ción, sobreviviendo a duras penas en el mundo univer- Historia y evolución de los lenguajes de programación 8 Posteriormente, se reescribió UNIX en C. También están desarrollados en C el propio compilador C y la mayoría de sistemas operativos. 9 En C el operador ++ equivale a incrementar la variable. Como el nuevo lenguaje incrementaba la potencialidad de C con la programación orientada a objetos, se optó por el nombre C++. 10 Poco después, para solventar todos los inconvenientes que presentaba PASCAL, Wirth diseñó el lenguaje MODULA-2 (MODUlar LAngua- je number 2), que está basado en el manejo de módulos, como bloques independientes. 11 Microsoft, que había lanzando su propia versión de PASCAL (Quick PASCAL), acabó retirándola del mercado.
  • 7. 91 Autores científico-técnicos y académicos sitario. Sin embargo, en 1995 surgió una nueva ver- sión, DELPHI, que amplía PASCAL a la programación visual e intenta hacerle la competencia a Visual BASIC. PROLOG En 1972, Robert Kowalski (universidad de Edim- burgo) y Alain Colmerauer y Phillippe Roussell (univer- sidad de Aix-Marseille) expusieron la revolucionaria idea de que la lógica podía emplearse como lenguaje de programación. Siguiendo esta línea, al año siguien- te, el grupo de inteligencia artificial de la universidad de Aix-Marseille comenzó a diseñar ese lenguaje, al que se llamó PROLOG (PROgramation LOGique). Figura 15. Alain Colmerauer PROLOG es el prototipo de lenguaje declarativo por excelencia. ¿Y qué es eso de declarativo? Todos los lenguajes que hemos ido viendo hasta ahora son algo- rítmicos; es decir, los ordenadores se consideran máquinas de Turing a las que debemos indicar todos y cada uno de los pasos a seguir para realizar una cierta tarea. Frente a estos lenguajes imperativos, los declara- tivos no están basados en órdenes sino en descripcio- nes. En otras palabras, en los programas PROLOG se proporcionan al ordenador una serie de conocimientos sobre un tema, junto con una serie de reglas, y el pro- grama nos contestará todas aquellas preguntas que deseemos hacerle sobre el tema… siempre que las res- puestas puedan deducirse lógicamente de los conoci- mientos dados al inicio. Como es fácil suponer, PROLOG no está destinado al cálculo científico. Su aplicación en el campo de la inteligencia artificial, definiendo objetos y establecien- do relaciones, permite resolver problemas lógicos, desarrollar sistemas expertos, investigar en la compren- sión del lenguaje humano, etc. ADA Quince años después de intentar uniformizar los lenguajes con COBOL, el Departamento de Defensa USA percibió que su objetivo no se había cumplido, ni mucho menos12. Por ese motivo, en 1975 formó un grupo de trabajo para evaluar los lenguajes existentes en aquel entonces13 y ver si alguno de ellos podía adaptarse a las necesidades del Departamento. ¿Y qué condiciones debía cumplir el lenguaje dese- ado? En principio, debía permitir el diseño de progra- mas modulares y estructurados, de modo que fuesen fáciles de leer y de depurar. También era necesario que, como debía controlar instrumentos militares de todo tipo, gestionase sin problemas cualquier periférico. Además, tenía que aceptar el trabajo en paralelo, de modo que varios procesos se ejecutaran de forma simultánea o cuasisimultánea. ¿Qué lenguaje eligió el grupo de trabajo? Lo cierto es que ninguno le convenció y en su informe final propuso la creación de un nuevo lenguaje, recomendando que se basara en PASCAL, PL/I (ver último apartado) y ALGOL 68, ya que eran los más apropiados de los evaluados14. Poco después, se convocó un concurso para desa- rrollar un nuevo lenguaje que se ajustara a los requeri- mientos del Departamento de Defensa. Se presentaron 17 propuestas que, tras una selección previa, quedaron Historia y evolución de los lenguajes de programación 12 Se estima que, a comienzos de los ochenta, sus ordenadores manejaban del orden de cuatrocientos lenguajes distintos, si bien muchos de ellos eran dialectos creados específicamente para determinados equipos militares. Teniendo en cuenta, además, que los programas tenían un promedio de cien mil líneas de código, no es extraño que hubiera un cierto caos informático. 13 Los lenguajes evaluados fueron: ALGOL 60, ALGOL 68, CMS-2, COBOL, CORAL 66, CS-4, ECL, EUCLID, FORTRAN, HAL/S, JOVIAL J-3B, JOVIAL J-73, LIS, LTR, MORAL, RTL/2, PASCAL, PDL/2, PEARL, PL/I, SIMULA 67, SPL/1, TACPOL. 14 The unanimous recommendations of the evaluation committee, adopted unanimously by the HOLWG were: • That none of the evaluated languages met the requirements to such an extent as to be selected with little or no modifications for a DoD- wide standard; • That it appeared feasible within the state-of-the-art to construct a single language to meet essentially all of the requirements; • That the construction of such a language would most likely be done by modification (albeit substantial) of an existing language. The approaches recommended as a basis for further development were the language families of PL/I, Pascal, and ALGOL-68.
  • 8. 92 Autores científico-técnicos y académicos reducidas a cuatro, a las que se asignó los nombres clave de Red, Green, Yellow y Blue, por aquello de preservar el anonimato. Finalmente, Green fue el lenguaje elegido. Propuesto por Honeywell-Bull (Francia), fue diseñado por un equi- po encabezado por Jean Ichbiah (figura 16)15. En un pri- mer momento, se le dio el nombre de DoD-1 pero acabó cambiándose por ADA, en honor de Ada Lovelace. Figura 16. Jean Ichbiah Sin embargo, a pesar de los años transcurridos desde entonces y a las mejoras que han ido introdu- ciéndose en él (figura 17), lo cierto es que ADA no es un lenguaje popular, salvo por su nombre. Se le repro- cha ser un tanto complejo, bastante estricto y sólo apropiado para el desarrollo de grandes programas. Figura 17. Programa realizado con el compilador GNAT ADA 95 JAVA Este lenguaje16, hoy en día ampliamente utilizado en Internet, fue desarrollado en 1990 por James Gos- ling (figura 18), de Sun Microsystems, basándose en C y C++. ¿Un lenguaje para Internet cuando, en aquella época, la Red estaba casi circunscrita al ámbito univer- sitario? En realidad, el objetivo de Sun no tenía nada que ver con Internet; era crear un interfaz atractivo e intuitivo para electrónica de consumo (calculadoras, televisión interactiva, etc.). Figura 18. James Gosling Sin embargo, la electrónica de consumo no evolu- cionó como se esperaba y, durante unos años, el len- guaje de Gosling permaneció aparcado, hasta que Bill Joy (cofundador de Sun) consideró que podía ser inte- resante para Internet y propuso modificarlo para el nuevo medio. En agosto de 1995, ya con el nombre de JAVA, se presentó en sociedad17. A pesar de que JAVA resulta un tanto lento en su ejecución, cada día es más popular. Por un lado, es relativamente sencillo y bastante potente; además, es válido para cualquier plataforma y, sobre todo, muy fiable y seguro, manteniendo alejado a los virus. ALGUNOS OTROS LENGUAJES Como le indicaba al comienzo del artículo, además de los lenguajes de programación vistos anteriormente, Historia y evolución de los lenguajes de programación 15 Los otros tres proyectos correspondían a Intermetrics [Benjamin M. Brosgol] (Red), SofTech [John Goodenough] (Blue) y SRI Internatio- nal [Jay Spitzen] (Yellow). El nombre que aparece entre corchetes es el del director de cada equipo. 16 Su nombre era inicialmente OAK (roble, en inglés), debido a la abundancia de ese árbol en los alrededores de las oficinas donde se estaba desarrollando. 17 El nombre OAK estaba registrado por otra empresa y durante una reunión del equipo, en una cafetería, se propuso llamar a su lenguaje JAVA… el nombre de una marca de café.
  • 9. 93 Autores científico-técnicos y académicos se han ido desarrollando otros muchos, si bien su ámbito de aplicación es más reducido o ya han dejado de utilizarse. A modo de ejemplo, le muestro una somera relación de algunos que han tenido cierto inte- rés y/o influencia. PLANKALKÜL Podríamos decir que es el antepasado de los modernos lenguajes de programación. Fue creado por Konrad Zuse, a mediados de los 40, para su serie de máquinas Z. Su nombre es una combinación de las palabras Plan y Kalkül, así que podría traducirse por “plan de cálculo”. SHORT CODE Basándose en las ideas de John W. Mauchly, William F. Schmitt creó este lenguaje interpretado en 1950 y fue utilizado en la primera serie de UNIVAC. Es considerado el precursor de los lenguajes de alto nivel. FLOWMATIC El primer lenguaje de programación destinado al tratamiento de aplicaciones de gestión. Desarrollado por el equipo de Grace Hopper en 1957, este lenguaje compilado sólo fue implementado en UNIVAC. LISP Durante un encuentro sobre inteligencia artificial celebrado en el verano de 1956, H. A. Simon, A. Newell y J. C. Shaw describieron su lenguaje IPL (Information Processing Language), creado para el ordenador JOHNIAC. Inspirándose en ese lenguaje, en 1958 John McCarthy creó el LISP (LISt Processing lan- guage) como parte de un proyecto de inteligencia arti- ficial del MIT, teniendo como soporte un equipo IBM 70418. Se trata de un lenguaje conciso e interactivo, basado en el tratamiento de listas (de ahí su nombre), ya que tanto los programas como los datos se estructu- ran mediante listas. ALGOL Con vistas a obtener un lenguaje universal, que no dependiera de la máquina donde se implementara, se formó un comité internacional, formado por la ACM (Association for Computing Machinery) y la GAMM (siglas alemanas de la Sociedad para las Matemáticas aplicadas), que, en 1958, publicó en Zurich un informe dando carta de nacimiento al IAL (International Alge- braic Language), posteriormente denominado ALGOL 58 (ALGOritmic Language). Su versión operativa se presentó en Paris en 1960 y, más adelante, fue perfec- cionada (ALGOL 68). Aunque ha caído en desuso, su influencia ha sido decisiva en el desarrollo de los lenguajes de programa- ción posteriores, ya que muchos de los más importan- tes (PASCAL, C, ADA, JAVA, etc.) descienden, directa o indirectamente, de ALGOL. JOVIAL Su nombre son las siglas de “Jules’ Own Version of the International Algorithmic Language” y fue desarro- llado en 1959, partiendo de IAL (de ahí el nombre19), para Air Force USA, que deseaba un lenguaje válido tanto para usos científicos como de gestión… y JOVIAL todavía sigue en activo (figura 19). Figura 19. La dirección es: http://www.jovial.hill.af.mil Historia y evolución de los lenguajes de programación 18 Para conocer más a fondo la historia de LISP, según John McCarthy, vaya a la siguiente dirección: http://www-formal.stanford.edu/jmc/history/lisp/lisp.html 19 El nombre original del lenguaje era OVIAL (Our Own Version of the International Algebraic Language) pero se le añadió la J inicial por- que, según palabras de Jules Schwartz, director del proyecto: “In the late 1950s, society wasn’t quite as free thinking as it is today. The name OVIAL seemed to have a connotation relative to the birth process that did not seem acceptable to some people”.
  • 10. 94 Autores científico-técnicos y académicos APL El profesor Kenneth E. Iverson ideó una notación para describir, sin ambigüedad y con concisión, algorit- mos matemáticos y la dio a conocer en su libro “A Pro- gramming Language” (cuyas siglas corresponden al nombre del lenguaje), publicado en 1962. Partiendo de esa notación, IBM desarrolló el lenguaje APL, orienta- do a usos científicos. Todavía se sigue utilizando y sus programas se reconocen visualmente por su brevedad y la inclusión de caracteres especiales (figura 20). Figura 20. Ordenación de una lista en FORTRAN y APL. La concisión de éste último es innegable PL/I Este lenguaje fue desarrollado por IBM, a partir de 1963, que deseaba un lenguaje polivalente, en el senti- do de que podía aplicarse tanto a gestión como al ámbi- to científico. Buscando aunar las ventajas de COBOL, FORTRAN y ALGOL, PL/I20 resultó un lenguaje muy flexible y potente, por lo que todavía sigue en uso. RPG A principios de los 60, IBM comenzó a desarrollar un lenguaje orientado la obtención de informes (ven- tas, pagos, etc.) en el ámbito de gestión (RPG son las siglas de Report Program Generator). En 1964 salió al mercado con la serie IBM 360 y, desde entonces, ha sufrido diversas actualizaciones: II, III, 400, IV, Visual RPG. Es un lenguaje sencillo de aprender, si bien su versatilidad no es mucha. En las cuatro secciones en que se estructura cada programa, se deben indicar los archivos y dispositivos a emplear, fijar las especificacio- nes de entrada, determinar las operaciones a realizar y establecer los formatos de salida. A partir de la versión IV se añadió la sección de subprocedimientos. SIMULA Basado en ALGOL, se trata del primer lenguaje orientado a objetos. Fue desarrollado por los noruegos Ole-Johan Dahl y Kristen Nygaard (figura 21) que bus- caban un lenguaje adecuado para la simulación de eventos discretos (su nombre es una contracción de Simulation Languaje). Su primer compilador estuvo disponible en 1964, para la serie 1100 de UNIVAC, si bien hasta 1967 no adquirió una amplia funcionalidad. En la actualidad hay disponibles diversas versiones fre- eware de su compilador21. Figura 21. Nygaard y Dahl, ya fallecidos, recibieron el premio Turing de la ACM en el año 2001 FORTH Este lenguaje fue creado a finales a los 60 por Charles H. Moore, para controlar los radiotelescopios de Kitt Peak y procesar sus datos. Se trata de un len- guaje22 funcional e interactivo que ha ido evolucionan- Historia y evolución de los lenguajes de programación 20 PL/I son las siglas de Programming Language/I, donde I representa el uno… ¿El primer lenguaje de programación? ¿El número uno de los lenguajes de programación? 21 Por ejemplo, en: http://www.simula-c.de/download.htm http://www.ifi.uio.no/~cim/sim_index.shtml 22 El origen de su nombre es ciertamente curioso. Moore consideraba que su lenguaje era tan avanzado que debía pertenecer a la cuarta (fourth, en inglés) generación de ordenadores (en aquel entonces estaban en la tercera). Pero como su implementación tuvo lugar en un IBM 1130 que sólo admitía identificadores de cinco letras, perdió la U y se quedó en FORTH.
  • 11. 95 Autores científico-técnicos y académicos do con el paso del tiempo. Debido a la poca memoria que ocupa y a su rapidez, fue uno de los primeros en difundirse entre los microordenadores (figura 22). Figura 22. FORTH para Commodore LSE Con objeto de que el profesorado francés de secun- daria fuese capaz de crear sus propios materiales edu- cativos informáticos, se diseñó el lenguaje este lenguaje (Lenguage Symbolique d’Enseignement) en 1971, que no tuvo mucho éxito23. SMALLTALK Creado por Alan Kay en el Centro de Investigacio- nes Xerox de Palo Alto, en los primeros 70, es un len- guaje muy influenciado por SIMULA, estando también orientado a objetos. Tuvo sucesivas versiones (72, 76 y 80) y ofrece un entorno completo para el desarrollo de programas. COMAL Destinado a la informática educativa en los países escandinavos, fue desarrollado por Benedict Loefstedt y Borge Christensen en 1973, combinando las ventajas de BASIC y PASCAL (sus siglas corresponden a COM- mon Algorithmic Language). En 1980 se estandarizó y todavía sigue siendo utilizado, sobre todo en la Europa del norte. ¿Se ha quedado con ganas de conocer más lengua- jes? Si la respuesta es afirmativa, puede darse un paseo por la Web Dictionary of Programming Languages (figura 23), donde encontrará referencias y comenta- rios sobre un centenar y medio de lenguajes. Figura 23. Su dirección es http://cgibin.erols.com/ziring/cgi- bin/cep/cep.pl Historia y evolución de los lenguajes de programación 23 En la Escuela Superior de Electricidad se desarrollaron, entre 1968 y 1976, varios lenguajes con una filosofía similar: LSD, LSE, LSG y LST.