portafolio de compiladores

download portafolio de compiladores

of 12

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