22
COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – [email protected] UPNC / 2011-2 / COMPILADORES PROCESADORES DE LENGUAJE

Clase3 compiladores

Embed Size (px)

Citation preview

Page 1: Clase3 compiladores

COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com

UPNC / 2011-2 / COMPILADORES

PROCESADORES DE LENGUAJE

Page 2: Clase3 compiladores

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.

Page 3: Clase3 compiladores

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.

Page 4: Clase3 compiladores

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

Page 5: Clase3 compiladores

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.

Page 6: Clase3 compiladores

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”

Page 7: Clase3 compiladores

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).

Page 8: Clase3 compiladores

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.

Page 9: Clase3 compiladores

COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com

UPNC / 2011-2 / COMPILADORES

Page 10: Clase3 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.

Page 11: Clase3 compiladores

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)

Page 12: Clase3 compiladores

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.

Page 13: Clase3 compiladores

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)

Page 14: Clase3 compiladores

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)

Page 15: Clase3 compiladores

COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com

UPNC / 2011-2 / COMPILADORES

Page 16: Clase3 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

Page 17: Clase3 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.

Page 18: Clase3 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.

Page 19: Clase3 compiladores

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).

Page 20: Clase3 compiladores

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.

Page 21: Clase3 compiladores

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.

Page 22: Clase3 compiladores

COMPILADORES – Ing. Sistemas – UPN Cajamarca © 2011-2 – Ing. José L. Peralta Luján – jlperalta_10@ hotmail.com

UPNC / 2011-2 / COMPILADORES