La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Organización de Lenguajes y Compiladores 1 Método de análisis sintáctico LL1.

Presentaciones similares


Presentación del tema: "Organización de Lenguajes y Compiladores 1 Método de análisis sintáctico LL1."— Transcripción de la presentación:

1 Organización de Lenguajes y Compiladores 1 Método de análisis sintáctico LL1

2 Método Descendente LL(1) La primera L representa el tipo de lectura de la cadena de entrada Left (de izquierda a derecha) La segunda L representa la que la derivación Left, por la izquierda. Y el 1, es el número de símbolos de entrada para analizar por anticipado.

3 Método Descendente LL(1) Ninguna gramática ambigua o recursiva por la izquierda puede ser LL(1).

4 Método Descendente LL(1) Buffer de Entrada Cadena de entrada a analizar, finaliza con el carácter $ Pila Símbolos gramaticales que se van utilizando Tabla de Análisis Sintáctico Matriz bidimensional que sirve para el análisis Cadena de Salida Cadena de Salida posterior al análisis

5 LL(1)

6 Pasos para el Método LL(1) 1. Escribir adecuadamente la gramática 2. Calcular el First y el Follow 3. Construir la tabla de Análisis Sintáctico 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis

7 Pasos para el Método LL(1) 1. Escribir adecuadamente la gramática Para poder utilizar un analizador descendente no recursivo la gramática debe cumplir con: No debe tener ambigüedad No debe ser recursiva por la izquierda Debe estar factorizada

8 Pasos para el Método LL(1) SímboloFirst/Primero Si x es terminal First(X) = {x} Si X ε producción Añadir ε al First(X) X YZW Añadir First (Y) a First (X) 2. Calcular el First / Primero

9 SímboloFollow/Siguiente Si X es símbolo inicial Follow ( X ) = { $ } Si X α Y M Producción 1.Follow (Y) = First (M) excepto ε. 2. Si el First(M) contiene ε entonces añadir el Follow(X) a Follow (Y) Si X α Y Producción Añadir el Follow(X) a Follow(Y) 2. Calcular el Follow / Siguiente Pasos para el Método LL(1)

10 3. Construir la tabla de Análisis Sintáctico Símbolos No Terminales Símbolos No Terminales Símbolo Terminal

11 Pasos para el Método LL(1) 3. Construir la tabla de Análisis Sintáctico 1. Para cada A α, ejecute 2 y Para cada terminal a del First (α), añádase A α en la posición M[ A, a]. 3. Si ε esta en el First ( α), añádase A ε a M[A, b ] para cada terminal b de Follow(A). 4. Cada entrada vacía hágase ERROR.

12 Pasos para el Método LL(1) 3. Construir la tabla de Análisis Sintáctico Se colocan las producciones que corresponden a los datos obtenidos del cálculo del first. Se colocan las producciones que corresponden a los datos obtenidos del cálculo del first.

13 Pasos para el Método LL(1) 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis 13 PilaEntrada...

14 Ejemplo LL(1) Partiendo de la Gramática: S ( A ) A C B B ; A | ε C x | S 1. Es una gramática adecuada para el análisis LL(1)

