Compiladores

Solo disponible en BuenasTareas
  • Páginas : 6 (1420 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de enero de 2010
Leer documento completo
Vista previa del texto
Lección 1: Introducción a los compiladores 1) Introducción 2) Las partes de un compilador
2.1) El analizador léxico 2.2) El analizador sintáctico 2.3) El analizador semántico 2.4) El optimizador 2.5) El generador de código 2.6) La tabla de símbolos

3) ¿Y los intérpretes?

Compiladores I. C.P.S. Universidad de Zaragoza

-J.Ezpeleta-

1

Introducción • ¿Qué es un compilador?
–Programa que lee un programa (fuente) en un lenguaje – Lo traduce a un programa EQUIVALENTE en otro lenguaje (objeto) – Además: » da mensajes de error » lleva a cabo determinadas “correcciones” (recuperación de errores) » puede optimizar el código generado
programa fuente compilador errores programa objeto

• Permite programar “independientemente” de la máquina
– Importante, ya que el número demáquinas diferente crece deprisa
Compiladores I. C.P.S. Universidad de Zaragoza -J.Ezpeleta2

Introducción • ¿De dónde el nombre “compilador”?
– Murray Hopper (50’s) – La traducción se veía como la “compilación” de una secuencia de subprogramas tomados de una librería (biblioteca) de programas – Compilación (actual) se llamaba “programación automática” » se veía como algo futurista – Primeroscompiladores modernos: FORTRAN (finales 50) » “independencia” de la máquina » coste: 18 personas/año » desarrollo de técnicas “ad hoc”

Compiladores I. C.P.S. Universidad de Zaragoza

-J.Ezpeleta-

3

Introducción • No siempre el lenguaje objeto tiene que ser de “bajo nivel”
(traductor)

• Técnicas aplicables para:
– editores/formateadores de texto » nroff, troff, eqn, tbl, pic de UNIX,TeX– lenguajes de consulta » SQL, shells – transformación de formatos de ficheros

Compiladores I. C.P.S. Universidad de Zaragoza

-J.Ezpeleta-

4

Las partes de un compilador
preprocesador programa fuente scanner tabla de símbolos tokens analizador sintáctico (parser) estructura sintáctica analizador semántico analizador léxico (scanner)

generador código intermedio código intermediooptimizador generador código objeto código objeto optimizador
Compiladores I. C.P.S. Universidad de Zaragoza -J.Ezpeleta5

Las partes de un compilador • Primera fase (precompilador) • Segunda fase
– – – – – no siempre se realiza sustituciones de macros eliminación de comentarios inclusión de ficheros extensiones al lenguaje (C+SQL) – es la parte fundamental (y siempre presente) – consta de: »analizador léxico » analizador sintáctico » generador de código – traduce el código fuente a otro objeto » puede ser el definitivo » puede ser un código intermedio

Compiladores I. C.P.S. Universidad de Zaragoza

-J.Ezpeleta-

6

Preprocesador (precompilador) man cpp
etc. The C preprocessor provides four separate facilities that you can use as you see fit: • Inclusion of header files.These are files of declarations that can be substituted into your program. • Macro expansion. You can define macros, which are abbreviations fo arbitrary fragments of C code, and then the C preprocessor will re place the macros with their definitions throughout the program. • Conditional compilation. Using special preprocessing directives, you can include or exclude parts of the program according tovarious conditions. • Line control. If you use a program to combine or rearrange source files into an intermediate file which is then compiled, you can us line control to inform the compiler of where each source line originally came from. etc.
Compiladores I. C.P.S. Universidad de Zaragoza -J.Ezpeleta7

Las partes de un compilador • Tercera fase:
– no siempre presente – realiza optimizaciones(algunas) sobre el código (intermedio) generado

• Muchas variaciones posibles:
– sin preprocesador – sin usar código intermedio – optimizando directamente sobre el ensamblador de la máquina – generar directamente binario, sin pasar por el ensamblador – .........

• Cuarta fase:
– traduce el código intermedio (optimizado) a » ensamblador » Binario

• Quinta fase:
– Optimización ligada...
tracking img