You are on page 1of 5

COMPILADORES

Un resumen general acerca de lo que es un compilador y todos los


conceptos que forman parte del tema.

LENGUAJE
Para iniciar vamos a definir de forma sencilla y simple que es un lenguaje:
Lenguaje es un sistema de comunicacin estructurado.
Prcticamente es una forma de comunicacin con ciertas reglas, y se
puede clasificar de dos formas, lenguaje natural y lenguaje formal.
Lenguaje natural: Es aquel que se enriquece progresivamente, puede ser
ambiguo y no puede llegar a formalizarse completamente, es el lenguaje
que utilizamos a diario para comunicarnos.
Lenguaje formal: Es aquel que es estructurado, diseado y objetivo, se
desarrolla con base en una teora. Ej. Un lenguaje de programacin.
Los lenguajes formales son los que interesan en este contexto y
principalmente los lenguajes de programacin que sirven para generar
programas y se clasifica en tres niveles:
- Lenguaje de alto nivel
- Lenguaje ensamblador
- Lenguaje de mquina.

Lenguaje de alto nivel: Es el que utilizamos para escribir algn
programa y que utiliza palabras del lenguaje natural, es entendible por
el programador.
Lenguaje ensamblador: lenguaje simblico que permite programacin
pero que es poco amigable para el usuario, es un lenguaje de bajo nivel.
Lenguaje de maquina: cdigo binario y nicamente entendible por un
CPU.

Por ultimo en cuanto a conceptos de lenguajes se refiere tenemos las
generaciones de los lenguajes, las cuales son:
- 1ra generacin: Lenguaje de maquina (antes de 1950)
- 2da generacin: lenguaje ensamblador (en los aos cincuenta)
analizador lexico
analizador
sintactico
analizador
semantico
Generacion de
codigo intermedio
optimizador
codigo intermedio
generacion codigo
objeto
- 3ra generacin: lenguajes estructurados, orientado a
procedimientos (1965)
- 4ta generacin: Lenguaje orientado a objetos (1990 en adelante)
- 5ta generacin: Lenguajes orientados a I.A.


COMPILADOR Y SUS FASES
Conociendo los conceptos principales de lenguaje en el caso que nos
interesa vamos a definir que es en s un compilador y sus fases:

Compilador: Es un software que se encarga de convertir un lenguaje de
alto nivel en lenguaje de mquina.
Se divide en fases, cada una se encarga de una tarea especfica y son
secuenciales:















Y en cada fase manejan errores y una tabla de smbolos teniendo como
entrada el cdigo fuente en un lenguaje de alto nivel y como salida el
cdigo objeto que es en lenguaje de mquina.

FASES: Explicacin de cada una de las fases de forma general.
Analizador lxico:
Evala carcter a carcter y estos se agrupan en componentes lxicos, se
realiza de izquierda a derecha y no es recursivo.
Analizador sintctico:
Agrupa los componentes lxicos obtenidos en la fase anterior de forma
jerrquica para construir colecciones anidadas con significado colectivo.
Analizador Semntico:
Es el encargado de analizar que la estructura jerrquica tenga un
significado lgico para el lenguaje.

Generador de cdigo intermedio:
Se encarga de generar un cdigo entre el de alto nivel y el de bajo nivel.
Optimizador de cdigo intermedio:
Se mejora el cdigo intermedio para que sea un cdigo de maquina ms
rpido de ejecutar.
Generador de cdigo objeto:
El lenguaje intermedio se convierte finalmente a lenguaje binario.
Manejo de errores: Detecta los errores y los informa, debe ser capaz de
recuperarse de los mismos.
Tabla de smbolos: Estructura de datos donde se almacenan diferentes
identificadores y sus propiedades.








GRAMATICA Y JERARQUIA DE
CHOMSKY
GRAMATICA: El concepto general de gramtica nos dice que es un conjunto de
reglas que se aplican a una lengua o lenguaje, estudiando la forma y
composicin de las palabras, nos servir para definir las reglas que tendr el
lenguaje de nuestro compilador, las reglas que aceptara el mismo.
Una gramtica para un lenguaje formal (Gramtica formal) est compuesta de
los siguientes elementos:
- G = gramtica
- L(G) = lenguaje definido por la gramtica G
- = alfabeto del lenguaje (smbolos permitidos por el lenguaje) o Smbolos
Terminales
- N = Smbolos no terminales
- P = Conjunto de reglas de escritura, tambin conocidas como
producciones o reglas de derivacin
-

= Smbolo inicial
Con el concepto de gramtica formal, se puede pasar ahora a ver cmo estn
clasificadas, por medio de la Jerarqua de Chomsky la cual las clasifica en
cuatro tipos distintos:

TIPO GRAMATICA (Nombre) Restricciones en P Autmata (Reconocedor)
0 No restringidas debe tener un no terminal,
puede tener cualquier
longitud.

no tiene restriccion
Maquina de Turing

Cinta infinita
1 Dependientes del
contexto
puede contener ms de un
smbolo pero por lo menos
debe tener un no terminal.

Longitud() Longitud ()
Maquina de Turing

Automata linealmente
acotado.
2 Independientes del
contexto
N (del lado de puede
haber un nico terminal)

cualquier cadena
( U N)
Autmatas
descendentes (pilas)
3 Regular :=x ; := x
1 terminal del lado de y
solo dos elementos del lado
de
Donde:
, N y
x

Autmata finito

Expresiones regulares


OBSERVACIONES:
- Las reglas de produccin tienen las siguiente notacin: := (ALFA
produce BETA)
- Las gramticas regulares o tipo 3 se asocian al analizador lxico.
- Las gramticas tipo 2 se asocian al analizador sintctico y parte del
semntico.

You might also like