Algunos lenguajes de programación

El número de lenguajes de programación se cuenta ya por centenares o, quizá, por millares.

Junto a los lenguajes de tipo algorítmico tradicionales, se han desarrollado también lenguajes orientados a la consulta de bases de datos. Se trata de los lenguajes de interrogación (query), a veces llamados lenguajes de cuarta generación (4 GL). En el fondo son lenguajes de especificación de problemas a partir de los cuales se genera automáticamente el programa que resuelve la consulta deseada.

Otra familia la constituyen los lenguajes que no son de tipo algorítmico, como los utilizados en el campo de la inteligencia artificial (el Prolog, por ejemplo).

A continuación comentamos algunas características de los lenguajes algorítmicos más utilizados.

Fortran

El lenguaje Fortran (FORmula TRANslation o traducción de fórmulas) se utiliza muy a menudo en aplicaciones de cálculo científico e ingeniería.

A causa de su origen, no es un lenguaje estructurado, pero se han hecho extensiones que introducen las nociones de la programación estructurada, como pasa con la versión denominada Ratfor. Para escribir las expresiones, el lenguaje Fortran utiliza una notación muy próxima a la que se usa en el campo de las matemáticas. Trata las expresiones aritméticas con órdenes que las evalúan y asignan el resultado como nuevos valores de las variables. Incluye tipos de datos elementales, matrices, subprogramas y elementos de control de secuencia elementales, así como una estructura repetitiva.

Algol

Si bien ha caído en desuso, el Algol (ALGOrithmic Language o ALGebraic Oriented Language) es un lenguaje algorítmico u orientado al álgebra, importante por haber introducido por vez primera conceptos que se han revelado básicos en la programación, principalmente la idea de estructuración.

Se llegó a utilizar como un lenguaje internacionalmente adoptado para la descripción de algoritmos matemáticos.

Cobol

El Cobol (COmmon Bussines Oriented Language o lenguaje orientado a los negocios) se utiliza ampliamente en el campo de las aplicaciones de gestión.

Su sintaxis permite que los programas puedan leerlos fácilmente personas no formadas técnicamente y con pocos conocimientos de inglés, idioma en el que basa su vocabulario. Es de destacar el aspecto de gestión de estructuras de datos externos como son los ficheros, tan necesarias en las aplicaciones de gestión para las cuales está diseñado.

La entidad que regula su evolución y establece su estándar (CODASYL) lo ha estructurado en forma modular, con un núcleo y un conjunto de varios módulos, cada uno de ellos con tres niveles de implementación. Así, puede implementarse en una gran variedad de máquinas; de ahí, el elevado grado de portabilidad de las aplicaciones escritas en este lenguaje.

PL/1

El PL/1 o "lenguaje de programación 1" (Program Language I) es un lenguaje que quiere ser útil tanto en los problemas de tipo científico como en los de gestión.

Su diseño se basa mucho en otros lenguajes como el Fortran, el Cobol y el Algol. Del Algol adopta la estructura de bloques y las instrucciones de control de secuencia estructuradas; del Cobol, la riqueza en la gestión de ficheros y la declaración de datos tipo PICTURE, y del Fortran, la forma concisa y simple de las instrucciones y el mecanismo de transmisión de parámetros, entre otros elementos.

Basic

El Basic (Beginners All-Purpose Symbolic Instruction Code o código de instrucciones simbólicas para principiantes y toda clase de propósitos) pretende ser un código de instrucciones simbólicas orientadas a cualquier tipo de problema y muy fácil de aprender.

La fama de este lenguaje procede de haber sido el procesador de lenguaje de tipo intérprete que se ha implementado en la mayoría de los microordenadores.

Aunque es más adecuado para el cálculo científico, con una forma parecida a la del Fortran, en los últimos años se ha utilizado para desarrollar aplicaciones de gestión en microordenadores. La ausencia de un estándar complica la portabilidad de programas entre una máquina y otra. El hecho de que sea tan fácil de aprender y la ausencia total de mecanismos de estructuración han llevado, en los últimos años, a la aparición de un gran número de programadores especialistas en Basic, que parecen irremediablemente perdidos para el proceso de racionalización de la actividad de programar que se inicia en la programación estructurada.

