Tema 5: Traducción dirigida por la sintaxis

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

Download "Tema 5: Traducción dirigida por la sintaxis"

Transcripción

1 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 1 / 35 Ejemplo 1 de traducción E E + T E T T T * F T F F id F num F pari E pard a+4*b suma(a,mul(4,b)) E a T a F a id a E suma(a,mul(4,b)) + T 4 F 4 num 4 T mul(4,b) * F b id b Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 2 / 35

2 Ejemplo 1 de traducción (2) GRAMÁTICA DE ATRIBUTOS REGLA ACCIÓN SEMÁNTICA E E + T E.trad := suma( E 1.trad, T.trad ) E T E.trad := T.trad T T * F T.trad := mul( T 1.trad, F.trad ) T F T.trad := F.trad F id F.trad := id.lexema F num F.trad := num.lexema F pari E pard F.trad := E.trad IMPORTANTE: no es posible acceder a atributos de símbolos que no estén en la regla Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 3 / 35 Ejemplo 2 de traducción D T id L T float T int L coma id L L ɛ int a,b a,b:integer T integer int D a,b:integer id a L,b coma id b L ɛ Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 4 / 35

3 Ejemplo 2 de traducción (2) REGLA GRAMÁTICA DE ATRIBUTOS ACCIÓN SEMÁNTICA D T id L D.trad := id.lexema L.trad : T.trad T float T.trad := real T int T.trad := integer L coma id L L.trad :=, id.lexema L 1.trad L ɛ L.trad := Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 5 / 35 Implementación del traductor Existen dos posibilidades: 1 El analizador sintáctico construye el árbol (decorado con los atributos de los terminales), y en una segunda pasada se recorre el árbol calculando los atributos que falten hasta completar la traducción (traducción de dos o más pasadas) 2 El analizador sintáctico no construye explícitamente el árbol (aunque hace un recorrido virtual por el árbol), y va calculando todos los atributos a la vez que va recorriendo el árbol (traducción de una sola pasada) Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 6 / 35

4 Recorrido virtual del árbol realizado por el A.S. E 13 E E + T E T T T * F T F F id F num F pari E pard E 4 T 3 F 2 id T 12 T 8 F 7 num 6 * 9 F 11 id 10 Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 7 / 35 Ejemplo 3 de traducción D T id L T float T int L coma id L L ɛ T integer D a:integer;b:integer id a L integer ;b:integer int int a,b a:integer;b:integer coma id b L integer ɛ Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 8 / 35

5 Ejemplo 3 de traducción (2) REGLA GRAMÁTICA DE ATRIBUTOS ACCIÓN SEMÁNTICA D T id L L.th := T.trad; D.trad := id.lexema : T.trad L.trad T float T.trad := real T int T.trad := integer L coma id L L 1.th := L.th; L.trad := ; id.lexema : L.th L 1.trad L ɛ L.trad := Algunos no terminales tienen más de un atributo Algunos atributos se calculan a partir de atributos de hermanos o padres en el árbol. Estos atributos se llaman atributos heredados (los demás atributos se llaman sintetizados). Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 9 / 35 Grafo de dependencias D a:integer;b:integer T integer int id a L integer ;b:integer coma id b L integer ɛ Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 10 / 35

6 Ejemplo 4 de traducción D L T T real T integer L L coma id L id L int int a;int b D int a;int b T int integer a,b integer int a;int b L int int a id a coma id b IMPORTANTE: hay herencia de derecha a izquierda en el árbol Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 11 / 35 Ejemplo 4 de traducción (2) REGLA GRAMÁTICA DE ATRIBUTOS ACCIÓN SEMÁNTICA D L T L.th := T.trad; D.trad := L.trad T real T.trad := double T integer T.trad := int L L coma id L 1.th := L.th; L.trad := L 1.trad ; L.th id.lexema L id L.trad := L.th id.lexema La herencia de derecha (T ) a izquierda (L) implica que cuando se está analizando/traduciendo L todavía no se conoce la traducción de T Por tanto, no es posible traducir a la vez que se analiza, no es posible la traducción en una pasada. El analizador tiene que construir explícitamente el árbol, y cuando termine, en una segunda pasada, podrá generar la traducción. Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 12 / 35

