Lenguajes de Programación Destacados de los 70s

Clase 17 de 21Curso de Historia de la Programación: Lenguajes y Paradigmas

Resumen

Gracias a la llegada de los microprocesadores surgieron nuevos lenguajes de programación que se adaptaron a la nueva arquitectura. Las máquinas se volvieron más pequeñas y veloces. Además, gracias a los microprocesadores, se abrió la posibilidad de la portabilidad (que un mismo lenguaje sirva para distintas máquinas). Entre los lenguajes más destacados de esta década encontramos:

C

C es un lenguaje de programación de propósito general. Originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell, tiene su nombre como evolución del anterior lenguaje B (a su vez basado en BCPL). Estaba originalmente pensado para el sistema operativo UNIX.

Se trata de un lenguaje de tipos de datos estáticos, débilmente tipado, de medio nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel, pero también de construcciones del lenguaje que permiten un control a bajo nivel.

Por ser de relativamente bajo nivel y tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en variedad de plataformas. A continuación un ejemplo en C.

Factorial en C

Lenguaje Pascal

Pascal es un lenguaje de programación creado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969, y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos.

Pascal fue el lenguaje primario de alto nivel utilizado para el desarrollo en el Apple Lisa, y en los primeros años del Macintosh.

Se caracteriza por ser un lenguaje de programación fuertemente tipado, pero que permite la definición de nuevos tipos de datos con el primitivo type. Además, introdujo el código intermedio. Es decir, el código Pascal se compila a un formato llamado “P-code”, que después es interpretado (similar a como funciona la Java Virtual Machine). Aquí un ejemplo de cómo calcular el factorial en Pascal.

Factorial en Pascal

Smalltalk

Los orígenes de Smalltalk se encuentran en las investigaciones realizadas por Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg y otros durante los años 70 en el Palo Alto Research Center. Es un lenguaje reflexivo de programación, 100% orientado a objetos y con tipado dinámico. Se caracterizó por incluir los objetos de manera primitiva (es decir, no hay que traer paquetes o librerías).

Smalltalk manejó conceptos como las clases, el encapsulamiento, los métodos públicos y las instancias privadas. Además, Smalltalk apuntaba a ser no solo un lenguaje sino un entorno completo de programación. A continuación vemos un ejemplo de cómo se crea una clase en Smalltalk.
Clase en Smalltalk

Meta Language (ML)

Diseñado por Robin Milner y su equipo a mitad de los 70, ML era utilizado principalmente para manipular información simbólica. Es un lenguaje declarativo y funcional, orientado a la investigación

Al igual que Pascal, es un lenguaje de tipado estático. No obstante, se destacó por ser el primer lenguaje que contó con un sistema de inferencia de tipos. Es decir, no es obligatorio declarar el tipo de dato de una variable. A continuación un ejemplo del algoritmo insertion sort en ML.
Insertion sort en Meta Languaje

Prolog

Prolog es un lenguaje de programación lógica. Ideado a principios de los años 70 en la Universidad de Aix-Marseille I (Marsella, Francia) por Alain Colmerauer y Philippe Roussel, está basado en las cláusulas de Horn. Se mantiene vigente a día de hoy, ya que se usa en el campo de la Inteligencia artificial y el procesamiento natural del lenguaje (NLP). Como dato curioso, el primer intérprete de Prolog fue desarrollado en FORTRAN.

He aquí un ejemplo de Prolog (el cual vimos en clases pasadas).

speaks(juan, french)
speaks(isabel, english)
speaks(eduadro, french)
speaks(eduardo, english)

talkswith(Person1, Person2) :-
speaks(Person1, L),
speaks(Person2, L),
Person1 \= Person2

?- speaks(Who, French)

Contribución creada por: Ciro Villafraz con los aportes de Leonard Cuencua.