You are on page 1of 2

Qu es el analizador sintctico ?

Es la fase del analizador que se encarga de chequear el texto de entrada en base a


una gramtica dada. Y en caso de que el programa de entrada sea vlido, suministra
el rbol sintctico que lo reconoce.
En teora, se supone que la salida del analizador sintctico es alguna representacin
del rbol sintctico que reconoce la secuencia de tokens suministrada por el
analizador lxico.
En la prctica, el analizador sintctico tambin hace:
Acceder a la tabla de smbolos (para hacer parte del trabajo del analizador
semntico).
Chequeo de tipos ( del analizador semntico).
Generar cdigo intermedio.
Generar errores cuando se producen.
En definitiva, realiza casi todas las operaciones de la compilacin. Este mtodo de
trabajo da lugar a los mtodos de compilacin dirigidos por sintaxis.

CLASIFICACIN:
La tarea esencial de un analizador es determinar si una determinada entrada puede
ser derivada desde el smbolo inicial, usando las reglas de una gramtica formal, y
como hacer esto, existen esencialmente dos formas:

Analizador sintctico descendente (Top-Down-Parser): un analizador puede


empezar con el smbolo inicial e intentar transformarlo en la entrada,
intuitivamente esto sera ir dividiendo la entrada progresivamente en partes
cada vez ms pequeas, de esta forma funcionan los analizadores LL, un
ejemplo es el javaCC.
Analizador sintctico ascendente (Bottom-Up-Parser): un analizador puede
empezar con la entrada e intentar llegar hasta el smbolo inicial, intuitivamente
el analizador intenta encontrar los smbolos ms pequeos y progresivamente
construir la jerarqua de smbolos hasta el inicial.

Se puede describir la sintaxis de las construcciones de los lenguajes de programacin


por medio de gramticas independientes de contexto. Una gramtica describe de
forma natural la estructura jerrquica de muchas construcciones de los lenguajes de
programacin. Consta de:

TERMINALES. Smbolos bsicos con que se forman las cadenas. Para un lenguaje
de programacin, cada palabra clave/reservada es un terminal. prop_if if expr
prop elseprop

NO TERMINALES. Son variables sintcticas que denotan conjuntos de cadenas


(identificadotes o variables). Los no terminales definen conjuntos de cadenas que
ayudan a definir el lenguaje generado por la gramtica. Imponen una estructura
jerrquica sobre el lenguaje que es til tanto para el anlisis sintctico como para la
traduccin. prop_if expr prop son no terminales.

UN SMBOLO INICIAL. En una gramtica, es un no terminal que representa un


conjunto de cadenas. prop_if no terminal, smbolo inicial.

PRODUCCIONES. Especifican cmo se pueden combinar los terminales y no


terminales para formar cadenas. Cada produccin consta de un No terminal (smbolo
inicial), seguido por una flecha o smbolo de asignacin, seguida por una cadena de no
terminales y terminales. prop_if if expr prop else prop Por ejemplo, la gramtica con
las siguientes producciones define expresiones aritmticas simples: expr
expr op expr expr (expr) expr - expr expr id Op + Op - Op / Op
* Op %.

You might also like