Vous êtes sur la page 1sur 2

OPTIMIZACION LOCAL: QUE ES OPTIMIZACION DE CODIGO?

ES EL PROCESO DE OBTENER EL CODIGO MAS EFICIENTE (REDUCIENDO SU TAMAO, REUTILIZANDO VALORES), FUNCIONANDO DE LA MISMA MANERA QUE EL CODIGO DE PARTIDA , REDUCIENDO EL TIEMPO DE EJECUCION Y LA UTILIZACION DE MEMORIA2.-QUE ES LA OPTIMIZACION LOCAL? CONSISTE EN MODIFICAR EL BLOQUE DE CODIGO DEL MISMO LUGAR, CON EL FIN DE REUTILIZAR LOS VALORES, PARA QUE PUEDAN EJECUTARSE MAS INSTRUCCIONES Y EL TIEMPO DE COMPILACION SEA MAS RAPIDO3.-SE DIVIDE EN - REUTILIZACION DE EXPRESIONES REDUCCION DE CONSTANTES REDUCCION DE POTENCIA REACOMODO DE OPERADORES 4.-REDUCCION DE POTENCIA:CONSISTE EN REEMPLAZAR UNA OPERACIN COMPLEJA, POR OTRA MAS SIMPLE. EJEMPLO A=A*A+A+A*C DECLARACION SIN OPTIMIZAR. A^2+2A*C DECLARACION OPTIMIZADA5.- REDUCCION DE CONSTANTES: REALIZA DIRECTAMENTE UNA OPERACIN CONTENIDA EN UNA VARIABLE, SIN NECESIDAD DE REUTILIZAR OTRA VARIABLE PARA HACER LA OPERACIN, ESTO SE USA CUANDO EL VALOR DE LAS CONSTANTES SON FIJOS EJEMPLO ORIGINAL A=3 B=2*A OP=A+B OPTIMIZADO A=3 B=6 OP=9 6.-REUTILIZACION DE EXPRESIONES: CONSISTE EN VOLVER A UTILIZAR EL VALOR DE UNA VARIABLE PARA EFECTUAR OTRA OPERACIN.EJEMPLO X=Y+Z W=Y*Z SIN OPTIMIZAR X=Y*Z W=X OPTIMIZADO 7.-REACOMODO DE OPERADORES: CONSISTE EN ORDENAR DE MANERA CORRECTA LOS OPERADORES RESPETANDO LA JERARQUIA, SI EXISTE ALGUN PARENTESIS CON OPERACIN, PRIMERO SE EFECTUA ESTE Y LUEGO LOS DEMAS EJEMPLO A=1+3*B*(C+D) SIN OPTIMIZAR A=(C+D)*B+4 OPTIMIZADO OPTIMIZACION DE CICLOS INTRODUCCION: APLICACIONES DE ALTO RENDIMIENTO, TOMANDO EN CUENTA QUE LOS BUCLES GASTAN EN LA MAYORIA DE TIEMPO EN LA EJECUCION 2.- OPTIMIZACION DE CICLOS HABITUALMENTE UN PROGRAMA PASA LA MAYOR PARTE DEL TIEMPO DE LA EJECUCION EN UN TROZO DE CODIGO PEQUEO, A ESTE FENOMENO SE LE CONOCE COMO LA REGLA 90-10 3.-LA MAYORIA DE LAS OPTIMIZACIONES SOBRE CICLOS TRATAN DE ENCONTRAR ELEMENTOS QUE NO DEBEN REPETIRSE EN UN CICLO. 4.-LA OPTIMIZACION DE BUCLES ES MUY IMPORTANTE POR LAS MEJORAS EN TIEMPO DE EJECUCION QUE SE OBTIENE. 5.-OPTIMIZACION DENTRO DE BUCLES- EXPANSIN DE BUCLES(LOOP UNROLLING)-REDUCCION DE FRECUENCIA (FRECUENCY REDUCTION)-REDUCCION DE POTENCIA(STRENGH REDUTION)-ELIMINACION DE VARIABLES DE INTRODUCCION 6.- EXPANSIN DE BUCLES: SOLO SE PUEDE APLICAR A LOS BUCLES CUYO NUMERO DE ITERACIONES SE CONOCE EN TIEMPO DE COMPILACION.SE PUEDE APLICAR A LOS BUCLES FOR(I=1;I<=10;I++) NO SE P UEDE APLICAR A LOS BUCLES FOR(I=A;I<=B;I++) 7.- REDUCCION DE FRECUENCIA:DETECTA OPERACIONES INVARIANTES DE BUCLE Y LAS CALCULA UNA UNICA VEZ DELANTE DEL BUCLE 8.- SON LAS OPERACIONES QUE CUMPLEN CON *SU UNICO EFECTO ES EL CALCULO DEL RESULTADO*EL RESULTADO SOLO DEPENDE DE LOS OPERANDOS QUE SE PUEDEN CONSIDERAR COMO OPERACIONES INVARIANTES DE BUCLE*INVARIANTES +,-,*,/,SIN,LN * NO INVARIANTES PRINTF, GETCHAR,++,RANDOM 9.-ES IMPORTANTE RECORDAR QUE LAS MODIFICACIONES QUE AGAMOS PARA MEJORAR EL RENDIMIENTO DEL COMPILADOR ,PROVOCA OTRO DESORDEN EN COMPILADOR. 10.-SE LLAMA CONTEO DE OPERACIONES AL PROCESO DE MEDIR UN CICLO PARA COMPRENDER LA MEZCLA DE OPERACIONES . NECESITARA CONTAR EL NUMERO DE CARGAS, ALMACENAMIENTO, OPERACIONES DE PUNTO FLOTANTE, ENTERAS, Y LLAMADOS A BIBLIOTECAS POR CADA ITERACION DEL BUCLE 11.-CON ESTE CONTEO, PUEDE VER QUE TAN BIEN CORRESPONDE LA MEZCLA DE OPERACIN DE UN CICLO DADO CON LAS CAPACIDADES DEL PROCESADOR. OPTIMIZACION GLOBAL 2.-OPTIMIZACIN -SE REALIZA DESPUS DE LA GENERACIN DE CDIGO INTERMEDIO DE TODO EL PROGRAMA *ES DEPENDIENTE DE TODO EL CONTEXTO 3.-OBJETIVO OBTENER CDIGO QUE SE EJECUTA MS EFICIENTEMENTE SEGN LOS CRITERIOS:*TIEMPO DE EJECUCIN (OPTIMIZACIN TEMPORAL) *ESPACIO DE MEMORIA UTILIZADO (OPTIMIZACIN ESPACIAL) 4.- OPTIMIZACION GLOBAL UTILIZA EL GRAFO DE FLUJO DE EJECUCIN:*SE CREA EL GRAFO DE EJECUCIN *ESTE REPRESENTA TODOS LOS CAMINOS POSIBLES EN LA EJECUCIN DEL PROGRAMA*LA INFORMACIN QUE ESTE GRAFO CONTIENE EL TIL PARA:-PROGRAMADORES-OPTIMIZADORES 5.-VENTAJAS UNA PROPAGACIN DE CONSTANTES FUERA DEL BLOQUE BSICO-ELIMINAR CDIGO NO UTILIZADO-UNA MEJOR ASIGNACIN DE LOS REGISTROS -ENTRE OTRAS COSAS 6.- DESVENTAJAS-MUY COSTOSA EN TIEMPO DE COMPILACIN 7.- TIPOS DE GRAFOS *ORIENTADO A PROCEDIMIENTOS DE FUNCIN*GRAFO DE LLAMADAS 8.- CONSTRUCCION DE GRAFO DE FLUJO *DIVIDIR EL PROGRAMA EN BLOQUES BSICOS*EN EL GRAFO, LOS VRTICES REPRESENTAN BLOQUES BSICOS Y LAS ARISTAS REPRESENTAN LOS SALTOS EN BLOQUE BSICO A OTRO 9.- DETECCIN DE CODIGO MUERTO ES CDIGO QUE NUNCA SE EJECUTAR *DETECTAR EL CDIGO NO UTILIZADO:-SON BLOQUES BSICOS DONDE NO LLEGA NINGUNA ARISTA-SE QUITA EL BLOQUE Y LAS ARISTAS QUE SALEN DE L -REPETIR HASTA NO ELIMINAR NINGN BLOQUE BSICO 10.- ANALISIS DEL GRAFO DEL FLUJO DE EJECUCIN HAY QUE CONSIDERAR COMO LA INFORMACIN SOBRE LAS VARIABLES Y EXPRESIONES SE PROPAGA A TRAVS DEL GRAFO. ESTA INFORMACIN LA REPRESENTAREMOS EN FORMA DE CONJUNTOS COMO LO S SIGUIENTES: EXPRESIONES DISPONIBLES ALCANCE DE LAS DEFINICIONES VARIABLES VIVAS EXPRESIONES MUY UTILIZADAS 11.- LOS CONJUNTOS SE CALCULAN PARA LOS PUNTOS DEL GRAFO DE FLUJO DE EJECUCIN.-UN PUNTO ES UNA POSICIN DENTRO DEL GRAFO Y SE ENCUENTRA ENTRE INSTRUCCIONES O BLOQUES BSICOS 12.- EXPRESIONES DISPONIBLES EL PROBLEMA DE LAS EXPRESIONES DISPONIBLES CONSISTE EN DETERMINAR QUE EXPRESIONES ESTN DISPONIBLES AL INICIO DE CADA BLOQUE BSICO.UNA EXPRESIN ESTA DISPONIBLE EN UN PUNTO SI EL RESULTADO QUE SE OBTUVO CUANDO SE CALCULO AN ES EL MISMO QUE SI SE VUELVE A CALCULAR EN EL PUNTO EN QUE ESTAMOS 13.- USOS DEL ALCANCE DE LAS DEFINICIONES REUTILIZACIN DE COPIAS EN REGISTROS ASIGNAMOS UN VALOR A UNA VARIABLE. ESTE SE ENCUENTRA EN UN REGISTRO DEL PROCESADOR. SI MS ADELANTE NECESITAMOS EL VALOR DE LA VARIABLE PODEMOS EVITAR ACCEDER A MEMORIA Y REUTILIZAR EL VALOR QUE HAY EN EL REGISTRO SI PERTENECE AL CONJUNTO DE LAS DEFINICIONES. DETECTAR EL USO DE VARIABLES NO INICIALIZADAS SE PRODUCE CUANDO INTENTAMOS LEER EL VALOR DE UNA VARIABLE NO DEFINIDA. PROPAGACIN DE CONSTANTES HAY QUE VER QUE UNA VARIABLE EST DEFINIDA CON UNA CONSTANTE Y SE PODR SUSTITUIR POR ESTA CUANTO SE QUIERA LEER 14.- VARIABLES VIVAS UNA VARIABLE ESTA VIVA EN UN PUNTO P CUANDO SU VALOR ES REQUERIDO MS ADELANTE EN UN CAMINO DE EJECUCIN QUE PASA POR P. UN CAMINO REQUIERE EL VALOR DE UNA VARIABLE CUANDO HAY UNA LECTURA DE LA VARIABLE ANTES DE UNA ASIGNACIN USOS DELIMITAR EXACTAMENTE EN QUE PARTES DEL CDIGO ES NECESARIA UNA VARIABLE. ELIMINACIN DE VARIABLE MUERTAS Y ASIGNACIONES INNECESARIAS 15.- UNA EXPRESIN ES MUY UTILIZA EN UN PUNTO P CUANDO EL VALOR DE LA EXPRESIN SE REQUIERE ANTES QUE EL VALOR DE CUALQUIERA DE SUS TRMINOS A LO LARGO DE CUALQUIER CAMINO QUE EMPIEZA EN P 16.- ALGORITMOS DE ANALISIS DE FLUJO DE EJECUCIN 17.-TIPOS: ALGORITMOS BASADOS EN LA ESTRUCTURA DE LOS BUCLES SON RPIDOS HAY QUE REDUCIR EL GRAFO A BUCLES SIN SALTOS QUE ENTREN EN MEDIO DEL BUCLE. LOS PROGRAMAS ESTRUCTURADOS SON REDUCIBLES.18 ALGORITMOS ITERATIVOS SON LENTOS PERO GENRICOS TIPOS: LISTA DE TRABAJOS ROUND ROBIN 19.- MIRILLA SECUENCIA CORTA SIMPLE RPIDA PARA MEJORAR EL RENDIMIENTO CDIGO 20.- CARGAS Y ALMACENAMIENTOS REDUNDANTES.SIMPLIFICACIN ALGEBRAICA. 1) MOV R0,A (2) MOV A, R0 SE ELIMINA (2) YA QUE EST GARANTIZADO QUE CON (1) EL VALOR DE A EST EN EL REGISTRO R0. 1 Y 2 TIENEN QUE ESTAR EN EL MISMO BLOQUE PARA QUE ESTA INSTRUCCIN SEA VALIDA 21.- CDIGO INALCANZABLE. ES UNA PARTE DEL CDIGO FUENTE QUE NUNCA PODR SER EJECUTADO PORQUE NO EXISTE NINGN CAMINO DENTRO DE LA DE LAS ESTRUCTURAS DEL PROGRAMA PARA LLEGAR A ESTE CDIGO.-OCUPA MEMORIA INNECESARIA DEBIDO A QUE EL CDIGO NUNCA SE EJECUTA. 22.- OPTIMACIONES DE FLUJO DE CONTROL. SON SALTOS PARA MEJORAR EL FLUJO DE CONTROL DE UNA APLICACIN. -ESTOS SALTOS SE PUEDEN DAR EN LA GENERACIN DE CDIGO INTERMEDIO O CDIGO OBJETO. SUSTITUCIN DE SALTOS 23.- REDUCCIN DE INTENSIDAD. LLAMADAS A RUTINAS PARA SUSTITUIR BLOQUES DE CDIGO QUE SON CREADOS POR EL PROGRAMADOR FUNCIONES. 24.- USO DE INSTRUCCIONES ESPECIALES DE LA MQUINA -INSTRUCCIONES DE HARDWARE PARA IMPLANTAR CIERTAS OPERACIONES ESPECFICAS EFICIENTEMENTE.-DETECTAR BLOQUES DE CDIGO QUE PERMITAN EL USO DE ESTAS INSTRUCCIONES, PUEDE REDUCIR EL TIEMPO DE EJECUCIN 25.- ARQUITECTURA DE CONJUNTO DE INSTRUCCIONES (ISA) *ASPECTOS DEL PROCESADOR, FUNCIONAMIENTO DE LA CPU (DISEO Y ARQUITECTURA). - CISC (COMPLEX INSTRUCTION SET COMPUTER).-RISC (REDUCED INSTRUCTION SET COMPUTER).-SISC (SIMPLE INSTRUCTION SET COMPUTING).[COSTE, FUNCIONAMIENTO, CONSUMO DE ENERGA] 26.-COSTOS DE EJECUCION SON AQUELOS QUE VIENEN IMPLICITOS AL EJECUTAR EL PROGRAMA. EN ALGUNOS PROGRAMAS SE TIENE UN MINIMO PARA EJECUTAR EL PROGRAMA, POR LO QUE EL ESPACIO Y LA VELOCIDAD DE LOS MICROPROCESADORES SON ELEMENTOS QUE DEBEN OPTIMIZAR PARA TENER UN MERCADO POTENCIAL MAS AMPLIO.-LAS APLICACIONES MULTIMEDIA COMO LOS VIDEOJUEGOS TIENEN UN COSTO DE EJECUCION ALTO POR LO CUAL LA OPTIMIZACION DE SU DESEMPEO ES CRITICO, LA GRAN MAYORIA DE LAS VECES REQUIEREN DE PROCESADORES RAPIDOS O DE MUCHA MEMORIA

