TRADUCTORES E INTERPRETADORES

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TRADUCTORES E INTERPRETADORES"

Transcripción

1 TRADUCTORES E INTERPRETADORES Clase 11: Analizadores Sintácticos Descendentes

2 Agenda Analizadores Recursivos Descendentes. Análisis Predictivo. Analizadores LL(1). Analizadores LL(k) y LL(*).

3 Analizadores Recursivos Descendentes Recordemos los árboles de derivación de una gramática. Cuántos árboles de derivación diferentes puede tener una frase?

4 Analizadores Recursivos Descendentes Recordemos los árboles de derivación de una gramática. Cuántos árboles de derivación diferentes puede tener una frase? Qué ocurría cuando había mas de una?

5 Analizadores Recursivos Descendentes Recordemos los árboles de derivación de una gramática. Cuántos árboles de derivación diferentes puede tener una frase? Qué ocurría cuando había mas de una? Ambigüedad!

6 Analizadores Recursivos Descendentes Recordemos los árboles de derivación de una gramática. Cuántos árboles de derivación diferentes puede tener una frase? Qué ocurría cuando había mas de una? Ambigüedad! En que orden expandimos los símbolos noterminales?

7 Analizadores Recursivos Descendentes Recordemos los árboles de derivación de una gramática. Cuántos árboles de derivación diferentes puede tener una frase? Qué ocurría cuando había mas de una? Ambigüedad! En que orden expandimos los símbolos noterminales? Realmente importa?

8 Analizadores Recursivos Descendentes Si siempre escogemos el símbolo no-terminal mas derecho, tendremos una derivación más derecha.

9 Analizadores Recursivos Descendentes Si siempre escogemos el símbolo no-terminal mas derecho, tendremos una derivación más derecha. Si siempre escogemos el símbolo no-terminal mas izquierdo, tendremos una derivación más izquierda.

10 Analizadores Recursivos Descendentes Si siempre escogemos el símbolo no-terminal mas derecho, tendremos una derivación más derecha. Si siempre escogemos el símbolo no-terminal mas izquierdo, tendremos una derivación más izquierda. Y estas son las que nos interesan en esta ocasión.

11 Analizadores Recursivos Descendentes Cómo podemos construir un reconocedor para frases, dada una Gramática Libre de Contexto?

12 Analizadores Recursivos Descendentes Cómo podemos construir un reconocedor para frases, dada una Gramática Libre de Contexto? Una forma es realizando la traducción explícitamente a un Autómata de Pila.

13 Analizadores Recursivos Descendentes Cómo podemos construir un reconocedor para frases, dada una Gramática Libre de Contexto? Una forma es realizando la traducción explícitamente a un Autómata de Pila. Otra forma es a través de un Analizador Recursivo Descendente.

14 Analizadores Recursivos Descendentes Cómo podemos construir un reconocedor para frases, dada una Gramática Libre de Contexto? Una forma es realizando la traducción explícitamente a un Autómata de Pila. Otra forma es a través de un Analizador Recursivo Descendente. La clave está en ver cada símbolo no terminal como una función que: Recibe una frase. Intenta reconocer un prefijo de la frase. Devuelve el residual (sobrante) de la frase.

15 Analizadores Recursivos Descendentes Ejemplo: E E E E * E ( E) c

16 Analizadores Recursivos Descendentes Ejemplo: String E (String frase) { String tmp; E E E E * E ( E) c if (match(frase[0], ( )) tmp = E(frase.substring(1)); if (match(tmp[0], ) )) return tmp.substring(1); if (match(tmp[0], c )) return temp.substring(1); tmp = E(frase); if (match(tmp[0], + )) return E(tmp.substring(1)); else if (match(tmp[0], * )) return E(tmp.substring(1)); EN JAVA } errorhandler();

17 Analizadores Recursivos Descendentes Ejemplo: String E (String frase) { String tmp; E E E * E ( E) c E Qué problema tiene la función E? } if (match(frase[0], ( )) tmp = E(frase.substring(1)); if (match(tmp[0], ) )) return tmp.substring(1); if (match(tmp[0], c )) return temp.substring(1); tmp = E(frase); if (match(tmp[0], + )) return E(tmp.substring(1)); else if (match(tmp[0], * )) return E(tmp.substring(1)); errorhandler(); EN JAVA

18 Analizadores Recursivos Descendentes Para poder implementar un buen Analizador Recursivo Descendente, debe pedirse que la gramática no tenga recursión izquierda.

19 Analizadores Recursivos Descendentes Para poder implementar un buen Analizador Recursivo Descendente, debe pedirse que la gramática no tenga recursión izquierda. Siempre se puede llevar una Gramática Libre de Contexto a una equivalente, pero sin recursión izquierda?

20 Analizadores Recursivos Descendentes A Para poder implementar un buen Analizador Recursivo Descendente, debe pedirse que la gramática no tenga recursión izquierda. Siempre se puede llevar una Gramática Libre de Contexto a una equivalente, pero sin recursión izquierda? Si! A... 1 A... 1 m n A A'... 1 A' A' A'... A' 1 m n

21 Analizadores Recursivos Descendentes Para poder implementar un buen Analizador Recursivo Descendente, debe pedirse que la gramática no tenga recursión izquierda. Siempre se puede llevar una Gramática Libre de Contexto a una equivalente, pero sin recursión izquierda? Si! Y si le recursión es indirecta?