Lisp

Diseñado inicialmente por John McCarthy en el MIT hacia 1960, el Lisp (LISt Processing) es un lenguaje creado especialmente para procesar listas. Una lista en Lisp es una serie de elementos separados por un espacio en blanco e incluidos entre paréntesis. Un elemento puede ser simple (átomo) o puede ser una lista. Una subrutina se considera una herramienta que define una función en sentido análogo al matemático, estableciendo una correspondencia entre un conjunto de valores a la entrada y un conjunto de valores a la salida. Hechos destacables son la equivalencia formal entre programas y datos, todos ellos en forma de listas, lo cual permite que una estructura de datos se ejecute como un programa, o que un programa se modifique a sí mismo considerándose como datos. Otro elemento nuevo en su diseño es el uso tan extendido de la recursividad. Con el Lisp aparece el concepto de "recogida de basuras" (garbage collection) para el aprovechamiento de la zona de almacenaje. Se utiliza en el área de la inteligencia artificial: robótica, tratamiento del lenguaje natural, prueba de teoremas, sistemas inteligentes, etc. También es importante por haber dado origen al Logo, que se emplea a menudo en el campo de la informática educativa.

RPG

El RPG (Report Program Generator o programa generador de listados) es en realidad un generador de programas que lee unas especificaciones y adapta los módulos de un ciclo fijo de programa para la realización de las entradas y salidas indicadas en las instrucciones. Apareció con los pequeños ordenadores para gestión, como el Sistema/3 de IBM, a finales de los sesenta. Modificaciones posteriores (las tarjetas de instrucciones tipo C y las versiones RPG III y RPG 400) lo configuran con la posibilidad de desarrollar algoritmos específicos, mediante el uso de variables binarias conocidas como interruptores, y también de gestionar bases de datos.

Pascal

El lenguaje Pascal fue diseñado por el profesor Niklaus Wirth y publicado en 1971, aunque su primera implementación es de 1973. Su origen era servir como lenguaje base para la enseñanza de la programación desde un punto de vista sistemático, introduciendo en el mismo lenguaje los conceptos de la programación estructurada. Su nombre es un homenaje a Blaise Pascal. Se utiliza mucho en la enseñanza, en la construcción de software y en muchas otras áreas de aplicación.

Se trata de un lenguaje que presenta estructura de bloques e implementa la mayoría de los conceptos de la programación estructurada, tal como se han descrito en este texto. Incluso la notación utilizada anteriormente para la descripción de las estructuras de control de secuencia se basa claramente en el Pascal. Este lenguaje ha ejercido una gran influencia en la creación de nuevos lenguajes como el Ada y el Concurrent Pascal. La principal innovación, junto con la estructuración, es la introducción de los tipos de datos y, sobre todo, que el programador pueda describir nuevos tipos de datos. Los subprogramas adoptan la forma de function, si devuelve un único valor, o procedure, si modifica los parámetros recibidos o las variables globales. En realidad, una procedure es un bloque estructural completo, ya que el Pascal implementa este concepto tomado con toda seguridad del Algol.

Ada

A principios de los setenta, el Departamento de Defensa de Estados Unidos abordó el estudio de las especificaciones necesarias para un lenguaje de programación de uso en aplicaciones en las que uno o varios ordenadores formaran parte de un sistema más amplio, como un aeroplano, un navío o sistemas de comunicaciones. Las especificaciones (versión Tinman) utilizadas en 1976 y 1977 demostraron que ninguno de los lenguajes existentes era adecuado. Se estableció una competición internacional de diseño, que acabó con la selección, en 1979, del lenguaje que se llamó Ada en honor de Ada Lovelace, considerada la primera programadora de la historia.

El Ada deriva en muchas cosas del Pascal, pero tiene más posibilidades, en particular la ejecución concurrente de tareas, el control de tareas en tiempo real, la gestión de excepciones y tipos abstractos de datos.

