Vous êtes sur la page 1sur 4

LA CONSTRUCCIN DEL INTERPRETADOR DE UN SOFTWARE GRAFICADOR DE FUNCIONES MATEMTICAS

Ing. Diego Daro Lpez Mera Ing. Luis Fernando Gmez Solarte

RESUMEN La teora de los interpretadores, al igual que la de los compiladores, se utiliza para la construccin de la mayora de los lenguajes de programacin existentes. Verifican la validez de las instrucciones escritas por el programador y las ejecutan. Este documento describe cmo se utiliz esta teora para el desarrollo de un software graficador de funciones matemticas. Palabras Clave: interpretador, gramtica, lxico, sintctico, semntico

ABSTRACT The theory of interprets, just like compilers, is used in most cases to create the existent programming languages. These verify the validity of instructions wrote by the programmer and also execute them. The present article explains the use of this theory in the development of a graphic software of mathematics functions. Key Words: interpret, grammar, lexical, syntactic, semantic VAS. Este software se puede descargar gratuitamente en la Internet y fue creado para propsitos educativos por los autores del presente documento.

1. INTRODUCCIN Los interpretadores o interpretes, en general, son muy tiles para el anlisis de instrucciones escritas en un cdigo fuente; puesto que, antes de ejecutar operaciones complejas con base en estas instrucciones, el interpretador comprueba que, por lo menos, estn bien escritas. La escritura de funciones matemticas puede originar algunos inconvenientes que van desde la desigualdad entre la cantidad de parntesis izquierdos y derechos hasta la determinacin de dominios nulos donde la funcin no se puede evaluar. De tal modo que la labor de un interpretador para funciones se hace necesaria, ya que el concepto de una funcin bien escrita se ampla con base en los inconvenientes anteriormente nombrados y otros ms que complican su anlisis. De todas formas, la misin del interpretador de funciones sera la de proporcionar una herramienta a otras aplicaciones que necesiten de funciones previamente analizadas. Para explicar mejor este proceso de interpretacin se describir cmo se construy el interpretador de un software para la representacin grfica de funciones matemticas llamado CUR-

2. PRELIMINARES: LA ESCRITURA DE UNA FUNCIN MATEMTICA La escritura de funciones matemticas en CURVAS se rige al siguiente modelo:
nombre de la funcin = expresin matemtica , intervalos X y Y

donde nombre de la funcin es el identificador de la funcin creada por el usuario. expresin matemtica es la expresin que se quiere evaluar y graficar. intervalos X y Y es el dominio y rango donde se evaluar y graficar la funcin. De tal modo que CURVAS analiza la funcin para constatar si tiene algn error, por ejemplo, en el caso de que exista un nmero con signo desconocido. A este proceso se le llama INTER-

La construccin del interpretador de un software graficador de funciones matemticas

PRETAR. Una vez que la escritura de la funcin matemtica est libre de error, ya se puede graficar. Ejemplos de funciones bien escritas: funcion1 = sen ( 3 * x +1) + ln ( atan ( x^2) + 50), {x,-100,100} fcuadrado = x^2, {x,-10,10},{y,0,70} f = sen(x), {x, -7, 7}, {y, -1.3, 1.3} Ejemplos de funciones mal escritas: raiz3 = x^(&1/3),{x,1,30},{y,1,7} nmero con signo desconocido cosenoE = cos (x/5)),{x,-10.34,-2.67} falta o sobra un parntesis FuncionEjemplo 99A se esperaba el smbolo igual

lexema 1974, lo identificar como token nmero y se lo enviar al analizador sintctico. El analizador sintctico utiliza una Gramtica Libre o Independiente del Contexto. En pocas palabras, una gramtica se puede definir como un conjunto de reglas para escribir declaraciones vlidas en un lenguaje. Una gramtica G, se define matemticamente como una cudrupla que contiene los siguientes componentes:

El alfabeto de la figura 2 es un conjunto finito de todos los smbolos de entrada que pueden utilizarse para construir las declaraciones de las funciones matemticas. Estos son los smbolos terminales de la gramtica, tambin conocidos como componentes lxicos o tokens.
Figura 2. Smbolo de Iniciacin, alfabeto y smbolos no terminales

3. EL INTERPRETADOR Y SUS FASES Un Interpretador o Interprete es un programa que ejecuta un programa fuente de entrada tan pronto como lo lee y, para lograr correctamente lo anterior, analiza las instrucciones del programa fuente, utilizando en forma secuencial las fases de la figura 1.
Figura 1. Fases del interpretador

Figura 3. Reglas de Produccin P

Un componente lxico o token es una unidad indivisible como los nombres de variables y las palabras clave. Por ejemplo, CURVAS define el token nmero como una secuencia de dgitos, entonces si el analizador lxico descubre el

Especficamente, CURVAS utiliza el Analiza-

La construccin del interpretador de un software graficador de funciones matemticas