22 Analizadores Recursivos Descendentes Para poder implementar un buen Analizador Recursivo Descendente, debe pedirse que la gramática no tenga recursión izquierda. Siempre se puede llevar una Gramática Libre de Contexto a una equivalente, pero sin recursión izquierda? Si! Y si le recursión es indirecta? Les queda como ejercicio.

23 Análisis Predictivo Los Analizadores Recursivos Descendentes son fáciles de implementar. Sin embargo, pueden ser ineficientes.

24 Análisis Predictivo Los Analizadores Recursivos Descendentes son fáciles de implementar. Sin embargo, pueden ser ineficientes. Posiblemente tienen que realizar backtracking.

25 Análisis Predictivo Los Analizadores Recursivos Descendentes son fáciles de implementar. Sin embargo, pueden ser ineficientes. Posiblemente tienen que realizar backtracking. Y si pudiéramos usar algún tipo de información adicional que permita eliminar la posibilidad de backtracking? Aquí entra el análisis predictivo.

26 Análisis Predictivo La idea poder ver algunos símbolos de la frase por adelantado, para ayudar a tomar una decisión al analizador sobre el camino a tomar.

27 Análisis Predictivo La idea poder ver algunos símbolos de la frase por adelantado, para ayudar a tomar una decisión al analizador sobre el camino a tomar. A estos adelantos, les llamaremos Look-ahead s. Cada regla de la Gramática tendrá uno.

28 Análisis Predictivo La idea poder ver algunos símbolos de la frase por adelantado, para ayudar a tomar una decisión al analizador sobre el camino a tomar. A estos adelantos, les llamaremos Look-ahead s. Cada regla de la Gramática tendrá uno. Se definirán a partir de dos conjuntos especiales para cada símbolo: FIRST k : Primeros k símbolos terminales que puede generar el símbolo. FOLLOW k : Primeros k símbolos terminales que pueden generarse, una vez se haya terminado de expandir el símbolo en cuestión.

29 Análisis Predictivo FIRST: ( a : a : FIRST ( a) { a}) ( A : A P : FIRST k k ( A)) ( A, Y 1... Ym : A Y 1... Ym P : trunck ( FIRST k ( Y1 )... FIRST k ( Ym )) FIRST ( A))

