Traducción Dirigida por Sintaxis

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

Download "Traducción Dirigida por Sintaxis"

Transcripción

1 Traducción Dirigida por Sintaxis CI4721 Lenguajes de Programación II Ernesto Hernández-Novich Universidad Simón Bolívar Copyright Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

2 Definición Dirigida por Sintaxis Una Definición Dirigida por Sintaxis (Syntax-Directed Definition o SDD por sus siglas en inglés) es la combinación de: Una G = (N, Σ, P, S) libre de contexto. Un conjunto de atributos asociados a los símbolos de la gramática. El símbolo X (N Σ) puede tener cero o más atributos asociados. De cualquier tipo conveniente: números, cadenas, valores de verdad, tablas, referencias, conjuntos,... Usaremos X.a para denotar que a es uno de los atributos de X. Un conjunto de reglas semánticas asociadas a las producciones. También se les llama acciones o reglas de etiquetado. Establecen dependencias entre atributos de los símbolos. Sin efectos de borde Gramática de Atributos. Con efectos de borde Esquemas de Traducción. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

3 Tipos de Atributos Cada A α tiene asociado un conjunto de reglas semánticas de la forma donde f es una función b f (c 1, c 2,..., c k ) b es sintetizado para A si todos los c i pertenecen a símbolos en α. b es heredado para B si B ocurre en α y los c i pertenecen a cualquier símbolo de la producción. Diremos que b depende de los c i. Los terminales sólo tienen atributos sintetizados. También se les llama intrínsecos. Su valor depende del lexema particular. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

4 Expresiones, de nuevo Para reconocimiento ascendente S E# E E 1 +T E T T T 1 F T F F (E) F n {S.val E.val} {E.val E 1.val + T.val} {E.val T.val} {T.val T 1.val F.val} {T.val F.val} {F.val E.val} {F.val n.val} Todos los símbolos tienen un atributo val numérico. El atributo val es sintetizado. El atributo n.val corresponde al valor numérico asociado al lexema. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

5 La gramática de atributos no es un programa es un sistema de ecuaciones simultáneas que requiere solución. Para un w L(G) cualquiera Se construye el árbol de derivación. Se decoran los nodos con las ecuaciones de cálculo de atributos. Se evalúan los atributos en algún orden, hasta evaluarlos todos. Para evaluar un atributo es necesario haber evaluado previamente todos aquellos de los cuales depende. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

6 Paso 1 La derivación para 6*5+12 S E # E + T T F T F n(12) F n(5) n(6) Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

7 Paso 2 Las ecuaciones S.val E.val E.val E 1.val + T.val # E 1.val T.val T.val T 1.val F.val + T.val F.val F.val n.val T 1.val F.val F.val n.val n.val 12 F.val n.val n.val 5 n.val 6 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

8 Paso 3 Resolver ecuaciones S.val E.val E.val E 1.val + T.val # E 1.val T.val T.val T 1.val F.val + T.val F.val F.val 12 T 1.val F.val F.val 6 n.val 6 F.val 5 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

9 Paso 3 Resolver ecuaciones S.val E.val E.val E 1.val + T.val # E 1.val T.val T.val T 1.val 5 + T.val 12 F.val 12 T 1.val 6 F.val 6 n.val 6 F.val 5 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

10 Paso 3 Resolver ecuaciones S.val E.val E.val E 1.val + 12 # E 1.val T.val T.val T.val 12 F.val 12 T 1.val 6 F.val 6 n.val 6 F.val 5 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

11 Paso 3 Resolver ecuaciones S.val E.val E.val E 1.val + 12 # E 1.val 30 T.val 30 + T.val 12 F.val 12 T 1.val 6 F.val 6 n.val 6 F.val 5 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

12 Paso 3 Resolver ecuaciones S.val E.val E.val # E 1.val 30 T.val 30 + T.val 12 F.val 12 T 1.val 6 F.val 6 n.val 6 F.val 5 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

13 Obtenemos la respuesta S.val 42 E.val 42 # E 1.val 30 T.val 30 + T.val 12 F.val 12 T 1.val 6 F.val 6 n.val 6 F.val 5 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

