portafolio de compiladores
-
Upload
hanibal-tzoc -
Category
Documents
-
view
220 -
download
0
Transcript of portafolio de compiladores
-
8/19/2019 portafolio de compiladores
1/28
UNIVERSIDAD CAPITÁN GENERAL
GERARDO BARRIOS
FACULTAD DE CIENCIA Y TECNOLOGÍA
Asignatura:Compiladores e intérpretes
Do!nt!:Ing. Mario Ernesto Chevez Flores
Pro"!to:Portafolio
Estu#iant!:
Angel Anibal Tzoc Lopez
F!$a:! de marzo de "#$
-
8/19/2019 portafolio de compiladores
2/28
INTRODUCCION
EL PROPOSITO DE ESTE DOCUMENTO ES DEJAR EVIDENCIADO EL
TEMARIO DE LA ASIGNATURA COMPILADORES E INTERPRETES
LLEVANDO A CABO EL RESUMEN DE CADA UNA DE LOS TEMAS A
ESTUDIAR DONDE REFLEJARA LO COMPRENDIDO DE CADA UNO DE
LAS LAMINAS QUE SE PRESENTARAN
-
8/19/2019 portafolio de compiladores
3/28
ÍndiceObjetivo gener! "
Objetivo gener! "
Objetivos específicos 4
Te#$ %e$rro!!%o$ &
Uni%% '(
Introducción a los traductores 9
E$tr)*t)r %e )n *o#+i!%or ,,,,,,,,,,,,,,,-'.
Met!eng)je$,,,,,,,,,,,,,,,,,,,,,-,//
*on*!)$ion,,,,,,,,,,,,,,,,,,,,,,,-/.
-
8/19/2019 portafolio de compiladores
4/28
Objetivo gener!
De$rro!!r e! +ort0o!io *on !o$ %i0erente$ ti+o$ %e te#$ e$t)%i%o$
%)rnte ! $ignt)r %e *o#+i!%ore$ e int1r+rete$
Objetivo$ e$+e*20i*o$
An!i3r *% te# %e$rro!!%o %)rnte ! $ignt)r %e *o#+i!%ore$
e inter+rete$
E$tb!e*er )n re$)#en +or *% te# %e$rro!!%o en ! $ignt)r %e
*o#+i!%ore$ e int1r+rete$
-
8/19/2019 portafolio de compiladores
5/28
UNIVERSIDAD %GERARDO BARRIOS&
Fau'ta# #! Ci!nia " T!no'og(a
)ORNALI*ACI+N DE LA ASIGNATURA CICLO I , -./0
ASIGNATURA: C%MPILA&%'E( E I)TE'P'ETE( GRUPO C
DÍAS: (abado * &omingo AULA1 + * LI)T 2ORAS 3:-. a 0:.. " /.:3. a /-:-.
DOCENTE: ING4 5ario Ern!sto F'or!s C$67!8
N9S!anas
FEC2A E'!!ntos #! o;!t!nia a #!sarro''ar ;or uni#a# "
-
8/19/2019 portafolio de compiladores
6/28
N9S!anas
FEC2A E'!!ntos #! o;!t!nia a #!sarro''ar ;or uni#a# "&.
< Abril E,plicar El an9lisis sint9ctico 3-e se lleva a cabo en el proceso de
compilaci/n.
• &escribir las gram9ticas libres de conte,to en el
proceso de compilaci/n
-
8/19/2019 portafolio de compiladores
7/28
N9S!anas
FEC2A E'!!ntos #! o;!t!nia a #!sarro''ar ;or uni#a# "
-
8/19/2019 portafolio de compiladores
8/28
N9S!anas
FEC2A E'!!ntos #! o;!t!nia a #!sarro''ar ;or uni#a# "
-
8/19/2019 portafolio de compiladores
9/28
$iapositiva 1
En la unidad 1 se trata de la
introducción a los traductores e
interpretes
-
8/19/2019 portafolio de compiladores
10/28
$iapositiv
a 2
,raductor tiene varias definiciones pero
de la ue nos vamos a enfocar es en
el "rea de la materia compiladores e
interpretes
$iapositiv
a
,raductor en esta lamina nos menciona
ue recibe como entrada un códi)o deun le)uaje + esta la convierte en otro
len)uaje
$iapositiv
a 4
0n traductor es un pro)rama ue puede
transformar un le)uaje a un len)uaje
fuente siempre + cuando no ten)a al)n
error dentro de tal len)uaje a convertir
-
8/19/2019 portafolio de compiladores
11/28
$iapositiv
a (
%omo muestra en la l"mina el traductor
se introduce el pro)rama como entrada
en len)uaje fuente + sale como otro
len)uaje llamada len)uaje destino
siempre + cuando no se encuentre un
mensaje de error
$iapositiv
a
3abla de ue siempre a tenido
presencia de ue a la ora decomunicar nuestras necesidades para
ue la computadora sea capa' de
interpretar siempre a sido un obst"culo
el modo de ue ten)amos diferente
vocabulario +a sea len)uaje mauina
entre otros dando así la creación de
nuestro propio len)uaje para ue laspcs las interpreten
$iapositiv
a 5
#e nos presentan dos tipos de
traductores compiladores e int6rpretes
teniendo en cuenta +a las definiciones
antes mencionadas
-
8/19/2019 portafolio de compiladores
12/28
$iapositiv
a 7
En esta ocasión a)o mención de
nuevo de los obst"culos de poder
comunicarnos de manera eficiente con
el %80 con instrucciones parecidas a
len)uaje mauina +a ue esta posee
una inmensidad de instrucciones ue
no podemos establecer de forma
certera
$iapositiv
a 9
:ueno dice ue para un len)uaje de
pro)ramación sea til debemos tenerun pro)rama el cual esta sepa )enerar
+a sea las instrucciones de otros
pro)ramas escritos para poder
ejecutarse o pasarlas a un modo ue
sea ejecutable esto se le denomina
compilador
$iapositiv
a 1;
%omo se pudo observar un compilador
se trata de un pro)rama pueda convertir
un len)uaje a otro len)uaje de
pro)ramación
-
8/19/2019 portafolio de compiladores
13/28
$iapositiv
a 11
%ompilador es auel ue al introducir
un len)uaje se ace +a sea un tipo de
len)uaje esta se pasa a traducir en
códi)o de alto nivel a códi)o m"uina
para tener como salida un ficero
ejecutable
$iapositiv
a 12
%ompilador auel pro)rama ue
traduce un len)uaje a otro len)uaje estatambi6n puede )enerar aplicaciones
para ue se puedan utili'ar en otra
computadora como anteriormente se
menciona ue se crea un ficero
ejecutable teniendo siempre en cuenta
donde se ejecutara el ficero
$iapositiv
a 1
:ueno abla de ue el compilador lee el
códi)o a convertir en un len)uaje esta
verifica toda la sinta
-
8/19/2019 portafolio de compiladores
14/28
$iapositiv
a 14
$ice ue son pro)rama ue traducen
un len)uaje a otro esta tambi6n se
encar)a de verificar si a+ errores
dentro del códi)o fuente
$iapositiv
a 1(
En el si)uiente bosuejo podemos
observar una estructura de como seace el procedimiento tenemos el
len)uaje entrada + tenemos el
pro)rama destino* tenemos el len)uaje
salida lo ue ace es pasar el len)uaje
entrada en el pro)rama destino + el
resultado es otro len)uaje salida
$iapositiv
a 1
:ueno en la si)uiente estructura ace
mención del int6rprete la función de
este es casi similar ue el compilador
teniendo en si como salida una
ejecución en cambio el compilador solo
nos )enera un ficero
-
8/19/2019 portafolio de compiladores
15/28
-
8/19/2019 portafolio de compiladores
16/28
$iapositiv
a 2;
En esta estructura se puede observar el
len)uaje ensamblador + el ensamblador
+ códi)o mauina lo ue ace ue el
len)uaje ensamblador pase atraves del
ensamblador para )enera el códi)o
mauina
$iapositiv
a 21
Es un le)uaje ue se define dentro del
ensamblador para procesarla esllamado len)uaje ensamblador
$iapositiv
a 22
El len)uaje interpretado es un len)uaje
diferente al len)uaje mauina por eso
se debe traducir para ue el procesador
la comprenda el len)uaje interpretado
necesita de otro pro)rama para esta
tradu'ca los comandos se)n sean
necesarios
-
8/19/2019 portafolio de compiladores
17/28
$iapositiv
a 2
Len)uaje compilado es un len)uaje
escrito ue fue traducido por medio del
compilador dando como resultado el
ficero ejecutable
$iapositiv
a 24
Al)uno len)uaje intermediarios
pertenecen a ambas cate)orías como loson LI#8*java estas a menudo pueden
sufrir de compilación intermedia
$iapositiv
a 1
La estructura de un compilador se trata
como se compone un compilador
-
8/19/2019 portafolio de compiladores
18/28
$iapositiv
a 2
El compilador emos tratado +a como
una caja simple pero al observar
internamente podremos observar el
an"lisis + la síntesis
$iapositiv
a
La estructura de un compilador se
maneja de esta forma paso a paso=primero la tabla de símbolos despu6s
empie'a con an"lisis l6
-
8/19/2019 portafolio de compiladores
19/28
$iapositiv
a (
An"lisis sint"ctico
%omprueba los valore uno por uno
como lo son=
8alabras reservadasdo*Bile*ifC
8alabras no especificadasconstantes C
!ormados por le
-
8/19/2019 portafolio de compiladores
20/28
$iapositiv
a 7
La )eneración de códi)o intermedio
esta reali'a una codificación intermedia
ante de pasar al códi)o final utili'a
códi)o de direcciones
$iapositiv
a 9
Optimi'ación de códi)o intermedio
8ermite mejoras en el códi)o
intermedio antes de pasar al códi)o
final elimina espacios sin nin)n sentido
elimina códi)o ue no sirve + optimi'a
los bucles
$iapositiv
a 1;
Esta )enera las instrucciones a códi)o
ensamblador despu6s de pasar del
códi)o intermedio
-
8/19/2019 portafolio de compiladores
21/28
$iapositiv
a 11
Es auí donde se re)istran +a sean
funciones* identificadores u otras
necesidades dentro del pro)rama
fuente
$iapositiv
a 12
Es auí donde se producen la
verificación de errores cuando se est"compilando +a sea errores ue no se
vieron o cantidades de errores debido a
la mala di)itación
$iapositiv
a 1
Auí la estructura donde se ace
presente la fuente ue pasa por medio
de los procesos an"lisis l6end dando paso al
códi)o objeto
-
8/19/2019 portafolio de compiladores
22/28
$iapositiv
a 14
-uestra al)unas especificaciones del
compilador
%omo especificación l6
-
8/19/2019 portafolio de compiladores
23/28
$iapositiv
a 2
El alfabeto es un conjunto de elementos
se le llaman símbolos se le denota con
la letra 8
$iapositiv
a
Du6 es metalen)uajeF
Es para describir ciertas características
de una len)ua
$iapositiv
a 4
El metalen)uaje es auel ue se utili'a
para ablar de otro len)uajes el
len)uaje ue se est" ablando se le
llama len)uaje objeto
-
8/19/2019 portafolio de compiladores
24/28
$iapositiv
a (
En la estructura del metalen)uaje se
observa varios factores =
El metalen)uaje* len)uaje objeto* objeto
$iapositiv
a
El metalen)uaje puede tener mucas
ventajas pero tambi6n tienedesventajas + es siempre procurar
verificar ue el pro)rama sea aceptado
por el compilador se necesitan m"s de
un compilador para cada len)uaje de
pro)ramación
$iapositiv
a 5
El metalen)uaje se utili'ada para la
descripción de un len)uaje e
-
8/19/2019 portafolio de compiladores
25/28
$iapositiv
a 7
:nf se utili'a para )ram"ticas libres de
conte
-
8/19/2019 portafolio de compiladores
26/28
$iapositiv
a 1;
EL %O:OL elemento opcionales se
denotan por par6ntesis cuadrados
%O:OL efica' los mensajes de error +
por lo tanto* la resolución de errores esm"s f"cil.
Con*!)$i7n
Me $ervir5 #)*9o en e! #o#ento %e ! *re*i7n %e )n *o#+i!%or: 6
;)e en 1! $e %et!!n to%$ 6 *% )n %e !$ +rte$ ;)e invo!)*rn
e$te- Pri#er#ente inve$tig)e ;)e e
-
8/19/2019 portafolio de compiladores
27/28
!eng)je: e! !eng)je objeto- Me +re*e 0$*innte ;)e no$otro$
+o%#o$ *rer )n *o#+i!%or en $ei$ #e$e$ >en )n *)r$o?-
Co#+i!%ore$ e int1r+rete$ e$ )n #teri intere$nte ! ve3 *o#+!ej
6 ;)e 9b! %e *o#+i!%ore$ 6 ;)e no$ % ! o+*i7n %e +o%er *rer )n
*o#+i!%or 6 $e %e )n !eng)je 6 e$tb!e*i%o o +o%er *rer )n
!eng)je n)evo gr*i$ ! #teri e$to6 enten%ien%o #5$ $obre
*o#+i!%ore$ e int1r+rete$ %5n%o#e otr %e0ini*i7n %e tr%)*tore$:
*o#+i!%ore$: inter+rete$: *o#o e$t5 e$tr)*t)r%o e! *o#+i!%or
%ejn%o $2 !o ;)e enten%2
Co#+i!%ore$@ E$ e! ;)e n!i3 e! +rogr# 0)ente 6 !o tr%)*e otro
e;)iv!ente e$*rito en otro !eng)je >+or eje#+!o: en e! !eng)je %e !
#5;)in?- S) **i7n e;)iv!e ! %e )n tr%)*tor 9)#no: ;)e to# )n
!ibro 6 +ro%)*e otro e;)iv!ente e$*rito en otr !eng)- Int1r+rete@ E$ e!
;)e n!i3 e! +rogr# 0)ente 6 !o eje*)t %ire*t#ente: $in generr
ning=n *7%igo e;)iv!ente- S) **i7n e;)iv!e ! %e )n int1r+rete
9)#no: ;)e tr%)*e !$ 0r$e$ ;)e o6e $obre ! #r*9: $in +ro%)*ir
ning=n e$*rito +er#nente- Int1r+rete$ 6 *o#+i!%ore$ tienen %iver$$
ventj$ e in*onveniente$ ;)e !o$ 9*en *o#+!e#entrio$@
Un int1r+rete 0*i!it ! b=$;)e% %e errore$: +)e$ ! eje*)*i7n %e )n
+rogr# +)e%e interr)#+ir$e en *)!;)ier #o#ento +r e$t)%ir e!
entorno >v!ore$ %e !$ vrib!e$: et*-?- A%e#5$: e! +rogr# +)e%e
#o%i0i*r$e $obre ! #r*9: $in ne*e$i%% %e vo!ver *o#en3r !
eje*)*i7n- Un *o#+i!%or $)e!e generr +rogr#$ #5$ r5+i%o$ 6
e0i*iente$: 6 ;)e e! n5!i$i$ %e! !eng)je 0)ente $e 9*e )n $o! ve3:
%)rnte ! gener*i7n %e! +rogr# e;)iv!ente- En *#bio: )n
int1r+rete $e ve ob!ig%o gener!#ente n!i3r *% in$tr)**i7n
tnt$ ve*e$ *o#o $e eje*)te >in*!)$o #i!e$ o #i!!one$ %e ve*e$?- Un
int1r+rete +er#ite )ti!i3r 0)n*ione$ 6 o+er%ore$ #5$ +otente$: *o#o
+or eje#+!o eje*)tr *7%igo *onteni%o en )n vrib!e en 0or# %e
*%en$ %e *r*tere$- U$)!#ente: e$te ti+o %e in$tr)**ione$ e$
i#+o$ib!e %e trtr +or #e%io %e *o#+i!%ore$- Lo$ !eng)je$ ;)e
in*!)6en e$te ti+o %e o+er%ore$ 6 ;)e: +or tnto: e
-
8/19/2019 portafolio de compiladores
28/28
$e !!#n inter+rettivo$- Lo$ !eng)je$ *o#+i!tivo$: ;)e +er#iten e!
)$o %e )n *o#+i!%or: +re$*in%en %e e$te ti+o %e o+er%ore$-
Por otro !%o: *o#+ren%2 ;)e )n *o#+i!%or: re;)iere %e )n $int