miércoles, 29 de marzo de 2017

Compilación y Depuración de Programas

COMPILACIÓN
La compilación es el proceso de traducción de programas fuente a programas objeto. El programa objeto obtenido de la compilación ha sido traducido normalmente al código común del lenguaje de máquina.
Existen diversas fases de compilación o también llamadas etapas de la compilación que se ilustrarán en la siguiente imagen:
Fases de la compilación
El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes pasos:
    1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).
    2. Introducir el programa fuente en memoria.
    3. Compilar el programa con el compilador.
    4. Verficar y corregir errores de compilación (listado de errores).
    5. Obtención del programa objeto.
    6. El enlazador (linker) obtiene el programa ejecutable.
    7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.
    DEPURACIÓN
    Cuando se ha desarrollado el pseudocódigo de un algoritmo o programa y lo introducimos en el ordenador en forma de código, se intenta la primera ejecución. Con esta primera ejecución se empieza a obtener información respecto al estado del programa en cuanto a errores. Es habitual que el programa no funcione a la primera.
    Comenzamos un proceso de eliminación de errores que supone ir construyendo un programa sólido a partir de un embrión de programa débil. Vamos a verlo como un proceso de destrucción de una pirámide de errores y construcción de una pirámide de programa sólido.
    piramide de errores programacion
    El umbral que hace al programa válido para su uso es el de ejecución sin errores y con resultados correctos para situaciones y datos de entrada esperados. Por tanto este será un objetivo irrenunciable para el programador. Nos situamos en un nivel en el que no existen errores de obligada ocurrencia pero sí cierta probabilidad de aparición de errores ante circunstancias específicas. Hablando pues en términos de probabilidad no nos referimos a número de errores, sino al grado de vulnerabilidad o, si se prefiere, grado de fortaleza de un programa. Si la posibilidad de errores es alta decimos que el programa es débil o vulnerable y si es baja que es poco vulnerable o fuerte. Las equivalencias serían estas:
    Probabilidad de error
    Grado de vulnerabilidad
    Grado de fortaleza
    Muy alta
    Muy vulnerable
    Inconsistente, frágil
    Alta
    Vulnerable
    Débil
    Baja
    Poco vulnerable
    Fuerte, sólido
    Nula
    Invulnerable
    Muy fuerte, totalmente sólido


    Cuanta más depuración más fuerte es el programa, pero también mayor esfuerzo y tiempo requiere. El programador puede adoptar pues una actitud de lucha tenaz y búsqueda de cualquier posible error para su eliminación, a lo que llamamos enfoque de intransigencia, o bien dar por bueno que se produzcan ciertos errores para supuestos poco usuales que serían gestionados, a lo que llamamos enfoque de permisividad. ´
    En resumen: la postura más lógica es la de tener cierta permisividad hacia los errores, buscando el equilibrio entre esfuerzo y grado de perfección del programa.

No hay comentarios.:

Publicar un comentario