7 Gramática de atributos por la izquierda DEFINICIÓN: una gramática de atributos se dice que es una gramática de atributos por la izquierda (l-attributed grammar) si solamente hay herencia de padres a hijos o bien de izquierda a derecha en el árbol, pero no de derecha a izquierda Las gramáticas de atributos por la izquierda (GAI) son aquellas que permiten evaluar los atributos a la vez que se hace el análisis sintáctico (en una sola pasada). Cuando la gramática de atributos no cumple las condiciones de las GAI (porque tiene herencia de derecha a izquierda en el árbol), el analizador sintáctico debe construir un árbol decorado con atributos y, en una segunda pasada se evaluarán los atributos que no se hayan podido evaluar en la primera pasada. Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 13 / 35 Tabla de símbolos La tabla de símbolos se utiliza para almacenar los símbolos (identificadores) declarados en el programa fuente, junto con su tipo y posiblemente alguna información más (dirección de memoria, etc). Ejemplo: int a,b; float c,d; NOMBRE TIPO DIRECCIÓN a ENTERO 0 b ENTERO 2 c REAL 4 d REAL 8 Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 14 / 35

8 Tabla de símbolos (2) Cuando el compilador procesa las declaraciones, tiene que añadir las variables declaradas a la tabla de símbolos (comprobando que no se declara dos veces el mismo identificador en el mismo ámbito). En el código (instrucciones, expresiones, etc), cuando aparece un identificador el compilador debe buscarlo en la tabla de símbolos, y obtener sus datos: tipo, dirección, etc. Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 15 / 35 Ejemplo 5 de traducción En este ejemplo, el traductor no genera traducción, pero debe almacenar los símbolos en la tabla de símbolos: int a,b,c NOMBRE TIPO DIRECCIÓN a ENTERO 0 b ENTERO 2 c ENTERO 4 REGLA DEFINICIÓN DIRIGIDA POR LA SINTAXIS ACCIÓN SEMÁNTICA D T id L L.th := T.tipo; anadirts(id.lexema, T.tipo) T float T.tipo := REAL T int T.tipo := ENTERO L coma id L L 1.th := L.th; anadirts(id.lexema, L.th) L ɛ Cuando una gramática de atributos tiene acciones que no calculan atributos, se denomina Definición dirigida por la sintaxis (DDS) Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 16 / 35

9 Definiciones dirigidas por la sintaxis (DDS) Las DDS son como las gramáticas de atributos, pero pueden incluir acciones que no calculen atributos, con efectos secundarios (como guardar símbolos en la tabla de símbolos), por lo que todas las gramáticas de atributos son también DDS De igual manera que existen las gramáticas de atributos por la izquierda (GAI), existen también las definiciones dirigidas por la sintaxis con atributos por la izquierda (DDSI), que son las que permiten la traducción en una sola pasada. IMPORTANTE: las DDS solamente especifican las acciones que es necesario realizar en cada regla, pero no el orden en el que hay que ejecutarlas. Las DDS son una herramienta para el diseño de alto nivel del traductor, sin entrar en los detalles de implementación. El orden de ejecución de las acciones es muy importante Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 17 / 35 Restricciones formales de las acciones semánticas Dada una regla A α, y una acción semántica b := f (c 1, c 2,..., c n ), en una gramática de atributos o en una DDS (o en un ETDS), se tiene que cumplir una de las dos siguientes restricciones: 1 b es un atributo sintetizado de A, y c 1, c 2,..., c n son constantes o atributos de los símbolos de la producción (de A o de α) 2 b es un atributo heredado de algún no terminal de α, y c 1, c 2,..., c n son constantes o atributos de los símbolos de la producción (de A o de α) Si b es un atributo heredado de un no terminal α i, y se cumple que c 1, c 2,..., c n son atributos de A o de otros símbolos α j, con j < i, entonces la gramática de atributos o DDS cumple la condición para ser una GAI o DDSI (si se cumple también en las demás acciones semánticas, por supuesto). Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 18 / 35

