Lenguajes y Compiladores Traducción Dirigida por la Sintaxis
|
|
- Samuel Maestre Murillo
- hace 5 años
- Vistas:
Transcripción
1 Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Traducción Dirigida por la Sintaxis 1
2 Definición Código Intermedio: estructura de código que posee una complejidad comprendida entre el código fuente y el código de máquina. Los códigos intermedios se consideran como una interfaz entre el generador de código y las fases previas del compilador. Se puede pensar en el código intermedio como el código de máquina de una computadora hipotética 2
3 Código Intermedio El uso de un código intermedio tiene como principal ventaja la de permitir que el compilador sea independiente de la máquina destino, haciendolo mas transportable. Sin embargo el código que podría generarse a partir del código intermedio será menos eficiente que el código de máquina generado directamente. 3
4 Clases de Codigos Intermedios Los códigos intermedios más usados son Notación Posfija Código de tres direcciones Código de dos direcciones Arbol de sintaxis abstracta: Cada hoja representa un operando y los nodos intermedios representan los operadores. Notación Prefija: Similar a la notación posfija 4
5 Clases de Códigos Intermedios Código P: Uno de los códigos más destacados. Se denomina máquina P a una máquina abstracta que implementa este código (una computadora hipotética de pila con cinco registros y una memoria). Código ensartado: Establece una relación entre cada operación y una llamada a rutina. Se genera una serie de llamadas a las diferentes rutinas. 5
6 Notación Posfija La notación posfija es una notación muy simple usada para expresiones aritméticas que coloca el operador al extremo derecho de la expresión (después de los operandos y no entre ellos). Ejemplo: para la expresión A + C * D Su correspondiente notación posfija es: ACD*+ La notación posfija se procesa usando una pila: Se empilan los operandos Cuando se encuentra un operador se desempilan sus operandos se opera y se empila el resultado 6
7 Notación Posfija Suponga que A 2, C sea 4 y D es 3. La expresión se evalúa: Empila 2 Empila 4 Empila 3 * requiere dos operandos que se desempilan (3 y 4), se multiplican y el resultado se empila Empila 12 + requiere dos operandos que se desempilan (12 y 2), se suman y el resultado se empila Empila 14 7
8 Notación Posfija La notación posfija (NPF) de una expresión E es: Si E es una variable o constante su NPF es E Si E es una expresión E 1 op E 2 con op operador binario cualquiera, la NPF de E es E 1 E 2 op, donde E 1 y E 2 son las NPF de E 1 y E 2 respectivamente. Si E es una expresión (E 1 ), entonces la NPF de E 1 es la NPF de E. La notación posfija no necesita paréntesis Ejemplos: ( ) * * 5 + (15-4)
9 Código de tres direcciones Las proposiciones constan por lo general de tres direcciones: res := arg 1 op arg 2 Donde res, arg 1 y arg 2 pueden ser constantes (sólo arg 1 y arg 2 ) o identificadores declarados por el usuario o variables de trabajo creadas por el compilador. Las variables de trabajo se crean cuando se trata de expresiones con múltiples operadores, que se dividen en una secuencia de operaciones con un solo operador cada una. op arg1 arg2 res 9
10 Código de tres direcciones Para la expresión: A + C * D Se tiene la siguiente secuencia de instrucciones de tres códigos: MUL C D Var1 ADD A Var1 Var2 STO Var2 Res Donde MUL, ADD y STO se suponen los códigos de las operaciones de *, + y :=. El manejo de las variables de trabajo es importante 10
11 Código de dos direcciones Las variables de trabajo se usan para guardar temporalmente resultados necesarios para operaciones siguientes. La idea es no usar el campo resultado: Se usan apuntadores a la tabla de símbolos para los operandos Se usan apuntadores a la instrucción que contiene un resultado intermedio. La forma de un código de dos direcciones es: op arg1 arg2 11
12 Código de dos direcciones Para la expresión: A + C * D Se tiene la siguiente secuencia de instrucciones de dos códigos: (1) MUL C D (2) ADD A (1) (3) STO (2) Res El código de dos direcciones no necesita generar variables de trabajo 12
13 Análisis Semántico El análisis semántico puede ser realizado en paralelo al análisis sintáctico asociando reglas semánticas a cada producción. Estas reglas pueden generar código cada vez que se ejecutan, por tanto se dice que la estructura sintáctica dirige la traducción del código lo que es conocido como Traducción Dirigida por la Sintaxis (TDS). 13
14 Regla Semántica Una regla semántica es un fragmento de código (método) que se ejecuta cuando el analizador sintáctico reconoce la producción asociada a la regla. Ejemplo: E E + T // Regla Suma Suma es la regla asociada a la producción y será ejecutada al reducir E + T a E (análisis ascendente) o al derivar E a E + T (análisis descendente). 14
15 Ejemplo de Reglas Semánticas Definición de las reglas semánticas de una gramática generando un código de tres direcciones. ApuntE es el apuntador a la tabla de símbolos para E k lleva el control de las variables temporales generadas para guardar los resultados intermedios de las operaciones. vark es una referencia a la variable temporal K 15
16 Ejemplo de Reglas Semánticas E T E 1 E 2 + T E 1 E 2 - T T F (ApuntE := ApuntT) ( Inc K ApuntE 1 := VarK Genera(ADD,ApuntE 2,ApuntT,VarK) ( Inc K ApuntE 1 := VarK Genera(SUB,ApuntE 2,ApuntT,VarK) (ApuntT := ApuntF) 16
17 Ejemplo de Reglas Semánticas T 1 T 2 * F T 1 T 2 / F F x F y F ( E ) ( Inc K ApuntT 1 := VarK Genera(MUL,ApuntT 2,ApuntF,VarK) ( Inc K ApuntT 1 := VarK Genera(DIV,ApuntT 2,ApuntF,VarK) (ApuntF := Apuntx) (ApuntF := Apunty) (ApuntF := ApuntE) 17
18 Reglas para generar Notación Posfija Para generar la notación posfija se usan las operaciones clásicas ADD, SUB, MUL y DIV, adicionalmente se usa el operador LOD que permite empilar operandos en la pila. A seguir se presenta las reglas semánticas asociadas a la gramática para generar notación posfija. 18
19 Reglas para generar Notación Posfija EXPR TERM ( T ) EXPR EXPR + TERM ( E T ADD) EXPR EXPR - TERM ( E T SUB) TERM FACTOR ( T ) TERM TERM * FACTOR ( T F MUL) TERM TERM / FACTOR ( T F DIV) F x (LOD x) F y (LOD y) F ( EXPR ) ( E ) 19
20 Generación de Notación Posfija Para la frase x + y - x * y se realizará la traducción a notación posfija. EXPR EXPR - TERM EXPR EXPR + TERM 1 - TERM 2 EXPR TERM 3 + TERM 1 - TERM 2 EXPR FACTOR + TERM 1 - TERM 2 EXPR x + TERM 1 - TERM 2 EXPR x + FACTOR - TERM EXPR x + y - TERM ( E T SUB) ( E T 1 ADD T 2 SUB) (T 3 T 1 ADD T 2 SUB) ( F T 1 ADD T 2 SUB) ( LOD x T 1 ADD T 2 SUB) ( LOD x F ADD T SUB) ( LOD x LOD y ADD T SUB) 20
21 Generación de Notación Posfija EXPR x + y - TERM * FACTOR EXPR x + y - FACTOR 1 * FACTOR 2 EXPR x + y - x 1 * FACTOR 2 ( LOD x LOD y ADD T F MUL SUB) ( LOD x LOD y ADD F 1 F 2 MUL SUB) EXPR x + y - x 1 * y ( LOD x LOD y ADD LOD x F 2 MUL SUB) ( LOD x LOD y ADD LOD x F 2 MUL SUB) 21
22 Atributos Sintetizados El siguiente ejemplo muestra una definición dirigida por la sintaxis para especificar una calculadora de escritorio. Producción L E n E E 1 + T E T T T 1 * F T F F ( E ) F digito Reglas Semánticas Imprimir (E.val) E.val := E 1.val + T.val E := T.val T.val := T 1.val * F.val T.val := F.val F.val := E.val F.val := digito.valex 22
23 Definición con Atributos Sintetizados Se asocia un atributo sintetizado llamado val a cada no terminal. En cada regla se calcula el valor de val para el no terminal del lado izquierdo a partir de los valores de los no terminales del lado derecho. Se considera que valex es un valor proporcionado por el léxico como parte del token digito. La regla asociada al no terminal L simplemente imprime el valor generado por la expresión E. El árbol sintáctico con atributos sintetizados para la expresión 3*5+4n, se muestra a seguir: 23
24 Definición con Atributos Sintetizados L E.val = 19 n E.val = 15 + T.val = 4 T.val = 15 F.val = 4 T.val = 3 * F.val = 5 digito.valex = 4 F.val = 3 digito.valex = 5 digito.valex = 3 24
25 Generación de Proposiciones En el caso de proposiciones condicionales o iterativas hay que tener especial cuidado con los saltos. Generalmente se tiene que realizar una segunda pasada para generar la dirección de la instrucción que repite la iteración (direcciones abiertas) Para generar código usará JPC (salto condicional) JMP (salto incondicional) 25
26 Ejemplo Generar código para el comando MIENTRAS Condición HACER proposición E1: Instrucciones para evaluar Condicion JPC E2 Instrucciones para proposición JMP E1 E2: Siguiente instrucción 26
27 Ejemplo Generar código para : IF Condicion THEN Proposicion Instrucciones para evaluar Condición JPC E1 Instrucciones para ejecutar Proposicion E1: Siguiente instrucción 27
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 detallesGeneració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 detallesGramá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 detallesDiseñ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 detallesAMBIENTES DE COMPILACION
AMBIENTES DE COMPILACION Los compiladores a menudo producen como resultado del análisis semántico, una forma de representación intermedia del código fuente. Hoy en día, es cada vez más común que, en ambientes
Más detallesGENERACIÓ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 detallesConcepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores
18:55 1 2 Temas Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores Objetivo Que el estudiante logre conocer, comprender y manejar conceptos y técnicas
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesLenguajes y Compiladores Introducción. Compiladores 1
Facultad de Ingeniería de Sistemas Lenguajes y Introducción 1 Objetivos Conocer los fundamentos de construcción de en todas sus fases, presentando los conceptos básicos, definiciones formales, técnicas
Más detallesTema 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 detallesConceptos 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 detallesIntroducció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 detallesLenguajes 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 detallesProcesadores de lenguaje Tema 7 Generación de código intermedio
Procesadores de lenguaje Tema 7 Generación de código intermedio Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Representaciones intermedias Código de 3 direcciones Cuádruplas
Más detallesÁ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 detallesCompiladores: Generación de Código Intermedio
Compiladores: Generación de Código Intermedio Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Expresiones Booleanas Son usadas para: Calcular valores
Más detallesLenguajes 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 detallesTema 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 detallesANÁ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 detallesCompiladores e intérpretes Introducción
Introducción Profesor: Eridan Otto Introducción Perspectiva histórica Motivación Definiciones Componentes y fases de un compilador 1 Introducción Definiciónes básicas Traductor: desde un punto de vista
Más detallesDefinició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 detallesTema: Análisis Léxico
Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Léxico Contenido En esta guía se dará a conocer la manera en que un compilador realiza el análisis
Más detallesCompiladores: 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 detalles16 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 detallesExamen 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 detallesTema: 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 detallesLenguajes y Compiladores Análisis Sintáctico Parte II
Universidad Nacional San Luis Gonzaga Facultad de Ing. De Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte II 1 Análisis Ascendente El análisis ascendente es conocido como análisis por desplazamiento
Más detallesIntroducción a la construcción de compiladores
Introducción a la construcción de compiladores M. Luisa González Díaz * Departamento de Informática Universidad de Valladolid 1. Esquema general de un compilador Los principios y técnicas que se usan en
Más detallesFACULTAD 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 detallesTema 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 detallesTema 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 detallesPROCESADORES 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 detallesAná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 detallesControla 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 detallesUNIDAD 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Árboles de Decisión Árboles de Sintaxis
Árboles de Decisión Árboles de Sintaxis Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Árboles de Decisión Árbol de Decisión Forma gráfica de
Más detallesÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO
ÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO 2. NOTACIONES 3 2.. PREFIJA.4 2..2 INFIJA....4 2.2.3 POSTFIJA.. 5 2.2 REPRESENTACIONES DE CÓDIGO INTERMEDIO....5 2.2. NOTACIÓN POLACA. 7 2.2.2 CÓDIGO P....8
Más detalles1. Acciones en Yacc. %{ #include <stdio.h> yyerror (char *s) { fprintf (stderr, %s\n, s) ; } %} %% : S \n {printf ( Correcto\n );} ; : ( S ) S
El generador de analizadores sintácticos Yacc III Teoría de autómatas y lenguajes formales Alma María Pisabarro Marrón (alma@infor.uva.es) Universidad de Valladolid 1. Acciones en Yacc Las acciones en
Más detallesTema: Análisis de código intermedio
Compiladores. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis de código intermedio Contenido En esta guía se abordarán los conceptos pertenecientes al componente
Más detallesUNIVERSIDAD 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 detallesLenguajes de programación
Introducción Lenguajes de programación Primera generación: lenguajes máquina Los programas se escriben en código binario 000001011010000000000000 Segunda generación: lenguajes simbólicos Cada instrucción
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesElementos 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 detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesCompilación. Jaime Gutiérrez Alfaro Compiladores e Intérpretes. II semestre,
Compilación Jaime Gutiérrez Alfaro Compiladores e Intérpretes II semestre, 2017 1 Agenda 2. Compilación Estructura del proceso de compilación Estructuras de datos Pasadas Opciones de diseño de un compilador
Más detallesEl 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 detallesUNIVERSIDAD 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 detallesLenguajes 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 detallesAnalizador 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 detallesProcesadores 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 detallesEl lenguaje de programación JKL
El lenguaje de programación JKL Copyright 2006 JosuKa Díaz Labrador Facultad de Ingeniería, Universidad de Deusto, Bilbao, España Verbatim copying and distribution of this entire article is permitted in
Más detallesGENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Más detallesCompiladores 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 detallesProcesadores 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 detallesObjetivos 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 detallesCompiladores: 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 detallesIntroducción. El proceso de traducción
Toda compilación es un proceso de transformación paulatina que convierte un programa escrito en un lenguaje fuente de alto nivel en otro programa escrito en un lenguaje objeto de bajo nivel. Ese proceso
Más detallesLenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación
COMPILADORES Unidad I: Introducción al proceso de compilación Flor Prof. Flor Narciso GIDyC-Departamento de Computación LABSIULA-Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de
Más detallesUnidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
Más detallesGENERACIÓ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 detallesContenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55
Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2
Más detallesANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa
ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANALIZADOR LÉXICO (AL) El Analizador léxico (scanner), lee la secuencia de caracteres del programa fuente, caracter a caracter, y los agrupa para formar unidades
Más detallesCompiladores: 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 detallesUn. I. Introducción a la programación de sistemas
Un. I. Introducción a la programación de sistemas 1.1 Qué es la programación de sistemas? La programación de sistemas comprende el desarrollo de aquellos programas de computadora que tienen una fuerte
Más detallesNOMBRE 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 detallesFASES DE UN COMPILADOR
FASES DE UN COMPILADOR PROGRAMA FUENTE analizador léxico analizador sintáctico administrador analizador semántico manejador de la tabla generador de código intermedio de errores de símbolos optimizador
Más detallesGENERACIÓN DE CÓDIGO INTERMEDIO CÓDIGO DE TRES DIRECCIONES
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 detallesPROCESADORES 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 detallesTema: Introducción a compiladores y MUSIM/0
Compiladores. Guía 1 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Introducción a compiladores y MUSIM/0 Contenido En esta guía se presenta una breve introducción a los conceptos
Más detallesCOMPILADORES. 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 detallesCompiladores e Intérpretes Generación de Código Máquina e Intérpretes
1 Compiladores e Intérpretes Generación de Código Máquina e Intérpretes Sebastian Gottifredi 2017 Repaso 2 Repaso Para entender y controlar la estructura de un programa fuente hay que analizar si sigue
Más detallesANÁ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 detallesUnidad 2. Introducción Lenguajes y Compiladores
Unidad 2 Introducción Lenguajes y Compiladores Principal material bibliográfico utilizado Compiladores Principios, técnicas y herramientas. Aho y Ullman. Addison Wesley. www.jorgesanchez.net www.iqcelaya.itc.mx/~vicente/programacion/tradcomp.pdf
Más detallesUnidad VI Generación de Código Intermedio. M.C. Juan Carlos Olivares Rojas
Unidad VI Generación de Código Intermedio M.C. Juan Carlos Olivares Rojas Agenda 6.1 Lenguajes intermedios. 6.2 Notaciones. 6.2.1 Infija. 6.2.2 Postfija. 6.2.3 Prefija. 6.3 Representación de código intermedio.
Más detallesUNIVERSIDAD 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 detallesTema 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 detallesTema: Introducción a Compiladores y al Lenguaje Micro C
Compiladores. Guía 1 1 Tema: Introducción a Compiladores y al Lenguaje Micro C Contenido En esta guía se presenta una breve introducción a los conceptos básicos que se utilizan en el ámbito de los compiladores
Más detallesPontificia 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 detallesUnidad 5 Análisis semántico
61 Unidad 5 Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesANÁ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 detallesPunto 1 20% Punto 2.a. 15% Punto 2.b. 15% Punto 3. 25% Punto 4. 25% TOTAL 100%
Ingeniería de Sistemas y Computación ISIS- 1106-01 Lenguajes y Máquinas Parcial 1 26 de agosto de 2013 Nombre: Carné: Esta prueba es INDIVIDUAL. Está permitido el uso de UNA hoja tamaño oficio escrita
Más detallesUnidad 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 detallesLenguajes de Programación Programación funcional
Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una
Más detallesOrganización de Computadoras. Clase 7
Organización de Computadoras Clase 7 Temas de Clase Formatos de instrucción Modos de direccionamiento Notas de Clase 7 2 Elementos de una instrucción de máquina Código de operación especifica la operación
Más detallesNOMBRE DEL CURSO: Organización de Lenguajes y Compiladores 2 CÓDIGO: 781 CRÉDITOS: 5 ÁREA A LA QUE PERTENECE:
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 CÓDIGO: 781 CRÉDITOS: 5 ESCUELA:
Más detallesLENGUAJES 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 detallesUnidad V Análisis Semántico. M.C. Juan Carlos Olivares Rojas
Unidad V Análisis Semántico M.C. Juan Carlos Olivares Rojas Agenda 5.1 Analizador semántico 5.2 Verificación de tipos en expresiones. 5.3 Conversión de tipos. 5.4 Acciones agregadas en un analizador sintáctico
Más detallesGramaticas Independientes del Contexto, ejemplos y ejercicios
OpenStax-CNX module: m16320 1 Gramaticas Independientes del Contexto, ejemplos y ejercicios Carlos Arturo Cortés Fuentes This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution
Más detallesPROGRAMA DE LABORATORIO POS-REQUISITO: Primer Semestre 2019 Ing. Mario José Bautista Fuentes AUXILIAR: Nery Galvez
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 Organización de NOMBRE CURSO: Lenguajes y SECCIÓN: A Compiladores 1 ESCUELA:
Más detallesProf. María Alejandra Quintero. Informática Año
Prof. María Alejandra Quintero Informática Año 2014-2015 Es la acción de escribir programas de computación con el objetivo de resolver un determinado problema. Implica escribir instrucciones para indicarle
Más detallesUn. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Más detallesConceptos. Generales ALGORITMOS
Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
Más detallesTema 1. Introducción
Departamento de Tecnologías de la Información Tema 1 Introducción Ciencias de la Computación e Inteligencia Artificial Índice 1.1 Conceptos 1.2 Un poco de historia 1.3 Estructura de un compilador 1.4 Teoría
Más detallesProcesadores ISA Macroarquitecura - Interfaces
Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC2721 Arquitectura del Computador I Prof. Osberth De Castro Clase 04 Procesadores ISA Macroarquitecura - Interfaces ISA General Modelos
Más detallesCompiladores: Análisis Léxico. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V.
Compiladores: Análisis Léxico Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Análisis Léxico Programa Lenguaje Fuente Análisis Léxico (Token, Lexema)
Más detalles3 - Arquitectura interna de un up
cei@upm.es 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos
Más detallesCompiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón
Compiladores: Generación de Código Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Generación de Código Representación Intermedia Tabla de Símbolos
Más detallesTraducció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 detallesOperadores y Expresiones
Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los
Más detalles