14 Expresiones, de nuevo Para reconocimiento descendente S E# E TE E +TE 1 T FT T FT 1 F (E) F n {S.val { E.val} } E.in T.val E.val E.val { } E 1.in E.in + T.val E.val E 1.val {E {.val E.in}} T.in F.val T.val T.val { } T 1.in T.in F.val T.val T 1.val {T.val T.in} {F.val E.val} {F.val n.val} El atributo val es sintetizado el atributo in es heredado. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

15 Paso 1 La derivación para 6*5+12 S E # T E F T + T E n(6) F T F T n(5) n(12) Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

16 Paso 2 Las ecuaciones S.val E.val E.in T.val E.val E.val # T.in F.val T.val T.val E 1.in E.in + T.val E.val E 1.val F.val n.val T 1.in T.in F.val T.val T 1.val + T.in F.val T.val T.val E 1.val E 1.in n.val 6 F.val n.val T 1.val T 1.in F.val n.val T.val T.in n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

17 Paso 3 Resolver ecuaciones S.val E.val E.in T.val E.val E.val # T.in F.val T.val T.val E 1.in E.in + T.val E.val E 1.val F.val 6 T 1.in T.in F.val T.val T 1.val + T.in F.val T.val T.val E 1.val E 1.in n.val 6 F.val 5 T 1.val T 1.in F.val 12 T.val T.in n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

18 Paso 3 Resolver ecuaciones S.val E.val E.in T.val E.val E.val # T.in 6 T.val T.val E 1.in E.in + T.val E.val E 1.val F.val 6 T 1.in T.in 5 T.val T 1.val + T.in 12 T.val T.val E 1.val E 1.in n.val 6 F.val 5 T 1.val T 1.in F.val 12 T.val T.in n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

19 Paso 3 Resolver ecuaciones S.val E.val E.in T.val E.val E.val # T.in 6 T.val T.val E 1.in E.in + T.val E.val E 1.val F.val 6 T 1.in 6 5 T.val T 1.val + T.in 12 T.val T.val E 1.val E 1.in n.val 6 F.val 5 T 1.val T 1.in F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

20 Paso 3 Resolver ecuaciones S.val E.val E.in T.val E.val E.val # T.in 6 T.val T.val E 1.in E.in + T.val E.val E 1.val F.val 6 T 1.in 30 T.val T 1.val + T.in 12 T.val 12 E 1.val E 1.in n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

21 Paso 3 Resolver ecuaciones S.val E.val E.in T.val E.val E.val # T.in 6 T.val T.val E 1.in E.in + 12 E.val E 1.val F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val E 1.in n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

22 Paso 3 Resolver ecuaciones S.val E.val E.in T.val E.val E.val # T.in 6 T.val 30 E 1.in E.in + 12 E.val E 1.val F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val E 1.in n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

23 Paso 3 Resolver ecuaciones S.val E.val E.in 30 E.val E.val # T.in 6 T.val 30 E 1.in E.in + 12 E.val E 1.val F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val E 1.in n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

24 Paso 3 Resolver ecuaciones S.val E.val E.in 30 E.val E.val # T.in 6 T.val 30 E 1.in E.val E 1.val F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val E 1.in n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

25 Paso 3 Resolver ecuaciones S.val E.val E.in 30 E.val E.val # T.in 6 T.val 30 E 1.in 42 E.val E 1.val F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val 42 n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

26 Paso 3 Resolver ecuaciones S.val E.val E.in 30 E.val E.val # T.in 6 T.val 30 E 1.in 42 E.val 42 F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val 42 n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

27 Paso 3 Resolver ecuaciones S.val E.val E.in 30 E.val 42 # T.in 6 T.val 30 E 1.in 42 E.val 42 F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val 42 n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

28 Obtenemos la respuesta S.val 42 E.in 30 E.val 42 # T.in 6 T.val 30 E 1.in 42 E.val 42 F.val 6 T 1.in 30 T.val 30 + T.in 12 T.val 12 E 1.val 42 n.val 6 F.val 5 T 1.val 30 F.val 12 T.val 12 n.val 5 n.val 12 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

