next up previous
Next: REC, Compilador de Expresiones Up: COMPUTADORAS Y PROCESOS SIMBÓLICOS Previous: La Computadora y los

El lenguaje Convert, la programación a base de ejemplos. Una aportación nacional

Durante un curso que impartió el Dr. Harold V. McIntosh en el CeNaC (Centro Nacional de Cálculo del IPN) en 1965, definió el lenguaje de programación Convert y apoyado por algunos de sus alumnos escribió en Lisp el primer interpretador para el lenguaje; se utilizaron para el efecto, las facilidades disponibles por vía telefónica del sistema SDCQ32 (System Development Corporation) instalado en Santa Mónica, California. Las principales descripciones de los primeros resultados sobre Convert se publicaron en la tesis profesional de Adolfo Guzmán y en un artículo en la revista ACM (Association for Computing Machinery).


Desafortunadamente, las consecuencias del doble proceso de interpretación involucrados en el uso de Convert (ya que Lisp generalmente era interpretado) no se hicieron esperar. El tiempo de ejecución de las primeras aplicaciones de Convert se vieron multiplicados por un factor de mil. Para mejorar el rendimiento del lenguaje se planteó la necesidad de compilarlo para evitar el doble proceso e interpretación. Uno de estos intentos se esbozó y parcialmente desarrolló en la tesis profesional de Raymundo Segovia.


Los principios de programación del lenguaje Convert se pueden resumir en la programación descrita con ejemplos, esto es: ``si ves algo de esta naturaleza, identifica los elementos que los conforman y sustitúyelos de esta otra manera''. En su definición concluyeron dos deseos:


1.
Simplificar y sistematizar algunos programas para el reconocimiento de patrones previamente elaborados en Lisp, entre los que se encontraban aquellos para el cálculo de derivadas simbólicas de formas algebraicas.
2.
Realizar en una forma adecuada las transformaciones de Post para simplificar los métodos de reducción y simplificación de las expresiones algebraicas.


Un programa en Convert es una colección de reglas que se confrontan con un texto hasta que alguna de ellas se le puede aplicar. Las reglas pueden ser terminales o iterativas, estas últimas, reinician la confrontación del texto.


Con patrones y esqueletos se forman las reglas de transformación en Convert. Una regla consiste de un patrón y su esqueleto. Al confrontar la regla con el texto, se intenta el ajuste del patrón, si la correspondencia se verifica, el texto se transforma de acuerdo con el esqueleto.


Los patrones se clasifican en simples o compuestos. Los patrones simples pueden ser constantes o variables. Los primeros son secuencias de símbolos que se indican textualmente, los variables deben marcarse para distinguirlos entre los constantes.


La manera de marcar los patrones variables, depende del medio en que se describe el programa. En forma manual se puede emplear letra cursiva, o el recurso del subrayado. Pero en una computadora es más conveniente el uso de símbolos especiales para este propósito. En Convert se emplean los paréntesis angulares para distinguir a los patrones variables de los constantes.


Los patrones compuestos se obtienen a partir de otros patrones por medio de la composición (concatenación), de las combinaciones lógicas y del uso de funciones, en este acto, con el empleo de una notación que utiliza paréntesis redondos para indicar el nombre de la función y sus argumentos.


Un texto corresponde con un patrón cuando los elementos de ajuste incluídos en el patrón permiten establecer la correspondencia del patrón con el texto. En este proceso, se utiliza la flexibilidad que aportan los elementos variables del patrón, ya que con los elementos constantes, la correspondencia debe ser literal.


Cuando se establece la correspondencia del texto con el patrón, los elementos variables del patrón adquieren una definición que se emplea para transformar el texto original, sustituyendo las definiciones de los elementos variables del patrón en el esqueleto asociado.


Un esqueleto puede ser simple o compuesto. Los esqueletos simples son constantes o variables, en este último caso, la referencia es al valor de la variable. Como en el caso de los patrones, los esqueletos compuestos, se obtienen a partir de otros por concatenación y con el uso de funciones que se denotan en la misma forma con el uso de paréntesis redondos.


En Convert, el usuario puede definir patrones y esqueletos complejos y referirlos por medio de un identificador para abreviar la descripción de las reglas. En realidad, un programa consiste de cuatro elementos, la definición de PATRONES, ESQUELETOS, VARIABLES y REGLAS.


La forma de notación para las diferentes instancias del lenguaje, variables, funciones y combinaciones lógicas son algunos de los elementos que le imprimen al programa en Convert su aspecto característico.


Los lenguajes orientados al manejo de símbolos tradicionalmente han adolecido de programas para realizar aritmética y para manejar arreglos, Convert no fue tampoco la excepción. No obstante ofrece algunas ventajas para la manipulación de símbolos. Algunas de sus principales aplicaciones se citan a continuación:

1.
Modificación selectiva de un texto, particularmente en los casos en que la modificación es más complicada que una simple sustitución.
2.
Búsqueda de información en archivos. Para la localización de palabras clave y para la elaboración de índices por referencias para las palabras clave.
3.
Elaboración de ensambladores y compiladores. Y no sólo para los tipos convencionales, sino para la traducción de programas de un equipo a otro. También se ha utilizado con éxito en la elaboración de desensambladores y descompiladores.
4.
Generación de programas complicados (en ensambladores, Fortran u otros lenguajes) a partir de protocolos descriptivos. Esta posibilidad ofrece una nueva dimensión para la elaboración de programas. Sin con Convert no se puede realizar un trabajo de manera eficiente, con él se pueden construir programas más eficientes y de esta manera reducir el tiempo que de otra manera resultaría ser desmedido.
5.
Cálculo simbólico, tales como el cálculo de derivadas simbólicas y el análisis de conjuntos.

next up previous
Next: REC, Compilador de Expresiones Up: COMPUTADORAS Y PROCESOS SIMBÓLICOS Previous: La Computadora y los
Microcomputadoras
2000-12-12