Un programa hecho con el Ada se considera una colección de componentes, denominados paquetes (packages). Un paquete puede ser un tipo abstracto de datos o un conjunto de objetos compartidos entre programas, aunque en general un paquete contiene un conjunto integrado de definiciones de tipos, objetos de datos y los subprogramas para manipular estos objetos. El programador que trabaja con el Ada dispone de una biblioteca (program library) de paquetes, y su primer objetivo es construir un nuevo programa utilizando algunos de estos paquetes en vez de proceder a construirlo de manera aislada.

C

El lenguaje C está en la base del sistema operativo UNIX y lo diseñaron Dennis Ritchie y Brian W. Kernighan a partir del llamado lenguaje B, desarrollado por Ken Thompson en 1970.

Se trata de un lenguaje de propósito general con estructuras de datos y de control de secuencia al estilo del Pascal, y con un conjunto potente de operadores. Tiene muy pocas restricciones y por ello es laxo en la gestión de tipo de datos. Un elemento importante del lenguaje es que trabaja también a "bajo nivel", es decir, trabaja directamente con direcciones de memoria y punteros, con lo cual obtiene rendimientos de ejecución cercanos a los que se consiguen con los lenguajes de tipo ensamblador.

Se utiliza fundamentalmente para el desarrollo de software de base y para la mayoría de los paquetes de aplicación en el campo de los miniordenadores. Se empieza a introducir en las aplicaciones para microordenadores que hasta ahora se escribían directamente en ensamblador. La ventaja de la portabilidad añadida a la eficiencia le augura un gran futuro como lenguaje de programadores especializados en software.

Prolog

El Prolog se presenta como un lenguaje de los que se han venido en llamar de quinta generación. Se trata de un lenguaje declarativo y no algorítmico en el que se establecen reglas y hechos, de los cuales el propio procesador de lenguaje deducirá nuevos hechos a partir de la petición de que se investigue la veracidad o no de una determinada declaración.

Los programas escritos en Prolog requieren pocas líneas, ya que sólo tiene que darse la declaración de hechos y reglas que definen el problema, y el propio Prolog se encarga de organizar el proceso de tratamiento que debe seguirse para determinar la respuesta solicitada.

El Prolog se utiliza mucho en el campo de la inteligencia artificial y en la construcción de sistemas expertos. Un sistema experto persigue la reproducción correcta del comportamiento de un experto humano en un dominio determinado. Por ello, tiene que proceder imitando el razonamiento humano en la deducción y la inducción, y establecer las estrategias adecuadas de búsqueda de nuevas relaciones. Esto lo hace a partir de los conocimientos suministrados por un experto humano, que forman la denominada base de conocimientos, es decir, la memoria a largo plazo que contiene las reglas del problema. A partir de los datos iniciales, el sistema va elaborando una base de hechos, es decir, la memoria a corto plazo que contiene los hechos establecidos o que se han ido deduciendo. El proceso de averiguación de nuevos hechos para añadir a la base de hechos lo realiza el motor de inferencia, que es el mecanismo lógico por el cual un sistema experto "razona". Los dominios de aplicación del Prolog son los típicos de la inteligencia artificial, ya mencionados al tratar del Lisp.

Lenguajes RAD

En los últimos años han aparecido una serie de lenguajes muy fáciles de utilizar y que poco a poco unen las ventajas de la orientación a objetos a la denominada programación visual. Nacidos en el mundo de la microinformática para ayudar a la realización de programas con interfaz visual bajo el paradigma WIMP (windows, icons, mouse y pop-up menu, es decir, ventanas, iconos, ratón y menús desplegables), constituyen la forma moderna y más evolucionada de lo que se ha denominado RAD (Rapid Application Development, desarrollo rápido de aplicaciones).

De entre los muchos ejemplos disponibles, puede ser procedente destacar los de Powerbuilder, Visual Basic o Delphi, posiblemente los más utilizados actualmente.

En todos los casos, con un apoyo previo de base de datos, se trata de diseñar interactivamente un formulario que será atendido por uno o más módulos. En estos formularios es posible utilizar nuevos tipos de datos típicos de los entornos visuales: botones de activación, cuadros de listas (list box), cuadros de diálogo (dialog box), cuadros de texto (text box), etc.

Arriba
Cerrar