30 Análisis Predictivo FIRST: FOLLOW: )) ( ) ( : ) ( ) (, :,,, ( )) ( ) ( : ) (, :,,, ( ) ( $ * * B FOLLOW A FOLLOW P B A FIRST V V B B A B FOLLOW FIRST P B A V V B B A S FOLLOW k k k k )) ( )) ( )... ( ( :... :..., ( )) ( : : ( }) { ) ( : : ( A FIRST Y FIRST Y FIRST trunc P Y Y A Y A Y A FIRST P A A a a FIRST a a m k k k m m k k

31 Análisis Predictivo Look-ahead: ( A, : ( V ) LookAhead k * A P : ( A ) trunc k ( FIRST k ( ). FOLLOW k ( A)))

32 Analizadores LL(1) Con un look-ahead de tamaño k podemos saber que frases de tamaño k espera una regla para usarla.

33 Analizadores LL(1) Con un look-ahead de tamaño k podemos saber que frases de tamaño k espera una regla para usarla. Vamos a usar los look-ahead para construir un autómata que realice el reconocimiento de manera eficiente

34 Analizadores LL(1) Con un look-ahead de tamaño k podemos saber que frases de tamaño k espera una regla para usarla. Vamos a usar los look-ahead para construir un autómata que realice el reconocimiento de manera eficiente Y es determinista!

35 Analizadores LL(1) La idea del analizador LL(k) es: Construir un reconocedor descendente.

36 Analizadores LL(1) La idea del analizador LL(k) es: Construir un reconocedor descendente. Tanto con los siguientes k símbolos como con LookAhead k, determinar la regla a tomar en cada paso.

37 Analizadores LL(1) La idea del analizador LL(k) es: Construir un reconocedor descendente. Tanto con los siguientes k símbolos como con LookAhead k, determinar la regla a tomar en cada paso. Antes que nada, limitaremos en 1 la cantidad de caracteres a leer.

38 Analizadores LL(1) La idea del analizador LL(k) es: Construir un reconocedor descendente. Tanto con los siguientes k símbolos como con LookAhead k, determinar la regla a tomar en cada paso. Antes que nada, limitaremos en 1 la cantidad de caracteres a leer. Luego veremos el impacto que acarrea el caso general.

39 Analizadores LL(1) Cómo construir un analizador LL(1)? Necesitaremos construir el mecanismo de predicción. Para eso usaremos una tabla, llamada reglas. Las filas corresponderán a símbolos no terminales. Las columnas corresponderán a símbolos terminales.

40 Analizadores LL(1) Cómo construir un analizador LL(1)? A Dada una regla de la forma : Queremos saber que reglas aplicar dado el inicio de la entrada. ( a : afirst 1( ): reglas [ A, a] A )

41 Analizadores LL(1) Cómo construir un analizador LL(1)? A Dada una regla de la forma : Ahora, si FIRST 1 ( ), usaremos los símbolos que siguen a α. ( b : FIRST 1( ) b FOLLOW1 ( ) : reglas [ A, b] A )

42 Analizadores LL(1) Cómo construir un analizador LL(1)? A Dada una regla de la forma : Ahora, si FIRST 1 ( ), usaremos los símbolos que siguen a α. ( b : FIRST 1( ) b FOLLOW1 ( ) : reglas [ A, b] A ) Y $?

43 Analizadores LL(1) Cómo construir un analizador LL(1)? A Dada una regla de la forma : Ahora, si FIRST 1 ( ), usaremos los símbolos que siguen a α. ( b {$}: FIRST 1( ) b FOLLOW1 ( ) : reglas [ A, b] A )

44 Analizadores LL(1) Cómo construir un analizador LL(1)? A Dada una regla de la forma : Ahora, si FIRST 1 ( ), usaremos los símbolos que siguen a α. ( b {$}: FIRST 1( ) b FOLLOW1 ( ) : reglas [ A, b] A ) MUCHO MEJOR!

45 Analizadores LL(1) Aplicando esos pasos, se construye lo que es la tabla de reconocimiento LL(1).

46 Analizadores LL(1) Aplicando esos pasos, se construye lo que es la tabla de reconocimiento LL(1). Lo único que falta es... cómo usar la tabla para poder reconocer una frase?

47 Analizadores LL(1) Un analizador LL(1) está compuesto por: Una pila que contendrá símbolos de la gramática.

48 Analizadores LL(1) Un analizador LL(1) está compuesto por: Una pila que contendrá símbolos de la gramática. El sufijo de la frase original que queda por leer.

49 Analizadores LL(1) Un analizador LL(1) está compuesto por: Una pila que contendrá símbolos de la gramática. El sufijo de la frase original que queda por leer. La tabla de reconocimiento construida en el paso anterior.

50 Analizadores LL(1) Un analizador LL(1) está compuesto por: Una pila que contendrá símbolos de la gramática. El sufijo de la frase original que queda por leer. La tabla de reconocimiento construida en el paso anterior. Un mecanismo de salida, que imprima que producción se aplicó en el paso correspondiente.

51 Analizadores LL(1) La máquina comenzará con la siguiente configuración: La máquina comienza con el símbolo inicial de la gramática empilada. Se comienza con la frase completa.

52 Analizadores LL(1) La máquina comenzará con la siguiente configuración: La máquina comienza con el símbolo inicial de la gramática empilada. Se comienza con la frase completa. A RECONOCERRRRRRRRR!

53 Analizadores LL(1) Considere X como el tope de la pila y a el símbolo inicial de la frase. Si X es un símbolo no terminal, se consulta la casilla reglas[x,a].

54 Analizadores LL(1) Considere X como el tope de la pila y a el símbolo inicial de la frase. Si X es un símbolo no terminal, se consulta la casilla reglas[x,a]. Si hay una regla, X Y Y, entonces: Se desempila X. 1` 2 Se empila Y n Y 2 Y 1, tal que Y 1 quede en el tope de la pila. Y n Se imprime la producción resultante.

55 Analizadores LL(1) Considere X como el tope de la pila y a el símbolo inicial de la frase. Si X es un símbolo no terminal, se consulta la casilla reglas[x,a]. Si hay una regla, X Y Y, entonces: Se desempila X. 1` 2 Se empila Y n Y 2 Y 1, tal que Y 1 quede en el tope de la pila. Se imprime la producción resultante. Si no, se tranca la máquina rechazando la palabra. Y n

56 Analizadores LL(1) Considere X como el tope de la pila y a el símbolo inicial de la frase. Si X = a, el símbolo del tope de la pila coincide con el elemento apuntado, por lo que se desempila X y se consume un símbolo de la entrada. Si X = $ y a =, se detiene la máquina, aceptando la frase.

57 Analizadores LL(k) y LL(*) Observe que, aunque el uso de FIRST 1 y FOLLOW 1 está explícito en las láminas anteriores, es equivalente a usar LookAhead 1.

58 Analizadores LL(k) y LL(*) Observe que, aunque el uso de FIRST 1 y FOLLOW 1 está explícito en las láminas anteriores, es equivalente a usar LookAhead 1. Ahora, considere el caso general. Cómo funcionaría?

59 Analizadores LL(k) y LL(*) Observe que, aunque el uso de FIRST 1 y FOLLOW 1 está explícito en las láminas anteriores, es equivalente a usar LookAhead 1. Ahora, considere el caso general. Cómo funcionaría? Tomaría la decisión con los k primeros símbolos de lo que queda de entrada, considerando LookAhead k.

60 Analizadores LL(k) y LL(*) Observe que, aunque el uso de FIRST 1 y FOLLOW 1 está explícito en las láminas anteriores, es equivalente a usar LookAhead 1. Ahora, considere el caso general. Cómo funcionaría? Tomaría la decisión con los k primeros símbolos de lo que queda de entrada, considerando LookAhead k. Tiene sentido hablar de un analizador LL(0)?

61 Analizadores LL(k) y LL(*) Ahora, considere el caso general. Tomaría la decisión con los k primeros símbolos de lo que queda de entrada, considerando LookAhead k. Cómo sería el tamaño de la tabla de reconocimiento?

62 Analizadores LL(k) y LL(*) Ahora, considere el caso general. Tomaría la decisión con los k primeros símbolos de lo que queda de entrada, considerando LookAhead k. Cómo sería el tamaño de la tabla de reconocimiento? Explosión exponencial de espacio!

63 Analizadores LL(k) y LL(*) Ahora, considere el caso general. Tomaría la decisión con los k primeros símbolos de lo que queda de entrada, considerando LookAhead k. Cómo sería el tamaño de la tabla de reconocimiento? Explosión exponencial de espacio! Y cómo marcarían el final de la entrada?

64 Analizadores LL(k) y LL(*) Será que toda gramática genera un lenguaje LL(1)?

65 Analizadores LL(k) y LL(*) Será que toda gramática genera un lenguaje LL(1)? Y uno LL(k)?

66 Analizadores LL(k) y LL(*) Será que toda gramática genera un lenguaje LL(1)? Y uno LL(k)? Una gramática no es LL(k) si presenta algún conflicto.

67 Analizadores LL(k) y LL(*) Un conflicto en una gramática LL(k) surge cuando existen dos reglas con mismo símbolo no terminal a izquierda que compartan algún elemento en sus look-ahead.

68 Analizadores LL(k) y LL(*) Un conflicto en una gramática LL(k) surge cuando existen dos reglas con mismo símbolo no terminal a izquierda que compartan algún elemento en sus look-ahead. Aumentando la k, se puede solventar el conflicto.

69 Analizadores LL(k) y LL(*) Un conflicto en una gramática LL(k) surge cuando existen dos reglas con mismo símbolo no terminal a izquierda que compartan algún elemento en sus look-ahead. Aumentando la k, se puede solventar el conflicto. PERO NO ES SEGURO!

70 Analizadores LL(k) y LL(*) No todas las gramáticas pueden ser LL(k) para cualquier k. Las que si lo son, tienen un k mínimo que garantiza que la gramática sea LL.

71 Analizadores LL(k) y LL(*) No todas las gramáticas pueden ser LL(k) para cualquier k. Las que si lo son, tienen un k mínimo que garantiza que la gramática sea LL. pero el caso que se necesiten los k símbolos en el look-ahead ocurre poco!

72 Analizadores LL(k) y LL(*) No todas las gramáticas pueden ser LL(k) para cualquier k. Las que si lo son, tienen un k mínimo que garantiza que la gramática sea LL. pero el caso que se necesiten los k símbolos en el look-ahead ocurre poco! Para eso se introduce un grupo de analizadores sintácticos con poder

73 Analizadores LL(k) y LL(*) No todas las gramáticas pueden ser LL(k) para cualquier k. Las que si lo son, tienen un k mínimo que garantiza que la gramática sea LL. pero el caso que se necesiten los k símbolos en el look-ahead ocurre poco! Para eso se introduce un grupo de analizadores sintácticos con poder Los analizadores LL(*)!

74 Analizadores LL(k) y LL(*) Un analizador LL(*) funciona de la siguiente forma: 1. Se intenta resolver la regla con look-ahead Si no, entonces aumenta el look-ahead al siguiente umbral (la regla que requiera un look-ahead mayor). Si se consigue una regla, se aplica el siguiente paso. Si no, vuelve al paso 2. Este manejo de look-aheads se hace con un Autómata Finito Determinista.

75 Analizadores LL(k) y LL(*) Un analizador LL(*) no necesita definir un k. El mismo generador reconoce cual es el k mínimo que se necesita. El tamaño de la predicción varía dependiendo de las reglas.

76 Analizadores LL(k) y LL(*) Un analizador LL(*) no necesita definir un k. El mismo generador reconoce cual es el k mínimo que se necesita. El tamaño de la predicción varía dependiendo de las reglas. Es usado en la herramienta de generadores de reconocedores ANTLR.

77 Analizadores LL(k) y LL(*) Con esto, estudiamos la familia de los Analizadores Sintácticos Descendientes.

78 Analizadores LL(k) y LL(*) Con esto, estudiamos la familia de los Analizadores Sintácticos Descendientes. Existen otra familia de Analizadores Sintácticos... los Analizadores Sintácticos Ascendentes.

79 Analizadores LL(k) y LL(*) Con esto, estudiamos la familia de los Analizadores Sintácticos Descendientes. Existen otra familia de Analizadores Sintácticos... los Analizadores Sintácticos Ascendentes. Estos Analizadores los estudiaremos en la próxima clase.

80 Analizadores LL(k) y LL(*) Con esto, estudiamos la familia de los Analizadores Sintácticos Descendientes. Existen otra familia de Analizadores Sintácticos... los Analizadores Sintácticos Ascendentes. Estos Analizadores los estudiaremos en la próxima clase.

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente 2 Contenido Clasificación de métodos de análisis sintáctico Análisis descendente Análisis descendente recursivo Análisis descendente predictivo Métodos deterministas Problemas del análisis descendente

Más detalles

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1 Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte I 1 Introducción El analizador sintáctico recibe una secuencia de tokens y decide si la secuencia está correcta o no.

Más detalles

Procesadores de Lenguajes. Análisis sintáctico. Analizadores descendentes

Procesadores de Lenguajes. Análisis sintáctico. Analizadores descendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores descendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO

ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO 1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN ANÁLISIS SINTÁCTICO PREDICTIVO NO RECURSIVO Elaborado el Martes 12 de Octubre de 2004 I.- INTRODUCCIÓN Es posible realizar

Más detalles

Análisis sintáctico Analizadores descendentes

Análisis sintáctico Analizadores descendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores descendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores sintácticos descendentes: LL(1) Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 Analizadores sintácticos

Más detalles

Analizadores sintácticos LR(0) y SLR

Analizadores sintácticos LR(0) y SLR Teoría de Lenguajes Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Clase de Hoy Anteriores: Parsing descendente (LL(1), ELL) Recursivos e iterativos Generan árbol de derivación desde

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores sintác0cos descendentes: LL(1) Cris%na Tirnauca DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: Crea0ve Commons BY NC SA 3.0 Analizadores

Más detalles

Tema 6: Compiladores e intérpretes. Teoría de autómatas y lenguajes formales I

Tema 6: Compiladores e intérpretes. Teoría de autómatas y lenguajes formales I Tema 6: Compiladores e intérpretes Teoría de autómatas y lenguajes formales I Bibliografía Sudkamp, T. A. Languages and machines: an introduction to the theory of computer science. Addison Wesley. 1997.

Más detalles

Análisis Sintáctico Descendente

Análisis Sintáctico Descendente Análisis Sintáctico Descendente CI4721 Lenguajes de Programación II Ernesto Hernández-Novich Universidad Simón Bolívar Copyright 2012-2016 Hernández-Novich (USB) Análisis Sintáctico Descendente

Más detalles

B b A. Notar que las gramáticas utilizadas son sin recursión por la izquierda:

B b A. Notar que las gramáticas utilizadas son sin recursión por la izquierda: Definición: Una Gramática Libre de Contexto (GLC) está en Forma Normal de Greibach (FNG) si todas las producciones son de la forma: A ab 1 B 2.. B k Donde A es un símbolo no Terminal, a es un símbolo Terminal

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3. UNIVRSIDAD NACIONAL D DUCACIÓN A DISTANCIA scuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte I Análisis Sintáctico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Análizador Sintáctico de abajo hacia arriba Es un proceso de Reducción,

Más detalles

Analizador Sintáctico Ascendente

Analizador Sintáctico Ascendente Analizador Sintáctico Ascente Un Analizador Sintáctico (A. St.) Ascente construye el árbol desde las hojas hacia la raíz. Funciona por reducción-desplazamiento, lo cual quiere decir que, siempre que puede,

Más detalles

Tipos de análisis deterministas. Análisis descendente. Tipos de análisis deterministas. Análisis ascendente. Análisis descendente

Tipos de análisis deterministas. Análisis descendente. Tipos de análisis deterministas. Análisis ascendente. Análisis descendente César Ignacio García Osorio Área de Lenguajes y Siste mas Informáticos Universidad de Burgos Tipos de análisis deterministas. nálisis descendente. La idea es generar una forma sentencial a partir del axioma,

Más detalles

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas 2 Contenido Gramáticas limpias y bien formadas Algoritmo para detectar símbolos muertos Algoritmo para detectar símbolos inaccesibles Gramáticas ambiguas Clasificación de métodos de análisis sintáctico

Más detalles

Lenguajes y Compiladores Análisis Sintáctico Parte II

Lenguajes y Compiladores Análisis Sintáctico Parte II Universidad Nacional San Luis Gonzaga Facultad de Ing. De Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte II 1 Análisis Ascendente El análisis ascendente es conocido como análisis por desplazamiento

Más detalles

ANÁLISIS SINTÁCTICO I ANÁLISIS SINTÁCTICO DESCENDENTE LL(1)

ANÁLISIS SINTÁCTICO I ANÁLISIS SINTÁCTICO DESCENDENTE LL(1) Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Compiladores e Intérpretes Análisis Sintáctico

Compiladores e Intérpretes Análisis Sintáctico 1 Compiladores e Intérpretes Análisis Sintáctico Sebastian Gottifredi 2017 Organizacion Contexto Motivación Reglas de Sintaxis Construyendo Analizadores Sintácticos Ambigüedad Analizadores Sintácticos

Más detalles

Las Gramáticas LL. Gramáticas con Parsing Eficiente. Universidad de Cantabria

Las Gramáticas LL. Gramáticas con Parsing Eficiente. Universidad de Cantabria Las (k) Las Gramáticas con Parsing Eficiente Universidad de Cantabria Outline Las (k) 1 Las (k) 2 3 Las (k) Formalizalización del Concepto LL Definición Una gramática libre de contexto G = (V, Σ, Q 0,

Más detalles

Análisis sintáctico Analizadores ascendentes

Análisis sintáctico Analizadores ascendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores ascendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Agenda. Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo

Agenda. Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo Agenda Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo Analizador sintáctico Bottom-Up 1-1 1-2 Introducción Los sistemas de implementación

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Análisis sintáctico 1

Análisis sintáctico 1 Análisis sintáctico 1 Análisis sintáctico 1. Introducción 2. Análisis descendente (top-down) 2.1 Análisis con backtracking 2.2 Análisis predictivo 2.2.1 Método recursivo 2.2.2 Método iterativo 3. Análisis

Más detalles

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo Tema 4: Análisis sintáctico ascendente Procesamiento de enguajes Dept. de enguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de enguajes Tema 4: Análisis sintáctico ascendente 1 / 21

Más detalles

Tema 5. Análisis sintáctico ascendente

Tema 5. Análisis sintáctico ascendente Tema 5 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Introducción 5.2 Análisis sintáctico por desplazamiento y reducción 5.3 El autómata reconocedor de prefijos viables

Más detalles

TRADUCTORES E INTERPRETADORES

TRADUCTORES E INTERPRETADORES TRADUCTORS INTRPRTADORS Clase 8: Forma Normal de (Noam) Chomsky y Gramáticas de Atributos Agenda Forma Normal de Chomsky Gramáticas de Atributos Forma Normal de Chomsky n la clase pasada, se introdujeron

Más detalles

Compiladores e Intérpretes Análisis Semántico I

Compiladores e Intérpretes Análisis Semántico I 1 Compiladores e Intérpretes Análisis Semántico I Sebastian Gottifredi 2017 Organización Repaso Intuición General del Análisis Semántico Gramáticas de Atributos Funcionamiento Atributos: Sintetizados-Heredados-Intrinsecos

Más detalles

FACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Compiladores Carga Horaria Semestral 64 Semestre

Más detalles

Procesadores de lenguaje Tema Análisis sintáctico (Parte II)

Procesadores de lenguaje Tema Análisis sintáctico (Parte II) Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte II) Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Análisis sintáctico ascendente

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. UNIVERIDAD NACIONAL DE EDUCACIÓN A DITANCIA Escuela Técnica uperior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte II Análisis intáctico Descendente Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Compiladores: Análisis sintáctico descendente recursivo

Compiladores: Análisis sintáctico descendente recursivo Compiladores: Análisis sintáctico descendente recursivo Francisco J Ballesteros LSUB, URJC Page 1 of 61 Analizador sintáctico En adelante lo llamaremos parser Dados los tokens de la entrada Construir el

Más detalles

El análisis descendente LL(1) 6, 7 y 13 de abril de 2011

El análisis descendente LL(1) 6, 7 y 13 de abril de 2011 6, 7 y 13 de abril de 2011 Analizadores sintácticos (repaso) Los analizadores descendentes: Corresponden a un autómata de pila determinista. Construyen un árbol sintáctico de la raíz hacia las hojas (del

Más detalles

Las Etapas de la Compilación

Las Etapas de la Compilación Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos

Más detalles

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO Autómatas de pila y lenguajes independientes del contexto -1- AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO AUTÓMATAS DE PILA - Son autómatas finitos con una memoria en forma de pila. - Símbolos

Más detalles

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion UNIDAD IV Analisis Sintactico 4.1 Introduccion Sintaxis significa estructura del orden de las palabras en una frase. La tarea del analisis sintactico es revisar si los símbolos aparecen en el orden correcto

Más detalles

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. de Ingeniería de Sistemas e Informática TEORIA DE COMPILADORES ANALISIS SINTACTICO

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. de Ingeniería de Sistemas e Informática TEORIA DE COMPILADORES ANALISIS SINTACTICO ANALISIS SINTACTICO Análisis Sintáctico Descendente Análisis Sintáctico Ascendente EOF y α S (axioma inicial). 2. : la cadena de entrada no es válida. 3. : consiste en aplicar

Más detalles

Clase 16: GLC s recursivas y no factorizadas Solicitado: Ejercicios 13: Recursividad y factorización de gramáticas

Clase 16: GLC s recursivas y no factorizadas Solicitado: Ejercicios 13: Recursividad y factorización de gramáticas Clase 16: GLC s recursivas y no factorizadas Solicitado: Ejercicios 13: Recursividad y factorización de gramáticas M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom

Más detalles

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil Nombre de la asignatura: Lenguajes y Autómatas I Créditos: 2 3 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares de calidad

Más detalles

Compiladores: Parsing ascendente

Compiladores: Parsing ascendente Compiladores: Parsing ascendente Francisco J Ballesteros LSUB, URJC Page 1 of 64 Parsing ascendente Normalmente utilizaremos parsers descendentes para problemas pequeños cuando podemos escribir uno predictivo

Más detalles

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS. NOMBRE DEL CURSO: Lenguajes Formales y de Programación

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS. NOMBRE DEL CURSO: Lenguajes Formales y de Programación UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS NOMBRE DEL CURSO: Lenguajes Formales y de Programación CÓDIGO: 796 CRÉDITOS: 3 ESCUELA: Ciencias y Sistemas

Más detalles

Más sobre gramáticas independientes de contexto o incontextuales

Más sobre gramáticas independientes de contexto o incontextuales Más sobre gramáticas independientes de contexto o incontextuales Elvira Mayordomo, Gregorio de Miguel Universidad de Zaragoza 19 de noviembre de 2012 Contenido de este tema Árboles de derivación Gramáticas

Más detalles

Construcción de tablas de análisis sintáctico LL(1)

Construcción de tablas de análisis sintáctico LL(1) Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en

Más detalles

ANÁLISIS SINTÁCTICO I ANALIZADORES SINTÁCTICOS

ANÁLISIS SINTÁCTICO I ANALIZADORES SINTÁCTICOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 4

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 4 UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 4 Análisis Sintáctico Ascendente Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

Más detalles

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez 2 Contenido Análisis Sintáctico Ascendente Métodos Ascendentes Método Ascendente SLR Pasos para el método SLR Ejemplo SLR Resumen Ejercicios Compiladores (Análisis Sintáctico VI - Análisis Ascendente -

Más detalles

Procesadores de lenguaje

Procesadores de lenguaje Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte II) Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Análisis sintáctico ascendente

Más detalles

Análisis Sintáctico Descendente

Análisis Sintáctico Descendente Análisis Sintáctico Descendente p.1/65 Análisis Sintáctico Descendente Tema 4 Juan A. Botía Blaya juanbot@um.es http://ants.dif.um.es/staff/juanbot/traductores/traductores.html Departamento de Ingeniería

Más detalles

Universidad de Valladolid

Universidad de Valladolid Universidad de Valladolid Departamento de Informática Teoría de autómatas y lenguajes formales. 2 o I.T.Informática. Gestión. Examen de primera convocatoria. 18 de junio de 29 Apellidos, Nombre... Grupo:...

Más detalles

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo Tema 1: Introducción Preliminares Los Modelos Abstractos de Cómputo El principio de inducción Palabras y Lenguajes Palabras Operadores sobre palabras Predicados sobre palabras Lenguajes Operadores sobre

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS COMPILADORES MTRA.

Más detalles

ANÁLISIS SINTÁCTICO II SLR

ANÁLISIS SINTÁCTICO II SLR Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Gramáticas libres de contexto Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

ANÁLISIS SEMÁNTICO ETDS VS DDS

ANÁLISIS SEMÁNTICO ETDS VS DDS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: MATERIA O MÓDULO: COMPILADORES E INTERPRETES CÓDIGO: 10730 CARRERA: NIVEL: SISTEMAS QUINTO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: - SEMESTRE / AÑO ACADÉMICO: 2 / 2010

Más detalles

Parsing Top Down (Descendente)

Parsing Top Down (Descendente) Top Down (Descendente) José M. Castaño Teoría de Lenguajes 2012 Departamento de Computación FCEyN, UBA Outline 1 2 3 4 5 Introducción Reconocer/Generar un lenguaje independiente de contexto (CFL). Poder

Más detalles

Definición de la sintaxis (1) Definición de la sintaxis (2) Definición de la sintaxis (3)

Definición de la sintaxis (1) Definición de la sintaxis (2) Definición de la sintaxis (3) Definición de la sintaxis (1) Gramática independiente del contexto: tiene cuatro componentes: Un conjunto de componentes léxicos, denominados símbolos terminales. Un conjunto de no terminales. Un conjunto

Más detalles

Tema 5. Análisis semántico

Tema 5. Análisis semántico Departamento de Tecnologías de la Información Tema 5 Análisis semántico Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Características del análisis semántico 5.2 Gramáticas atribuidas

Más detalles

Tema: Análisis Sintáctico LR

Tema: Análisis Sintáctico LR Compiladores. Guía 4 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Sintáctico LR Contenido En esta guía se abordarán los conceptos pertenecientes al componente de

Más detalles

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los

Más detalles

Lenguajes y Compiladores Traducción Dirigida por la Sintaxis

Lenguajes y Compiladores Traducción Dirigida por la Sintaxis Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Traducción Dirigida por la Sintaxis 1 Definición Código Intermedio: estructura de código que posee una complejidad comprendida entre el código

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

Tres versiones de Pal. Sesión 19. Una máquina para aceptar Pal El lenguaje: Tabla de transición para Pal. Más de un siguiente estado.

Tres versiones de Pal. Sesión 19. Una máquina para aceptar Pal El lenguaje: Tabla de transición para Pal. Más de un siguiente estado. Tres versiones de Pal Sesión 19 Autómata de pila determinístico Pal marca = {xcx r x {0, 1} * } 0110c0110 Pal par = {xx r x {0, 1} * } 00111100 Pal = {x x = x r {0, 1} * } 00111100 001101100 Una máquina

Más detalles

Lenguajes y Compiladores Análisis Léxico

Lenguajes y Compiladores Análisis Léxico Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Léxico 1 Análisis léxico La tarea del análisis léxico es reconocer símbolos dentro de la cadena de caracteres que es el programa fuente.

Más detalles

Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza

Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza Teoría de autómatas. Un enfoque práctico Recortables Thelma Cantú María Gpe. Mendoza 1.1 Búsqueda de lenguajes Alumno: 1 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad?

Más detalles

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55

Contenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55 Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 2) 2007 1 Derivaciones El proceso de búsqueda de un árbol sintáctico para una cadena se llama análisis sintáctico. El lenguaje generado

Más detalles

Tema 3. Análisis sintáctico descendente

Tema 3. Análisis sintáctico descendente Departamento de Tecnologías de la Información Tema 3 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 3.1 Características del análisis sintáctico 3.2 Gramáticas libres de

Más detalles

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Horas teóricas: Horas practicas: Área de conocimiento a la que pertenece

Horas teóricas: Horas practicas: Área de conocimiento a la que pertenece PROGRAMA DE ESTUDIOS Área de formación a la que pertenece: TRADUCTORES DE ALTO NIVEL CARRERA LT Sustantiva Profesional Horas teóricas: Horas practicas: 2 2 Créditos: 6 Clave: F0353 Área de conocimiento

Más detalles

Teoría de Autómatas y Lenguajes Formales Práctica 4

Teoría de Autómatas y Lenguajes Formales Práctica 4 Departamento de Tecnologías de la Información Área de Ciencias de la Computación e Inteligencia Artificial Teoría de Autómatas y Lenguajes Formales Práctica 4 1.- OBJETIVOS El objetivo de esta práctica

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

Más detalles

Tema 5: Traducción dirigida por la sintaxis

Tema 5: Traducción dirigida por la sintaxis Tema 5: Traducción dirigida por la sintaxis Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis

Más detalles

GENERACIÓN DE RECONOCEDORES LALR EN DIVERSOS LENGUAJES DE PROGRAMACIÓN

GENERACIÓN DE RECONOCEDORES LALR EN DIVERSOS LENGUAJES DE PROGRAMACIÓN UNIVERSIDAD SIMÓN BOLÍVAR Ingeniería de la Computación GENERACIÓN DE RECONOCEDORES LALR EN DIVERSOS LENGUAJES DE PROGRAMACIÓN Por: CARLOS ALBERTO PÉREZ DÍAZ Tutor: PROF. ASCÁNDER SUÁREZ Proyecto de Grado

Más detalles

Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis

Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali

Más detalles

Tema: Autómata de Pila

Tema: Autómata de Pila Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Parsing LR: Ejemplo: E E + T E T T T * id T id S n : shift al estado

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 1) 1 Aspectos Formales Los compiladores traducen lenguajes que están formalmente definidos a través de reglas que permiten escribir

Más detalles

Tres versiones de Pal. Tema 19. Una máquina para aceptar Pal. Tabla de transición para Pal. Transición. Más de un siguiente estado

Tres versiones de Pal. Tema 19. Una máquina para aceptar Pal. Tabla de transición para Pal. Transición. Más de un siguiente estado Tres versiones de Pal Tema Autómata de pila determinístico Dr. Luis A. Pineda ISBN: --- Pal marca = {xcx r x {, } * } c Pal par = {xx r x {, } * } Pal = {x x = x r {, } * } Dr. Luis A. Pineda, IIMAS, UNAM,.

Más detalles

Programa Educativo: Licenciatura en Ciencias PROGRAMA DE ESTUDIO. Obligatoria Programa elaborado por:

Programa Educativo: Licenciatura en Ciencias PROGRAMA DE ESTUDIO. Obligatoria Programa elaborado por: Programa Educativo: Licenciatura en Ciencias PROGRAMA DE ESTUDIO Computacionales Área a la que pertenece : Sustantiva Profesional Horas teóricas: 2 Horas prácticas: 4 Total de Horas: 6 COMPILADORES Total

Más detalles

Procesadores de lenguaje Tema Análisis sintáctico (Parte I)

Procesadores de lenguaje Tema Análisis sintáctico (Parte I) Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte I) Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Introducción Conceptos básicos Tipos de analizadores Gramáticas independientes

Más detalles

Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte I)

Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte I) Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte I) Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Introducción Conceptos básicos Tipos de analizadores Gramáticas independientes

