PROCESADORES DE LENGUAJE

16
PROCESADORES DE LENGUAJE ESCUELA DE INGENIERÍA EN SISTEMAS COMPILADORES PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA JORGE SANTIAGO BEJARANO

description

Resumen genera de procesadores de lenguaje de la materia de compiladores

Transcript of PROCESADORES DE LENGUAJE

Page 1: PROCESADORES DE LENGUAJE

PROCESADORES DE LENGUAJE

ESCUELA DE INGENIERÍA EN SISTEMAS

COMPILADORES

PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA

JORGE SANTIAGO BEJARANO

Page 2: PROCESADORES DE LENGUAJE

PROCESADORES DE LENGUAJE

Es el nombre genérico que reciben todas las aplicaciones informáticas en lascuales uno de los datos fundamentales de entrada es un lenguaje.

• Traductores

(translators)

• Compiladores

(compilers)

• Ensambladores

(assemblers)

• Montadores de enlaces

o enlazadores (linkers)

• Cargadores (loaders)

• Intérpretes

(interpreters)

• Desensambladores

(dissemblers)

• Decompiladores

(decompilers)

• Depuradores

(debuggers)

• Analizadores de

rendimiento (profilers)

• Optimizadores de

código (code optimizers)

• Compresores

(compressors)

• Preprocesadores

(preprocessors)

• Formateadores

(formatters)

• Editores (editors)

JORGE SANTIAGO BEJARANO

Page 3: PROCESADORES DE LENGUAJE

TRADUCTORES

Un traductor es un programa que procesa un texto fuente y genera untexto objeto. El traductor está escrito en un lenguaje de implementación(LI) o también denominado lenguaje host. El texto fuente está escrito enlenguaje fuente (LF), por ejemplo un lenguaje de alto nivel. El texto objetoestá escrito en lenguaje objeto (LO), por ejemplo un lenguaje máquina,ensamblador u otro lenguaje de alto nivel. Se suele utilizar la notación en T,tal como se muestra en la figura

JORGE SANTIAGO BEJARANO

Page 4: PROCESADORES DE LENGUAJE

ENSAMBLADORES

Si el lenguaje fuente es el lenguaje ensamblador (en inglés assembly) y ellenguaje objeto es el lenguaje máquina, entonces al traductor se le llamaensamblador (en inglés assembler). Los ensambladores son traductoressencillos, en los que el lenguaje fuente tiene una estructura simple, quepermite una traducción de una sentencia fuente a una instrucción en lengujemáquina, guardándose en casi todos los casos esta relación uno a uno.

JORGE SANTIAGO BEJARANO

Page 5: PROCESADORES DE LENGUAJE

COMPILADORES

Un traductor que transforma textos fuente de lenguajes de alto nivel alenguajes de bajo nivel se le denomina compilador (en inglés compiler).

El tiempo que se necesita para traducir un lenguaje de alto nivel a lenguajeobjeto se denomina tiempo de compilación.

JORGE SANTIAGO BEJARANO

Page 6: PROCESADORES DE LENGUAJE

MONTADORES DE ENLACE

La compilación genera un código objeto llamado reubicable, cuyo significadoes que las posiciones de memoria que utiliza son relativas. El montador deenlaces se encarga de colocar detrás del programa principal del usuario,todos los módulos reubicables.

PROCESO DE COMPILACIÓN MONTAJE Y EJECUCIÓN:

JORGE SANTIAGO BEJARANO

Page 7: PROCESADORES DE LENGUAJE

CARGADORES

El cargador se encarga de colocar el fichero ejecutable en memoria,asignando el espacio necesario al programa en memoria, y pasando elcontrol a la primera de las instrucciones a ejecutar, comenzando acontinuación la fase de ejecución. El cargador es un programaincluido con el sistema operativo. Así en el sistema operativo MS-DOS el cargador está dentro del intérprete de comandosCOMMAND.COM.

JORGE SANTIAGO BEJARANO

Page 8: PROCESADORES DE LENGUAJE

INTERPRETES

Los intérpretes son programas que simplemente ejecutan las instrucciones que encuentran en el texto fuente. En muchos casos coexisten en memoria el programa fuente y el programa intérprete. Nótese que en este caso todo se hace en tiempo de ejecución. Algunos de los lenguajes comúnmente interpretados son el BASIC, LOGO, PROLOG, SMALLTALK, APL y LISP.

