Herramienta de programación


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Una herramienta de programación o una herramienta de desarrollo de software es un programa informático que los desarrolladores de software utilizan para crear, depurar, mantener o dar soporte a otros programas y aplicaciones. El término generalmente se refiere a programas relativamente simples, que se pueden combinar para realizar una tarea, de la misma forma que se pueden usar varias manos para arreglar un objeto físico. Las herramientas más básicas son un editor de código fuente y un compilador o intérprete., que se utilizan de forma ubicua y continua. Otras herramientas se utilizan más o menos según el lenguaje, la metodología de desarrollo y el ingeniero individual, que a menudo se utilizan para una tarea discreta, como un depurador o un generador de perfiles. Las herramientas pueden ser programas discretos, ejecutados por separado, a menudo desde la línea de comandos , o pueden ser partes de un único programa grande, llamado entorno de desarrollo integrado (IDE). En muchos casos, particularmente para un uso más simple, se utilizan técnicas simples ad hoc en lugar de una herramienta, como depuración de impresión en lugar de usar un depurador, cronometraje manual (del programa general o sección de código) en lugar de un generador de perfiles, o seguimiento de errores en un archivo de texto o una hoja de cálculo en lugar de un sistema de seguimiento de errores.

La distinción entre herramientas y aplicaciones es confusa. Por ejemplo, los desarrolladores usan bases de datos simples (como un archivo que contiene una lista de valores importantes ) todo el tiempo como herramientas. [ dudoso ] Sin embargo, una base de datos completa se suele considerar como una aplicación o software por derecho propio. Durante muchos años, se buscaron herramientas de ingeniería de software asistida por computadora (CASE). Las herramientas exitosas han resultado difíciles de alcanzar. En cierto sentido, las herramientas CASE enfatizaron el soporte de diseño y arquitectura, como para UML. Pero las más exitosas de estas herramientas son los IDE.

Usos de herramientas de programación

Traducir del lenguaje humano al informático

Las computadoras modernas son muy complejas y para programarlas productivamente, 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 con capacidad de escritura humana a bits y bytes que pueden ser ejecutados por una computadora. 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, llevarían mucho tiempo y serían propensas a errores cuando las realiza un humano, como colocar partes de un programa en la memoria y arreglar las referencias entre partes de un programa como lo hace un enlazador. La optimización de los compiladores, por otro lado, puede realizar transformaciones complejas en el código fuente para mejorar la velocidad de ejecución u otras características de un programa. Esto permite que un programador se concentre más en los aspectos conceptuales de un programa de nivel superior sin preocuparse por los detalles de la máquina en la que se está ejecutando.

Hacer que la información del programa esté disponible para los humanos

Debido a la alta complejidad del software, no es posible comprender 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 dificultan la comprensión de 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 extender 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 accesos a la memoria cuestionables o completamente incorrectos de programas en ejecución que, de lo contrario, podrían pasar desapercibidos y son una fuente común de fallas de programas.

Lista de herramientas

Las herramientas de software vienen en muchas formas:

  • Herramientas de análisis de compatibilidad binaria
  • Bases de datos de errores : comparación de los sistemas de seguimiento de problemas , incluidos los sistemas de seguimiento de errores
  • Herramientas de compilación: automatización de compilación , lista de software de automatización de compilación
  • Gráfico de llamadas
  • Cobertura de código : Cobertura de código # Herramientas de cobertura de código de software .
  • Revisión de código : lista de herramientas para la revisión de código
  • Sitios para compartir código: Freshmeat , Krugle , Sourceforge , GitHub . Consulte también Motores de búsqueda de código .
  • Herramientas de compilación y vinculación : GNU toolchain , gcc , Microsoft Visual Studio , CodeWarrior , Xcode , ICC
  • Depuradores : depurador # Lista de depuradores . Consulte también Depuración .
  • Desmontadores : generalmente herramientas de ingeniería inversa .
  • Generadores de documentación : Comparación de generadores de documentación , help2man, Plain Old Documentation , asciidoc
  • Métodos formales : técnicas matemáticas de especificación, desarrollo y verificación.
  • Generadores de interfaz GUI
  • Generadores de interfaz de biblioteca: SWIG
  • Herramientas de integracion
  • Los depuradores de memoria se utilizan con frecuencia en lenguajes de programación (como C y C ++ ) que permiten la gestión manual de la memoria y, por tanto, la posibilidad de pérdidas de memoria y otros problemas. También son útiles para optimizar la eficiencia del uso de la memoria. Ejemplos: dmalloc , Electric Fence , Insure ++ , Valgrind
  • Generadores de analizadores : análisis # software de desarrollo analizador
  • Análisis o creación de perfiles de rendimiento : lista de herramientas de análisis de rendimiento
  • Control de revisiones : Lista de software de control de revisiones , Comparación de software de control de revisiones
  • Lenguajes de script : PHP , Awk , Perl , Python , REXX , Ruby , Shell , Tcl
  • Buscar: grep , encontrar
  • Código fuente Clones / Duplicaciones Búsqueda: Código duplicado # Herramientas
  • Editor de código fuente
    • Editores de texto : Lista de editores de texto , Comparación de editores de texto
  • Formateo del código fuente : sangría , bonitas impresoras , embellecedores , minificadores
  • Herramientas de generación de código fuente : Programación automática # Implementaciones
  • Análisis de código estático : pelusa , Lista de herramientas para el análisis de código estático
  • Prueba unitaria: lista de marcos de prueba unitaria

IDE

Los entornos de desarrollo integrados combinan las características de muchas herramientas en un solo paquete. Por ejemplo, facilitan la realización de tareas específicas, como buscar contenido solo en archivos de un proyecto en particular. Los IDE se pueden utilizar, por ejemplo, para el desarrollo de aplicaciones de nivel empresarial.

En esta comparación de entornos de desarrollo integrados se pueden encontrar diferentes aspectos de IDE para lenguajes de programación específicos .

Ver también

  • Herramientas de ingeniería de software asistidas por computadora
  • Ciencias de la Computación
  • Sistema de configuración
  • Lenguaje de escritura
  • Kit de desarrollo de software
  • Ingeniería de software y lista de temas de ingeniería de software
  • Sistemas de software
  • Conjuntos de herramientas para la innovación del usuario

Referencias

  • Taller de herramientas de desarrollo de software para computación a petascala 2007
  • Kernighan, Brian W .; Plauger, PJ (1976), Herramientas de software , Addison-Wesley, págs.  352 , ISBN 0-201-03669-X

enlaces externos

Medios relacionados con herramientas de programación en Wikimedia Commons

Obtenido de " https://en.wikipedia.org/w/index.php?title=Programming_tool&oldid=1053275630 "