Traducción del lenguaje humano al lenguaje informático
Los ordenadores modernos son muy complejos y para programarlos de forma productiva se necesitan varias abstracciones. Por ejemplo, en lugar de escribir la representación binaria de un programa, un programador escribirá un programa en un lenguaje de programación como C, Java o Python.Las herramientas de programación, como los ensambladores, compiladores y enlazadores, traducen un programa de un lenguaje fuente legible y escribible por humanos a los bits y bytes que puede ejecutar un ordenador. Los intérpretes interpretan el programa sobre la marcha para producir el comportamiento deseado.
Estos programas realizan muchas tareas bien definidas y repetitivas que, sin embargo, consumirían mucho tiempo y serían propensas a errores si las realizara un ser humano, como la disposición de partes de un programa en la memoria y la fijación de las referencias entre las partes de un programa, como hace un enlazador.Los compiladores de optimización, por otro lado, pueden realizar transformaciones complejas en el código fuente para mejorar la velocidad de ejecución u otras características de un programa. Esto permite a un programador centrarse más en los aspectos conceptuales de alto nivel de un programa sin preocuparse por los detalles de la máquina en la que se ejecuta.
Hacer que la información del programa esté disponible para los humanosEditar
Debido a la alta complejidad del software, no es posible entender la mayoría de los programas de un solo vistazo incluso para el desarrollador de software más experimentado.Las abstracciones proporcionadas por los lenguajes de programación de alto nivel también hacen que sea difícil entender la conexión entre el código fuente escrito por un programador y el comportamiento real del programa.Para encontrar errores en los programas y evitar la creación de nuevos errores al ampliar un programa, un desarrollador de software utiliza algunas herramientas de programación para visualizar todo tipo de información sobre los programas.
Por ejemplo, un depurador permite a un programador extraer información sobre un programa en ejecución en términos del lenguaje fuente utilizado para programarlo.El depurador puede calcular el valor de una variable en el programa fuente a partir del estado de la máquina concreta utilizando información almacenada por el compilador. Los depuradores de memoria pueden señalar directamente los accesos a la memoria cuestionables o directamente erróneos de los programas en ejecución que, de otro modo, podrían pasar desapercibidos y son una fuente común de fallos del programa.