27.- OTRO TIPO DE APLICACIONES QUE DEBEN OPTIMIZARSE SON LAS APLICACIONES PARA DISPOSITIVOS MOVILES-LOS DISPOSITIVOS MOVILES TIENEN RECURSOS MAS LIMITADOS QUE UN DISPOCITIVO DE COMPUTO CONVENCIONAL RAZON POR LO CUAL, EL MEJOR USO DE MEMORIA Y OTROS RECURSOS DE HARDWARE TIENEN MAYOR RENDIMIENTO. EN ALGUNOS CASOS ES PREFERIBLE TENER LA LOGICA DEL NEGOCIO MAS FUERTE EN OTROS DISPOSITIVOS Y HACER USO DE ARQUITECTURAS DESENTRALIZADAS COMO CLIENTE/SERVIDOR O P2P 28.-MEMORIA ES UNO DE LOS RECURSOS MAS IMPRTANTES DE LA COMPUTADORA Y EN CONSECUENCIA LA PARTE RESPONSABLE DEL SISTEMA OPE RATIVO EN TRATAR CON ESTE RECURSO, EL GESTOR DE MEMORIA DEL SISTEMA OPERATIVO DEBE HACER DE PUENTE ENTRE LOS REQUISITOS DE LAS APLICACIONES Y LOS MECANISMOS QUE PROPORCIONA EL HARDWARE DE GESTION DE MEMORIA29.-REGISTROS DEL PROCESADOR SE EMPLEAN PARA CONTROLAR INSTRUCCIONES EN EJECUCION, MANEJAR DIRECCIONAMIENTO DE MEMORIA Y PROPORCIONAR CAPACIDAD ARITMETICA. LOS REGISTROS SON ESPACIOS FISICOS DENTRO DEL MICROPROCESADOR CON CAPACIDAD DE 4 BITS HASTA 64 BITS DEPENDIENDO DEL MICROPROCESADOR QUE SE EMPLEE 30.- PILA LA APARICION DE LENGUAJES CON ESTRUCTURA DE BLOQUE TRAJO CONSIGO LA NECESIDAD DE TECNICAS DE ALOJAMIENTO EN MEMORIA MAS FLEXIBLE , QUE PUDIERAN ADAPTARSE A LAS DEMANDAS DE MEMORIA DURANTE LA EJECUCION DEL PROGRAMA. LA ASIGNACION DE MEMORIA DE LAS VARIABLES LOCALES SE HACE DE UNA FORMA FLEXIBLE , YA QUE SOLAMENTE NECESITAN UN ESPACIO DE MEMORIA ASIGNADA DESDE EL MOMENTO EN QUE COMIENZA LA EJECUCION HASTA EL MOMENTO EN EL Q ESTA FINALIZA31.CRITERIOS PARA MEJORAR CODIGO:OBTENER CODIGO QUE SE EJECUTA MAS EFICIENTEMENTE SEGN LOS CRITERIOS DE : -TIEMPO DE EJECUCION (OPTIMIZACION TEMPORAL)-ESPACIO DE MEMORIA UTILIZADO(OPTIMIZACION ESPACIAL) PARA REALIZAR UNA OPTIMIZACION ES NECESARIO TOMAR EN CUENTA LOS CRITERIOS PARA LA MEJORA DEL CODIGO ASI COMO LOS TIPOS DE TRASFORMACIONES PARA MEJORAR EL CODIGO(MIRILLA,LOCALES.CICLOS Y GLOBALES) ASI COMO LA REPRESENTACION 32.-LAOPTIMIZACION DEL CODIGO PUEDE IMPLEMENTARSE ENTRE LA GENERACIO DEL CODIGO INTERMEDIO O AL FINAL DEL MISMO 33.-FUNCIONAMIENTO:REVISA EL CODIGO GENERADO A VARIOS NIVELES DE ABSTRACCIOM (CODIGO INTERMEDIO) Y REALIZA LAS OPTIMIZACIONES APLICABLES(FLUJOS DE DATOS ELIMINA SUBEXPRESIONES COMUNES, PROPAGACION DE COPIAS, TRANSFORMACIONES PARA TRASLADAR CALCULOS INVARIANTES Y VARIABLES DE INDUCCION)AL NIVEL DE ABSTRACCION 34.-REPRESENTACIONES DE CODIGO INTERMEDIO DE MAS A MENOS ABSTRACTAS-ARBOL SISTACTICO ABSTRACTO(GRAFOS)-TUPLAS O CUADRUPLAS-ESAMBLADOR /CODIGO MAQUINA 35.-DEBE PRESERVAR EL SIGNIFICADO DE LOS PROGRAMAS- EL CODIGO SE A DE COMPORTAT IGUAL QUE EL CODIGO DE PARTIDA EXEPTO POR SER MAS RAPIDO O OCUPAR MENOS ESPACIO.-HAY QUE BUSCAR TRASFORMACIONES QUE NO MODIFIQUEN EL COMPORTAMIENTO DEL CODIGO SEGN EL COMPORTAMIENTO DEFINIDO PARA EL LENGUAJE DE PROGRAMACION 36.-ACELERAR EL PROGRAMA:UNA TRANSFORMACION DEBE, COMO PROMEDIO ACELERAR LOS PROGRAMAS EN UNA CANTIDAD MESURABLE,EN OCACIONES INTERESA REDUCIR EL ESPACIO QUE OCUPA EL CODIGO COMPILADO, AUNQUE EL TAMAO DEL CODIGO TIENE MENOS IMPORTANCIA QUE LA QUE TENIAS ANTES 37.-QUE VALGA LA PENA:ALGUNAS TRANFORMACIONES SOLO SE PUEDEN APLICAR DESPUES DE UN ANALISIS DETALLADO Y QUE LLEVA SU TIEMPO DEL PROGRAMA FUENTE, DE MODO QUE TIENE POCO SENTIDO APLICARLAS A PROGRAMAS QUE SOLO SE EJECUTARAN POCAS VECES.SOLO CUANDO EL PROGRAMA EN CUESTION TOMA UNA FRACCION SIGNIFICATIVA DE LOS CICLOS DE LA MAQUINA, LA CALIDAD MEJORADA DEL CODIGO JUSTIFICA EL TIEMPO EMPLEADO EN EJECUTAR UN COMPILADOR OPTIMADO SOBRE EL PROGRAMA. HERRAMIENTAS DE FLUJO DE DATOS: EXISTEN ALGUNAS HERRAMIENTAS QUE PERMITEN EL ANLISIS DE LOS FLUJOS DE DATOS, ENTRE ELLAS TENEMOS LOS DEPURADORES Y DESAMBLADORES2.-DEPURADOR: ES UNA APLICACIN QUE PERMITE CORRER OTROS PROGRAMAS, PERMITIENDO AL USUARIO EJERCER CIERTO CONTROL SOBRE LOS MISMOS A MEDIDA QUE LOS ESTOS SE EJECUTAN, Y EXAMINAR EL ESTADO DEL SISTEMA (VARIABLES, REGISTROS, ETC.) EN EL MOMENTO EN QUE SE PRESENTE ALGN PROBLEMA 3.- CUL ES EL PROPSITO FINAL DE UN DEPURADOR? CONSISTE EN PERMITIR AL USUARIO OBSERVAR Y COMPRENDER LO QUE OCURRE "DENTRO" DE UN PROGRAMA MIENTRAS EL MISMO ES EJECUTADO Y AS PODER DEPURAR O ELIMINAR LOS ERRORES 4.- CUALES SON LAS PRINCIPALES FUNCIONES QUE TIENE UN DEPURADOR ? -CORRER UN PROGRAMA PASO A PASO, PARAR EL PROGRAMA (BREAKING), ES DECIR, PAUSAR EL PROGRAMA PARA EXAMINAR EL ESTADO ACTUAL EN CIERTO EVENTO O INSTRUCCIN ESPECIFICADA POR MEDIO DE UN BREAKPOINT, Y EL SEGUIMIENTO DE VALORES DE ALGUNAS VARIABLES. -ALGUNOS DEPURADORES TIENEN LA CAPACIDAD DE MODIFICAR EL ESTADO DEL PROGRAMA MIENTRAS QUE EST CORRIENDO, EN VEZ DE SIMPLEMENTE OBSERVARLO. -TAMBIN ES POSIBLE CONTINUAR LA EJECUCIN EN UNA POSICIN DIFERENTE DEL PROGRAMA PASANDO UN ESTRELLAMIENTO O ERROR LGICO 5.- EL DEPURADOR PERMITE DETENER EL PROGRAMA EN:-UN PUNTO DETERMINADO MEDIANTE UN PUNTO DE RUPTURA.-UN PUNTO DETERMINADO BAJO CIERTAS CONDICIONES MEDIANTE UN PUNTO DE RUPTURA CONDICIONAL.-UN MOMENTO DETERMINADO CUANDO SE CUMPLAN CIERTAS CONDICIONES.-UN MOMENTO DETERMINADO A PETICIN DEL USUARIO 6.-DURANTE ESA INTERRUPCIN, EL USUARIO PUEDE: -EXAMINAR Y MODIFICAR LA MEMORIA Y LAS VARIABLES DEL PROGRAMA.-EXAMINAR EL CONTENIDO DE LOS REGISTROS DEL PROCESADOR. -EXAMINAR LA PILA DE LLAMADAS QUE HAN DESEMBOCADO EN LA SITUACIN ACTUAL.-CAMBIAR EL PUNTO DE EJECUCIN, DE MANERA QUE EL PROGRAMA CONTINE SU EJECUCIN EN UN PUNTO DIFERENTE AL PUNTO EN EL QUE FUE DETENIDO.-EJECUTAR INSTRUCCIN A INSTRUCCIN.-EJECUTAR PARTES DETERMINADAS DEL CDIGO, COMO EL INTERIOR DE UNA FUNCIN, O EL RESTO DE CDIGO ANTES DE SALIR DE UNA FUNCIN.DESAMBLADORES ES UN PROGRAMA DE COMPUTADORA QUE TRADUCE EL LENGUAJE DE MQUINA A LENGUAJE ENSAMBLADOR, LA OPERACIN INVERSA DE LA QUE HACE EL ENSAMBLADOR 1.- PARA QUE SON USADOS LOS DESAMBLADORES ? PARA CRACKEAR PROGRAMAS Y PARA REALIZAR INGENIERA INVERSA. TAMBIN SON UTILIZADOS POR DESARROLLADORES DE SOFTWARE, INVESTIGADORES O ESTUDIANTES EN LA OPTIMIZACIN DE SU CDIGO 2.-COMO FUNCIONA UN DESAMBLADOR? TRANSFORMA EL CDIGO BINARIO EN INSTRUCCIONES BSICAS DEL PC EN LA QUE SE EJECUTA, EL PROGRAMA NO ES CAPAZ DE DISTINGUIR SI DICHAS INSTRUCCIONES PROVIENEN DE UN "IF", DE UN "FOR" O DE UN "WHILE". TAMPOCO CONOCE LOS NOMBRES DE LAS VARIABLES (NO SE INCLUYEN EN EL CDIGO BINARIO YA QUE LA MQUINA NO USA NOMBRES), AS QUE SUELE INVENTAR NOMBRES COMO VAR_0001, VAR_0002, ETC. LA SALIDA DE UN DESENSAMBLADOR, EL DESENSAMBLADO, ES A MENUDO FORMATEADA PARA LA LEGIBILIDAD HUMANA EN VEZ DE SER ADECUADA PARA LA ENTRADA A UN ENSAMBLADOR, HACIENDO QUE STE SEA PRINCIPALMENTE UNA HERRAMIENTA DE INGENIERA INVERSA 3.-UN DESENSAMBLADOR NO PUEDE:-RESCATAR LOS NOMBRES DE LAS VARIABLES O LAS FUNCIONES NOMBRADAS POR EL PROGRAMADOR.-RECUPERAR LOS COMENTARIOS.-RESCATAR CDIGO FUENTE PERDIDO.

Vous aimerez peut-être aussi