Logo Studenta

Resumo de Informática Básica (1)

¡Estudia con miles de materiales!

Vista previa del material en texto

A  diferencia  de  los  intérpretes,  los  compiladores  reúnen  varios  elementos  o  fragmentos  en  una  
misma  unidad  (un  programa  ejecutable  o  una  biblioteca),  que  puede  almacenarse  y  reutilizarse.  
Este  proceso  de  traducción  se  conoce  como  compilación.
Compilador
texto.
Construir  un  compilador  implica  dividir  el  proceso  en  una  serie  de  fases  que  varían  según  su  
complejidad.  Estas  fases  generalmente  se  agrupan  en  dos  tareas:  análisis  del  programa  fuente  
y  síntesis  del  programa  objetivo.
Análisis:  implica  verificar  la  corrección  del  programa  fuente,  de  acuerdo  con  la  definición  del  
lenguaje  en  términos  de  la  teoría  formal  del  lenguaje.  Incluye  las  fases  correspondientes  al  
análisis  léxico  (que  consiste  en  descomponer  el  programa  fuente  en  componentes  léxicos),  
análisis  sintáctico  (agrupación  de  componentes  léxicos  en  frases  gramaticales)
En  informática,  un  compilador  es  un  tipo  de  traductor  que  transforma  un  programa  completo  
de  un  lenguaje  de  programación  a  otro.  Normalmente  el  lenguaje  de  destino  es  código  máquina,  
aunque  también  se  puede  traducir  a  código  intermedio  o
Machine Translated by Google
•  Generador  o  back­end:  es  la  parte  que  genera  el  código  máquina,  específico  de  una  
plataforma,  en  base  a  los  resultados  de  la  fase  de  análisis,  realizada  por  este  generador.
Esta  división  permite  utilizar  el  mismo  generador  para  crear  código  de  máquina  para  varios  
lenguajes  de  programación  diferentes,  y  utilizar  el  mismo  analizador  para  examinar  el  código  
fuente  de  un  lenguaje  de  programación  específico  para  producir  código  de  máquina  en  
múltiples  plataformas.  Por  lo  general,  incluye  generación  y  optimización  de  código  dependiente  
de  la  máquina.
En  los  primeros  días  de  la  informática,  los  compiladores  se  consideraban  uno  de  los  programas  
más  complejos  que  existían.  Los  primeros  compiladores  se  hicieron  programándolos  
directamente  en  lenguaje  de  máquina  o  en  ensamblador.
Esta  taxonomía  de  tipos  de  compiladores  no  es  exclusiva,  por  lo  que  puede  haber  compiladores  
que  se  clasifican  en  varias  categorías:
Una  vez  que  un  compilador  está  disponible,  se  pueden  escribir  nuevas  versiones  del  
compilador  (u  otros  compiladores  diferentes)  en  el  lenguaje  que  compila  el  compilador.
y  análisis  semántico  (comprobación  de  la  validez  semántica  de  las  oraciones  aceptadas  en  la  fase  de  análisis  
sintáctico).
•  Compiladores  cruzados:  generan  código  para  un  sistema  diferente  al  que  están  
trabajando.
Existen  herramientas  que  facilitan  la  escritura  de  compiladores  o  intérpretes  informáticos.  
Estas  herramientas  le  permiten  generar  el  esqueleto  del  analizador  a  partir  de  un
•  Compiladores  de  un  solo  paso:  generan  código  de  máquina  a  partir  de  una  única  lectura  
del  código  fuente.
Síntesis:  su  objetivo  es  la  generación  de  salida  expresada  en  el  lenguaje  objeto  y  generalmente  
se  compone  de  una  o  más  combinaciones  de  fases  de  generación  de  código  (normalmente  
código  intermedio  o  código  objeto)  y  optimización  del  código  (en  la  búsqueda  de  obtener  un  
programa  objetivo  lo  más  eficiente  posible).  lo  más  posible,  según  su  complejidad
•  Optimización  de  compiladores:  realice  cambios  en  el  código  para  mejorar  su  
eficiencia,  manteniendo  la  funcionalidad  del  programa  original.
complejidad  computacional  o  de  Kolmogorov:  tiempo  de  ejecución,  espacio  durante  la  
ejecución,  espacio  a  almacenar  fuera  de  la  ejecución,  etc.).
•  Compiladores  multipaso:  necesitan  leer  el  código  fuente  varias  veces  antes
Alternativamente,  las  fases  descritas  para  las  tareas  de  análisis  y  síntesis  se  pueden  agrupar  
en:
producir  el  código  de  máquina.
•  Parser  o  front­end:  es  la  parte  que  analiza  el  código  fuente,  comprueba  su  validez,  
genera  el  árbol  de  derivación  y  rellena  los  valores  en  la  tabla  de  símbolos.  Esta  parte  
generalmente  es  independiente  de  la  plataforma  o  sistema  para  el  que  se  va  a  
compilar  y  está  compuesta  por  las  fases  entre  el  análisis  léxico  y  la  generación  de  
código  intermedio.
•  Compiladores  JIT:  forman  parte  de  un  intérprete  y  compilan  partes  del
código  según  sea  necesario.
Machine Translated by Google

Continuar navegando