JORGE SANTIAGO BEJARANO

Page 9: PROCESADORES DE LENGUAJE

DECOMPILADORES

Los decompiladores realizan la tarea inversa a los compiladores, esdecir son un caso particular de los traductores en los cuales elprograma fuente es un lenguaje de bajo nivel y el lenguaje objeto esun lenguaje de nivel superior. Esta tarea es difícil, sobre todo si sedesea que el lenguaje objeto tenga una cierta lógica, a no ser que seconozca la forma en que se obtuvo el programa de bajo nivel (porejemplo si se generó con un compilador determinado, y se tiene elesquema de generación de código de dicho compilador).

Tutorial de como descompilar un programa en visual basic:

http://compiladoressantiago.blogspot.com/2013/04/instalacion-y-prueba-del-vb-decompiler.html

JORGE SANTIAGO BEJARANO

Page 10: PROCESADORES DE LENGUAJE

DESENSAMBLADORES

Un caso particular de los decompiladores son losdesensambladores, que traducen de código máquina aensamblador, quizá es un caso más fácil dado que hay unacorrespondencia directa entre las instruccionesensamblador y código máquina.

JORGE SANTIAGO BEJARANO

Page 11: PROCESADORES DE LENGUAJE

DEPURADORES

Los depuradores (en inglés debuggers, literalmentedesparasitadores) son herramientas que permitenencontrar y corregir los errores de los programas(denominádos en inglés bugs, parásitos). Estasherramientas suelen ir ligadas a los compiladores deforma que el programador pueda comprobar y visualizarla correcta ejecución de un programa.

JORGE SANTIAGO BEJARANO

Page 12: PROCESADORES DE LENGUAJE

ANALIZADORES DE RENDIMIENTO

Los analizadores de rendimiento (denominadoshabitualmente en lengua inglesa profilers) sonherramientas que permiten examinar el comportamientode los programas en tiempo de ejecución, permitiendocomprobar que zonas del código trabajan eficien-temente y cuales deberían ser revisadas por su bajorendimiento. Actualmente la mayor parte de loscompiladores comerciales incorporan analizadores derendimiento, por ejemplo: TURBO PROFILERÒ deBorland y Source ProfilerÒ de Microsoft.

JORGE SANTIAGO BEJARANO

Page 13: PROCESADORES DE LENGUAJE

OPTIMIZADORES DE CÓDIGO

Los optimizadores de código pueden ser herramientasindependientes, o estar incluidas en los compiladores einvocarse por medio de opciones de compilación, siendoesta última forma como se suelen encontrar en la mayorparte de los compiladores comerciales. Una opciónhabitual de optimización es elegir entre velocidad deejecución y tamaño del código ejecutable.

JORGE SANTIAGO BEJARANO

Page 14: PROCESADORES DE LENGUAJE

PREPROCESADORES

Es un caso particular de un traductor en el cual se hacensustituciones de las macros definidas. El preprocesadorrealiza las sustituciones, pero no hace ningún tipo deanálisis del contexto donde las realiza, ésta es laprincipal diferencia entre un preprocesador y otros tiposde procesadores de lenguaje. Un ejemplo depreprocesador es el incorporado por los compiladores delenguaje C.

JORGE SANTIAGO BEJARANO

Page 15: PROCESADORES DE LENGUAJE

FORMATEADORES

Los formateadores pueden ser de muchos tipos y condiferentes fines, desde los dedicados a formateartextos, ecuaciones o programas. Los formateadores deprogramas resaltan su sintaxis o su estructura, para locual es necesario conocer la sintaxis del lenguaje aformatear. También pueden entrar dentro de este grupolos conversores de formatos.

JORGE SANTIAGO BEJARANO

Page 16: PROCESADORES DE LENGUAJE

EDITORES

Los editores de lenguajes de programación consintaxis resaltada por medio de colores o tiposde letra permiten llamar a la atención alprogramador en el momento mismo que estáescribiendo el programa, sin necesidad decompilar, dado que llevan incorporada la sintaxisdel lenguaje.

JORGE SANTIAGO BEJARANO