http://youtu.be/ojHJJqNohIM
lunes, 23 de abril de 2012
viernes, 20 de abril de 2012
TEORIA
ANALIZADOR DE RENDIMIENTO
Los analizadores de rendimiento (denominados habitualmente en lengua inglesa profilers) son herramientas que permiten examinar el comportamiento de los programas en tiempo de ejecución, permitiendo comprobar que zonas del código trabajan eficientemente y cuales deberían ser revisadas por su bajo rendimiento. Actualmente la mayor parte de los compiladores comerciales incorporan analizadores de rendimiento, por Ejemplo: TURBO PROFILER de Borland y Source Profiler de Microsoft.
COMPRESORES
Un traductor es un programa que procesa un texto fuente y genera un texto objeto. El traductor está escrito en un lenguaje de implementación (LI) o también denominado lenguaje host. El texto fuente está escrito en lenguaje fuente (LF), Lenguaje de alto nivel. El texto objeto está escrito en lenguaje objeto (LO)
Un traductor es un programa que procesa un texto fuente y genera un texto objeto. El traductor está escrito en un lenguaje de implementación (LI) o también denominado lenguaje host. El texto fuente está escrito en lenguaje fuente (LF), Lenguaje de alto nivel. El texto objeto está escrito en lenguaje objeto (LO)
Lenguajes de bajo
nivel. El lenguaje objeto (LO) es
el lenguaje al que se traduce el texto fuente
El lenguaje de implementación (LI) o lenguaje
host es el lenguaje en que está escrito el traductor. Puede ser
cualquier lenguaje, desde un lenguaje de alto nivel a un lenguaje máquina.
DECOPILADORES
Los
decompiladores realizan la tarea inversa a los compiladores, es decir son un
caso particular de los traductores en los cuales el
programa fuente es un lenguaje de bajo nivel y el lenguaje objeto es un
lenguaje de nivel superior. Esta tarea es difícil, sobre todo si se desea que
el lenguaje objeto tenga una cierta lógica, a no ser que se conozca la forma en
que se obtuvo el programa de bajo nivel (por ejemplo si se generó con un
compilador determinado, y se tiene el esquema de generación de código de dicho
compilador).
DEPURADORES
Los depuradores
(en inglés debuggers,
literalmente desparasitadores) son
herramientas que permiten encontrar y corregir loserrores de los programas (denominádos
en inglés bugs, parásitos).
Estas herramientas suelen ir ligadas a los compiladores de forma que el
programador pueda comprobar y visualizar la correcta ejecución de un programa.
Las características habituales de los depuradores son:
• Permiten
observar la traza de los programas fuente, permitiendo la visualización del
valor de cualquier variable, dirección, o
expresión.
• Comprobación
del código objeto generado (habitualmente ensamblador o instrucciones en código
máquina) por cada instrucción
del programa fuente.
• Observación de
la traza a bajo nivel del programa ejecutable, visualizando en ejecución los
valores de las distintas posiciones de
memoria, de los registros del microprocesador, etc...
Los depuradores
utilizan parte de la información usada en tiempo de compilación por el
compilador, y que habitualmente no se almacena en ejecución, lo cual permite
restablecer los lazos existentes entre el código fuente y el código objeto.
Como depuradores comerciales en el entorno DOS se pueden citar TURBO DEBUGGER de Borland y CodeView de Microsoft.
DESESAMBLADOR
Un caso particular de los decompiladores son los desensambladores, que traducen de código máquina a ensamblador, quizá es un caso más fácil dado que hay una correspondencia directa entre las instrucciones ensamblador y código máquina.
Un ejemplo de desensambladores es el j-- [AZAÑ97, AZAÑ98], donde se desarrollan un conjunto de herramientas para desensamblar y ensamblar bytecode de la máquina virtual de Java (JVM).
EDITORES
Los editores de
lenguajes de programación con sintaxis resaltada por medio de colores o tipos
de letra permiten llamar a la atención al
programador en el momento mismo que está escribiendo el programa, sin necesidad
de compilar, dado que llevan incorporada la sintaxis del lenguaje.KLITE, LZEXE,
etc...).
FORMATEDORES
Los formateadores
pueden ser de muchos tipos y con diferentes fines, desde los dedicados a
formatear textos, ecuaciones oprogramas. Los formateadores de programas
resaltan su sintaxis o su estructura, para lo cual es necesario conocer la
sintaxis del lenguaje a formatear. También pueden entrar dentro de este grupo
los conversores de formatos.
PREPROCEADORES
Es un caso particular de un
traductor en el cual se hacen sustituciones de las macros definidas. El
preprocesador realiza las sustituciones, pero no hace ningún
tipo de análisis del contexto donde las realiza, ésta es la principal
diferencia entre un preprocesador y otros tipos de procesadores de lenguaje. Un
ejemplo de preprocesador es el incorporado por los compiladores de lenguaje C.
OPTIMIZADORES DE CODIGO
Los optimizadores
de código pueden ser herramientas independientes, o estar incluidas en los
compiladores e invocarse por medio de opciones de compilación, siendo esta
última forma como se suelen encontrar en la mayor parte de los compiladores
comerciales. Una opción habitual de optimización es elegir entre velocidad de
ejecución y tamaño del código ejecutable. Otras opciones son:
generar código
para un microprocesador específico dentro de una familia de microprocesadores,
eliminar la comprobación de rangos o desbordamientos de pila (stack), evaluación en cortocircuito (short-circuit) para expresiones
booleanas, eliminación de código muerto o no utilizado, eliminación de
funciones no utilizadas (por ejemplo la opción /PACKFUNCTIONS de Microsoft), etc...
INTERPRETES
Los intérpretes
son programas que simplemente ejecutan las instrucciones que encuentran en el
texto fuente.
En muchos casos coexisten en memoria el programa fuente y el programa
intérprete Algunos de los
lenguajes comúnmente interpretados son el BASIC, LOGO, PROLOG, SMALLTALK, APL y
LISP.
COMPILADOR
Un traductor que
transforma textos fuente de lenguajes de alto nivel a lenguajes de bajo nivel
se le denomina compilador
(en
inglés compiler). El tiempo que se necesita para traducir un lenguaje de
alto nivel a lenguaje objeto se denomina tiempo de compilación (compilation
time). El tiempo que tarda en ejecutarse un programa objeto se denomina tiempo
de ejecución (run time)
Suscribirse a:
Entradas (Atom)