Your SlideShare is downloading. ×
10. cuarta era
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

10. cuarta era

91
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
91
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Historia del software en computación aplicado a la informática educativa. 103cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardwareque se hubieran adquirido. Estas actividades se llamaron colectivamentemantenimiento del software. El esfuerzo gastado en el mantenimiento del softwarecomenzó a absorber recursos en una medida alarmante. Para salir de la crisis algunos investigadores como C. A. R. Hoare y N. Wirth, seapartaron del WG 2.1 ocupado en la definición de ALGOL 68 y crearon un nuevo grupo,el WG 2.3, sobre metodología de la programación. Para obtener una metodologíaadecuada para la concepción de programas se impuso un periodo de reflexión antes dehacerlos. El problema era que las metodologías estaban aún por hacer. Para salir de lacrisis necesitaban lenguajes más simples cuyas construcciones fueran completamentecomprendidas, y sistemas de tipos más exigentes que eliminaran la mayor cantidad deerrores posibles durante la compilación.3.6.4. Cuarta era (1971-1987). Con el desarrollo de los circuitos integrados a gran escala (LSI), chips quecontienen miles de transistores en un cm2 de silicio, nació la era de la computaciónpersonal. El chip microprocesador permitía que cada usuario tuviese su propiacomputadora. Las computadoras personales empleadas por universidades, empresas einstalaciones del gobierno se denominan estaciones de trabajo, sin embargo no sonnada más que computadoras personales grandes conectadas mediante una red. Elaumento de la disponibilidad de la potencia de cómputo interactiva influyó a la horade realizar software para los computadores personales. Un gran porcentaje de estesoftware estaba destinado a usuarios que no sabían nada de computación y no iban aaprender, a diferencia de las eras anteriores.Sistemas operativos. [19][37][49][50] Esta etapa se caracteriza por el desarrollo de los sistemas operativos de red, demultiprocesamiento simétrico o SMP (Symetric Multiprocessing) y sistemas operativosdistribuidos. Los sistemas operativos de multiprocesamiento simétrico (Fig. 58) se ejecutan encomputadores con múltiples procesadores, cada uno de ellos realiza las mismasfunciones y comparten la misma memoria principal y facilidades de E/S einterconectados por un bus u otro sistemas de conexión. Los sistemas operativos SMP dan la apariencia al usuario de que solo dispone de unprocesador sin embargo distribuye y planifica los trabajos en distintos procesadores,interconectándolos entre sí.Daniel Merchán López. 2013
  • 2. 104 Historia del software en computación aplicado a la informática educativa. Fig. 58. Sistema operativo de procesamiento simétrico. En un sistema de red (Fig. 59) los usuarios son conscientes de que existen múltiples computadoras pudiendo ingresar en máquinas remotas y copiar los archivos de una a otra. No se diferencian de los sistemas operativos convencionales pues se pueden considerar como una ampliación de éstos con programas de control de interfaz con la red. También disponen de software de bajo nivel para operarlo y programas para realizar inicios de sesión remotos, además de programas de acceso a archivos remotos. Un sistema de red cree que está actuando con una única memoria principal, un único sistema de archivos y una única unidad de disco, aunque realmente todos esos elementos se encuentran en distintos computadores. Fig. 59. Sistema operativo de red. Un sistema operativo distribuido (Fig. 60) permite trabajar a los usuarios como su tuviera un solo procesador, sin embargo, está compuesto por múltiples procesadores. Los usuarios no se enteran dónde están almacenados sus archivos o dónde están ejecutándose sus programas para ello el sistema operativo dispone de un sistemas de gestión de archivos distribuido y sofisticados algoritmos de planificación que paralizan correctamente el trabajo a realizar. A diferencia de los sistemas operativos de red, éstos sistemas no se tienen que preocupar de que no haya retardos en la red pues el sistema operativo tiene toda la información sobre el estado del sistema. Daniel Merchán López. 2013
  • 3. Historia del software en computación aplicado a la informática educativa. 105 Fig. 60. Sistema operativo distribuido. Varios sistemas operativos nacen en Esta era como el Mac OS, OS/2, MVS,UNIX y lossistemas operativos de Microsoft .  Mac OS. El Mac OS (Fig. 61) es un sistema operativo creado por Apple para su línea de computadoras Macintosh. Es el precursor de los sistemas operativos con interfaz gráfica compuesta por la interacción del mouse con ventanas, icono y menús. Fue desarrollado por Bill Atkinson, Jef Raskin y Andy Hertzfeld y la primera versión vio la luz en 1985. Fig. 61. Interfaz del Mac OS de 1985. El Mac OS original estaba basado parcialmente en el Lisa OS, previamentecomercializado por Apple para la computadora Lisa en 1983. La primera versión sellamaba simplemente System. Aparte del núcleo del sistema encontramos el Finder,una aplicación usada para administrar archivos, que también mostraba el escritorio.Los dos archivos estaban contenidos en una carpeta etiquetada como System Folder(carpeta del sistema), que contenía otros archivos necesarios, como por ejemplo elcontrolador de la impresora, necesarios para interactuar con el System. Hasta 1987Apple lanza al mercado nuevas versiones con mejoras como el agregado Mountainscene, About box, Clean Up Command y actualizaciones del finder y el System. Tambiénse corrigen algunos errores de versiones anteriores.Daniel Merchán López. 2013
  • 4. 106 Historia del software en computación aplicado a la informática educativa.  OS/2. El sistema operativo OS/2 (Fig. 62) creado a partir de 1982, y lanzado en 1987, fue desarrollado de forma conjunta por IBM e Intel. Era de 16 bits y trabajaba exclusivamente en el modo protegido del procesador Intel 80286. Es un sistema operativo monousuario y multiprogramación. En la versión 1.1, lanzada posteriormente, incorporaba la primera versión del Presentation Manager, el gestor de ventanas de OS/2, con una apariencia idéntica a la del todavía inexistente Windows 3.0. Dos versiones nuevas aparecieron poco después, la 1.2 y 1.3, también de 16 bits. Fig.62. Interfaz del OS/2 de 1987.  MVS. El MVS fue lanzado al mercado por primera vez en 1974 desarrollado por IBM para grandes computadores como System/370 y System/390. Es de tipo multiprogramación, multiusuario, funcionando tanto de manera interactiva como por lotes, y con memoria virtual. Todo esto hace que sea uno de los sistemas operativos más sofisticados. Este sistema se usa típicamente en aplicaciones comerciales y bancarias, y que como se ha señalado están normalmente escritas en COBOL.  Sistemas operativos Microsoft. Los sistemas operativos de Microsoft son los más extendidos en el mercado de microcomputadores. El primer sistema operativo que lanzó fue el MS-DOS (Fig. 63). Debe su difusión a que fue adoptado por IBM al inicio de la década de los 80 como el sistema operativo estándar para el IBM- PC. El MS-DOS inicial era un sistema operativo para microprocesadores de 16 bits (de intel), monousuario y tenía una interfaz de usuario de línea de órdenes. Constaba de 4.000 líneas de código fuente en lenguaje ensamblador. Fig. 63. Imagen del sistema operativo MS-DOS. Daniel Merchán López. 2013
  • 5. Historia del software en computación aplicado a la informática educativa. 107 Microsoft lanzó al mercado una nueva versión del MS-DOS en 1983 porque IBMdesarrolló un computador personal basado en disco duro, el PC TX. Éste tenía soportepara disco duro y ofrecía directorios jerárquicos. Esta versión permitía que losdirectorios pudiesen tener tanto subdirectorios como archivos. En cuanto a lascapacidades que se le añadieron estaban algunas de tipo UNIX, como elredireccionamiento de E/S (capacidad de cambiar la identidad de la entrada o la salidade una aplicación) y la impresión subordinada (background). Las nuevas versiones delDOS, MS-DOS 3.0 y MS-DOS 5.0, trataban de competir con Macintosh, cuyo sistemaoperativo era insuperable en cuanto a facilidad de uso. Tras la aparición del Apple Macintosh en 1984,el público se interesó por la interfaz de usuario gráfica o GUI (Graphical User Interface).Muchos programas crearon sus propias interfaces gráficas, como Microsoft Word para DOS, XTree (Fig. 64) y el Norton Shell. Sin embargo, esto exigía duplicar esfuerzos y no proporcionaba mucha consistencia, lo que hizo crear entornos GUI completos.Fig. 64. Ejemplo del GUI XTREE para MS-DOS. Aparece en 1985 Windows 1.0. Es una interfaz gráfica de usuario (GUI) para MS-DOS(incluido en el IBM PC y compatibles desde 1981) intentando imitar el MacOS deApple. Esta GUI estaba muy limitada debido a los recursos legales de Apple, que nopermitía imitaciones de sus interfaces de usuario. Por ejemplo, las ventanas sólopodían disponerse en mosaico sobre la pantalla; esto es, nunca podían solaparse uocultarse unas a otras. Tampoco disponía de la papelera de reciclaje debido a queApple creía que ellos tenían la patente de este paradigma o concepto aunque ambaslimitaciones fueron eliminadas cuando el recurso de Apple fue rechazado en lostribunales. Por otro lado, los programas incluidos en la primera versión eranaplicaciones "de juguete" con poco atractivo para los usuarios profesionales. En 1987salió una nueva versión que incluía aplicaciones que se podían cargar desde MS-DOS,ejecutando Windows a la vez que el programa, y cerrando Windows al salir de ellas.  Sistemas operativos UNIX. Como se ha indicado, en la Era anterior el sistema operativo UNIX nace de unaversión de MULTICS para minicomputadoras. La primera versión de UNIX estabaescrita en el lenguaje ensamblador de la PDP-11/20. Contaba con un programa paraDaniel Merchán López. 2013
  • 6. 108 Historia del software en computación aplicado a la informática educativa. dar formato a los textos (runoff) y un editor de texto. Tanto el runoff como el editor fueron adoptados por el departamento de patentes de los Laboratorios Bell como procesador de texto. Runoff evolucionó a troff, el primer programa de edición electrónica con capacidad de composición tipográfica. En 1973, Ritchie y Thompson volvieron a escribir el núcleo en el lenguaje de programación C. Este cambio significaba que UNIX podría ser fácilmente modificado para funcionar en otras computadoras (de esta manera, se volvía portable) y desarrollar variaciones por otros programadores. Ahora, el código era más conciso y compacto, lo que se tradujo en un aumento en la velocidad de desarrollo de UNIX. Hacia 1974 comenzó a utilizarse generalizadamente en los Laboratorios Bell la cuarta edición de UNIX. Estas versiones conocidas como ediciones se fueron desarrollando hasta 1979, en la que salió la edición UNIX. Esta última versión fusiona las versiones más populares del UNIX y los sistemas BSD, Xenix y SunOS, ajustándose a los estándares importantes definidos para el sistema por diversas organizaciones como el IEEE, el ANSI, etc. AT&T puso UNIX a disposición de universidades y compañías, incluido el gobierno de los Estados Unidos, a través de licencias por un coste simbólico. Una de estas licencias se otorgó a la Universidad de Berkeley en California haciendo el más importante de los sistemas UNIX no desarrollados por AT&T. Fig. 65. Terminal de UNIX en 1970. Los estudiantes graduados Bill Joy y Chuck Haley junto con Ken Thompson en su año sabático de 1975 transportaron la sexta edición de UNIX a un PDP-11/70. Bill y Joy diseñaron un editor denominado ex y desarrollaron un compilador de Pascal. Esta versión de 1977 es conocida como UNIX BSD. Otras innovaciones dignas de mencionar es el shell C y el editor orientado a pantalla vi. Una de las variantes más importantes del sistema BSD es el sistema operativo de Sun (SunOS), desarrollado por Sun Microsystems en 1984, una compañía cofundada por Joy. SunOS añadió características de red como el sistema de archivos de red NFS. Otra variante de UNIX es el Sistema XENIX diseñado para ejecutarse sobre microcomputadoras. Salió al mercado en 1980. El sistema XENIX se basó originalmente en la séptima edición de UNIX y la 4.1 BSD. Se ha portado a diferentes microprocesadores, entre los que se encuentran la familia Intel 8086 y la familia Motorola 68000. De todas las variantes, el Sistema XENIX consiguió el mayor número de máquinas instaladas. Daniel Merchán López. 2013
  • 7. Historia del software en computación aplicado a la informática educativa. 109 Fig. 66. Evolución del sistema operativo UNIX. El UNIX System V introducido en 1983 mantuvo una compatibilidad ascendente ensus futuras versiones. La primera versión incorporó el editor de pantalla vi y labiblioteca de manejo de pantalla curses de la Universidad de Berkeley. La versión 2introdujo protección de archivos durante cortes de potencia, bloqueo de archivos yregistros para uso exclusivo por un programa, característica de control de trabajos yadministración ampliada del sistema. En 1987, AT&T introdujo la versión 3.0 queincluía un enfoque de redes simple y consistente. Una de las características más importantes de UNIX es que puede funcionar enmultitud de computadores, desde los ordenadores personales hasta lossupercomputadores. Por ello es considerado como un auténtico sistema operativoestándar. Su mayor uso es en estaciones de trabajo para usuario CAD y CAM de SunMicrosystems o Silicon Graphics entre otras. Es un sistema operativo demultiprogramación, multiusuario y multiprocesamiento, pudiéndose utilizar tambiénen tiempo real. El problema de este sistema operativo es que resulta más difícil deaprender y de usar que los MS-Windows y Mac. Desde un punto de vista técnico UNIX es considerado como un conjunto de familiasde sistemas operativos que comparten ciertos criterios de diseño e interoperabilidad. En 1983 Richard Stallman fundó el proyecto GNU, con el fin de crear sistemasoperativos parecidos a UNIX y compatibles con POSIX. Dos años más tarde creó la"Fundación del Software Libre" y escribió la GNU, General Public License, paraposibilitar el software libre en el sistema de copyright.Lenguajes de programación. [12][47][11] En esta era aparece un lenguaje de muy alta difusión hasta bien entrados los90, el C. Tiene su origen en los laboratorios Bell utilizado por primera vez para escribirDaniel Merchán López. 2013
  • 8. 110 Historia del software en computación aplicado a la informática educativa. el núcleo del sistema operativo UNIX. Aunque es un lenguaje de programación para usos generales, se le ha asociado con actividades de programación de sistemas. Hoy día C es utilizado en muchos cursos de iniciación a la programación. El primer compilador de C lo desarrolló Dennis Ritchie en 1973 para un PDP-11 de 24K de memoria, lo que nos hace pensar la simplicidad del mismo. El diseño de C se inspiró en un lenguaje precursor llamado B, diseñado por Ken Thompson. La gran diferencia entre el B y el C es que C tenía algunos tipos mientras que B no. Un ejemplo de que faltan algunos tipos es el booleano, pues C no tiene booleanos sino que los valores enteros 0 y distinto de 0 hacen las veces de falso y cierto. Los punteros son tratados como enteros, lo que permite acceder a cualquier zona de la memoria sin ninguna protección por parte del compilador. Los programas tienen una estructura como la de FORTRAN, dispone de dos niveles, el global y el local a una función. Fue un ensamblador de alto nivel con mucho éxito debido a la gran portabilidad entre máquinas que tenía, tanto del núcleo UNIX como de su inmensa librería de utilidades. Programa "Hola mundo" escrito en C: #include <stdio.h> int main() { printf("¡Hola, mundo!n"); return 0; } El lenguaje se empezó a difundir a partir del manual escrito por Kernighan y Ritchie en 1978 y de la conversión de Unix en un producto comercial. Posteriormente, una de las características más utilizadas de C ha sido su preprocesador. El preprocesador es un programa que se ejecuta como un paso previo a la compilación y que permite al programador la definición de macros y la compilación condicional de secciones del programa, en función de ciertos parámetros suministrados en el momento de la compilación. En años posteriores C evolucionó mejorando la seguridad con más tipos de datos. En 1989, la nueva versión del lenguaje fue estandarizada por la ANSI con el objetivo de disponer de una referencia estable para la certificación de compiladores. Otro avance metodológico de esta Era es la abstracción de datos. La abstracción es utilizada por la mayoría de las ciencias de manera continua. A grandes rasgos, se trata de disminuir el número de detalles del objeto bajo estudio. Hasta ahora la única abstracción, por decirlo de alguna manera, que había eran los tipos de datos predefinidos. Como ejemplo, un programador podía operar con números racionales sin preocuparse de cómo eran representados internamente por el computador. Entre 1972 y 1974 se publican varios trabajos que van a dar a luz un nuevo concepto, el tipo abstracto de datos. Las ideas principales de este concepto son las siguientes: Daniel Merchán López. 2013
  • 9. Historia del software en computación aplicado a la informática educativa. 111  Es un tipo cuyo comportamiento puede describirse independientemente de su posible representación en términos de tipos de más bajo nivel.  Un tipo abstracto se puede representar de varios modos, sin dejar de ser del mismo tipo.  El lenguaje debe permitir asociar la definición de una representación de un tipo abstracto a la definición de sus operaciones de manipulación. La representación debe quedar oculta al resto del programa con el fin de impedir usos ilegales. El primer lenguaje creado con este tipo de datos es el CLU, desarrollado por BarbaraLiskov en 1974. Otro lenguaje importante es el Modula diseñado por Nuklaus Wirth en1977. Sin embargo el lenguaje que recoge la mayoría de estas aportaciones es el ADA. En los años setenta, el Departamento de Defensa de los Estados Unidos queríaproyectar un lenguaje individual para usarlo en sistemas en tiempo real. Su gestaciónse extiende desde 1975 hasta 1980. Para desarrollar ADA se realizaron una serie dedocumentos (Strawman, Woodeman, Tinman, Ironman, Steelman, Pebbleman yStoneman) en los que se especificaban los requisitos, lo que era necesario porque elDepartamento de Defensa disponía de multitud de lenguajes y no podía transportarfácilmente las herramientas de unos sistemas a otros. El DOD (Department of Defense)preveía que tardarían 20 años en terminar el lenguaje, para acortarlo otorgaron varioscontratos y el resultado de la competencia fue estudiado con detenimiento. De todaslas propuestas presentadas se eligieron cuatro y, de estas, se eligió el diseño de JeanIchbiah, francés, en 1979. El nombre de ADA es en honor a Ada Lovelace, colaboradorade Charles Babbage y primera programadora de la historia. El lenguaje se estandarizóen 1983, a la vez cómo un estándar comercial y militar de Estados Unidos y unestándar internacional. Programa "Hola mundo" escrito en ADA:with Ada.Text_IO; procedure Hola_Mundo is begin Ada.Text_IO.Put("¡Hola, mundo!"); end Hola_Mundo; Principalmente, ADA se basa en PASCAL, aunque difiere en numerosos aspectos. Adaes un lenguaje más grande y complejo y entre las principales innovaciones seencuentra la construcción package, que es el mecanismo principal de ocultamiento ymodularidad. Este mecanismo se distingue entre su parte visible o interfaz con sususuarios y la parte oculta o body. Tiene más facilidades para la programación genéricaque PASCAL pues tanto los módulos package como los procedimientos pueden estarDaniel Merchán López. 2013
  • 10. 112 Historia del software en computación aplicado a la informática educativa. parametrizados por tipos, operaciones o constantes. La compilación está separada del lenguaje a diferencia de otros lenguajes, amplía el concepto de subtipo y de los criterios de compatibilidad de tipos, introduce la sobrecarga definida por el programador y trata de forma elaborada las excepciones. Para asegurar que los traductores seguían el estándar el Departamento de Defensa creó la ADA Joint Program Office, allí se realizaban una serie de pruebas que un traductor de ADA debía pasar satisfactoriamente para ser considerado como implementación del lenguaje. Los primeros traductores no aparecieron hasta 1987. Dentro del campo de la POO (Programación orientada a objetos) surgen en esta Era una serie de programas como el Smalltalk, C++ y Java que cambiaran el panorama de la programación. El Smalltalk difiere de otros lenguajes en que fue proyectado como un lenguaje total y no solo como una notación para desarrollar programas donde la orientación a objetos fue un concepto integrado inicialmente, en oposición a la adición de herencia a los mecanismos en ADA. Fue desarrollado por Alan Kay, del Centro de Investigación en Palo Alto de Xerox Corporation, saliendo su primera versión pública en 1982. Alan Kay se basó principalmente en el sistema Sketchpad, primer sistema gráfico interactivo de la historia, y el lenguaje Simula 67, cuyo compilador hubo que estudiar para poder hacerlo funcionar en una IBM 1108. Kay tenía un gran interés en temas educativos por lo que concibió la idea de un ordenador personal mínimo, llamado Dynabook, dotado de una pantalla gráfica y un teclado, y con el tamaño de un libro. Para Kay todo eran objetos, como ejemplo, un fichero o un periférico se representaba en una pantalla con la forma de un icono gráfico sobre el que se situaba el cursor. Por ello, las pantallas de la época limitadas a caracteres les resultaba insuficientes. Kay dotó a sus computadores de pantallas gráficas basadas en pixeles y, en diseños posteriores dedicó un procesador para la tarea de gobernar los gráficos de la pantalla. Se puede decir que Kay y su grupo fueron los padres de los sistemas operativos basados en ventanas gráficas e iconos desarrollados a partir de 1985. Programa "Hola mundo" escrito en Smalltalk: Transcript show: ¡Hola, mundo! Otro lenguaje orientado a objetos es el C++. C++ es el que más usuarios ha tenido y fue desarrollado por Bjarne Stroustrup. El primer compilador de C++ aparece en 1983 tomando las ideas de Simula 67 pues el autor quería unir en él las ideas de este lenguaje junto con la eficiencia de C. Previamente a C++, desarrolló C con clases en el Daniel Merchán López. 2013
  • 11. Historia del software en computación aplicado a la informática educativa. 113que generó una librería de clases con las que resultaba sencillo definir clases ysubclases con protección de la representación de los objetos y la incorporación defunciones de construcción y destrucción de los mismos. C con clases permitía objetosno apuntados por punteros. La razón principal de añadir clases a C fue la de tratar demejorar la comprobación de tipos en tiempo de compilación (estática) y capturar asímás errores a bajo coste. Programa "Hola mundo" escrito en C++:#include <iostream>int main(){ std::cout << "Hola mundon"; return 0 ;} El objetivo de Stroustrup era que C++ fuera un lenguaje que pudiese coexistir conotros lenguajes y sistemas y así llamar desde C++ programas escritos en otroslenguajes y viceversa. La primera versión de C++ añadía sobre C con clases laposibilidad de funciones virtuales y de operaciones sobrecargadas definidas por elprogramador. Una función virtual es una operación cuyo tipo se define en una clasepero no se implementa en ella, sino que difiere su implementación a las subclases deesa clase. Las funciones virtuales ya existían en las clases abstractas de Smalltalkmientras que la sobrecarga ya estaba presente en Ada. En las versiones posteriores seañadieron las clases abstractas, los miembros estáticos y la herencia múltiple. En 1990se inició la estandarización por ANSI (American National Standards Institute) e ISO(Organización Internacional de Normalización) y su autor incluyó dos nuevascaracterísticas más: las plantillas y el tratamiento de excepciones. En esta Era también surge otro tipo de programación que no mencionada hastaahora, la programación lógica. Pertenece a los lenguajes llamados declarativos, esdecir, aquel tipo de lenguajes en los que los programadores expresan las propiedadesque han de estar satisfechas por el cómputo, pero no el orden exacto en que han derealizarse las acciones dentro del ordenador. En estos lenguajes el compilador decideel orden de ejecución. Otra novedad de estos lenguajes es que no incluyen lasinstrucciones if, while, repeat y los puntos y coma de los lenguajes imperativos paracontrolar la secuencia de operaciones. La repetición de cómputos se suele realizarmediante recursividad. Un programa lógico consta de un conjunto de fórmulas lógicas que expresanpropiedades satisfechas por un cierto problema. Normalmente estas fórmulaspertenecen a un subconjunto de la lógica de predicados de primer orden conocidocomo cláusulas de Horn. Estas cláusulas expresan que un predicado A siempre serácierto cuando lo sean todos los predicados de B. Un programa lógico expresaDaniel Merchán López. 2013
  • 12. 114 Historia del software en computación aplicado a la informática educativa. propiedades supuestamente ciertas en un cierto dominio. A diferencia de otros paradigmas, con mirar si una afirmación lógica es correcta, podemos averiguar si las demás lo son. Cuando las propiedades ya están escritas, el mecanismo de ejecución infiere nuevas propiedades ciertas que se deducen de las escritas por el programador. Esta característica se le denomina no determinismo. El lenguaje representativo de este tipo de programación es el Prolog. Su desarrollo se inició en 1970 por Alain Coulmerauer y Philippe Rousel finalizándolo en 1972 usando el compilador de ALGOL W de Wirth, aunque los aspectos básicos del lenguaje actual se concluyeron en 1973. Un programa Prolog consiste en una secuencia de cláusulas de Horn, seguida de una pregunta. Hay que tener en consideración el orden de las cláusulas y que los literales de cada una tienen influencia en la ejecución. La pregunta consiste en una secuencia de literales con variables, a los que denomina objetivos. Prolog selecciona en todo momento el primer objetivo de la lista de objetivos pendientes, a la que denomina resolvente. Una vez seleccionado, busca la primera cláusula del programa cuya cabeza unifique con él. La unificación consiste en un encaje de patrones bidireccional mediante el cual alginas variables del objetivo se reemplazan por términos del objetivo. Cuando el usuario indique que desea más soluciones, Prolog vuelve a la situación que resolvió el último objetivo y busca una manera distinta de satisfacerlo. Prolog tuvo un mayor impacto en los grupos de investigación dedicados a la inteligencia artificial. Uno de ellos fue la Universidad de Edimburgo, en la que se encontraba David Warren. En 1977 diseñó una versión compilada de Prolog que generaba código para una máquina abstracta, conocida posteriormente como la máquina de Warren. Este compilador corría en un computadora DEC-10 y se distribuyó libremente a muchas universidades. Se conoció como Prolog-10, o Prolog de Edimburgo, y constituyó un estándar de facto para las implementaciones posteriores. Bases de datos. [45][44][51] Por lo que respecta a las bases de datos en la década de 1970 Edgar Frank Codd (1923-2003), científico informático inglés, definió en su artículo “Un modelo relacional de datos para grandes bancos de datos compartidos” el modelo relacional, y las formas no procedimentales de consultar los datos en el modelo relacional, naciendo así las bases de datos relacionales. Más adelante, Codd (Fig. 67) recibió el prestigioso premio Turing de la ACM (Associaton of Computing Machinery, asociación de maquinaria informática) por su trabajo. Este hecho dio paso al nacimiento de la segunda generación de los Sistemas Gestores de Bases de Datos (SGBD). Daniel Merchán López. 2013
  • 13. Historia del software en computación aplicado a la informática educativa. 115 El modelo relacional no se utilizó en sus inicios debido a sus inconvenientes en cuantoa rendimiento; las bases de datos relacionales no podían igualar el rendimiento de lasbases de datos de red y las bases de datos jerárquicas existentes, pero en los primerosaños ochenta éstas bases de datos llegaron a ser competitivas. En las bases de datosjerárquicas y de red los programadores trataban muchos detalles de laimplementación de bajo nivel y codificaban sus consultas de forma experimentalaparte de que debían tener presente elrendimiento durante el diseño de los programas,lo que suponía un gran esfuerzo. En cambio en lasbases de datos relacionales, la gran mayoría deestas tareas de bajo nivel las realiza de maneraautomática el sistema de base de datos, lo quepermite al programador centrarse en el nivellógico. En 1978 el comité ANSI comienza acertificar y estandarizar la gestión de datos. En1979 es el comité ISO el que inicia su proyecto debase de datos. En 1982 el comité ANSI divide elproyecto de bases de datos en dos: NDL (lenguajede bases de datos en red) y SQL; en 1983 toma esamisma decisión el ISO. Fig. 67. Edgar Frank Codd. Lawrence J. Ellison, más conocido como Larry Ellison, a partir del trabajo de Edgar F.Codd sobre los sistemas de bases de datos relacionales, desarrolló el RelationalSoftware System, lo que actualmente se conoce como Oracle Corporation,desarrollando así un sistema de gestión de bases de datos relacional con el mismonombre que dicha compañía. El prototipo de System R completamente funcional condujo al primer producto debases de datos relacionales de IBM: SQL/DS. El SQL contiene tablas, consultas,actualizaciones y mantenimiento del sistema. Es un lenguaje de consultas o lenguajedeclarativo de acceso a bases de datos relacionales que permite efectuar consultas conel fin de recuperar información de interés de una base de datos y hacer cambios sobrela base de datos de forma sencilla; además de analizar grandes cantidades deinformación y permitir especificar diversos tipos de operaciones frente a la mismainformación. Su nivel de programación era sencillo y relativamente bajo. Los primeros sistemas comerciales de bases de datos relacionales, como DB2 de IBM,Oracle, Ingres y Rdb de DEC, desempeñaron un papel importante en el desarrollo detécnicas para el proceso eficiente de de las consultas declarativas. Informix, Sybase y elproyecto Ingres dieron nacimiento al Postgres que consiste en agregar másDaniel Merchán López. 2013
  • 14. 116 Historia del software en computación aplicado a la informática educativa. características Orientadas a Objetos al modelo relacional. Después se transformó en PostgreSQL. Fig. 68. Diferencias entre los tres modelos de bases de datos más importantes. Daniel Merchán López. 2013