Universidad Tcnica Del Norte. Guamn Vernica, Hernndez Cinthia, Ortega Jefferson.
Anlisis Sintctico y Anlisis Semntico
Anlisis Sintctico y Anlisis Semntico
Guamn Vernica, Hernndez Cinthia, Ortega Jefferson
vlguamang@utn.edu.ec, cchernandezo@utn.edu.ec, jsortegach@utn.edu.ec. Universidad Tcnica del Norte
Resumen En este artculo trataremos de continuar con la compilacin. En
conocer cun importante es el anlisis sintctico y resumen, el analizador sintctico efecta semntico ya que estos nos ayudan a identificar casi todas las operaciones de compilacin, cules son los tipos de expresiones que intervienen para que sean compatibles entre s al dando lugar a un mtodo de trabajo momento de ejecutar un compilador. denominado compilacin dirigida por Cuando construimos un compilador existe una sintaxis. estrecha relacin entre el anlisis semntico y la III. MANEJO DE ERRORES generacin de cdigo intermedio y final podemos SINTCTICOS decir que es una gua en el proceso del anlisis semntico por lo que hablaremos que es una Si el compilador tuviera que procesar solo traduccin que es dirigida por la sintaxis. programas correctos su implementacin no fuese tan complicada. Algunos errores ndice de Trminos compilador, Semntico, que se pueden presentar en la Sintctico. programacin de un compilador pueden ser los siguientes: Lxicos, producidos al escribir I. INTRODUCCIN mal un identificador o un La materia de compiladores bsicamente se enfoca en traductores y los diversos lenguajes operador. de programacin, dentro de este tema Sintcticos, por una expresin conoceremos los diferentes analizadores estos aritmtica. nos ayudaran a determinar la estructura de un Semnticos, por un operador programa, verificar errores gramaticales mediante gramticas, bsicamente el aplicado a un operando analizador sintctico convierte los textos incompatible. de entrada en rboles Lgicos, procesos recursivos. De correccin, el programa no II. ANALIZADOR SINTCTICO realiza lo que se supone que se El analizador sintctico es el que se deseaba al momento de realizarlo. encargar de verificar la secuencia de tokens en base a la gramtica IV. DISEO DE GRAMTICAS correspondiente al lenguaje fuente Las gramticas son independientes por determinado, esta es la tarea principal del eso es indispensable definir cuatro analizador sintctico. En la prctica el elementos que son, axioma inicial que analizador sintctico es el que se encarga utiliza las variables sintcticas instr para del proceso de compilacin, de una poder expresar una instruccin, una manera que las fases van reconociendo las variable expr para indicar la presencia de gramticas de entradas. expresiones y los elementos terminales y Tambin informa de los errores no terminales, en la Figura1 se especifica sintcticos y trata de corregirlos para Universidad Tcnica Del Norte. Guamn Vernica, Hernndez Cinthia, Ortega Jefferson. Anlisis Sintctico y Anlisis Semntico
la estructura de una instruccin izquierda cuando aparece tres o ms
condicional. operandos y se calcula de izquierda a derecha. Si es derecha a izquierda, la asociatividad es por la derecha. [1]. instr if (expr) instr else instr Por ejemplo, s tenemos 12/4/2, si el operador / tiene asociatividad por la Figura1. Estructura condicional izquierda, primero se opera 12/4 y el resultado se opera con 2. En este caso sera 3. Si fuera asociativo por la izquierda, sera primero 4/2 y luego V. DIFICULTADES PARA LA 12 operara con el resultado, en este CREACIN DE GRAMTICAS caso sera 2 [1]. La recursividad La precedencia Un lenguaje de programacin permite crear una amplia gama de programas, es La precedencia de un operador indica el necesaria una infinita gama de reglas por orden en que se aplicar respecto a los tal motivo, hay un factor que permite dems operandos en el caso de aplicar reconocer infinitos lenguajes con un ms de uno. Es decir, si en una regla nmero infinito de reglas. aplicamos ms de un operador, Es as que, la recursividad se pronuncia comenzaremos aplicando el de ms por una o ms reglas no recursivas y precedencia y se terminar por aplicar el recursivas creando una estructura de de menor precedencia [1]. lenguaje que se pueda aplicar a si misma varias veces. [1] Para reflejar la precedencia en una gramtica es recomendado utilizar una La ambigedad variable para cada operador y ubicarla cerca del smbolo inicial. Una gramtica ambigua produce ms de una derivacin por la izquierda, o ms de La parentizacin una derivacin por la derecha como se muestra en el siguiente ejemplo. [1]: Para incluir parntesis al momento de E => E+E evaluar las expresiones en una gramtica, => id + E se incluye una variable que produzca => id +E*E expresiones entre parntesis. Los => id+id*E operandos se ponen a la mayor distancia => id+id*id posible del smbolo inicial debido a que tiene la mayor precedencia [1]. E => E*E => E+E VI. TIPOS DE ANALISIS => id +E*E SINTCTICO => id+id*E => id+id*id Segn el tipo de rbol sintctico construido existen dos tipos de analizadores. La asociatividad Analizador Sintctico descendente: este Este elemento cuando se operan 3 o ms analizador parte desde el axioma inicial, y operandos, la asociatividad por la va efectuando derivaciones hacia la Universidad Tcnica Del Norte. Guamn Vernica, Hernndez Cinthia, Ortega Jefferson. Anlisis Sintctico y Anlisis Semntico
izquierda hasta obtener varias secuencias de cdigo. El analizador est basado en
de derivaciones que reconoce la sentencia una estructura jerrquica la cual es dada. En la figura 2 se especifica los tipos definida por el analizador sintctico. de analizadores descendentes. El componente ms importante en un analizador semntico es la verificacin de tipos, es decir verificar si cada operador Con retroceso tienen operandos permitidos por el lenguaje fuente. [2]
Dentro de compiladores el anlisis lxico
Analizador Sintctico Descendente Con funciones recursivas y sintctico son sistematizados, mientras el que analizador semntico tiene muchas fallas y es por eso que se ve en la necesidad de darle un significado a la De gramticas LL(1) gramtica para as poder implementar el anlisis semntico sobre la gramtica Figura2. Tipos de analizadores descendentes. establecida. Analizador Sintctico ascendente: este Mediante la prctica las fases del anlisis analizador parte de la sentencia de entrada sintctico, semntico y la generacin de y va aplicado derivaciones inversas, hasta cdigo realizan la misma tarea a la vez llegar al axioma inicial. En la figura3 se utilizando la misma herramienta para todo especifica los tipos de analizadores el proceso. [1] ascendentes.
Con retroceso
Analizador Sintctico Ascendente
I BIBLIOGRAFA De gramticas LR(1) [1] J. R. Cataln, Compiladores Teora e Implementacin, Espaa: Alfaomega, 2010. Figura3. Tipos de analizadores ascendentes. [2] J. D. U. Alfred V. Aho Ravi Sethi, VII. ANALIZADOR SEMNTICO Compilers: Principles, Techniques and Tools, de Compilers: Principles, Techniques and Tools, Mexico, Addison Wesley El analizador semntico es el encargado Iberoamericana, S.A , 1986, pp. 7-8. de revisar el programa fuente y determinar si existen errores de semntica y de esta manera permitir la generacin