Más detalles

ANÁLISIS SINTÁCTICO II LR1

ANÁLISIS SINTÁCTICO II LR1 Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Temas. Objetivo. Analizador Sintáctico: funciones y tipos. Analizador Sintáctico Descendente. Analizador Sintáctico Ascendente

Temas. Objetivo. Analizador Sintáctico: funciones y tipos. Analizador Sintáctico Descendente. Analizador Sintáctico Ascendente 10:44 1 10:44 2 Temas Analizador Sintáctico: funciones y tipos Analizador Sintáctico Descendente Analizador Sintáctico Ascendente Generador de Analizadores Sintácticos - Yacc Objetivo Que el estudiante

Más detalles

Introducción a la lingüística computacional

Introducción a la lingüística computacional Introducción a la lingüística computacional César Antonio Aguilar Facultad de Lenguas y Letras 17/08/2017 Cesar.Aguilar72@gmail.com Síntesis de la clase pasada (1) En la clase anterior nos dedicamos a

Más detalles

Presentación de la Asignatura

Presentación de la Asignatura de la Asignatura Federico Peinado www.federicopeinado.es José Luis Sierra Coordinador de la asignatura y creador de los contenidos Ingeniería en Informática Facultad de Informática Universidad Complutense

Más detalles

Tema: Autómatas de Estado Finitos

