Preposición: suma= var1 + var2 + 10; Análisis Léxico El analizador léxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia.

Slides:



Advertisements
Presentaciones similares
ANALIZADOR SEMANTICO DIANA CAROLINA CASTAÑO YANCI VIVIANA CASTRO PEDRO LUIS FLÓREZ SANTIAGO GUTIÉRREZ A.
Advertisements

Ejemplo Práctico de un Compilador Pequeño
Análisis Sintáctico Capítulo 4.
Filminas Segunda semana
Clasificación de los compiladores
Prof. Ing.Maria Rosa Damaso Rios
Cb00843 Traductores Rogelio Dávila Pérez Profesor Planta
Análisis Lexicográfico
¿Compilador ? Es un traductor que convierte un texto escrito en un lenguaje fuente y lo traduce a un programa objeto en código máquina.
Teoría de Autómatas y Compiladores
PROF. ING. JULIO CESAR CANO RAMIREZ
Facultad de Ciencias de la Computación
Fundamentos de programación
OPTIMIZACION DE CODIGO
Unidad 1. Introducción al proceso de compilación.
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Compilador HTML David Morales Marco Jiménez Carlos Márquez
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Traducción dirigida por la Sintaxis
Teoría de lenguajes y compiladores
Tema 3. Optimización de Código
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Tema 6. Conceptos básicos de programación
Teoría de lenguajes y compiladores
Analizador Sintáctico Descendente
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
Programación de sistemas
TRADUCTOR DE UN PROGRAMA
Lenguaje C.
CONDICIONES DE LA MATERIA
M.C. Meliza Contreras González
Instituto Tecnologico de Durango Programacion de Sistemas II
M.C. Juan Carlos Olivares Rojas
Teoría de lenguajes y compiladores
FUNDAMENTOS DE PROGRAMACION
INGENIERIA EN SISTEMAS COMPUTACIONALES
ANALISIS SINTACTICO Parte I
Resumen de Compilación Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Traducido por Christian Torres Universidad Ricardo.
Universidad Nacional de Jujuy Facultad de Ingeniería
FORMA INTERNA DE REPRESENTAR
Tema 6. Conceptos básicos de programación (Repaso) Prof. María Alejandra Quintero Informática Año 2013.
Procesadores de Lenguajes
Todo traductor esta basado en una gramática para el lenguaje fuente. Todo traductor esta basado en una gramática para el lenguaje fuente. Una gramática.
Programación de Sistemas
Tema 1. Introducción y Conceptos Básicos
Análisis Léxico Área Software de Base.
COMPILADORES DIANA ROCIO OLAYA MESA.
INFORMATICA VII (Programación e implementación de sistemas)
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
Programación de Sistemas FEI – 2008
Unidad 1. Introducción a los Compiladores.
JULIAN DARIO RAMIREZ CORRECHA PROSOF12. °QUE ES UN ALGORITMO °CLASES DE ALGORITMOS °QUE ES UN LENGUAJE DE PROGRAMACION °QUE ES UN LENGUAJE DE PROGRAMACION.
Términos algoritmo diseñar algoritmo implementar algoritmo
UNIVERSIDAD LATINA (UNILA)
21/07/2015 Mtra. Adriana Vega P. 1 Compresión de Datos: Es el término general empleado para describir el proceso de grabar datos de manera que requieran.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
1 Sebastián Argüello A60490 semana 3 Autómatas y compiladores CI-1322.
Teoría de lenguajes y compiladores
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Teoría de lenguajes y compiladores
El proceso de compilación
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
FUNDAMENTOS DE PROGRAMACIÓN
CENTRO UNIVERSITARIO UAEM TEXCOCO INGENIERÍA EN COMPUTACIÓN
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
Autómatas y Compiladores. Primera Semana. Ricardo Vargas Del Valle A35469.
Sintaxis y Semántica. S.Takahashi Fases en el proceso de análisis de lenguajes Lexer Parser caracteres tokensrespuesta.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Transcripción de la presentación:

Preposición: suma= var1 + var2 + 10; Análisis Léxico El analizador léxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia lógica (identificador, palabra reservada etc.). Esta secuencia de caracteres recibe el nombre componente léxico o lexema. En este caso el analizador léxico verifica si el identificador id1 (nombre interno para "suma") encontrado se halla en la tabla de símbolos, si no esta produce un error porque todavía no fue declarado, si la preposición hubiese sido la declaración del identificador "suma" en lenguajes C, C++ (int suma;) el analizador léxico agregaria un identificador en la tabla de símbolos, y así sucesivamente con todos los componentes léxicos que aparezcan. id1= id2+ id3 * 10

Errores l¶exicos t¶³picos son: 1. nombre ilegales de identi¯cadores: un nombre contiene car- acteres inv¶alidos. 2. n¶umeros incorrectos: un n¶umero contiene caracteres inv¶alidos o no est¶a formado correctamente, por ejemplo 3,14 en vez de 3.14 ¶o errores de ortograf¶³a en palabras reservadas: caracteres omiti- dos, adicionales o cambiados de sitio, por ejemplo la palabra hwile en vez de while. 4. ¯n de archivo: se detecta un ¯n de archivo a la mitad de un componente l¶exico.

Análisis Sintáctico El analizador sintáctico impone una estructura jerárquica a la cadena de componentes léxicos, generada por el analizador léxico, que es representada en forma de un árbol sintáctico. = / \ id1 + / \ id2 + / \ id3 10 Análisis Semántico El analizador semántico verificara en este caso que cada operador tenga los operandos permitidos. = / \ id1 + / \ id2 + / \ id3 tipo_ent | 10

Generador de código intermedio En esta etapa se lleva la preposición a una representación intermedia como un programa para una maquina abstracta. temp1= tipo_ent(10) temp2= id3 * temp1 temp3= id2 + tem2 id1= temp3 Optimización de código El código intermedio obtenido es representado de una forma mas optima y eficiente. temp1= id3 * 10.0 id1= id2 + temp1 Generador de código Finalmente lleva el código intermedio a un código objeto que en este caso es un código relocalizable o código ensamblador (también llamado código no enlazado). MOVF id3, R2 MULT #10.0, R2 MOVF id2, R1 ADDF R2, R1 MOVF R1, id1