Você está na página 1de 19

INTRODUCCIÓN

Este tema está dedicado al método de análisis sintáctico


descendente que se utilizan, por lo general, en los
compiladores.

Presentaremos los conceptos básicos, después las técnicas


adecuadas para la implementación manual y, por último, los
algoritmos que se han utilizado en las herramientas
automatizadas.
HISTORIA
- Se originó con Chomsky, como parte de un estudio acerca del lenguaje natural
- Se utilizó en la descripción sintáctica de dos de los primeros lenguajes: Fortran por Backus y Algol
60 por Naur.
- El erudito Panini ideó una notación sintáctica equivalente para especificar las reglas de la gramática
Sanskrit - Sánscrito. (400-200 a.C)
- Cantor y Floyd fueron los primeros que observaron el fenómeno de la ambigüedad.
- El análisis sintáctico de descenso recursivo fue el método preferido para los primeros compiladores.
(META y TMG).
- Lewis y Stearns introdujeron las gramáticas LL.
- Wirth y Weber generalizaron la idea para las partes del lenguaje que no involucran operadores.
- Knuth introdujo los analizadores sintácticos LR. Este método no se consideró práctico.
- Korenjak proporcionó un método para producir tablas de análisis sintáctico de un tamaño razonable.
- De Remer desarrolló los métodos LALR y SLR que se usan en la actualidad.
¿DÓNDE ESTAMOS?
DEFINICIONES

● Sintaxis: estudia el orden de las palabras

● terminales: símbolos generalmente en minúscula que no se derivan.

● no terminales: símbolos generalmente en mayúscula que se pueden derivar

● análisis sintáctico: es el análisis de las funciones o relaciones que guardan


DEFINICIONES
Recursividad: elimina la repeticiones.

Es evitar el aparente círculo sin fin

de lo mismo.
DEFINICIONES
primeros y siguientes(first and follow):nos permiten elegir la producción que vamos a
aplicar, con base en el siguiente símbolo de entrada.

backtracking :estrategia para dar soluciones a problemas

que satisfacen restricciones


TEORIA: ANALISIS SINTACTICO DESCENDENTE
LL(1)

Es un algoritmo encargado de transformar la gramatica mediante la


derivacion de izquieda a derecha como en un arbol desde las hojas hacia la
raiz
ANALISIS SINTACTICO DESCENDENTE
Caracteristicas

El análisis sintáctico descendente (ASD) intenta encontrar entre las producciones de la gramática la
derivación por la izquierda del símbolo inicial para una cadena de entrada.

Parte del axioma de la gramática.

Procesa la entrada de izquierda a derecha.


RESTRICCIONES

Nuestra gramatica no debe ser ambigua

debe estar completamente factorizada

no debe tener recursividad por la izquierda


Primeros y Siguientes (Firts and Follow)
Son dos funciones asociadas a una gramática que facilitan la construcción

de un analizador sintáctico predictivo

Los primeros sé comienza a buscar en los no terminales hasta encontrar un


terminal

para obtener los siguientes necesitamos los siguientes primeros


ANÁLISIS SINTÁCTICO DESCENDENTE LL BASADO EN TABLA DE ANÁLISIS (TAS)
EJERCICIO TEORICO
EJERCICIO TEORICO
ARBOL SINTACTICO DE DERIVACION
CONCLUSIONES
● Una gramática diseñada adecuadamente imparte una estructura a un lenguaje de programación útil para la traducción de
programas fuente a código objeto correcto y para la detección de errores.
● Una gramática recursiva por la izquierda puede hacer que un analizador sintáctico de descenso recursivo, incluso uno con
rastreo hacia atrás, entre en un ciclo infinito.
● Los tipos de errores que se pueden encontrar son por una expresión aritmética o paréntesis no equilibrados.

Você também pode gostar