Tema: Autómatas de Estado Finitos Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Autómatas de Estado Finitos Contenido En esta guía se aborda la aplicación de los autómatas en el campo de

Más detalles

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANALIZADOR LÉXICO (AL) El Analizador léxico (scanner), lee la secuencia de caracteres del programa fuente, caracter a caracter, y los agrupa para formar unidades

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

Teoría de Lenguajes. Parsers descendentes para gramáticas extendidas ELL(1) Miércoles 24 de Mayo de Facultad de Ciencias Exactas y Naturales

Teoría de Lenguajes. Parsers descendentes para gramáticas extendidas ELL(1) Miércoles 24 de Mayo de Facultad de Ciencias Exactas y Naturales Teoría de Lenguajes Parsers descendentes para gramáticas extendidas ELL(1) Facultad de Ciencias Exactas y Naturales Miércoles 24 de Mayo de 2017 1 / 15 Parsing Descendente Hasta ahora vimos dos métodos

Más detalles

Teoría de lenguajes Oscar BRUNO

Teoría de lenguajes Oscar BRUNO Octubre 2014 Guía de Estudio Objetivo: facilitar el abordaje de la temática, y guiar en el proceso de comprensión. Bibliografía: Apunte Volumen 2 de Jorge Daniel Muchnk Presentación: Qué pasa cuando nos