10 Ejemplo 5 de traducción (2) int a,b,c NOMBRE TIPO DIRECCIÓN a ENTERO 0 b ENTERO 2 c ENTERO 4 ESQUEMA DE TRADUCCIÓN DIRIGIDO POR LA SINTAXIS (ETDS) D T id {anadirts(id.lexema, T.tipo); L.th := T.tipo}L T float {T.tipo := REAL} T int {T.tipo := ENTERO} L coma id {anadirts(id.lexema, L.th); L 1.th := L.th}L L ɛ Un esquema de traducción dirigido por la sintaxis (ETDS) es como una DDSI en la que las acciones semánticas se insertan en la parte derecha de la regla, en el momento exacto del análisis en el que se tienen que ejecutar. Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 19 / 35 Esquema de traducción dirigido por la sintaxis (ETDS) Los ETDS son la herramienta para diseñar traductores de una sola pasada Las acciones semánticas se situan (encerradas entre llaves) en el punto de la parte derecha de la regla en que se deben ejecutar. Se tienen que cumplir las siguientes restricciones: 1 Un atributo heredado de un símbolo α i de la parte derecha de la regla se debe calcular en una acción semántica situada antes de α i 2 Una acción semántica no puede referirse a un atributo sintetizado de un símbolo situado a la derecha de la acción en la regla 3 Un atributo sintetizado de la parte izquierda de la regla A solo se puede calcular después de haber calculado todos los atributos que se usan para calcularlo (preferentemente al final de la regla). Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 20 / 35

11 Ejemplo 3 de traducción, con ETDS REGLA GRAMÁTICA DE ATRIBUTOS ACCIÓN SEMÁNTICA D T id L L.th := T.trad; D.trad := id.lexema : T.trad L.trad T float T.trad := real T int T.trad := integer L coma id L L 1.th := L.th; L.trad := ; id.lexema : L.th L 1.trad L ɛ L.trad := ESQUEMA DE TRADUCCIÓN DIRIGIDO POR LA SINTAXIS D T id {L.th := T.trad}L {D.trad := id.lexema : T.trad L.trad} T float {T.trad := real } T int {T.trad := integer } L coma id {L 1.th := L.th}L {L.trad := ; id.lexema : L.th L 1.trad} L ɛ {L.trad := } Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 21 / 35 Implementación de ETDS 1 Con un analizador ascendente: hay que utilizar marcadores para implementar las acciones en mitad de la parte derecha (ver libro de A. Garrido et al., pp. 130 y siguientes), incluso con yacc. 2 Con un analizador descendente recursivo: Los atributos sintetizados deben ser devueltos por las funciones de los no terminales (cuando hay más de un atributo es mejor devolver un struct o un objeto con todos los atributos de los no terminales) Los atributos heredados son parámetros que se les pasan a las funciones de los no terminales IMPORTANTE: es necesario almacenar el lexema de los tokens antes de llamar a la función empareja. La traducción de la cadena de entrada es devuelta por la función que analiza el símbolo inicial de la gramática. Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 22 / 35

12 Implementación de ETDS (2) Ejemplo 3 de traducción, implementado con un ASDR: String D() // D -> T id L { String ttrad,idlexema,ltrad; } ttrad = T(); idlexema = lexema; empareja(id); ltrad = L(ttrad); // L.th := T.trad return idlexema + ":" + ttrad + ltrad; String L(String th) // L -> coma id L epsilon { if (token == COMA) { String idlexema,ltrad; } emparejar(coma); idlexema = lexema; emparejar(id); ltrad = L(th); // L1.th := L.th return ";" + idlexema + ":" + th + ltrad; } else if (token == FINFICHERO) return ""; // L -> epsilon { L.trad := "" } else errorsintactico(...); Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 23 / 35 Traducción de expresiones aritméticas con ETDS a+b-c+d a+b-c sum(res(sum(a,b),c),d) res(sum(a,b),c) La asociatividad por la izquierda de los operadores + y - implica utilizar una gramática con recursividad por la izquierda: E E op T E T T id T ( E ) Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 24 / 35

