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.3 Paradigmas de lenguajes informáticos
Los lenguajes informáticos se construyen, en última instancia, en términos de un conjunto de conceptos fundamentales que norman la forma de entender la resolución de problemas. Estos conceptos introducen, en analogía con Jun (1962), un paradigma de programación. Los lenguajes como FORTRAN, COBOL o ALGOL-60 son miembros del denominado paradigma imperativo. En este paradigma, los conceptos centrales son el de estado (variable o región de memoria que puede consultarse y actualizarse) y el de instrucción (unidad de ejecución que, eventualmente, conduce a la modificación del estado).
Por su parte, el lenguaje Simula-67 (Dahl, 1970), desarrollado en el Norwegian Computer Center por Ole-Johan Dahl y Kristan Nygaard, constituye los orígenes del denominado paradigma orientado a objetos, que puede, a su vez, considerarse como una evolución del paradigma imperativo inicial. Simula-67 fue, en principio, un lenguaje con un propósito específico: la simulación y descripción de sistemas físicos. No obstante, sus diseñadores comprendieron enseguida que el lenguaje tenía muchas más posibilidades. En este lenguaje se introduce, entre otros, el concepto de objeto que permite afrontar mejor la complejidad de un problema al encapsular, en una única estructura, los datos y las operaciones o métodos sobre los mismos. Además, se introducen los conceptos de jerarquía de clases de objetos y herencia (ideas que han sido muy útiles en otros campos del saber como la biología) que permiten una gran flexibilidad para modelar situaciones del mundo real para las que se pretenden desarrollar aplicaciones.
La aparición del lenguaje LISP, en la década de los 50, puso de manifiesto la posibilidad de prescindir del concepto de estado, conduciendo a un paradigma funcional (Backus, 1978) en el que los programas se conciben como descripción de funciones (en el sentido matemático del término), mientras que la ejecución de los mismos viene dada por una regla que permite aplicar esas funciones a sus argumentos. Dicho paradigma conduce, de esta forma, a un estilo más declarativo de comunicación con la máquina que, en el límite, prima la descripción del problema frente a la descripción de su solución.
Por último, a finales de los 60 y principios de los 70, se desarrolló también otro de los grandes paradigmas vigentes en la actualidad: el paradigma lógico. Dicho paradigma es, al igual que el funcional, un paradigma declarativo. No obstante, mientras que aquel entiende la programación como especificación de funciones, éste la entiende como especificación de teorías lógicas. De esta forma, la programación se concibe como un proceso de formulación de teorías, mientras que la ejecución de programas se concibe como un proceso de demostración de teoremas. A este respecto, Green (Green, 1969) observó que los procedimientos de prueba mediante resolución propuestos por Robinson (Robinson, 1965) podían servir como base a un modelo de ejecución de programas lógicos. La resolución por si misma no es una base suficiente para la programación lógica, porque los procedimientos de prueba mediante resolución no pueden ser suficientemente dirigidos por el objetivo. El paso siguiente requirió debilitar el lenguaje para que pudiese ser implementado con una eficiencia comparable a la de los demás lenguajes de programación. Este paso fue llevado a cabo fundamentalmente por Colmerauer y sus colegas en Marsella a principios de los 70; Colmerauer desarrolló un lenguaje que podía ser usado, al mismo tiempo, para análisis de la lengua natural y para la implementación de mecanismos de respuesta deductivos (Colmerauer, 1973). De esta forma, llegó a quedar claro que un tipo de resolución lineal restringido a cláusulas definidas tenía la eficiencia y orientación al objetivo requeridas. Esta aproximación, que fue primero descrita como una herramienta para aplicaciones de procesamiento del lenguaje natural, dio luego lugar a un sistema deductivo que fue el primer sistema PROLOG.
Estudios de Lingüística del Español (ELiEs), vol. 24 (2006) | ISSN: 1139-8736 |