Estudios de Lingüística del Español (ELiEs)
Lenguajes de programación, lenguajes de marcado y modelos hipermedia: una visión interesada de la evolución de los lenguajes informáticos / A. Fernández-Valmayor, A. Navarro, B. Fernández-Manjón y J. L. Sierra


2.1 Génesis de los lenguajes informáticos

Los primeros lenguajes informáticos eran, sencillamente, secuencias de códigos que representaban los datos que la computadora debía procesar y las acciones que ésta debía realizar. Estos códigos, que difícilmente podrían considerarse como un verdadero lenguaje, se caracterizaban porque en ellos no había nada que permitiese al programador expresarse de una forma ni tan siquiera similar a la utilizada en la lengua natural. Estos lenguajes conocidos con el nombre de lenguajes máquina están constituidos por los códigos binarios que la máquina es capaz de interpretar e, inicialmente, eran el único lenguaje disponible para el programador. Aunque estos lenguajes son apropiados para las máquinas, resultan complicados para los programadores y profesionales informáticos. Desde un principio, para solucionar este problema de comunicación, los programadores usaron algún tipo de notación simbólica para referirse a las acciones y a los datos utilizados por los programas. Para completar estas notaciones simbólicas, también se utilizaban comentarios escritos en lengua natural que, después, no eran tenidos en cuenta cuando el programa se transmitía a la máquina. La evolución natural de estas notaciones y comentarios en lengua natural dieron lugar a conjuntos sencillos de reglas que, posteriormente, y adecuadamente formalizadas, sirvieron para definir los primeros lenguajes ensambladores y para construir las primeras herramientas que basándose en estas reglas, traducían, de forma automática, del lenguaje ensamblador al lenguaje reconocido por la máquina.

Los primeros lenguajes informáticos de alto nivel surgen para facilitar la tarea de los programadores en el desarrollo de aplicaciones informáticas específicas. La expresión “de alto nivel” pretende enfatizar que el objetivo es lograr disponer de lenguajes informáticos que permitan describir los detalles de un problema sin descender a los detalles de cómo deben codificarse éstos para que una máquina pueda procesarlos. Para ello, estos lenguajes de alto nivel disponen de estructuras lingüísticas que permiten expresar los problemas que tratan de resolver con las aplicaciones informáticas. Así por ejemplo, el lenguaje FORTRAN (FORmula TRANslator) (Backus, 1956) fue diseñado para resolver problemas científicos en notación algebraica. De esta forma, se puede considerar que FORTRAN es la versión informática del sublenguaje habitualmente utilizado por los matemáticos para expresar operaciones y datos algebraicos. Este lenguaje hizo importantes contribuciones al desarrollo de las primeras nociones abstractas de los lenguajes informáticos, destacando, entre ellas, el concepto de variable, como abstracción de una posición de la memoria de la máquina. También introduce el concepto de tipo, una abstracción del código utilizado para guardar un valor en la memoria y que representa un elemento genérico del conjunto de valores que puede tomar una variable o una constante. FORTRAN, también, permite dividir en módulos un programa mediante la utilización de subprogramas, un primer paso hacia la abstracción funcional, aunque realmente, en este caso, se trata sólo de una modificación de las instrucciones básicas de control.

En otro orden de aplicaciones, en 1959, y a iniciativa del Departamento de Defensa de los Estados Unidos, se constituyó un comité para desarrollar un lenguaje de programación, COBOL (Common Business Oriented Language) (DOD, 1960), que tenía como objetivo desarrollar un lenguaje apropiado para las aplicaciones del mundo de la administración. Este lenguaje introduce nuevos tipos de datos que facilitan el procesamiento de la información no numérica, siguiendo, para ello, un modelo muy cercano al mundo administrativo y de los negocios. Su tipo de datos básico, la estructura de registro o ficha, trataba de modelar un tipo de objeto que es básico en el mundo administrativo y, posteriormente, fue incorporado a casi todos los lenguajes de programación. Otra característica importante de COBOL fue el esfuerzo por hacer que un programa resultase legible, incorporando al lenguaje estructuras lingüísticas similares a las de las frases más sencillas del idioma inglés, con lo que un programa escrito en COBOL tenía un aspecto similar al de un documento escrito en esta lengua.

En esta misma época, John McCarthy, entonces en el grupo de Inteligencia Artificial del MIT, crea el lenguaje LISP (LIStProcessing) (MCCarthy, 1960). Como los lenguajes anteriores, LISP también fue diseñado para una aplicación específica: el procesamiento de listas de expresiones simbólicas. Igualmente, LISP contribuyó con importantes nociones al desarrollo de los lenguajes de programación. Entre éstas podemos destacar: la noción de lista como estructura de datos básica y única. Además en LISP los datos y los programas (que en este caso son funciones) tienen la misma estructura de lista, lo que permite que las funciones puedan ser parámetros y resultado de otras funciones.

La aparición de estos lenguajes de alto nivel también implica la existencia de mecanismos más o menos automatizados de procesamiento de sus estructuras lingüísticas para poder traducirlas a los códigos binarios del lenguaje máquina. Así por ejemplo, FORTRAN fue el primer lenguaje informático de alto nivel ampliamente utilizado y para el que se pudo disponer de un programa de traducción automática, es decir, de un compilador1. La construcción de dicho compilador, llevada a cabo en 1957 por J. Backus y su equipo, acabó con la creencia general de la imposibilidad de lograr traducir de forma automática un programa informático escrito en un lenguaje de alto nivel a lenguaje máquina y obtener un resultado que fuese tan eficiente como el obtenido realizando esta misma tarea manualmente.




Notas

1 El término compilador se debe a la que llegó a ser almirantal de la marina norteamericana G.M. Hopper, la promotora de COBOL, y hace referencia a la construcción de un programa, traducción de otro anterior, utilizando elementos previamente guardados en una biblioteca.





Estudios de Lingüística del Español (ELiEs), vol. 24 (2006)   
 ISSN: 1139-8736