13 Traducción de expresiones aritméticas con ETDS (2) E res(sum(a,b),c) E E op T E T T id T ( E ) E a E sum(a,b) op + T b op - T c id c a+b-c res(sum(a,b),c) T a id a id b Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 25 / 35 Traducción de expresiones aritméticas con ETDS (3) El ETDS quedaría de esta manera: E E op T {E.trad := op.trad ( E 1.trad, T.trad ) } E T {E.trad := T.trad} T id {T.trad := id.lexema} T ( E ) {T.trad := E.trad} Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 26 / 35

14 Traducción de expresiones aritméticas con ETDS (4) Si queremos realizar la misma traducción con una gramática sin recursividad por la izquierda (porque por ejemplo queremos usar un ASDR), la gramática sería: E T E E op T E E ɛ T id T ( E ) Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 27 / 35 Traducción de expresiones aritméticas con ETDS (5) E res(sum(a,b),c) T a E a res(sum(a,b),c) id a E T E E op T E E ɛ T id T ( E ) op + T b id b E sum(a,b) res(sum(a,b),c) a+b-c res(sum(a,b),c) op - T c E res(sum(a,b),c) res(sum(a,b),c) id c ɛ Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 28 / 35

15 Traducción de expresiones aritméticas con ETDS (6) El ETDS quedaría: E T {E.th := T.trad}E {E.trad := E.trad} E op T {E 1.th := op.trad ( E.th, T.trad ) } E {E.trad := E 1.trad} E ɛ {E.trad := E.th} T id {T.trad := id.lexema} T ( E ) {T.trad := E.trad} Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 29 / 35 Ejercicio 1 (examen febrero 1998) (1 de 2) Diseña un ETDS para traducir declaraciones de funciones en C a Pascal. El proceso de traducción se puede especificar con los siguientes ejemplos de traducción: int f(void), g(float a,int *b); function f:integer; function g(a:real;var b:integer):integer; void h(int a,float *c), procedure h(a:integer;var c:real); j(void); procedure j; float f(int a); int f(int a,int b,int c), g(int d), h(int e); function f(a:integer):real; function f(a:integer;b:integer;c:integer):integer; function g(d:integer):integer; function h(e:integer):integer; Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 30 / 35

16 Ejercicio 1 (examen febrero 1998) (2 de 2) Debes diseñar el ETDS utilizando como base la siguiente gramática, que genera el lenguaje fuente: S TipoFun L puntoycoma TipoFun void TipoFun int TipoFun float L F Lp Lp coma F Lp Lp ɛ F ident lpar A rpar A void A Argu M M coma Argu M M ɛ Argu Tipo ident Argu Tipo asterisco ident Tipo int Tipo float Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 31 / 35 Ejercicio 2 (examen marzo 1997) (1 de 2) Diseña un ETDS para traducir declaraciones de funciones y procedimientos anidados en Pascal a C. El proceso de traducción se puede especificar con los siguientes ejemplos de traducción: function f:integer; codigo endfunc; procedure p1; procedure p2; codigo endproc; codigo endproc; int f(); void p1(); void p1_p2(); procedure p1; procedure p2; codigo endproc; function f1:real; codigo endfunc; procedure p3; procedure p4; codigo endproc; codigo endproc; codigo endproc; void p1(); void p1_p2(); float p1_f1(); void p1_p3(); void p1_p3_p4(); Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 32 / 35

