Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Análisis Sintáctico

Análisis Sintáctico
by

Esteban Dávila

on 20 April 2010

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Análisis Sintáctico

Análisis Sintáctico Esteban Dávila
Andrés Gordillo
Juan Carlos Bolaños Objetivos
Verificar si los tokens son procesados por el analizador sintáctico.

Comprender de qué forma el analizador sintáctico detecta errores al momento de la compilación.

Observar un ejemplo del árbol sintáctico.
Introducción
Proceso
Clasificación
Un analizador sintáctico (en inglés parser) es una de las partes de un compilador que transforma su entrada en un árbol de derivación La tarea del analizador sintáctico es determinar la estructura sintáctica de un programa a partir de los tokens producidos por el analizador léxico y, ya sea de manera explícita e implícita, construir un árbol de análisis gramatical o árbol sintáctico que represente esta estructura.

De este modo, se puede ver el analizador sintáctico como una función que toma como su entrada la secuencia de tokens producidos por el analizadr léxico y que produce como su salida el árbol sintáctico. Top Down Parser Bottom Up Parser Un analizador puede empezar con el símbolo inicial e intentar transformarlo en la entrada, intuitivamente esto sería ir dividiendo la entrada progresivamente en partes cada vez más pequeñas, de esta forma funcionan los analizadores LL. Un analizador puede empezar con la entrada e intentar llegar hasta el símbolo inicial, intuitivamente el analizador intenta encontrar los símbolos más pequeños y progresivamente construir la jerarquía de símbolos hasta el inicial, los analizadores LR funcionan así. Manejo de errores sintácticos
Si un compilador tuviera que procesar sólo programas correctos, su diseño e implementación se simplificarían mucho. Pero los programadores a menudo escriben programas incorrectos, y un buen compilador debería ayudar a identificar y localizar errores. Tipos de errores Léxicos: Como escribir mal un identificador, palabra clave u operador.

Sintácticos: Como una expresión aritmética con paréntesis no equilibrados.

Semánticos: Como un operador aplicado a un operando incompatible.

Lógicos: Como una llamada infinitamente recursiva.
A menudo gran parte de la detección y recuperación de errores en un compilador se centra en la fase de análisis sintáctico. Una razón es que muchos errores son de naturaleza sintáctica o se manifiestan cuando la cadena de componentes léxicos que proviene del analizador léxico desobedece las reglas gramaticales que definen el lenguaje de programación. Objetivos del Manejo de errores en un analizador sintáctico Debe informar de la presencia de errores con claridad y exactitud.

Se debe recuperar de cada error con la suficiente rapidez como para detectar errores posteriores.

No debe retrasar de manera significativa el procesamiento de programas correctos.
Analizador sintáctico LR
Los analizadores sintáticos LR, también conocidos como Parser LR, son un tipo de analizadores para algunas gramáticas libres de contexto (Es un conjunto de reglas de formación para formar cadenas de caracteres a partir de un alfabeto dado ). Pertenece a la familia de los analizadores ascendentes, ya que construyen el árbol sintáctico de las hojas hacia la raíz. Analizador sintáctico LL
El analizador sintático LL es un analizador sintáctico descendente, por un conjunto de gramática libre de contexto. En éste analizador las entradas son de izquierda a derecha, y construcciones de derivaciones por la izquierda de una sentencia o enunciado. La clase de gramática que es analizable por éste método es conocido como gramática LL. En resumen los métodos LL y LR, detectan un error lo antes posible. Es decir, tienen la propiedad del prefijo viable, lo cual quiere decir que detectan la presencia de un error con sólo ver un prefijo de la entrada que no es prefijo de ninguna cadena del lenguaje. ÁRBOL SINTÁCTICO
Full transcript