INTRODUCCIÓN A LOS
COMPILADORES
Mcs. Hellyss Mendoza
HISTORIA
1.
1940: se construyen primera computadoras digitales.
2.
1950: Hooper acuña el termino compilador.
3.
1960: se diseña el lenguaje LISP.
4.
1970:los avances son mayores y aparecen los programas que
automatizan los proceso.
5.
1980: comienza las técnicas de mejoramientos.
6.
1990: la actualidad.
COMPILADOR
•PROGRAMA FUENTE
• PROGRAMA OBJETO
•ANÁLISIS
•SÍNTESIS
CLASIFICACIÓN
Una sola pasada
Pasadas múltiples
Optimación:
Compiladores incrementales
Ensamblador:
Compilador cruzado:
Compilador con montador:
Autocompilador:
Metacompilador
Descompilador
Programa Fuente:
M:=R*(C *(F+5))
Análisis Léxico:
Identificador: M
Símbolo de Asignación: =
Identificador: R
Operador: *
Paréntesis abierto: (
Identificador: C
Operador: *
Paréntesis abierto: (
Identificador: F
Operador:+
Constante Numérica: 5
Paréntesis Cerrado: )
Paréntesis Cerrado: )
Proposición de asignación
M:=R*(C *(F+5))
:=
Identificador
Expresión
Expresión
M
identificador
*
*
R
Identificador
Expresion
C
+
Identificador
F
Numero
5
:=
:=
*
id1
*
id2
+
id1
id3
+
id3
+
id4
*
id2
5
id4
Entero-real
5
Temp1=id4+ 5
Temp2=id3*temp1
Id1=id2*temp2
MOVF
MULF
MOVF
ADDF
MOVF
id3, R2
#5, R2
id2, R1
R2, R1
R1, idl
Temp1=entero-real (5)
Temp2=id4+Temp1
Temp3=id3*temp2
Temp4=id2*temp3
Id1=temp4
La representación intermedia debe tener 2 propiedades importantes:
 Debe ser fácil de producir
 Fácil de traducir al programa objeto
 Lenguaje
 Alfabeto
Dado un alfabeto Σ, un lenguaje sobre Σ
es un conjunto de palabras sobre dicho
alfabeto
Ejemplo:
L1= {Camisa,door, table,for,antena, werse,aaaa }
L2={baba,lacada,caca,dalala }
Es
un
conjunto
no
vació
de símbolos, es también un
conjunto finito de elementos. Se
suele denotar con la letra Σ.
Ejemplo:
Σ ={a,b,...z } Σ = { 0,1}
Σ ={0,1,2,3,4,5,6,7,8,9}
 Palabra
Se denomina palabra a toda secuencia finita de letras formada con los
símbolos de un alfabeto Σ. la cadena vacía que se denota con el símbolo
ε , es una palabra sobre cualquier alfabeto
Ejemplo:
Camisa, door, table, for, antena, werse, aaaa,
Si Β = {0,1}, son cadenas sobre Β:
α1 = 0101
α2 = 1111
α3 = 0111000
α4 = ε
Hallar:
Longitud:
|α1| = I 4 I
|α3| =|7|
Potencia:
(α1)2 = 0101 0101
(α2)5= 1111 1111 1111 1111 1111
(α3)3= 0111000 0111000 0111000
Descargar

introducción a los compiladores