Procesadores de Lenguajes

Slides:



Advertisements
Presentaciones similares
Clasificación de los compiladores
Advertisements

Compiladores e intérpretes
Prof. Ing.Maria Rosa Damaso Rios
Cb00843 Traductores Rogelio Dávila Pérez Profesor Planta
¿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
Prototipo de compilador didáctico del lenguaje LC99
Facultad de Ciencias de la Computación
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa.
Fundamentos de programación
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Analizadores Sintácticos Descendentes Predictivos
Unidad 1. Introducción al proceso de compilación.
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Traducción dirigida por la Sintaxis
Teoría de lenguajes y compiladores
Programas Son una serie o secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones o tareas para las que.
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.
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.
Introducción a la programación en C
TRADUCTOR DE UN PROGRAMA
CONDICIONES DE LA MATERIA
M.C. Meliza Contreras González
Procesadores del Lenguaje
Estructura de un programa C
Teoría de lenguajes y compiladores
FUNDAMENTOS DE PROGRAMACION
Resumen de Compilación Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Traducido por Christian Torres Universidad Ricardo.
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
Universidad Nacional de Jujuy Facultad de Ingeniería
LENGUAJE DE PROGRAMACIÓN
Teoría de lenguajes y compiladores
1.4 Traductor y Su estructura
LENGUAJES DE PROGRAMACIÓN
Programación de Sistemas
Tema 1. Introducción y Conceptos Básicos
FUNDAMENTOS DE PROGRAMACION
Análisis Léxico Área Software de Base.
COMPILADORES DIANA ROCIO OLAYA MESA.
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
INFORMATICA VII (Programación e implementación de sistemas)
Estructura de un programa C. 1 Lenguajes de Programación 1.- Lenguaje de alto nivel 2.- Lenguaje de bajo nivel (ensamblador) 3.- Lenguaje de máquina.
Introducción a los programas
Unidad 1. Introducción a los Compiladores.
Lenguajes de Programación
LÓGICA DE PROGRAMACIÓN LSC. Susana Alejandra López Jiménez.
JULIAN DARIO RAMIREZ CORRECHA PROSOF12. °QUE ES UN ALGORITMO °CLASES DE ALGORITMOS °QUE ES UN LENGUAJE DE PROGRAMACION °QUE ES UN LENGUAJE DE PROGRAMACION.
Lenguajes de Programación
Teoría de lenguajes y compiladores
UNIVERSIDAD LATINA (UNILA)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
ESCUELA NORMAL “PROF. DARÍO RODRÍGUEZ CRUZ” Licenciatura en educación preescolar Alumnas: *Mayra * Monserrat * Idalia *Cinthia Curso: las TIC en la educación.
Procesadores de Lenguajes
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.
INTRODUCCIÓN LI & MSC OSCAR RAMÍREZ CORTÉS U NIVERSIDAD DE LA H UASTECA V ERACRUZANA L ENGUAJES DE P ROGRAMACIÓN.
Software.
Traductores Gilberto G. Romero H..
Es un tipo especial de software que nos permite *Crear *Desarrollar *Programar otras aplicaciones. Haciendo uso de sus conocimientos lógicos y lenguajes.
Compilador Es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa.
UNIDAD 1 Introducción a la Programación OBJETIVO: El estudiante identificará los elementos Básicos de todo lenguaje de programación. Comparando las posibles.
Programación de Sistemas
FUNDAMENTOS DE PROGRAMACIÓN
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
PARCIAL 1 Introducción a los programas. Concepto de Programa  El término programa (d el latín programma, que a su vez proviene de un vocablo griego)
CENTRO UNIVERSITARIO UAEM TEXCOCO INGENIERÍA EN COMPUTACIÓN
Autómatas y Compiladores. Primera Semana. Ricardo Vargas Del Valle A35469.
Transcripción de la presentación:

Procesadores de Lenguajes Tema 1: Introducción

Índice Definición de compilador Tipos de compiladores Historia de los compiladores Estructura de un compilador Especificación de compiladores Aplicaciones de los compiladores Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Definición de compilador Traductor: Programa que toma como entrada un texto escrito (llamado fuente) y da como salida otro texto (llamado objeto). Compilador: Traductor cuyo fuente es un lenguaje de alto nivel y cuyo objeto es un lenguaje de bajo nivel. Interprete: Compilador que ejecuta al mismo tiempo que traduce. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Definición de compilador Ventajas de los compiladores frente a los interpretes Solo se compilan una vez Ejecución más rápida Optimización de código e Información del error más detallada. Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Definición de compilador Ventajas de los Interpretes frente a los Compiladores Menor coste espacial Mayor interactividad en desarrollo Añadir código “en caliente” Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Tipos de Compiladores Ensamblador Compilador cruzado Compilador con montador Autocompilador Metacompilador Decompilador Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Historia de los compiladores ¿Qué fue primero el compilador o el programa? FORTRAN: Primer lenguaje de alto nivel ALGOL: Lenguaje estructurado en módulos Separación Front-End y Back-End para compilar lenguajes en distintas máquinas Creación del lenguaje intermedio UNCOL Definición de las distintas fases de creación de compiladores Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Gestíon de errores Optimización de Generación y código final Código Intermedio Generación de Optimización de Código intermedio Análisis Léxico Análisis Sintáctico Análisis Semántico Tabla de símbolos Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Análisis sintáctico Comprueba los valores unitarios del programa (tokens): Palabras reservadas(do, while, if, …) Palabras no especificas(identificadores, constantes) Formados por tipo y lexema Int contador Identificador = tipo “contador” = lexema Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Análisis Sintáctico Recibe los tokens del analizador léxico y comprueba que están ordenados conforme a la gramática Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Análisis Semántico Comprueba la validez del programa Comprobación de tipos en operadores Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Generación de código intermedio Codifica el lenguaje fuente en un lenguaje intermedio entre el lenguaje objeto Permite la separación entre front-end y back-end Utilización de código de 3 direcciones (A=B+C) Instrucciones condicionales y saltos Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Optimización de código intermedio Permite realizar mejoras en el código intermedio Eliminación de saltos consecutivos Factorizaciones Eliminar código inútil Optimización de bucles Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Generación de código objeto Generar una secuencia de instrucciones en código ensamblador o máquina a partir del código intermedio A=B+C LOAD B ADD C STORE A Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Tabla de símbolos Tabla donde se registran los identificadores, constantes, funciones y otros objetos especificados en el programa fuente El compilador desarrolla funciones comunes de acceso a ella Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Manejo de errores Mensajes de error que el compilador emite cuando encuentra una inconsistencia en cualquiera de las fases de compilación Normalmente en una compilación no se muestran todos los errores producidos: Ocultación de otros errores Avalancha de errores Se puede Pararse al encontrar cualquier error Intentar recuperar todos los errores de una pasada Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Estructura de un compilador Análisis léxico Análisis sintáctico Análisis semantico Generación de código intermedio FRONT-END Fuente Código Intermedio Optimización de código intermedio Generación de código objeto Optimización de código objeto BACK-END Código objeto Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Especificación de un compilador Especificación léxica: Tokens mediante expresiones regulares Especificación sintáctica: Gramáticas independientes del contexto Especificación semántica: Lenguaje natural Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas

Aplicaciones de las técnicas de compilación Interfaces textuales Manejo de ficheros de texto estructurado Procesadores de texto Diseño e interpretación de lenguajes Gestión de bases de datos Procesamiento del lenguaje natural Traducción de formatos de ficheros Cálculo simbólico Reconocimiento sintáctico de formas Procesadores de Lenguajes 5º Ingeniería Informática UNED Carlos Fernández Llatas