Proceso de Traduccion

75
Diapositiva 1 _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _____________

description

proceso de traduccion

Transcript of Proceso de Traduccion

  • Diapositiva1

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva2

    Frontend: dellenguaje dealtonivel allenguaje intermedio

    Backend:dellenguajeintermedio alcdigo binario

    Arquitecturasdetraduccin

    2UTN - FRM - SSL: Proceso de traduccin

    Cdigo

    fuente?

    Cdigo

    binario

    Cdigointermedio(ensamblador,pcode,bytecode,etc.)

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva3

    Compilador

    3

    Anlisislexicogrfico

    Anlisissintctico

    Anlisissemntico

    Optimizacin

    Cdigofuente

    Cdigotokenizado

    rbolessintcticos

    rbolesdecorados

    Cdigointermedio Enlace(generadordecdigo)

    Cdigodemquina

    3UTN - FRM - SSL: Proceso de traduccin

    G3.AEF.Tokenizacin

    G2.AP.rboles

    Formaleseinformales.Comportamientos.

    Estticasydinmicas.

    z:=(2*a*y+b)*(2*a*y+c)t:=2*a*y;z:=(t+b)*(t+c);

    for(k=1;k

  • Diapositiva4

    Traductores

    Intrpreteensoftware:porejemploJVM Emuladordehardware: similaralanterior,peroimplementadoen

    hardware Traductorbinario: instruccionesdelanuevaarquitecturaque

    reproducenelcomportamientodelavieja Compiladornativo:compiladorescruzadosparaayudaracrearlos

    4UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva5

    Compiladornativo

    Anlisislexicogrfico

    Anlisissintctico

    Anlisissemntico

    Optimizacin

    Enlace(linker)

    tokens

    rboles

    intermedio

    objeto

    programa

    Generacin de cdigo mquina

    Cdigoobjeto(bibliotecasestticas)

    Cdigoobjeto(bibliotecasdinmicas)

    ejecutable

    5UTN - FRM - SSL: Proceso de traduccin

    TabladesmbolosNombreToken asociadoInformacindetipoAlcanceDireccinInicializacin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva6

    Traductordeunpaso

    Anlisislexicogrfico

    Anlisissintctico Anlisissemntico

    Tabladesmbolos

    Generador

    caracteres

    cdigo objetoejecutable

    errores

    Facilidad de uso

    Aplicaciones sencillas

    Poca optimizacin

    Traduccin rpida

    Etapas de anlisis ygeneracin unificadas

    Cdigo objeto ineficiente

    Gestindeerrores

    6UTN - FRM - SSL: Proceso de traduccin

    U1

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva7

    Intrpretepuro

    Tabladesmbolos

    Evaluadorinstrucciones

    nmero

    siguienteinstruccin

    caracteres

    etiqueta

    resultado de laejecucinerrores

    Nmerodeinstruccin

    Facilidad de uso

    Permiten interactuar con el estado del programa

    Sin optimizacin

    Analizan y ejecutanun enunciado por vez

    Las instrucciones se Numeran o etiquetan

    Requieren de un entorno para ejecutar

    datos

    Traductorarepresentacin

    interna

    instruccin

    Gestindeerrores

    7UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva8

    Pseudocompiladorointrpreteparcial

    Traductorcaracteres

    resultado de la ejecucin

    Cdigointermedio

    datos

    errores

    Lenguajes modernos

    Traducen a un pseudo-cdigo de mquina(por ej. P-code, byte-code, )

    Multiplataforma

    Intrprete por softwareo hardware

    Requieren intrpretepara la ejecucin (VM),pero es muy pequeo

    Cdigodemquina

    Justintimecompiler

    Intrprete

    8UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva9

    CompiladoreseIntrpretes

    Preprocesador Analizador(lxicoysintctico)

    Compilador

    Cdigodemquina

    Programafuente

    rboldeanlisis

    Cdigoensamblador

    EnlazadorTraductor Intrprete Intrpreteparcial

    Programa Bytecode

    Compiladores e intrpretes tienen similares front-ends pero diferentes back-ends

    9UTN - FRM - SSL: Proceso de traduccin

    Entornodeejecucin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva10

    Implementacinsemntica:asignacin

    Asignacin Cambiodeestado

    Modos Mltiple Entrada(input) Inicializacinvs.Asignacin

    Conceptos Lvalue vs.Rvalue Enunciadovs.Operador

    10UTN - FRM - SSL: Proceso de traduccin

    A = C + 1 R-valueExpresin Constante

    L-value VariableReferencia a memoriaNunca una expresin o constante

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva11

    Implementacinsemntica:bifurcacin

    Semntica Expresindecontrol

    Formas Simple Doble Mltiple Selectordecasos

    Opcindedescarte Bloque deenunciados Esquemasdeanidamiento Transferenciaincondicional

    Rtulos

    [evalua expresin y deja resultado en registro]JZR else[bloque verdad]JZR endelse:[bloque falso]end:[resto del programa]

    11UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva12

    Implementacinsemntica:iteracin

    Semntica Expresin decontrol

    Bloque deenunciados Esquemasdeanidamiento Ciclos

    Modificacininternadeparmetros Cantidadindeterminada Evaluacininicialyfinal Cantidaddeterminada Valorinicialyfinal

    top [evalua expresin y deja resultado en registro]JZR exit[bloque]JZR topexit:[resto del programa]

    12UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva13

    Implementacin

    Direccionesdememoria

    Abstraccinmediantevariables

    Descriptores

    (conjuntodeatributos)

    Estticos

    nombre

    tipo

    direccin

    valor

    tiempodevida

    alcance

    Dinmicos

    tipo

    direccin

    valor

    tiempodevida

    alcance

    Almacenamientobinario

    Formatos

    Semnticadedatos

    13UTN - FRM - SSL: Proceso de traduccin

    Dato

    DescriptoryDato DatoDescriptor

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva14

    Declaracindevariables

    14UTN - FRM - SSL: Proceso de traduccin

    SeaintA;A=21;

    Modeloimperativo:generatresobjetos

    Modelodeclarativo:generadosobjetos

    nombre ubicacin valor

    nombre valor

    Vinculadosalingresaralmbitodeexistencia

    Vinculadosmediantelaasignacin

    A FFA0 9B76 21

    A 21

    Vinculadosenelmomentodelainvocacin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva15

    Implementacindedatos

    15UTN - FRM - SSL: Proceso de traduccin

    Losobjetos dedatos siempre sondealgn tipo, loque implica que tienen asociados

    Valores Operaciones (f:tipo xtipo tipo) Representacindesu almacenamiento

    Equivalencia detipo

    Estructural Por nombre (alias)

    Verificacin

    Calcularoinferirtiposyvalidarexpresiones Estticaodinmica

    Variablesvs.Constantes

    Segmentodedatosvs.segmentodecdigo

    PrimitivosAtmicossinestructurainternacomplejaOperacionesimplementadasporhardware

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva16

    Sistemageneraldetipos

    16UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva17

    Implementacindeltipoentero

    Formatoderepresentacin Tipoentero(mximo2n1 1ymnimo2n1) Negativosporcomplemento2 Tamaoshabitualescon/sinsigno1,2,4,8bytes Operacionesmsrpidas Alineacin(bytemssignificativo)

    S Dato

    (0 +, 1 -) Entero en binario

    descriptor

    T Direccin S Dato

    signo

    T S Dato

    descriptor signo

    17UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva18

    Implementacindeltipoentero

    Ejemplos Seaxenterode32bits(2147483648 a+2147483647)x=2147483648; 10000000000000000000000000000000x=2147483648; 10000000000000000000000000000000

    Seaxenterode32bitssinsigno(0a4294967296)x=2147483648; 10000000000000000000000000000000x=1; 11111111111111111111111111111111x=4294967296; 00000000000000000000000000000000x=4294967295; 11111111111111111111111111111111

    18UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva19

    Implementacindeltiporeal

    Caractersticas Puntoflotante(IEEE754) Noexactos(simpleydobleprecisin) Tamaoshabituales4,8bytes Operacionesmslentasquelosenteros

    Formatoderepresentacin(1)S *2(E B)*(1+(M/2N))donde 0

  • Diapositiva20

    Implementacindeltiporeal

    DadosEyM:E=255,M0 invlido E=255,M=0 infinito0

  • Diapositiva21

    Implementacindeotrostipos

    SlopositivosEnterossinsigno

    Precisinexacta AlmacenamientopocoeficienteEj.1234.567=>1234567conS=3

    Cantidaddedecimalesfija

    Decimalopuntofijo

    1bito1byteLgico

    ASCII(1byte) UNICODE (2bytes)

    Carcter

    21UTN - FRM - SSL: Proceso de traduccin

    EnC/C++losoperadores&&,||,!estnasociadosalos

    tiposnumricos

    EnC/C++setratacomountiponumrico

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva22

    Conceptossobretiposdedatos

    Sistemadetipos Mecanismoparadefinirtipos Conjuntodereglasparadeterminar

    Equivalencia Compatibilidad Inferencia

    Verificacindetipos(type checking) Violacindelareglas(type clash) Lenguajesfuertemente tipeados

    Tiposestticos Lenguajesdbilmentetipeados

    Tiposdinmicos

    +

    JS

    Ada

    Java / C#

    C/C++

    ASM

    Fortran

    o1

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva23

    Conceptossobretiposdedatos

    Conversin detipos Implcita =Coercin Explcita =cast (molde) Prdida dedatos (desbordamiento delamscara debits) Prdida deprecisin (truncamiento yredondeo)

    Polimorfismo Unmismo operador aplicado adiferentes tipos

    Subtipos Aes subtipo deB A B Mismo conjunto deoperaciones yformato derepresentacin Dominio de valores diferente

    23UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva24

    Punteros

    Formato Noes unentero Tamao

    Puntero vs.objeto apuntado Asignacin devalores

    Inicial Final(garbage)

    Consideracionesdediseo Importancia delainformacin detipo asociada Alcance ytiempo devida Implementacin dealmacenamiento dinmico Tipos deobjetos dedatos apuntados Restricciones alugares dnde apuntar Tipos recursivos

    direccindememoria

    Puntero

    valor

    Objetodedato

    24UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva25

    Punteros

    AsignacinSean A y B variables reales: A BA: A:B: B:

    Sean A y B variables puntero : A BA: A:B: B:

    Sea A una variable puntero a puntero y B puntero: A BA: B:

    7.2 0.40.4 0.4

    7.20.4

    0.4

    25UTN - FRM - SSL: Proceso de traduccin

    7.2

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva26

    Punteros

    Operaciones Asignarunadireccindememoria Obtenerunadireccindememoria Referenciarunadireccin dememoria Comparardireccionesdememoria Aritmticadepunteros Usodecast

    Ejemplo

    30

    x(250)

    12 250

    x = 12;y = &x;

    z = *y + 5;17

    *y = 30;

    *y(254)

    z(258)

    long x, *y, z;

    26UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva27

    Expresiones Operadores

    Precedencia Asociatividad Sobrecarga

    Caracter tratamiento comoenteros

    Cadena tipo predefinido arreglos

    Relacionales ylgicas evaluacin xcortocicuito

    Aritmticas errores deredondeo vs.truncamiento (desbordamiento) bitdesigno

    Tabla de jerarqua/asociatividad en C

    I-D () [] -> .D-I ++ -- + - ! ~ (tipo) * & sizeofI-D * / %I-D + -I-D >I-D < >=I-D == !=I-D &I-D ^I-D |I-D &&I-D ||D-I ?:D-I = += -= *= /= %= &= ^= |= =I-D ,

    27UTN - FRM - SSL: Proceso de traduccin

    Seanint a,*b,Z=1,X=4,Y=2;a=4;b=&a;rbol deexpresin++*bvs.*++b++Z*Z++Z+(Y==0?X:X/Y)

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva28

    Tiposestructurados

    Grupodedatosdelmismoodiferentes tipos

    Homogneos

    Arreglos

    Unidimensionales

    Multidimensio

    nales

    Enum

    erados

    Heterogneos

    Registros

    Campo

    sdebits

    Union

    es

    Archivos Listas

    Line

    ales

    Anillos

    rbo

    les

    Grafos

    28UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva29

    ImplementacindeltipocadenaEsttico

    Longitud fija

    Longitud variable c/ lmite

    Longitud variable s/ lmite

    Longitud fija c/ delimitador

    29UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva30

    Arreglosunidimensionales

    CaractersticasDimensin:Entero>0Sub=>L1 SubDB+k*tTipo

    SubndicesconrangoSeax[L1..U1]:TIPO dondeL1=2yU1=9Espacio=(U1 L1+1)*tTipoLvalue(x[k])=>DB+(k L1)*tTipo = (DB L1*tTipo) +(k L1)*tTipoLvalue(x[k])=>OV +(k L1)*tTipo

    30UTN - FRM - SSL: Proceso de traduccin

    Conjunto homogneo de datos gestionado como un bloque

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva31

    ArreglosbidimensionalesCaractersticasDimensiones:Entero>0Subndices=>L1 Sub1

  • Diapositiva32

    Arreglosbidimensionales

    SubndicesconrangoA[L1:U1,L2:U2]:TIPOD=(U2 L2+1)*tTipoLvalue(A[i,j])=DB+D *(i L1)+tTipo *(j L2) D=cte

    Creacindeunarreglobidimensional:Espacio=(U2 L2+1)*(U1 L1+1)*tTipoD=(U2 L2+1)*tTipoOV=DB L1*D L2*tTipoLvalue(A[i,j])=OV +(i L1)*D +(j L2)*tTipo

    32UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva33

    Implementacingeneral

    Almacenamientoa)Esttico(datosconocidosenlacompilacin:D,TyVO)int N = 5;float v[N];for (int i = 0; i < N; i++)

    v[i] = i + 1;

    b)Dinmicovar v = [0];for (i = 0; i < 5; i++)

    v[i] = i + 1;

    33UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva34

    Arreglostridimensionales

    Subndicesconrango

    A[L1:U1,L2:U2,L3:U3]:TIPO

    D1=(U2 L2+1)*(U3 L3+1)*tTipo

    D2=(U3 L3+1)*tTipo

    Lvalue(A[i,j,k])=DB+D1 *(i L1)+D2 *(j L2)+k*tTipo

    Creacindeunarreglotridimensional

    Espacio=(U3 L3+1)*(U2 L2+1)*(U1 L1+1)*tTipo

    CalcularD2yD1

    OV=DB L1*D1 L2*D2 L3*tTipo

    Lvalue(A[i,j,k])=OV +(i L1)*D1 +(j L2)*D2+(k L3)*tTipo

    34UTN - FRM - SSL: Proceso de traduccin

    i

    jk

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva35

    Arreglosndimensionales

    Paradimensionesconrango:

    A[L1:U1,...,Ln:Un]

    mn =tTipo

    Tamaodecadadimensinmi

    Parai=n 1hasta1hacer

    mi =(Ui+1 Li+1 +1)*mi+1

    OV=DB ni=1(Li *mi)Accesoaunelemento

    A[s1,...,sn]=OV +ni=1((si Li )*mi)

    35UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva36

    Diferentesclasesdearreglos Slices

    SeagregandescriptoresEjemploFortran90:

    A(3,:)=B(7:15)

    Asociativos Accesoadatossinunordenfijo Nombrescomosubndices Implementacincondescriptor

    EjemploJSvar items ={"tucuman":12,"cordoba":19,"salta":21,"jujuy":31,"merlo":47,

    "catamarca":51,"mendoza":61,"rosario":73,"corrientes":88};listString ="";for (varword initems)listString +=items[word]+",";alert(listString);

    36UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva37

    Mapadememoriadedatos

    37UTN - FRM - SSL: Proceso de traduccin

    Mapadememoria

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva38

    Stack vs.Heap

    Almacenamientodinmico mbitodereferencia Tiempodevidadelobjetodedato

    voidmain(){char *s,*q,t[5];s=(char *)malloc(9);strcpy(t,"dos");strcpy(s,"uno");strcat(s,t);q=s;free(s);...puts(q);

    }

    *s *q t

    heap

    stack

    d o s \0

    u n o \0u n o d o s \0

    38UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva39

    GestindelHeap

    Estadosposiblesdeceldas

    Libre:sinreferenciasymarcadalibre

    Ocupada:conreferenciasymarcada

    ocupada

    Basura:sinreferenciasymarcadaocupada

    Colgada:conreferenciasymarcada

    libre

    Asignacinbloques

    Tamaonico

    Tamaovariable

    Mtodosdereclamodebasura

    Contadordereferencias

    Recoleccindebasura

    39UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva40

    Llaves y cerradurasDebe usar contador de referencias para garantizar el no dejar referencias colgadasDeben coincidir los valores de lock y keyAl desalojar objeto, coloca un nulo en lockComplejidad en tiempo: - comparacin de cerraduras y llaves en cada accesoUso de espacio: - espacio extra para las cerraduras en cada apuntador y objeto del heap

    Lpidas y tumbasDebe usar contador de referencias para garantizar el no dejar referencias colgadasEl apuntador contiene la direccin de la lpida y esta la del objetoAl liberar objeto, se asigna en la lpida un nuloComplejidad en tiempo: - creacin de lpidas cuando se alojan objetos- chequear validacin en cada acceso- doble indireccin para accesoUso de espacio: - espacio extra para las lpidas- nunca desalojar lpidas o poner contador de referencia a cada lpida

    Tcnicasparaevitardangling

    40UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva41

    Enumeraciones

    enum Color{Rojo,Verde,Azul};enum OtroColor {otroRojo =3,otroVerde =2,otroAzul =2};enum Colorx=Verde, z=Azul;enum OtroColor y;x=x+1;x=z x;y=otroAzul otroVerde;

    Sedefineunnombreparacada valor

    Smbolosasociados anmerosenteros

    Nosoncadenas

    Valoresdelaenumeracininicializados

    NosoportanI/O

    41UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva42

    Registros

    42UTN - FRM - SSL: Proceso de traduccin

    struct AUTO{charmarca[10];floatprecio;unsignedmodelo;

    chart;}miAuto;

    struct PERSONA{unsigned int DNI;char nombre[20];struct FECHA{

    unsigned int d;unsigned int m;unsigned int a;

    }nacido;};struct PERSONAel,ella;

    Estructurayalineacin Tamao Referenciaamiembros Direccionesdememoria Asignaciones Punterosamiembros

    miAuto

    marca precio modelo t

    10 4 4 1

    17

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva43

    Implementacinderegistros

    43UTN - FRM - SSL: Proceso de traduccin

    struct Alumno{unsigned int legajo;char nombre[20];unsigned long dni;

    };

    struct Alumnox,*p;

    x.legajo =24567;

    strcpy(x.nombre, Juan);

    x.dni=30768435;

    p=&x;

    Alumno

    3

    legajo

    unsigned int

    direccin

    nombre

    char[20]

    direccin

    dni

    unsigned long

    direccin

    24569

    Juan

    32456987

    Conjunto heterogneo de datos gestionados como un bloque

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva44

    Unionesstruct LEASING{unsigned int cuotas;float valor;

    };struct CONTADO{float monto;char cheque;

    };unionMODO{struct LEASINGa;struct CONTADOb;

    };enum Discr {leasing,contado};

    struct VENTA {unionMODOventa;Discr tipo;

    }operacion[100];

    Un slo espacio compartido por datos diferentes

    44UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva45

    Camposdebits

    struct FECHA{

    unsigned int dia :5;

    unsigned int mes :4;

    unsigned int anio :7;

    }ingreso;

    Tamaos Punteros Acceso Alineacindecampos I/O

    ingreso.dia = 19; // 10011

    ingreso.mes = 27; // 11011

    ingreso.anio = 7; // 111

    45UTN - FRM - SSL: Proceso de traduccin

    Fraccionar en bits el espacio de almacenamiento

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva46

    Archivos

    Operaciones

    Apertura

    Acceso

    Modo

    SecuencialModo

    DirectoModo

    IndexadoLectura

    Escritura

    Cierre

    Almacenamiento

    Persistente(discos,pendrivers,CD,DVD,etc.)

    S.O.usabuffersparaI/O

    Formato

    Texto(secuenciadebytes,segnformato)

    Binario(secuenciadebytesaimagendelamemoria)

    Estructura

    Bytes(conusoonodeseparadores)

    Registros

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva47

    Archivos

    47UTN - FRM - SSL: Proceso de traduccin

    Mapadememoria

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva48

    Tiposrecursivos

    structCIUDAD{

    char nombre[15];

    unsigned int dist;

    structCIUDAD*prox;

    }*primero;

    AlmacenamientodinmicoTamaoajustableImplementacinderboles,pilas,colas,etc.

    48UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva49

    Generacindelistasimplementeenlazada

    typedef struct DATO{char nombre[10];struct DATO *prox;} NODO;NODO* crear(int n){NODO *p = (NODO*)malloc(sizeof(NODO));p->prox = NULL;for (NODO *r=p, int k=1; k < n; k++){r->prox = (NODO*)malloc(sizeof(NODO));r->prox->prox = NULL;r = r->prox;

    }return p;}...NODO *primero = crear(3);

    *pstack

    heapnombre prox NULL

    nombre prox NULL

    nombre prox

    *r

    NULL

    49UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva50

    Destruccindelistasimplementeenlazada

    void destruir(NODO *p){NODO *r;while (p){

    r = p->prox;free(p);p = r;

    }}...NODO *primero = crear(3);...destruir(primero);

    *pstack

    heapnombre prox

    nombre prox

    nombre prox

    *r

    NULL

    50UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva51

    Subprogramasosubrutinas

    Implementan laabstraccin deprocesos Procedimientos

    Definen nuevos enunciados (sentencias) Puedenmodificar variableslocalesdelarutina llamadora Localidad dedatos Acceso adatos globales

    Funciones Definen nuevas operaciones Regresan unvalor Localidad dedatos Acceso adatos globales

    Corutinas Paralelismo

    Programa

    osubrutina

    llamadaSubrutina

    (funcinoprocedimiento)

    51UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva52

    Registrodeactivacin

    int sum(int a,int b){int r;

    r=a+b;return r;

    }

    voidmain(){int x=5,y,r;

    y=6;r=sum(x,y);cout

  • Diapositiva53

    Invocacindeunasubrutina

    Llamada

    Ponerenlapila losargumentos Guardarpuntoderetorno Ponerinformacindevnculos Llamaralarutina

    Ejecucin

    Guardarelframepointer anterior Asignarnuevoframepointer Crearespacioparavariables locales

    Retorno

    Limpiarvariables locales Restaurarframepointer Devolverelcontrolalpuntodellamada

    53UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva54

    Pasajedeargumentos

    54UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva55

    Pasajedeargumentosporvalor

    void permutar(int x,int y){int r;r=x;x=y;y=r;

    }voidmain(){

    int a,b;a=3;b=7;permutar(a,b);cout

  • Diapositiva56

    Pasajedeargumentosporreferencia

    void permutar(int &x,int &y){int r;r=x;x=y;y=r;

    }voidmain(){

    int a,b;a=3;b=7;permutar(a,b);cout

  • Diapositiva57

    Pasajedeargumentosporresultado

    proc permutar(x,y,m,p:integer)m:=y;p:=x;

    end procprog main

    a,b:integer;a:=3;b:=4;permutar(a,a+b,a,b);print(a,b);

    end prog

    x y m p(400) (402) (404) (406)

    a b(300) (302)

    stack

    3 4

    3 7 300 302

    7 3

    57UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva58

    Pasajedeargumentosporvalorresultado

    proc permutar(x,y:integer)r:integer;r:=x;x:=y;y:=r;

    end procprog main

    a,b:integer;a:=3;b:=7;permutar(a,b);print(a,b);

    end prog

    x y r(400) (402) (404)

    a b(300) (302)

    stack

    3 7

    33 77 3

    7 3

    58UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva59

    Pasajedeargumentospornombre

    proc permutar(x,y,m,p:integer)m:=y;p:=x;

    end procprog main

    a,b:integer;a:=3;b:=4;permutar(a+b,b,a,b);print(a,b);

    end prog

    x y m p(400) (402) (404) (406)

    a b(300) (302)

    300 302

    4 8

    a := b = a := 4 b := (a + b) = b := 4 + 4

    stack

    3 4

    exp 302

    59UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva60

    Pasajedeargumentospreinicializados

    proc permutar(x,y,m,p:integer)m:=y;p:=x;

    end procprog main

    a,b:integer;a:=3;b:=4;permutar(a+b,b,a,b);print(a,b);

    end prog

    x y m p(400) (402) (404) (406)

    a b(300) (302)

    300 302

    4 8

    a := b = a := 4 b := (a + b) = b := 4 + 4

    stack

    3 4

    exp 302

    60UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva61

    Pasajedeargumentosconstantes

    proc permutar(p:constanteinteger)m:integer;m:=p;p:=10;

    end procprog main

    a,b:integer;a:=3;b:=4;permutar(a+b,b,a,b);print(a,b);

    end prog

    x y m p(400) (402) (404) (406)

    a b(300) (302)

    300 302

    4 8

    stack

    3 4

    exp 302

    61UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva62

    Llamadaafuncinrecursiva

    int fac(int n){int f;if (n==0)

    f=1;else

    f=n*fac(n 1);return f;

    }voidmain(){

    int x=3,y;y=fac(x);cout

  • Diapositiva63

    Registrodeactivacinyformasrecursivas

    Normalrutina(parmetros) {

    if (??) rutina(argumentos)

    }

    De colaSe usa cuando no es necesario retornar a la subrutina.tipo funcin(parmetros) {

    if (??) return funcin(argumentos)

    }

    TransitivarutinaA(parmetros) {

    if (??) rutinaB(argumentos)

    }rutinaB(parmetros) {

    rutinaA(argumentos)

    }

    63UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva64

    Organizacindememoriaparaunprograma

    DS

    CS

    0xFFFF0000

    0x00000000

    Argumentos del programa

    Code

    Static/GlobalHeap

    Stack

    local varsparametersframepointersret address

    exe Codedll Code

    globalsstaticsjumptables

    dynamic datadyn objectsmallocs

    0x0012FFFF

    0x00401000

    0x0040a000

    0x00000000

    heap

    code

    data

    stack

    bss

    64UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva65

    mbitosdeunasubrutina

    char*func(char*M){constint initval=2;char*x="igual";strcpy(x,(M+initval));returnx;

    }chars[10]="alguna";cout

  • Diapositiva66

    var n = -1;function func2(m) {

    var initval=2;if (initval == 2) x = m[initval]; return n * x;

    }function func1() {

    var k;with (Math) {

    k = [sin(0.5), sin(0.5), sin(0.5)];}n = func2(k);alert(x + ", " + n);

    }

    Informacinsobresmbolosdeunasubrutina

    66UTN - FRM - SSL: Proceso de traduccin

    Alcanceytiempodevidadelossmbolos

    Dinmico Local Global Esttico

    accesible a partir del punto de declaracin, desde todo el programa, durante toda la ejecucin

    accesible slo desde la funcindonde se declara

    accesible a partir de que se ejecute el enunciado donde aparece por primera vez

    objeto de dato esttico, accesible desde todo el programa, durante toda la ejecucin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva67

    Discriminantedeacceso: mbito.id

    mbitodealcance

    67UTN - FRM - SSL: Proceso de traduccin

    Alcance

    Esttico

    Variables

    Ambiente

    dereferencia

    de

    subrutinas

    Nom

    bres

    desubrutinas

    Dinmico

    Variables

    Ambiente

    dereferencia

    de

    subrutinas

    Determinadoporelbloquedonde sedeclara

    Determinadoporelconjunto detodaslasvariablesquesonaccesibles

    Determinadoportodos losmbitosdesdedondepueden serllamadas

    Determinadopor losmbitosdetodaslassubrutinasllamadasdespusdeesta(hastaquealgunaredefinaelsmbolo)

    Determinadoporelmbitodetodas lassubrutinasvivasllamadaspreviamente

    BasadoeneltextodelprogramaBasadoenelflujodeejecucin

    O L1

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva68

    mbitodealcance

    #include using namespace std;int count;void func2(void){

    extern int count;for (count=1;count

  • Diapositiva69

    mbitodealcance

    procedure P isprocedure Q isprocedure R is

    S()end RR()

    end Qprocedure S is

    ...end SQ()

    end P69UTN - FRM - SSL: Proceso de traduccin

    Esttico Dinmico

    S R

    R S

    Q Q

    P P

    Reglasestticas: importaladeclaracinydndesehace

    Reglasdinmicas: importasloladeclaracin

    ClausuraocierreEvaluacindeunafuncin enuncontextodondeseaccedeavariablesdeotrocontexto

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva70

    mbitodealcanceJSfunction sumaCuadrados(a, b) {

    function cuadrado(x) {return x * x;

    }return cuadrado(a) + cuadrado(b);

    }...

    C/C++ (implementa una union)void P() {

    int I;...if (...) {

    int J;...

    }while (...) {

    int K, L;...

    }}

    Bloquesdecdigo Implementados comosubprogramas sinparmetros

    Reservando espaciolocalenelregistro deactivacin

    70UTN - FRM - SSL: Proceso de traduccin

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva71

    Referenciaalcontexto

    71UTN - FRM - SSL: Proceso de traduccin

    Cdigo Almacenamiento

    int x; esttico(global)

    int foo(int z){ dinmicoenstack

    charch[100]; dinmicoenstack

    if(z==23)foo(7);

    return 3;

    }

    voidmain(){

    int y; dinmicoenstack

    char*str; dinmicoenstack

    str =malloc(100); dinmicoenheap

    y=foo(23);

    free(str);

    }

    Code:mainfoo

    Esttico:x

    Parmetros:void

    Retorno:exit

    Linkdinmico:void

    Linkesttico

    Variableslocales:y,str

    Parmetros:z=23

    Retorno

    Linkdinmico

    Linkesttico

    Variableslocales:chr[]

    Parmetros:z=7

    Retorno

    Linkdinmico

    Linkesttico

    Variableslocales:chr[]

    Heap:[]

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva72

    DisplayDisplay

    LD

    Datos

    Display

    LD

    Datos

    Display

    LD

    Datos

    Display

    LD

    Datos

    Referenciaalcontextoensubrutinas anidadas

    72UTN - FRM - SSL: Proceso de traduccin

    P()Q()R()S()

    P

    Q()

    Q

    R()

    S

    RS()

    Cadena esttica

    S

    R

    Q

    P

    LE

    LD

    Datos

    LE

    LD

    Datos

    LE

    LD

    Datos

    LE

    LD

    Datos

    Estructura del programa

    o1

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva73

    Referenciaencontextosrecursivos

    UTN - FRM - SSL: Proceso de traduccin 73

    contexto global...procedure P isprocedure Q is

    ...Q()...

    end...P()...

    end...contexto global

    static links

    Q

    Q

    Q

    P

    P

    P

    P

    contexto global

    display

    Q

    Q

    Q

    P

    P

    P

    P

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________________________________________________________________________

    _____________

  • Diapositiva74

    Listavariabledeparmetros

    voidA(int X, ...){int Y;C(Y);

    }voidB(floatR){int S;int T;A(S);

    }voidC(int Q){//hace algo

    }voidmain(){floatP;B(P);

    }

    74UTN - FRM - SSL: Proceso de traduccin

    C

    Parmetros

    Linkdinmico

    Linkesttico

    Retorno a:A

    A

    Parmetros

    Parmetros

    Local:X,Y

    Linkdinmico

    Linkesttico

    Retorno a:B

    B

    Parmetros

    Local:S,T

    Linkdinmico

    Linkesttico

    Retorno a:main

    main Local:P

    Param_n

    Param_2

    Param_1

    _____________________________________________________________________________

    _____________________________________________________________________________

    ______________________________________________________________________