Está en la página 1de 7

COMPILADORES

INTRODUCCION A LA TEORIA DE LENGUAJES

INSTITUTO TECNOLOGICO DE TLAJOMULCO, JALISCO


PROFESORA: ISAURA MUÑIZ ORTIZ
INTRODUCCION

Definición de compilador:

Un compilador es un tipo especial de traductor en el que el lenguaje fuente es un lenguaje


de alto nivel y el lenguaje objeto es de bajo nivel (figura 1.1).

Un traductor es un programa que convierte el texto escrito en un lenguaje en texto escrito


en otro lenguaje.

Un ensamblador es un compilador donde el lenguaje fuente es un lenguaje ensamblador


y el lenguaje objeto es el código de la máquina.
La diferencia entre compilador e intérprete es que el compilador analiza todo el programa
fuente, crea el programa objeto y luego permite su ejecución (sólo del programa objeto
obtenido) y el intérprete lee sentencia por sentencia el programa fuente, la convierte en
código objeto y la ejecuta. Por lo tanto, es fácil comprender que tras compilar un
programa, su ejecución es mucho más rápida que la ejecución de un programa
interpretado.
DESARROLLO

Estructura de un compilador.
Un compilador es un programa complejo que consta de una serie de pasos, generalmente
entrelazados, y que como resultado convierte un programa en un lenguaje de alto nivel
en otro de bajo nivel (generalmente código máquina o lenguaje ensamblador).

Los pasos o fases de la compilación están actualmente bien definidos y en cierta medida
sistematizados, aunque no están faltos de dificultad. Esta aumenta conforme se
incrementa la riqueza del lenguaje a compilar.

Las fases del proceso de compilación son las siguientes (figura 1.3):
Ligadores.

Tanto los ligadores como los ensambladores a menudo dependen de un programa


conocido como ligador, el cual recopila el código que se compila o ensambla por
separado.

Un ligador también conecta un programa objeto con el código de funciones de librerías


estándar, así como unos recursos suministrados por el sistema operativo de la
computadora, tales como asignados de memoria y dispositivos de entrada y salida.

Cargador.

El uso del cargador al final hace más flexible la ejecución del código, pero el proceso de
carga corre en segundo plano o conjuntamente con el ligado.

Con frecuencia un compilador, ensamblador o ligador producirá un código que todavía


no está completamente organizado.

Procesadores.

Es un programa separado que es invocado por el compilado antes de que comience la


traducción real.

El compilador es asistido por otros programas para realizar su tarea, por ejemplo se utiliza
para añadir ficheros, ejecutar macros, eliminar comentarios.

Editores

Tales editores se denominan basados en estructura y ya incluyen algunas de las


operaciones de compilador, de manera que por ejemplo, puede informarse el
programador de los errores a media que el programa se vaya escribiendo en lugar de
hacerlo en su compilación.

Depuradores

El depurador permite al programador ver paso a paso lo que ocurre durante la ejecución
del programa.
Hay compiladores que no generan código máquina sino un programa en ensamblador,
por lo que habrá que utilizar un programa ensamblador para generar el código máquina.
Perfilador

Un perfilador es un programa que recolecta estadísticas sobre el comportamiento de un


programa objeto durante la ejecución. A veces el compilador utilizara incluso la salida del
perfilador para mejorar de manera automática el código objeto sin la intervención del
programador.

Proceso de traducción

Un compilador se compone internamente de varias etapas, o fases, que realizan distintas


operaciones lógicas. Las fases de un compilador se ilustran en la siguiente figura, junto
con los tres componentes auxiliares que interactúan con alguna de ellas.
hay otros valores que se deben calcular en el proceso de traducción dirigida por la
sintaxis. Una vez que conocemos los valores de los atributos, ya podemos realizar el
análisis semántico.
Pero para calcular los valores de los atributos, es preciso incluir las llamadas acciones
semánticas, que no son más que trozos de código en un lenguaje de programación
concreto, que manipulan los símbolos y sus atributos.
Por ejemplo, en el caso anterior, debemos incluir en la tabla de símbolos la dirección de
la variable declarada y además su tipo. La dirección la podemos calcular a partir de la
información que hay en la tabla de símbolos y de información global que utilicemos, pero
el tipo sólo lo podemos obtener de la propia gramática.

Conclusiones

Durante el transcurso de la materia he aprendido sobre términos no antes conocidos por


mí, como lo son Traductores, Compilador, Interprete, Tipos de Análisis que tiene el
compilador, así como también acerca de un poco al final sobre el lenguaje ensamblador.

Aprendí a través de las diferentes prácticas como realizar la fase de análisis léxico, donde
una de las competencias a adquirir en el proyecto final es realizar todas esas fases en el
mismo lenguaje pero con una interfaz gráfica.

Como estudiante de la carrera Ing. En Sistemas, el cursar la unidad compiladores


e interpretes ha sido de mucha importancia y ha aportado conocimientos que sé que
como estudiante de esta área me serán de mucha utilidad en mi carrera profesional.
Bibliografía

Breve introducción a Cup. Universidad Carlos III. Dto. de Ingeniería Telemática.


Breve introducción a JLex. Universidad Carlos III. Dto. de Ingeniería Telemática.
Aho, A. V. y otros. Compiladores: Principios, técnicas y herramientas. Addison-Wesley
Iberoamericana. 1990
Alfonseca, M. y otros. Teoría de lenguajes, gramáticas y autómatas. Ediciones
Universidad y Cultura. 1987
Álvarez, F.J. Ens2001- Manual de usuario. 2002
Cueva Lovelle, J. M. Análisis léxico en procesadores de lenguaje. Universidad de Oviedo.
Dto. de Informática. 2000
Cueva Lovelle, J. M. Lenguajes, gramáticas y autómatas. Universidad de Oviedo. Dto. de
Informática. 2001
Eckel, B. Piensa en Java. Prentice Hall. 2002
Fernández, G. y otros. Fundamentos de informática. Alianza. 1987
Gálvez Rojas, S. y otros. Java a tope: Traductores y compiladores con Lex/Yacc,
JFlex/Cup y JavaCC. Edición electrónica. 2005
Garrido Alenda, A. y otros. Diseño de compiladores. Publicaciones Universidad de
Alicante. 2002
Hopcroft, J. E. y otros. Introducción a la teoría de autómatas, lenguajes y computación.
Pearson Educación. 2002
Juan Fuente, A. A. y otros. Tablas de símbolos. Apuntes Universidad de Oviedo. Dto. de
Informática. 2004
Miguel, P. Fundamentos de los computadores. Ed. Paraninfo. 1996
Teufel, B. y otros. Compiladores: conceptos fundamentales. Addison-Wesley
Iberoamericana. 1995
COMPILADORES
Teoría e implementación
Jacinto Ruiz Catalán

También podría gustarte