clase3 compiladores
TRANSCRIPT
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
PROCESADORES DE LENGUAJE
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Procesadores de lenguaje es el nombre genérico
que reciben todas las aplicaciones informáticas en
las cuales uno de los datos fundamentales de
entrada es un lenguaje.
La definición anterior afecta a una gran variedad de
herramientas software.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
TRADUCTOR
Programa que convierte desde un texto o programaescrito en un lenguaje fuente hasta un texto o programaequivalente escrito en un lenguaje destino produciendo,si cabe, mensajes de error.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Los traductores engloban tanto a los compiladores (enlos que el lenguaje destino suele ser código máquina)como a los intérpretes (en los que el lenguaje destinoestá constituido por las acciones atómicas que puedeejecutar el intérprete).
Sergio Gálvez Rojas (Doctor Ingeniero en Informática)Miguel Ángel Mora Mata (Ingeniero en Informática)Dpto. de Lenguajes y Ciencias de la ComputaciónE.T.S. de Ingeniería InformáticaUniversidad de Málaga
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Tipos de Traductores
Traductores de lenguaje natural
Traducen un lenguaje natural en otro (por ejemplo,español a inglés). Esto en la actualidad no se haconseguido debido fundamentalmente a la ambigüedaddel lenguaje natural. Los mayores logros en la materiasiempre trabajan con un subconjunto del lenguajenatural, limitando las construcciones sintácticas válidasy/o el vocabulario. Este tema se aborda generalmentemediante técnicas de inteligencia artificial.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Compilador
Un compilador es un programa que lee un programa enun lenguaje “lenguaje fuente” y lo traduce en unprograma equivalente en otro lenguaje “lenguajeobjetivo”
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Intérprete
Es como un compilador, solo que la salida es unaejecución. El programa de entrada se reconoce yejecuta a la vez. No se produce un resultado físico(código máquina) sino lógico (una ejecución).
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
El procesador del lenguaje de Java combina compilación e interpretación.
– Java --> compilador --> bytecodes (forma intermedia)– Bytecodes --> virtual machine (intérprete)
Ventaja:
Los bytecodes compilados en una maquina pueden ser interpretados en otra, incluso a través de una red
Java utiliza un tipo compilador llamado “just-in-time” que traslada los bytecodes en lenguaje de máquina inmediatamente.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Preprocesador
Es un programa que se encarga de agrupar los fuentesdel programa produciendo un programa fuentemodificado el cual es enviado al compilador.Esto se debe a que un programa puede estar divididoen muchos módulos almacenados en archivosseparados.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Intérpretes de comandos
Un intérprete de comandos traduce sentencias simples ainvocaciones a programas de una biblioteca. Se utilizanespecialmente en los sistemas operativos (lashell de Unix es un intérprete de comandos). EjemploDOS.
EnsambladoresEl primer paso hacia los lenguajes de alto nivel loconstituyen los ensambladores. En lenguaje ensambladorse establece una relación biunívoca entre cada instruccióny una palabra mnemotécnica.Ejemplo: MOV AH,10 � B410 (1011010000010000)
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Conversores fuente - fuente
Traducen un lenguaje fuente de alto nivel a otro. Ejemplo:PASCAL -> C
Compilador cruzado
Es un compilador que genera código para ser ejecutado enotra máquina. Se
utilizan en la fase de desarrollo de nuevos ordenadores.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
COMPILADOR
Programa que lee un programa escrito en un lenguaje,lenguaje fuente, y lo traduce a un programa equivalenteen otro lenguaje, lenguaje objeto. Como parte de esteproceso el compilador informa al usuario de la presenciade errores en el programa fuente. (Alfred Aho)
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Programa Escrito enun leng. de prog.:
Java (*.java)
Turbo C++ (*.cpp)
Otro lenguaje deprogramación(*.class)
Lenguajemáquina (*. obj)
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Arquitectura de
Computadoras
Lenguajes de
Programación
Teoría de
Lenguajes
Teoría de
Algoritmos
Ingeniería de
Software
Compiladores
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Además de un compilador, otros programas pueden sernecesarios para crear un programa ejecutable.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Preprocesador:Es un programa que se encarga de agrupar los fuentesdel programa produciendo un programa fuentemodificado el cual es enviado al compilador.Esto se debe a que un programa puede estar divididoen muchos módulos almacenados en archivosseparados.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Ensamblador:Programa que procesa el código en lenguaje assemblergenerado y produce código de máquina como salida (1Inst. asm a 1 Inst. máquina).
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Enlace (Linker):Es un programa que resuelve direcciones externas dememoria donde el código de un archivo puede requeriruna ubicación en otro archivo.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES
Cargador (Loader):Programa que junta todos los archivos ejecutablesdentro de la memoria para su ejecución.
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com
UPNC / 2011-2 / COMPILADORES