dor Sintctico Predictivo, el cual se basa en el anlisis sintctico por descenso recursivo y sin retroceso, es decir, la derivacin de los smbolos de entrada se hace por la izquierda y la evaluacin de la entrada no se hace varias veces. Para lograr lo anterior, el analizador sintctico necesita de una gramtica que no presente recursin por la izquierda, ni factorizacin por la derecha. Estas dos caractersticas las rene a cabalidad la gramtica LL(1), un tipo especial de gramtica libre de contexto y muy til en la implementacin de compiladores e interpretadores escritos a mano. En cuanto al analizador semntico, ste se encarga de encontrar errores con respecto a los atributos que describen a los smbolos en la gramtica; en otras palabras, encuentra los errores semnticos del programa fuente. Estos atributos se aaden a la gramtica, creando una gramtica con atributos. En CURVAS la gramtica con atributos se utiliza para diferenciar a las funciones tpicas utilizadas en matemticas (por ejemplo: seno, coseno, logaritmo y valor absoluto) de las funciones creadas por el usuario (y las cuales l puede guardar en disco para utilizarlas dentro de otras funciones).

f = sen(x), {x, -7, 7}, {y, -1.3, 1.3} El interpretador de CURVAS identifica y genera la lista de tokens de la figura 4, la cual se utilizar en el proceso de representacin grfica de la funcin.
Figura 4. Lista de Tokens de la funcin generados por el Interpretador

4. UN EJEMPLO DE INTERPRETACIN La primera regla de la gramtica P:

nicamente se genera la lista de tokens de la figura 4, si el proceso de interpretacin se complet sin problema; y esto se logra sobretodo, si esta secuencia de tokens cumple con las reglas de produccin de la gramtica de la figura 3.

5. CONCLUSIONES es otra forma de expresar el modelo de escritura de funciones matemticas de CURVAS: nombre de la funcin = expresin matemtica , intervalos X y Y Por ejemplo, si el usuario escribe la funcin: FuncionEjemplo 99A El interpretador identifica que el lexema FuncionEjemplo representa al token nomfuncion y espera que el token siguiente sea = (el igual), pero no es as. As que esta funcin est mal escrita y el interpretador le informar al usuario sobre el error. Ahora bien, en el caso de que el usuario escriba correctamente una funcin: As como CURVAS analiza si una funcin est bien o mal escrita, los lenguajes modernos de programacin en general utilizan las bases tericas explicadas en este documento con el fin de analizar la validez de las instrucciones y, por consiguiente, realizar una correcta ejecucin de los programas fuente. Antes de 1950 no existan metodologas convincentes ni teoras slidas sobre cmo desarrollar interpretadores ni compiladores; por tanto, el tiempo que se dedicaba en la construccin de un interpretador sencillo se meda en aos. Ahora, un interpretador se puede construir en poco tiempo sin la necesidad de contar con un equipo de programacin numeroso. CURVAS no es la excepcin, su primera versin funcional y lista para distribuirse se desarroll en menos de seis meses por parte de los autores del presente do-

La construccin del interpretador de un software graficador de funciones matemticas

cumento. Datos de los Autores: CURVAS se desarroll en Delphi y se puede descargar gratis en: http://www.geocities.com/curvas_soft Ing. Diego Daro Lpez Mera
Ingeniero de sistemas de la Universidad del Valle Email: diegodario@colombia.com Docente de la Institucin Universitaria Antonio Jos Camacho, Cali-Colombia http://www.itmajc.edu.co

BIBLIOGRAFA [1] AHO, Alfred; SETHI, Ravi; ULLMAN, Jefrey. Compiladores: Principios, Tcnicas y Herramientas. EEUU: ADDISON-WESLEY IBEROAMERICANA, 1.990. 820 p. [2] CHENEY, Ward; KINCAID, David. Numerical Analisys. EEUU: BROOKS/COLE, 1.991. 690 p. [3] FISCHER, Charles; LeBLANC, Richard. Crafting a Compiler with C. EEUU: BENJAMIN/CUMMINGS PUBLISHING COMPANY, 1.991. 812 p. [4] KELLEY, Dean. Teora de Autmatas y Lenguajes Formales. EEUU: PRENTICE HALL, 1.995. 302 p. [5] PITTMAN, Thomas; PETERS, James. The Art of Compiler Design. EEUU: PRENTICE HALL, 1.992. 420 p. [6] SETHI, Ravi. Lenguajes de Programacin. EEUU: ADDISON-WESLEY IBEROAMERICANA, 1.992. 493 p. [7] ULLMAN, Jeffrey; HOPCROFT, John. Introduccin a la Teora de Autmatas, Lenguajes y Computacin. Mxico: COMPAA EDITORIAL CONTINENTAL, 1.997. 447 p. [8] TUCKER, Allen. Lenguajes de Programacin. Mxico: MCGRAW-HILL, 1.987. 630 p.

Ing. Luis Fernando Gmez Solarte


Ingeniero de sistemas de la Universidad del Valle Email: luigomez8@yahoo.com.mx Docente de la Institucin Universitaria Antonio Jos Camacho, Cali-Colombia http://www.itmajc.edu.co

Este artculo fue publicado en la revista SAPIENTIA de la Institucin Universitaria Antonio Jos Camacho. GOMEZ SOLARTE, Luis Fernando; LPEZ MERA, Diego Daro. La construccin del interpretador de un software graficador de funciones matemticas. Revista Cientfica y Tecnolgica SAPIENTIA. Mayo 2007. Volumen 2. Nmero 2. ISSN 1909-0811. Colombia: Institucin Universitaria Antonio Jos Camacho, pag. 33-36. 2007.

Vous aimerez peut-être aussi