29 Complejo, pero conveniente Incluir atributos heredados cambió el orden de recorrido del árbol. En este ejemplo, solamente bajaron. En general, podrían moverse hacia hijos o hacia hermanos. Los atributos heredados son convenientes porque permiten expresar las dependencias en el contexto. Siempre es posible convertir una definición dirigida por sintaxis para usar sólo atributos sintetizados Reescribiendo la gramática quizás deformándola. Cambiando el tipo de los atributos. Para algunas construcciones es más natural utilizar atributos heredados. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

30 Complejo, pero conveniente Incluir atributos heredados cambió el orden de recorrido del árbol. En este ejemplo, solamente bajaron. En general, podrían moverse hacia hijos o hacia hermanos. Los atributos heredados son convenientes porque permiten expresar las dependencias en el contexto. Siempre es posible convertir una definición dirigida por sintaxis para usar sólo atributos sintetizados Reescribiendo la gramática quizás deformándola. Cambiando el tipo de los atributos. Para algunas construcciones es más natural utilizar atributos heredados. Cómo encontramos el orden de evaluación? Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

31 Orden de Evaluación Relación de Dependencia Un Grafo de Dependencia permite representar el flujo de información entre los atributos de un árbol particular. Por cada nodo del árbol X que tenga un atributo X.b, definir un nodo en el grafo para X.b Teniendo X.b f (c 1, c 2,..., c k ) entonces se establece una arista en el grafo con origen en el nodo que define a c i y destino en el nodo X.b. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

32 Orden de Evaluación Estableciendo el Orden de Evaluación El grafo caracteriza los órdenes de evaluación posibles. Si existe una secuencia de nodos N 1, N 2,..., N k tal que si hay una arista entre N i y N j entonces i < j, esa secuencia es un orden de evaluación posible. Corresponde al Orden Topológico del grafo. Si hay un ciclo en el grafo, es imposible obtener el orden. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

33 Orden de Evaluación Estableciendo el Orden de Evaluación El grafo caracteriza los órdenes de evaluación posibles. Si existe una secuencia de nodos N 1, N 2,..., N k tal que si hay una arista entre N i y N j entonces i < j, esa secuencia es un orden de evaluación posible. Corresponde al Orden Topológico del grafo. Si hay un ciclo en el grafo, es imposible obtener el orden. Podemos usar DFS sobre un árbol particular pero es muy costoso tratar de determinarlo para una SDD. En la práctica, queremos SDD en los cuales se garantice la existencia de un orden. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

34 Orden de Evaluación Definiciones S-Atribuidas De abajo hacia arriba Una SDD que sólo usa atributos sintetizados se dice S-atribuida. Evaluar el cálculo de atributos desde las hojas hacia la raíz. Recorrido postorden. Los valores se propagan de abajo hacia arriba. Coinciden con la operación de un reconocedor ascendente. Cada reducción corresponde con la evaluación de reglas. El árbol se construye de las hojas hacia la raíz. Las definiciones S-atribuidas son las preferidas en la práctica Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

35 Orden de Evaluación Definiciones L-Atribuidas De izquierda a derecha, y arriba hacia abajo Una SDD es L-Atribuida si todo atributo: Es sintetizado. Si se tiene A X 1 X 2... X n y X i.a es un atributo heredado, el cálculo solamente puede usar: Atributos heredados asociados con A. Atributos heredados o sintetizados asociados con cualesquiera X 1, X 2,... X i 1. Atributos heredados de X i siempre que no establezcan ciclos. Coinciden con la operación de un reconocedor descendente. Expansiones usan resultados calculados a su izquierda en la producción. Cuando se alcanza el final de la producción, se calculan resultados para el no terminal expandido. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

36 Esquemas de Traducción Controlar los Efectos de Borde Los efectos de borde son necesarios en la práctica Para generar resultados visibles S E# {printe.val} Para recopilar información tabla de símbolos, tipos,... Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

37 Esquemas de Traducción Controlar los Efectos de Borde Los efectos de borde son necesarios en la práctica Para generar resultados visibles S E# {printe.val} Para recopilar información tabla de símbolos, tipos,... Permitiremos efectos de borde controlados Efectos incidentales que no condicionan el orden de evaluación si no estuvieran los efectos, la evaluación seguiría siendo igual. Organizar el orden de evaluación de manera que cualquier otro orden de evaluación produzca el mismo resultado El orden preferido agrega aristas implícitas. El orden preferido agrega producciones inocuas. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

