You are on page 1of 16

|  

 


 
   
 
| 

  

 

| 

 
 
 
   
 
 

 
 
   

| 

 
 
  
  
 
  
 


 

 
   
 

| 

Un compilador es un programa que
lee un programa en un lenguaje y
lo traduce a un programa equivalente en otro lenguaje,
y además informa al usuario sobre
la presencia de errores en el programa de entrada

m  m
?    

 

   
 

!parente complejidad- Tareas básicas


| !|!| GEER!
£ e una pasada o de múltiples pasadas
£ e carga y de ejecución
£ e depuración o de optimización

HTR!
£ Experimentación relacionada a traducción de
fórmulas
£ 1950: difícil escritura
£ Primer RTR!: 18 años
£ Hoy: técnicas sistemáticas, lenguajes de
implementación, entornos de programación y
herramientas de software
ÿ!"
|omputadoras Hombre
| 
# 

$


|   

# 
$



$

 | 

|   
  
 
# 
$

   % 
ÿ!&'(&)**"!

£ El iseño de un compilador surge como resultado de:

esarrollo de un nuevo lenguaje de programación


!dición de extensiones a los ya existentes
Explotación de las características del hardware

£ ! futuro:

Extensión para el cómputo paralelo y distribuido


Explotación de características multimedia (MMX)
!+$$#+$|!#|,%
£ E!MB !R
Traducen programas escritos en lenguaje ensamblador
a código máquina
£
|MP !R
Traducen programas escritos en lenguaje de alto nivel a
código intermedio o a código máquina
£ TERPRETE
o genera código objeto, analiza y ejecuta directamente
cada proposición del Programa uente (P)
£ PREPR|E!R
ustituyen macros, incluyen archivos o extensión del
lenguaje.
TEM! P!R! PR|E!MET E U EGU!E

estructura del programa fuente

 ?  

programa fuente

?  

programa objeto en lenguaje ensamblador


  
código de máquina relocalizable
biblioteca
   ?  
? archivos obj.relocal.

código de máquina absoluto


P!RTE E ! |MP !|

£ !  (Etapa nicial):
ivide al P en sus elementos componentes y crea
una representación intermedia.
e determinan las operaciones y se registran en una
estructura de árbol (ej. árbol sintáctico)

£  TE (Etapa inal):


|onstruye el P deseado a partir de la representación
ntermedia (requiere técnicas más especializadas)
U !MBETE GEER! E |MP !|

Fuente

Análisis léxico
Análisis sintáctico
Análisis semántico Más:
Sistemas de
Intermedio edición y
depuración
Generador de código

Código relocalizable

Enlazador

Objeto
!  E PRGR!M! UETE

£ !!  E! ( éxico- Exploración- canner)


e lee el programa como una cadena de izquierda a derecha,
se agrupan y se generan ?m 
 ? 
 
(secuencia de caracteres con significado colectivo)

£ !!  ER!RQU| (intáctico- Parser)


os componentes léxicos se agrupan en colecciones
anidadas con un significado colectivo ( frases gramaticales
que por lo general se representan mediante
@   
@?
? A

£ !!  EM!T|


e realizan revisiones para asegurar que los componentes de
un programa se ajustan de un modo significativo
EEMP  E ! :
   -.  
/ 
012

a ) |omponentes léxicos:
1. El identificador m ?
ë. El símbolo de asignación 
3. El identificador  ?
4. El signo de suma: 
5. El identificador ?
6. El signo de multiplicación: 
7. El número 

os identificadores o nombres reconocidos se organizan en una

    que se usará en los pasos siguientes


!E E U |MP !R

PRGR!M! UETE

analizador léxico
analizador sintáctico
administrador analizador semántico manejador
de la tabla generador de código intermedio de errores
de símbolos optimizador de código
generador de código

PRGR!M! BET

|ada fase transforma al P de una representación a otra


EQUEM! E B QUE E U |MP !R

UETE |ompilador

!! 
canner
Tabla
Parser de
símbolos

TE

Prep. para la Gen.


del código

BET Gener. del código


ETRU|TUR! U|! E U |MP !R
 



3

ETE|!

uente Explorador Recono- Generador bjeto


cedor de código

Tabla de
símbolos
ETE||
 E RM!|
 E ERRRE

£ |ada fase puede encontrar errores y debe tratarlo para


continuar con la |ompilación, permitiendo detectar más
errores

£ as fases de !nalisis intáctico y emántico manejan la


mayoría de los errores

£ En el !náilsis emántico se detectan errores donde la


estructura sintáctica es correcta pero no tiene significado
la operación
( Por. ej. sumar dos  , donde uno es el nombre de una
matriz y el otro un nombre de procedimiento)
$$%4*5$&ÿ$""#$%

ME  EGU!E |!R!|TERT|!

|ompilado ortran, |B , intaxis rigurosa,


| | , Pascal velocidad y tamaño

nterpretado isp,! , B!|, esempeño lento.


Q !ctividades no planea-
das. intaxis relajadas

Pseudocompilado ava Transportabilidad


absoluta, desempeño
intermedio. intaxis
rigurosa

You might also like