Más detalles

Cátedra Sintaxis y Semántica del Lenguaje

Cátedra Sintaxis y Semántica del Lenguaje Cátedra Sintaxis y Semántica del Lenguaje 1 º CICLO DE CAPACITACION DOCENTE 1 Simplificación de Gramáticas Tipo 2 Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) 2 1 Jerarquía de Chomsky Gramáticas

Más detalles

Desarrollo del Programa Docente de Procesadores del Lenguaje

Desarrollo del Programa Docente de Procesadores del Lenguaje Grado en Ingeniería Informática. Procesadores del Lenguaje. Curso 2010-2011 -1- Desarrollo del Programa Docente de Procesadores del Lenguaje Introducción Se presenta en este texto el programa desarrollado

Más detalles

Software para la Enseñanza de las Fases de Análisis Léxico y Análisis Sintáctico en Procesadores de Lenguajes

Software para la Enseñanza de las Fases de Análisis Léxico y Análisis Sintáctico en Procesadores de Lenguajes Software para la Enseñanza de las Fases de Análisis Léxico y Análisis Sintáctico en Procesadores de Lenguajes Manual de usuario Realizado por: José Francisco Jódar Reyes Dirigido por: Jorge Revelles Moreno

Más detalles

Procesamiento de Lenguajes (PL) Curso 2014/2015. Práctica 1: analizador descendente recursivo

Procesamiento de Lenguajes (PL) Curso 2014/2015. Práctica 1: analizador descendente recursivo Procesamiento de Lenguajes (PL) Curso 2014/2015 Práctica 1: analizador descendente recursivo Fecha y método de entrega La práctica debe realizarse de forma individual, como las demás prácticas de la asignatura,

Más detalles