17 Ejercicio 2 (examen marzo 1997) (2 de 2) Debes diseñar el ETDS utilizando como base la siguiente gramática, que genera el lenguaje fuente: S P P procedure id ; L endproc ; P function id : T ; L endfunc ; L P L L codigo T integer T real Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 33 / 35 Ejercicio 3 (1 de 2) Dada la siguiente gramática (que permite declarar clases anidadas y sus métodos para un determinado lenguaje orientado a objetos): S C C class id { B V } B public : P B ɛ V private : P V ɛ P D P P ɛ D T id ( T id L ) D C L, T id L L ɛ T int T float Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 34 / 35

18 Ejercicio 3 (2 de 2) Construye un ETDS que traduzca a una notación como la indicada en este ejemplo: class A { public: int f1(int n,float s) private: class B { private: float f2 (float r,float s,float t) class C {} } } clase A { público: A::f1 (entero x real -> entero) privado: clase A::B { privado: A::B::f2 (real x real x real -> real) clase A::B::C {} } } Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis 35 / 35

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

Tema 5 (2 a parte): Traductores ascendentes. Algoritmo de análisis ascendente. Procesamiento de Lenguajes. E E op T E T T num

Tema 5 (2 a parte): Traductores ascendentes. Algoritmo de análisis ascendente. Procesamiento de Lenguajes. E E op T E T T num Tema 5 (2 a parte): Traductores ascendentes Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 5 (2 a parte): Traductores ascendentes

Más detalles

Tema 5 (2 a parte): Traductores ascendentes

Tema 5 (2 a parte): Traductores ascendentes Tema 5 (2 a parte): Traductores ascendentes Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 5 (2 a parte): Traductores ascendentes

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

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

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

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

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

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

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

Tema 1: Introducción

Tema 1: Introducción Tema 1: Introducción Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 1: Introducción 1 / 28 Definición de compilador Un compilador

Más detalles

UNIDAD V. Analisis Semantico. 5.1 Introduccion. Analizador Semántico. Verifica que el significado de las construcciones del lenguaje tengan sentido.

UNIDAD V. Analisis Semantico. 5.1 Introduccion. Analizador Semántico. Verifica que el significado de las construcciones del lenguaje tengan sentido. UNIDAD V Analisis Semantico 5.1 Introduccion Analizador Semántico. Ejemplo: Verifica que el significado de las construcciones del lenguaje tengan sentido. Tareas del analizador semántico: 1) Comprobación

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

Traducción Dirigida por Sintaxis

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

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

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

Tema 2: Análisis léxico

Tema 2: Análisis léxico Tema 2: Análisis léxico Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 2: Análisis léxico 1 / 22 Fundamentos del análisis

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 AL PROCESO DE COMPILACIÓN

INTRODUCCIÓN AL PROCESO DE COMPILACIÓN INTRODUCCIÓN AL PROCESO DE COMPILACIÓN El programa que se debe compilar es una secuencia de caracteres que termina con un centinela. CONCEPTOS BÁSICOS Un compilador es un complejo programa que lee un programa

Más detalles

Funciones Definición de función

Funciones Definición de función Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas

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

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

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

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

Tema 2: Análisis léxico

Tema 2: Análisis léxico Tema 2: Análisis léxico Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 2: Análisis léxico 1 / 21 Fundamentos del análisis

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

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático v1.2 c 2005 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado

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

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

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

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 DESCENDENTE. Compruébese que la siguiente gramática es LL(1) sin modificarla.

ANÁLISIS DESCENDENTE. Compruébese que la siguiente gramática es LL(1) sin modificarla. Procesadores de lenguaje Ejercicios del Tema 3 ANÁLISIS DESCENDENTE Ejercicio 3.1 Compruébese que la siguiente gramática es LL(1) sin modificarla. Ejercicio 3.2 A B C D B a C b B λ C c A d C e B f C g

Más detalles

Examen de Procesadores de Lenguaje