15 Ejemplo LL(1) 2. Cálculo del First / Primero S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal First S( A B ; Cx Para calcular el first Se usan Los no terminales del lado izquierdo de la producción Si X es terminal First(X) = {x}

16 Ejemplo LL(1) 2. Cálculo del First / Primero S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal First S( A B ;, ε Cx Si X ε producción Añadir ε al First(x) Para calcular el first Se usan Los no terminales del lado izquierdo de la producción

17 Ejemplo LL(1) 2. Cálculo del First / Primero S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal First S( Ax, ( B ;, ε Cx, ( X YZW Añadir First (Y) a First (X) Para calcular el first Se usan Los no terminales del lado izquierdo de la producción

18 Ejemplo LL(1) 2. Cálculo del First / Primero S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal First S( Ax, ( B ;, ε Cx, (

19 Ejemplo LL(1) 2. Cálculo del Follow / Siguiente S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal Follow S $ A B C Si X es símbolo inicial Follow (X) = { $ } Para cacular el follow Se usan Los no terminales del lado izquierdo de la producción

20 Ejemplo LL(1) 2. Cálculo del Follow / Siguiente S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal Follow S $ A) B C Para cacular el follow Se usan Los no terminales del lado izquierdo de la producción

21 Ejemplo LL(1) 2. Cálculo del Follow / Siguiente S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal Follow S $ A) B ) C Si X α Y Producción Añadir el Follow(X) a Follow(Y) Para cacular el follow Se usan Los no terminales del lado izquierdo de la producción

22 Ejemplo LL(1) 2. Cálculo del Follow / Siguiente S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal Follow S $ A) B ) C;, ) Se usan Los no terminales del lado derecho de la producción Si X α Y M Producción 1.Follow (Y) = First (M) excepto ε. 2. Si el First(M) contiene ε entonces añadir el Follow(X) a Follow (Y) First(B) ;, ε

23 2. Para cada terminal a del First (α), añádase A α en la posición M[ A, a]. Ejemplo LL(1) Construir la tabla de Análisis Sintáctico Símbolo No Terminal First S( Ax, ( B ;, ε Cx, ( ;x()$ S S ( A ) A A CB B B ; A C C xC S S ( A ) A C B B ; A | ε C x | S

24 3.Si ε esta en el First ( α), añádase A ε a M[A, b ] para cada terminal b de Follow(A). Ejemplo LL(1) Construir la tabla de Análisis Sintáctico Símbolo No Terminal First B ;, ε ;x()$ S S ( A ) A A CB B B ; A B ε C C xC S S ( A ) A C B B ; A | ε C x | S Símbolo No Terminal Follow B )

25 4.Cada entrada vacía hágase ERROR Ejemplo LL(1) Construir la tabla de Análisis Sintáctico ;x()$ S ERROR S ( A ) ERROR A A CB ERROR B B ; A ERROR B ε ERROR C C xC SERROR

26 3. Construir la tabla de Análisis Sintáctico Ejemplo LL(1) ;x()$ S ERROR S ( A ) ERROR A A CB ERROR B B ; A ERROR B ε ERROR C C xC SERROR

27 Pasos para el Método LL(1) 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis PilaEntrada $ S( x ; ( x ) ) $ (x;(x)) Colocar $ y el símbolo inicial Colocar $ y el símbolo inicial Colocar la cadena de entrada y $ Colocar la cadena de entrada y $

28 Pasos para el Método LL(1) 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis PilaEntradaAcción $ S( x ; ( x ) ) $S ( A ) Se busca el símbolo terminal y el no terminal, remplazándolo por la producción que le corresponda en la tabla. Colocándola de izquierda a derecha Se busca el símbolo terminal y el no terminal, remplazándolo por la producción que le corresponda en la tabla. Colocándola de izquierda a derecha ( S S ( A )

29 Pasos para el Método LL(1) 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis PilaEntradaAcción $ S $ ) A ( ( x ; ( x ) ) $ S ( A ) Cuando se llega a una coincidencia, se eliminan ambos, y se continua con el análisis Cuando se llega a una coincidencia, se eliminan ambos, y se continua con el análisis

30 Pasos para el Método LL(1) 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis PilaEntradaAcción $ S $ ) A ( ( x ; ( x ) ) $ S ( A ) Cuando se llega a una coincidencia, se eliminan ambos, y se continua con el análisis Cuando se llega a una coincidencia, se eliminan ambos, y se continua con el análisis

31 PilaEntradaAcción $ S $ ) A $ ) B C $ ) B x $ ) B $ ) A ; $ ) A $ ) B C $ ) B S $ ) B ) A ( $ ) B ) A $ ) B ) B C $ ) B ) B x $ ) B ) B $ ) B ) $ ) B $ ) $ ( x ; ( x ) ) $ x ; ( x ) ) $ ; ( x ) ) $ ( x ) ) $ x ) ) $ ) ) $ ) $ $ S ( A ) A C B C x B ; A A C B C S S ( A ) A C B C x B ε

32 PilaEntradaAcción $ S $ ) A $ ) B C $ ) B x $ ) B $ ) A ; $ ) A $ ) B C $ ) B S $ ) B ) A ( $ ) B ) A $ ) B ) B C $ ) B ) B x $ ) B ) B $ ) B ) $ ) B $ ) $ ( x ; ( x ) ) $ x ; ( x ) ) $ ; ( x ) ) $ ( x ) ) $ x ) ) $ ) ) $ ) $ $ S ( A ) A C B C x B ; A A C B C S S ( A ) A C B C x B ε ACEPTADA Se acepta la cadena si se logra eliminar de la pila y la entrada, todos los símbolos. De lo contrario no se acepta la cadena. Se acepta la cadena si se logra eliminar de la pila y la entrada, todos los símbolos. De lo contrario no se acepta la cadena.

33 RESUMEN Pasos para el método LL1 1. Escribir adecuadamente la gramática 2. Calcular el First y el Follow 3. Construir la tabla de Análisis Sintáctico 4. Hacer el análisis de sintáctico por medio de la pila y la tabla de análisis


Descargar ppt "Organización de Lenguajes y Compiladores 1 Método de análisis sintáctico LL1."

Presentaciones similares


Anuncios Google