Está en la página 1de 20

UNIDAD 1: LENGUAJES DE PROGRAMACIN Y

TEORA DE LENGUAJES
SESIN 5: PROGRAMACION DE SISTEMAS PROCESADORES DE LENGUAJES
REFLEXIONA:

Qu es un Compilador?

Com se desarrolla su ejecucin?


LOGRO DE LA SESIN

Al trmino de la sesin el estudiante aprender los conceptos


generales de los procesadores de leguajes (COMPILADORES), su
estructura general, su especificaciones y las aplicaciones que puede
realizar

Temario:
1. Definicines: Traductores, Interpretes, Compiladores
2. Tipos de Compiladores
3. Estructura de un Compilador.
4. Especificaciones y aplicaciones
DEFINICIN DE COMPILADOR

Traductor: Programa que toma como entrada un texto escrito (llamado fuente) y da
como salida otro texto (llamado objeto).

Compilador: Traductor cuyo fuente es un lenguaje de alto nivel y cuyo objeto es un


lenguaje de bajo nivel.

Interprete: Compilador que ejecuta al mismo tiempo que traduce.


DEFINICIN DE COMPILADOR

Ventajas de los compiladores frente a los interpretes

Solo se compilan una vez

Ejecucin ms rpida

Optimizacin de cdigo e Informacin del error ms detallada.


DEFINICIN DE COMPILADOR

Ventajas de los Interpretes frente a los Compiladores

Menor coste espacial

Mayor interactividad en desarrollo

Aadir cdigo en caliente


TIPOS DE COMPILADORES

Ensamblador

Compilador cruzado

Compilador con montador

Autocompilador

Metacompilador

Decompilador
HISTORIA DE LOS COMPILADORES

Qu fue primero el compilador o el programa?


FORTRAN: Primer lenguaje de alto nivel
ALGOL: Lenguaje estructurado en mdulos
Separacin Front-End y Back-End para compilar
lenguajes en distintas mquinas
Creacin del lenguaje intermedio UNCOL
Definicin de las distintas fases de creacin de
compiladores
Anlisis Lxico

Anlisis Sintctico

Anlisis Semntico

Generacin de
Cdigo Intermedio
ESTRUCTURA DE UN COMPILADOR

Geston de errores

Tabla de smbolos
Optimizacin de
Cdigo intermedio

Generacin y
Optimizacin de
cdigo final
ESTRUCTURA DE UN COMPILADOR

Anlisis lxico

Comprueba los valores unitarios del programa (tokens):


Palabras reservadas(do, while, if, )
Palabras no especificas(identificadores, constantes)
Formados por tipo y lexema

Int contador
Identificador = tipo
contador = lexema
ESTRUCTURA DE UN COMPILADOR

Anlisis Sintctico

Recibe los tokens del analizador lxico y

Comprueba que estn ordenados conforme a la gramtica


ESTRUCTURA DE UN COMPILADOR

Anlisis Semntico

Comprueba la validez del programa

Comprobacin de tipos en operadores


ESTRUCTURA DE UN COMPILADOR

Generacin de cdigo intermedio

Codifica el lenguaje fuente en un lenguaje intermedio entre el lenguaje objeto

Permite la separacin entre front-end y back-end

Utilizacin de cdigo de 3 direcciones (A=B+C)

Instrucciones condicionales y saltos


ESTRUCTURA DE UN COMPILADOR

Optimizacin de cdigo intermedio

Permite realizar mejoras en el cdigo intermedio

Eliminacin de saltos consecutivos

Factorizaciones

Eliminar cdigo intil

Optimizacin de bucles
ESTRUCTURA DE UN COMPILADOR

Generacin de cdigo objeto

Generar una secuencia de instrucciones en cdigo ensamblador o mquina a


partir del cdigo intermedio

A=B+C

LOAD B
ADD C
STORE A
ESTRUCTURA DE UN COMPILADOR

Tabla de smbolos

Tabla donde se registran los identificadores, constantes, funciones y otros


objetos especificados en el programa fuente

El compilador desarrolla funciones comunes de acceso a ella


ESTRUCTURA DE UN COMPILADOR

Manejo de errores
Mensajes de error que el compilador emite cuando encuentra
una inconsistencia en cualquiera de las fases de compilacin
Normalmente en una compilacin no se muestran todos los
errores producidos:
Ocultacin de otros errores
Avalancha de errores
Se puede
Pararse al encontrar cualquier error
Intentar recuperar todos los errores de una pasada
ESTRUCTURA DE UN COMPILADOR

Anlisis lxico FRONT-END


Fuente Anlisis sintctico
Anlisis semantico
Generacin de cdigo intermedio

Cdigo
Intermedio

BACK-END Optimizacin de cdigo intermedio Cdigo


Generacin de cdigo objeto objeto
Optimizacin de cdigo objeto
ESPECIFICACIN DE UN COMPILADOR

Especificacin lxica:
Tokens mediante expresiones regulares

Especificacin sintctica:
Gramticas independientes del contexto

Especificacin semntica:
Lenguaje natural
APLICACIONES DE LAS TCNICAS DE
COMPILACIN
Interfaces textuales
Manejo de ficheros de texto estructurado
Procesadores de texto
Diseo e interpretacin de lenguajes
Gestin de bases de datos
Procesamiento del lenguaje natural
Traduccin de formatos de ficheros
Clculo simblico
Reconocimiento sintctico de formas

También podría gustarte