Examen de Procesadores de Lenguaje Apellidos: Nombre: Dni: Examen de Procesadores de Lenguaje Junio de 2007 (2 horas y 45 minutos) Instrucciones Entrega esta hoja, rellenada con tus datos, junto a tu examen cuando lo entregues. Ten en cuenta

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

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

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

Lección 3: Análisis Semántico

Lección 3: Análisis Semántico Lección 3: Análisis Semántico 1. Expresiones y Asignación 2. Estructuras de Control 3. Procesamiento de Declaraciones 4. Procedimientos y Funciones 5. Perspectiva Lecturas: Cooper, capítulo 4 Scott, capítulo

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

Yacc/Bison. Introducción

Yacc/Bison. Introducción Yacc/Bison Índice Marina de la Cruz Alfonso Ortega Introducción Uso de Yacc/Bison con Lex/Flex Construcción del programa objetivo casple Comunicación entre las funcionesmain(), yylex() eyyparse() Formato

Más detalles

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

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

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

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

Más detalles

Java. Introducción a la Programación Orientada a Objetos

Java. Introducción a la Programación Orientada a Objetos Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

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

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

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

Práctica 4 Análisis LALR para milenguaje y construcción de un traductor de milenguaje

Práctica 4 Análisis LALR para milenguaje y construcción de un traductor de milenguaje Práctica 4 Análisis LALR para milenguaje y construcción de un traductor de milenguaje 1. Objetivos 1. Hacer una introducción práctica a la traducción dirigida por la sintaxis basada en el análisis LALR

Más detalles

ANÁLISIS SINTÁCTICO II GENERADOR DE ANALIZADORES SINTÁCTICOS ASCENDENTES

ANÁLISIS SINTÁCTICO II GENERADOR DE ANALIZADORES SINTÁCTICOS ASCENDENTES 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

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

Análisis semántico. Análisis semántico. Índice

Análisis semántico. Análisis semántico. Índice Análisis semántico Índice Marina de la Cruz Alfonso Ortega Notación Objetivo del análisis semántico Pasos para la construcción de un analizador semántico Análisis semántico con Bison Definición de los

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

Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r

Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r Procesamiento de Lenguajes (PL) Curso 2015/2016 Práctica 5: traductor a código m2r Fecha y método de entrega La práctica debe realizarse de forma individual o por parejas 1, y debe entregarse a través

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

Problemas de Procesadores de Lenguaje Juan Antonio Pérez Ortiz, japerez[en]dlsi.ua.es

Problemas de Procesadores de Lenguaje Juan Antonio Pérez Ortiz, japerez[en]dlsi.ua.es Problemas de Procesadores de Lenguaje Juan Antonio Pérez Ortiz, japerez[en]dlsi.ua.es Departament de Llenguatges i Sistemes Informàtics Universitat d Alacant Junio de 2007 * Esta obra está bajo una licencia

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

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

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

FLEX: A FAST LEXICAL ANALYZER GENERATOR

FLEX: A FAST LEXICAL ANALYZER GENERATOR FLEX: A FAST LEXICAL ANALYZER GENERATOR Especificación Léxica Fichero.l flex Programa con la implementación del AFD, código fuente, yy.lex.c yy.lex.c Compilador de C milex (ejecutable) cc yylex.c o milex

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

Á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

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

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Más detalles

Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de er Curso de I.T. Informática de Sistemas.

Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de er Curso de I.T. Informática de Sistemas. Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de 2001 3 er Curso de I.T. Informática de Sistemas. Apellidos, Nombre: Calificación: PRÁCTICA Con el presente problema,

Más detalles

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas Análisis semático c 2001 José Fortes Gálvez p.1 Análisis?... semántico? La semántica corresponde al significado asociado

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya ELEMENTOS BÁSICOS DE C++: DECLARACIÓN DE VARIABLES A través de operaciones aritméticas (suma, resta, etc.) y lógicas (por ejemplo, comparaciones) los programas manipulan datos tales como números y caracteres.

Más detalles

