Entornos de programación Concepto, funciones y tipos
© 2004 Manuel Collado
Entornos de Programación-1
Contenido Entornos de desarrollo de software. CASE ■ Entorno de programación. Funciones ■ Algunas clases de entornos ■
● ● ●
■
Entornos centrados en un lenguaje Entornos orientados a estructura Entornos basados en herramientas
Entornos multilenguaje
© 2004 Manuel Collado
Entornos de Programación-2
Desarrollo de software ■
Actividades (ciclo) de desarrollo Análisis Diseño Codificación Integración Mantenimiento
© 2004 Manuel Collado
Entornos de Programación-3
Entornos de desarrollo de Sw. ■
CASE: Computer-Aided Software Engineering ● ● ●
■
Soporte para actividades verticales ●
■
Soporte informático para el desarrollo Se automatiza todo o parte Productos CASE: herramientas Específicas de una fase: diseño, compilación, ..
Soporte para actividades horizontales ●
Generales: documentación, planificación, ...
© 2004 Manuel Collado
Entornos de Programación-4
Productos CASE (en general) ■
Niveles funcionales ● ● ● ●
■
Servicio: automatiza una operación Herramienta: automatiza una tarea Banco de trabajo: automatiza un rol profesional Entorno: automatiza el proceso de desarrollo
Entorno de programación ● ●
Banco de trabajo del programador Codificación y prueba de unidades
© 2004 Manuel Collado
Entornos de Programación-5
Entorno de programación ■
Situación en el ciclo de desarrollo Análisis
Diseño detallado
Diseño Codificación
Pruebas
Integración Mantenimiento
© 2004 Manuel Collado
Entornos de Programación-6
Funciones de un E. de P. ■
Soporte para la preparación de programas ●
Actividades de codificación y pruebas
Tareas esenciales: edición y ejecución ■ Edición (modificación) del programa fuente ■ Proceso/ejecución del programa ■
● ● ●
Interpretación directa (código fuente) Compilación (código máquina) - montaje - ejecución Compilación (código intermedio) - interpretación
© 2004 Manuel Collado
Entornos de Programación-7
Funciones de un E. de P. ■
Otras funciones:
Examinar (hojear) el código fuente ■ Analizar consistencia, calidad, etc. ■ Ejecutar en modo depuración ■ Ejecución automática de pruebas ■ Control de versiones ■ Generar documentación, reformar código ■
© 2004 Manuel Collado
Entornos de Programación-8
Tipos de Entornos de Programación ■
Antecedentes (ejemplo: Compilador) Editor
P. Fuente
■
Compilador
P. Objeto
Montador
Librería
Depurador
P. Ejecutable
IDE (Interactive Development Environment) ● ● ●
Entornos centrados en un lenguaje Entornos orientados a estructura Entornos colección de herramientas
© 2004 Manuel Collado
Entornos de Programación-9
Entornos centrados en un lenguaje Específicos para un lenguaje de programación ■ Fuertemente integrado. Homogéneo ■ Herramienta única ■ Editor orientado a lenguaje ■ Fáciles de usar ■ A veces son poco flexibles ■ Basados en código fuente ≈ texto ■
© 2004 Manuel Collado
Entornos de Programación-10
Entornos centrados en un lenguaje ■
Ejemplo: lenguaje interpretado ●
■
Ejemplo: lenguaje compilado ●
■
(Inter)Lisp, Haskell, etc. Delphi, Visual C++, AdaGide, GPS, etc.
Ejemplos especiales: ● ● ●
Entornos Ada Entornos Smalltalk Entornos Oberon, Component Pascal
© 2004 Manuel Collado
Entornos de Programación-11
Entornos orientados a estructura Editor de estructura (editor sintáctico) ■ Representación interna de la estructura ■
●
■
Arbol de sintaxis abstracta: AST
Presentación como texto ● ●
Plantillas Elementos terminales (frases)
Compilación incremental (en algunos casos) ■ Representación XML ■
●
Editores y procesadores XML
© 2004 Manuel Collado
Entornos de Programación-12
Combinación de herramientas Integración débil ■ Entornos heterogéneos ■ Fáciles de ampliar / adaptar ■ Construible por el usuario ■ Poco control de uso ■ Frontal: editor con llamadas ext. (≈ IDE) ■
● ● ●
Emacs, Vim, Gvim Med, SciTE, jEdit Eclipse
© 2004 Manuel Collado
Entornos de Programación-13
Entornos multilenguaje ■
Entornos genéricos ● ● ●
■
Entornos específicos ● ● ●
■
Combinando herramientas (compiladores, etc.) Frontal: editor personalizable Emacs (modos) Lenguajes concretos Como los entornos orientados a un lenguaje Formato binario compatible
Máquina virtual ●
JVM (JRE), .Net (CLR)
© 2004 Manuel Collado
Entornos de Programación-14