38 Esquemas de Traducción Controlar los Efectos de Borde Los efectos de borde son necesarios en la práctica Para generar resultados visibles S E# {printe.val} Para recopilar información tabla de símbolos, tipos,... Permitiremos efectos de borde controlados Efectos incidentales que no condicionan el orden de evaluación si no estuvieran los efectos, la evaluación seguiría siendo igual. Organizar el orden de evaluación de manera que cualquier otro orden de evaluación produzca el mismo resultado El orden preferido agrega aristas implícitas. El orden preferido agrega producciones inocuas. Acciones con efectos de borde consideradas como generadoras de un atributo sintetizado que no nos importa propagar. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

39 Esquemas de Traducción Mutar o no mutar, esa es la cuestión Gramática de Atributos como modelo matemático. Construir el sistema de ecuaciones. Encontrar y usar un orden de evaluación válido. Esquemas de Traducción como implantación concreta. Imponer un orden de evaluación a priori izquierda a derecha. Imponer un orden de dependencia a priori S-Atribuido o L-Atribuido. Permitir operaciones arbitrarias en las acciones semánticas, explotando sus efectos de borde. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

40 Esquemas de Traducción Gramática de Atributos Definición L-Atribuida D T L T int T float L L 1, id L id {L.in T.type} {T.type integer } {T.type float } {L 1.in L.in; addtype(id.lexema, L.in} {addtype(id.lexema, L.in)} Declaraciones al estilo C. Se sintetiza type en T se hereda hacia L. Cada identificador de la lista se instala con su tipo. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

41 Esquemas de Traducción Esquema de Traducción Definición L-Atribuida D T {L.in T.type} L T int {T.type integer } T float {T.type float } L {L 1.in L.in} L 1, id {addtype(id.lexema, L.in} L id {addtype(id.lexema, L.in)} Acciones en posiciones convenientes según sus efectos de borde. Posiciones seleccionadas pensando en el reconocedor descendente. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

42 Esquemas de Traducción Gramática de Atributos es el Esquema Definición S-Atribuida D T L T int T float L L 1, id L id { s L.set hacer addtype(s, T.type)} {T.type integer } {T.type float } {L.set L 1.set id.lexema} {L.set {id.lexema}} Declaraciones al estilo C. Se sintetiza type en T se sintetiza el conjunto de símbolos set en L. Una vez construido el conjunto, se instalan los identificadores. Posiciones seleccionadas pensando en el reconocedor descendente. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

43 Esquemas de Traducción Un ejemplo de reescritura gramatical La SDD obvia resulta inconveniente D L : T T int T float L L 1, id L id {L.in T.type} {T.type integer } {T.type float } {L 1.in L.in; addtype(id.lexema, L.in} {addtype(id.lexema, L.in)} Declaraciones al estilo Pascal. Se sintetiza type en T se hereda hacia L en in. No es S-Atribuida ni L-Atribuida Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

44 Esquemas de Traducción Un ejemplo de reescritura gramatical La SDD transformada también D id L T int T float L, id L 1 L :T {addtype(id.lexema, L.type)} {T.type integer } {T.type float } {L.type L 1.type; addtype(id.lexema, L 1.type)} {L.type T.type} Ahora es S-Atribuida y horrible. Recursiva por derecha inconveniente para LR. Es preferible complicar los atributos y su manejo en lugar de complicar la gramática. Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

45 Referencias Bibliográficas Bibliografía [Aho] Secciones 5.1 y 5.2 Ejercicios a 5.1.3, a [Scott] Secciones 4.1 a 4.3 Ejercicios 4.1 a 4.5 Hernández-Novich (USB) Traducción Dirigida por Sintaxis / 41

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

Compiladores: Sesión 15. Análisis semántico, traducción dirigida por sintaxis Compiladores: Sesión 15. 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

Análisis Semántico y Traducción Dirigida por la Sintaxis. Programación II Margarita Álvarez

Análisis Semántico y Traducción Dirigida por la Sintaxis. Programación II Margarita Álvarez Análisis Semántico y Traducción Dirigida por la Sintaxis Programación II Margarita Álvarez Análisis Semántico Comprobación estática Comprobación de tipos: la aplicación de los operadores y operandos deben

Más detalles

Introducción. Análisis Semántico. José M. Castaño. Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA

Introducción. Análisis Semántico. José M. Castaño. Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA Análisis Semántico José M. Castaño Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA Compiladores Análisis Léxico Análisis Sintáctico Análisis Semántico Generación Código Intermedio Optimización

Más detalles

Gramáticas de Atributos

Gramáticas de Atributos Teoría de Lenguajes Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Etapas de un Compilador Analizador Léxico Analizador Sintáctico (Parser)... Lexer: Genera secuencia de tokens Reporta

Más detalles

ANÁLISIS SEMÁNTICO GRAMÁTICAS DE ATRIBUTOS Y TIPOS

ANÁLISIS SEMÁNTICO GRAMÁTICAS DE ATRIBUTOS Y TIPOS 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

Traducción dirigida por la sintaxis

Traducción dirigida por la sintaxis Traducción dirigida por la sintaxis 1 INDICE 1. Gramáticas con atributos 2. Evaluación de los atributos 2.1 Evaluación mediante grafos 2.2 Evaluación durante el parsing 2.2.1 Esquemas de traducción 2.2.2

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

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

Verificación de Tipos

Verificación de Tipos Verificación de Tipos CI4721 Lenguajes de Programación II Ernesto Hernández-Novich Universidad Simón Bolívar Copyright 2012-2016 Hernández-Novich (USB) Verificación de Tipos 2016 1 / 25 Verificación

Más detalles

Procesadores de lenguaje Tema 4 Análisis semántico

Procesadores de lenguaje Tema 4 Análisis semántico Procesadores de lenguaje Tema 4 Análisis semántico Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Introducción Gramáticas de atributos. Gramáticas S-atribuidas. Gramáticas L-atribuidas.

Más detalles

Procesadores de lenguaje Tema 4 Análisis semántico

Procesadores de lenguaje Tema 4 Análisis semántico Procesadores de lenguaje Tema 4 Análisis semántico Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Introducción Gramáticas de atributos. Gramáticas S-atribuidas. Gramáticas L-atribuidas.

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

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 NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 5

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 5 UNIVERIDAD NACIONA DE EDUCACIÓN A DIANCIA Escuela écnica uperior de Ingeniería Informática Procesadores de enguajes ema 5 raducción diriga por la sintaxis Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

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

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

Tema 1.2. Un lenguaje mínimo y su procesador: Gramáticas de atributos y tabla de símbolos

Tema 1.2. Un lenguaje mínimo y su procesador: Gramáticas de atributos y tabla de símbolos Tema 1.2. Un lenguaje mínimo y su procesador: Gramáticas de atributos y tabla de símbolos Profesor Federico Peinado Elaboración del material José Luis Sierra Federico Peinado Ingeniería en Informática

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

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

16 Análisis sintáctico I

16 Análisis sintáctico I 2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura

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

COMPILADORES. Tema 4. Análisis semántico

COMPILADORES. Tema 4. Análisis semántico COMPILADORES Tema 4. Análisis semántico Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Funcionalidad del

Más detalles

Capítulo 5: Traducción Dirigida por Sintaxis

Capítulo 5: Traducción Dirigida por Sintaxis Capítulo 5: Traducción Dirigida por Sintaxis Javier Carvajal Universidad de Costa Rica, Escuela de Ciencias de la Computación e Informática, San José, Costa Rica, francisco.carvajal@ecci.ucr.ac.cr and

Más detalles

Análisis semántico I Traducción dirigida por la sintaxis

Análisis semántico I Traducción dirigida por la sintaxis Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis semántico I Traducción dirigida por la sintaxis Javier Vélez Reyes

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

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 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

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas

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

Matemáticas Básicas para Computación

Matemáticas Básicas para Computación Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 11 Nombre: Árboles Objetivo: Al término de la sesión el participante conocerá los tipos de grafos específicamente

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

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

Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales

Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales Profesor Federico Peinado Elaboración del material José Luis Sia Federico Peinado Facultad de Informática Universidad Complutense

Más detalles

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores

Más detalles

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

Unidad I: Análisis semántico

Unidad I: Análisis semántico Unidad I: Análisis semántico 1.1 Arboles de expresiones Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol.

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

Qué es el análisis semántico?

Qué es el análisis semántico? Análisis semántico Estrella Pulido Cañabate Qué es el análisis semántico? Fase del compilador en la que se comprueba la corrección semántica del programa Conjunto de subrutinas independientes que pueden

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas Libres del Contexto y Lenguajes Libres del Contexto Gramáticas Formales Una gramática formal es una cuadrupla G = (N, T, P, S) N = conjunto finito de símbolos no

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

Lenguajes Libres del Contexto

Lenguajes Libres del Contexto Capítulo 3 Lenguajes Libres del Contexto [LP81, cap 3] n este capítulo estudiaremos una forma de representación de lenguajes más potentes que los regulares. Los lenguajes libres del contexto (LC) son importantes

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 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

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013 Compiladores Análisis Sintáctico Ascendente Adrian Ulises Mercado Martínez Facultad de Ingeniería, UNAM 5 de septiembre de 2013 Adrian Ulises Mercado Martínez (FI,UNAM) Compiladores 5/07/2013 1 / 34 Índice

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

GRAMATICAS LIBRES DEL CONTEXTO

GRAMATICAS LIBRES DEL CONTEXTO GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.

Más detalles

Conceptos básicos sobre gramáticas

Conceptos básicos sobre gramáticas Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA)

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA) 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

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices. ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo

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 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

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 LENGUAJES I PRÁCTICA DE LABORATORIO 4

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4 PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4 En esta práctica trabajaremos con ANTLR a nivel semántico utilizando gramáticas con atributos. ANTLR permite implementar con facilidad los dos modelos

Más detalles

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que: Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente

Más detalles

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS 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

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

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos. ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones

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

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Introducción Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. A B C D E F G H I J K Clasificación con respecto a su relación: Nodo hijo: cualquiera de los nodos

Más detalles

El proceso del Análisis Léxico

El proceso del Análisis Léxico El proceso del Análisis Léxico El proceso de análisis léxico se refiere al trabajo que realiza el scanner con relación al proceso de compilación. El scanner representa una interfaz entre el programa fuente

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

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

3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS.

3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS. 3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS 3.1.- CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS. 3.2.- BOSQUES Y COMPONENTES CONEXOS. NEXON LENIN CEFERINO POMPOSO Los árboles son particularmente

Más detalles

Capítulo 8. Árboles. Continuar

Capítulo 8. Árboles. Continuar Capítulo 8. Árboles Continuar Introducción Uno de los problemas principales para el tratamiento de los grafos es que no guardan una estructura establecida y que no respetan reglas, ya que la relación entre

Más detalles

Lenguajes de Programación I

Lenguajes de Programación I Lenguajes de Programación I Verificación de Tipos Ernesto Hernández-Novich Copyright c 2006-2010 Verificación de Tipos Proceso que permite asegurar que un programa obedece las reglas de compatibilidad

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

Proyecto Intermedio Algoritmo de Earley

Proyecto Intermedio Algoritmo de Earley Fundamentos de Computación Proyecto Intermedio: Algoritmo de Earley Profesor: Dr. José Torres Jiménez Alumnos: Edna Gutiérrez Gasca Aureny Magaly Uc Miam Jorge Rodríguez Núñez Proyecto Intermedio Algoritmo

Más detalles

Curso Básico de Computación

Curso Básico de Computación CINVESTAV IPN México City 2010 1 Preliminares 1.1 Cadenas, alfabetos y lenguajes Un símbolo es un ente abstracto que no se puede definir formalmente. Letras o dígitos son ejemplos

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

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis léxico Formalización y desarrollo Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 4 Gramáticas libres de contexto Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 4 Gramáticas libres

Más detalles

TEMA 3: ANÁLISIS SEMÁNTICO

TEMA 3: ANÁLISIS SEMÁNTICO 1 TEMA 3: ANÁLISIS SEMÁNTICO OBJETIVO Dar respuesta a las siguientes preguntas: Qué es el análisis semántico de un lenguaje? Cómo se diseña y construye un analizador semántico? EL PROBLEMA DEL CÁLCULO

Más detalles

Lenguajes de Programación I

Lenguajes de Programación I Lenguajes de Programación I Tipos de Datos Ernesto Hernández-Novich Copyright c 2006-2010 Tipos de Datos El computador sólo manipula secuencias de bits. Los lenguajes de programación ofrecen

Más detalles

Curso Básico de Computación Preliminares

Curso Básico de Computación Preliminares Curso Básico de Computación Preliminares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Preliminares 2010 1 / 11 1 Preliminares

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede

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

Análisis semántico. Análisis semántico. Índice (I)

Análisis semántico. Análisis semántico. Índice (I) Análisis semántico Índice (I) Marina de la Cruz Alfonso Ortega Objetivo del análisis semántico Decisiones para la construcción de un analizador semántico Análisis semántico con Bison Nivel de indirección

Más detalles

Lógica y Programación

Lógica y Programación Lógica y Programación Diagramas de Decisión Binarios J.-A. Alonso, F.-J. Martín-Mateos, J.-L. Ruiz-Reina Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Programación

Más detalles

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño variable y uso de ciclos en otros contextos Algoritmos y Programación Orientada a Objetos I y uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Agenda Motivación Uso de ciclos en otros contextos Motivación En muchos

Más detalles

DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas)

DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: Clave: FACULTAD DE INGENIERÍA DES: Ingeniería Programa(s) Educativo(s): Ingeniería en Ciencias de la Computación Tipo de materia: Obligatoria Clave de la materia:

Más detalles

Sintaxis y Semántica. Un repaso

Sintaxis y Semántica. Un repaso Sintaxis y Semántica Un repaso Definición: Alfabeto Un conjunto finito de símbolos: {a,b,c,d} {0,1,2,34,5,6,7,8,9} {identificador, número, +,-,*, /} {while, if, {, }, >, >=,

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

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores LALR Cris%na Tirnauca Domingo Gómez Pérez DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaIve Commons BY NC SA 3.0 El Analizador

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

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO COMPILADORES 1764 7 o 09 Asignatura Clave Semestre Créditos Ingeniería Eléctrica Ingeniería en Computación Ingeniería

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

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

Más detalles

CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO!

CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO! CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO! AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA PROGRAMACIÓN ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen A la hora de realizar un programa en cualquier

Más detalles

Funciones Segunda parte

Funciones Segunda parte Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...

Más detalles

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

Compiladores e Intérpretes Análisis Semántico IV 1 Compiladores e Intérpretes Análisis Semántico IV Sebastian Gottifredi 2018 Repaso 2 Repaso El análisis semántico es el encargado validar y entender el significado del programa Para esto el analizador

Más detalles

Matemáticas Discretas Tc1003 Teoría de Grafos

Matemáticas Discretas Tc1003 Teoría de Grafos Definición. Sea A un grafo. A recibe el nombre de árbol sí y sólo si: A es conexo. A no contiene circuitos. Ejemplos: Definición. Sea A un árbol. Un vértice de grado 1 se llama una hoja. Un vértice de

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

Lenguajes de Programación I

Lenguajes de Programación I Lenguajes de Programación I Alcance Ernesto Hernández-Novich Copyright c 2007-2010 Qué quiere decir Alcance? El alcance de una asociación es la región de un programa en la cual dicha asociación

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN G r a m á t i c a s UNIVERSIDAD DE SONORA DEPARTAMENTO DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN Dra. María de Guadalupe Cota Ortiz Lenguaje

Más detalles

TRADUCTORES E INTERPRETADORES

TRADUCTORES E INTERPRETADORES TRADUCTORES E INTERPRETADORES Clase 11: Analizadores Sintácticos Descendentes Agenda Analizadores Recursivos Descendentes. Análisis Predictivo. Analizadores LL(1). Analizadores LL(k) y LL(*). Analizadores

Más detalles