Analizador Léxico. Programación II Margarita Álvarez. Analizador Léxico - Funciones

Analizador Léxico. Programación II Margarita Álvarez. Analizador Léxico - Funciones Analizador Léxico Programación II Margarita Álvarez Analizador Léxico - Funciones Función Principal Leer carácter por carácter de la entrada y elaborar como salida una secuencia de componentes léxicos

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

Elementos para el estudio de los compiladores

Elementos para el estudio de los compiladores Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 1 / 51 1 Objetivo 2 Historia 3 Traductor Tipo de Traductores Compilador Intérprete Máquina Virtual

Más detalles

PRÁCTICA. Apellidos, Nombre: Calificación:

PRÁCTICA. Apellidos, Nombre: Calificación: Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de 2004 3 er Curso de I.T. Informática de Sistemas. Apellidos, Nombre: Calificación: PRÁCTICA El lenguaje Protolen posee

Más detalles

Curso de Java Introducción a la Programación II

Curso de Java Introducción a la Programación II Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice

Más detalles

Bison. Introducción. Índice. Introducción Uso de Bison con Flex. Formato del fichero de especificación de Bison

Bison. Introducción. Índice. Introducción Uso de Bison con Flex. Formato del fichero de especificación de Bison Bison Índice Marina de la Cruz Alfonso Ortega Introducción Uso de Bison con Flex Construcción del programa objetivo alfa Comunicación entre las funciones main(), yylex() e yyparse() Formato del fichero

Más detalles

Objetivos Que el estudiante logre conocer, comprender y manejar conceptos y técnicas vinculados con el Analizador Léxico, para lo cual debe:

Objetivos Que el estudiante logre conocer, comprender y manejar conceptos y técnicas vinculados con el Analizador Léxico, para lo cual debe: 09:19 1 2 Temas Funciones del Analizador Léxico Manejo de buffers de entrada Especificación y reconocimiento de tokens Generación automática de Analizadores Léxicos Objetivos Que el estudiante logre conocer,

Más detalles

Compiladores: Introducción

Compiladores: Introducción Compiladores: Introducción Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. (galvarez@puj.edu.co) Basado en [Aho, 2007, chp. 1] Qué es un COMPILADOR?

Más detalles

18. Interfaces Declaración de una interfaz

18. Interfaces Declaración de una interfaz Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Tema: Análisis Semántico

Tema: Análisis Semántico Compiladores. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Semántico Contenido En esta guía se desarrollará una tabla de símbolos y se asociará al analizador

Más detalles

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: POST-REQUISITO:

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE: POST-REQUISITO: UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ESCUELA: Ciencias y Sistemas ÁREA

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

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

TEÓRICO ID ; = [ ], $

TEÓRICO ID ; = [ ], $ N Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Septiembre de 2007 er 3 Curso de I.T. Informática de Sistemas. Apellidos, Nombre: Calificación: TEÓRICO 1.- Dibujar un único

Más detalles

Diseño de Compiladores I. Estructura General de un Compilador

Diseño de Compiladores I. Estructura General de un Compilador Diseño de Compiladores I Estructura General de un Compilador PROGRAMA FUENTE COMPILADOR SALIDA Mensajes de Error 2 Un compilador es un programa que traduce un programa escrito en lenguaje fuente y produce

Más detalles

ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS

ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS 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

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

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

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

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

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2

NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA EN CIENCIAS Y SISTEMAS NOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CODIGO: 781 CREDITOS: 5 AREA A LA

Más detalles

PROCESADORES DEL LENGUAJES Ev. Alternativa

PROCESADORES DEL LENGUAJES Ev. Alternativa PROCESADORES DEL LENGUAJES Ev. Alternativa 2016-17 NOMBRE: GRUPO: EL LENGUAJE LVECT LVECT es un lenguaje de programación secuencial. El programa LVECT consta de declaraciones de variables y secuencia de

Más detalles

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................

Más detalles

Tema: Análisis Sintáctico

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

Más detalles