Crisis de sw
Ricardo Peña Marí
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid
Master en formación de profesorado de Secundaria – Informática curso 2009-2010
R. Peña (SIC-UCM)
Crisis del software
Master Secundaria 09-10
1 / 24
Lecturas recomendadas
• “De Euclides a Java: Historia de los algoritmos y delos lenguajes de programación”. Ricardo Peña. Caps. 6 y 7. Ed. Nivola (Colección Ciencia Abierta), 2006. • “A brief history of computing”, Gerard Regan, Cap. 3, Springer 2008.
R. Peña (SIC-UCM)
Crisis del software
Master Secundaria 09-10
2 / 24
Los años 1960’s
• En estos años se desarrollan docenas de lenguajes que surgían sin cesar en empresas y universidades. Algunos como JOVIAL,MAD, NELLIAC, ALGOL-W, BASIC, etc., eran de propósito general. Otros eran de propósito específico, como SNOBOL (tratamiento de cadenas de caracteres), APL (procesamiento de matrices numéricas), GPSS (simulación) o los derivados de LISP (cómputo simbólico). • Sin embargo, no existían criterios claros para comparar la bondad relativa de tales propuestas. La programación científica se había adherido aFORTRAN, la empresarial a COBOL y cada área de aplicación disponía de su propio lenguaje. • El uso de lenguajes de alto nivel permitió dividir por diez el esfuerzo humano de programación. Pero las máquinas demandaban también programas más grandes. • A mediados de la década, y auspiciada por el desarrollo del hardware, surge la denominada multiprogramación, que consiste en que el sistema operativoaprovecha los tiempos “muertos” de un programa para ejecutar otros programas. El OS/360 de IBM (1964) es el primero que ofrece esta facilidad. • Los periféricos son típicamente entre mil y cien mil veces más lentos que la unidad de proceso. Se llaman tiempos muertos a los que un programa ha de esperar a que se complete una operación de entrada - salida.
R. Peña (SIC-UCM) Crisis del softwareMaster Secundaria 09-10 3 / 24
Problemas introducidos por la concurrencia
• Estos programas que simulan la ejecución paralela de varias tareas en un procesador se denominan concurrentes y hoy tenemos una mejor comprensión de los mismos y un amplio conjunto de técnicas para abordar su diseño. • Pero en 1964 nadie era consciente de los problemas a los que podían dar lugar: errores no deterministas,corrupción de los datos compartidos, interbloqueos, . . . • El OS/360 alcanzó más de un millón de líneas de código y trabajaron en él hasta 500 programadores a la vez. • Este conjunto de circunstancias condujo a un sonado fracaso que marcó a partir de entonces la historia de los lenguajes: un retraso de dos años, 500 millones de dólares en lugar de los 40 millones presupuestados, y multitud deerrores cuyo número no conseguían disminuir las sucesivas versiones. • El caso de IBM fue el más espectacular, pero en esa época se dieron muchos otros casos de proyectos fallidos. En la mayoría de ellos, el número de instrucciones a escribir alcanzaba cifras de varios cientos de miles. • Se hizo evidente que la tecnología del momento no podía hacer frente con fiabilidad a sistemas más allá de lascien mil líneas de código.
R. Peña (SIC-UCM) Crisis del software Master Secundaria 09-10 4 / 24
La crisis
• Abundando en este estado de cosas, empezó también a tomar forma la idea de que sería deseable un lenguaje que sirviera “para todo”. • Éste debería disponer de una buena notación matemática para la expresión de cálculos numéricos, de suficientes facilidades para la descripción de datos,una entrada/salida versátil y eficiente, y mecanismos para la creación de estructuras dinámicas semejantes a las de LISP. • También debería tener algunas características de los lenguajes especializados, tales como el tratamiento de cadenas de caracteres o facilidades para la multiprogramación. • En este contexto, se aborda el diseño de dos nuevos lenguajes: PL/I y ALGOL 68. • PL/I lo diseñó IBM...
Regístrate para leer el documento completo.