procesadores de lenguajes

19

Upload: liz-barba

Post on 19-Mar-2016

215 views

Category:

Documents


1 download

DESCRIPTION

PROCESADORES DE LENGUAJES

TRANSCRIPT

Page 2: PROCESADORES DE LENGUAJES

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, algunas de ellas son las siguientes (expresando entre paréntesis el término equivalente en lengua inglesa):

Page 3: PROCESADORES DE LENGUAJES

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

Page 4: PROCESADORES DE LENGUAJES

Un traductor es un programa que procesa un texto fuente y genera un texto objeto. El traductor está escrito en un lenguaje de implementación (LI) o también denominado lenguaje host. El texto fuente está escrito en lenguaje fuente (LF), por ejemplo un lenguaje de alto nivel. El texto objeto está 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 5. La notación en T también se puede representar de una forma abreviada como: LFLILO.

Page 5: PROCESADORES DE LENGUAJES

El lenguaje fuente (LF) es el lenguaje origen que transforma el traductor (por ejemplo C, C++, Pascal, FORTRAN, PL/I, COBOL, ADA, MODULA-2, BASIC, C..). También pueden ser lenguajes de bajo nivel.

El lenguaje objeto (LO) es el lenguaje al que se traduce el texto fuente. Los lenguajes objeto pueden ser por ejemplo otro lenguaje de alto nivel, el lenguaje máquina de un microprocesador determinado, un lenguaje ensamblador,...

El lenguaje de implementación (LI) o lenguaje host es el lenguaje en que está escrito el traductor. Puede ser cualquier lenguaje, desde un lenguaje de alto nivel a un lenguaje máquina.

Page 6: PROCESADORES DE LENGUAJES

Si el lenguaje fuente es el lenguaje ensamblador (en inglés assembly) y el lenguaje objeto es el lenguaje máquina, entonces al traductor se le llama ensamblador (en inglés assembler). Los ensambladores son traductores sencillos, en los que el lenguaje fuente tiene una estructura simple, que permite una traducción de una sentencia fuente a una instrucción en lenguje máquina, guardándose en casi todos los casos esta relación uno a uno. Hay ensambladores que tienen macroinstrucciones en su lenguaje. Estas macroinstrucciones, de acuerdo con su nombre, se suelen traducir a varias instrucciones de máquina. A este tipo de ensambladores se les denomina macroensambladores (en inglés macroassembler). Actualmente la mayor parte de los ensambladores comerciales son macroensam- bladores

Page 7: PROCESADORES DE LENGUAJES

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

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

(compilation time). El tiempo que tarda en ejecutarse un programa objeto se denomina tiempo de ejecución (run time).

Page 8: PROCESADORES DE LENGUAJES

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

PROCESO DE COMPILACION, MONTAJE Y EJECUCION

Page 9: PROCESADORES DE LENGUAJES

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

Page 10: PROCESADORES DE LENGUAJES

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 (fig. 9). 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.

Page 11: PROCESADORES DE LENGUAJES

DECOMPILADORES

Page 12: PROCESADORES DE LENGUAJES

Desensambladores

Page 13: PROCESADORES DE LENGUAJES

Depuradores

Page 14: PROCESADORES DE LENGUAJES

Analizadores de rendimiento

Page 15: PROCESADORES DE LENGUAJES

Optimizadores de código

Page 16: PROCESADORES DE LENGUAJES

Compresores

Page 17: PROCESADORES DE LENGUAJES

Preprocesadores

Page 18: PROCESADORES DE LENGUAJES

Formateadores

Page 19: PROCESADORES DE LENGUAJES

Editores