SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Historia del software en computación aplicado a la informática educativa.   103


cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware
que se hubieran adquirido. Estas actividades se llamaron colectivamente
mantenimiento del software. El esfuerzo gastado en el mantenimiento del software
comenzó a absorber recursos en una medida alarmante.

 Para salir de la crisis algunos investigadores como C. A. R. Hoare y N. Wirth, se
apartaron 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ía
adecuada para la concepción de programas se impuso un periodo de reflexión antes de
hacerlos. El problema era que las metodologías estaban aún por hacer. Para salir de la
crisis necesitaban lenguajes más simples cuyas construcciones fueran completamente
comprendidas, y sistemas de tipos más exigentes que eliminaran la mayor cantidad de
errores posibles durante la compilación.

3.6.4. Cuarta era (1971-1987).
        Con el desarrollo de los circuitos integrados a gran escala (LSI), chips que
contienen miles de transistores en un cm2 de silicio, nació la era de la computación
personal. El chip microprocesador permitía que cada usuario tuviese su propia
computadora. Las computadoras personales empleadas por universidades, empresas e
instalaciones del gobierno se denominan estaciones de trabajo, sin embargo no son
nada más que computadoras personales grandes conectadas mediante una red. El
aumento de la disponibilidad de la potencia de cómputo interactiva influyó a la hora
de realizar software para los computadores personales. Un gran porcentaje de este
software estaba destinado a usuarios que no sabían nada de computación y no iban a
aprender, 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, de
multiprocesamiento simétrico o SMP (Symetric Multiprocessing) y sistemas operativos
distribuidos.

 Los sistemas operativos de multiprocesamiento simétrico (Fig. 58) se ejecutan en
computadores con múltiples procesadores, cada uno de ellos realiza las mismas
funciones y comparten la misma memoria principal y facilidades de E/S e
interconectados por un bus u otro sistemas de conexión.

 Los sistemas operativos SMP dan la apariencia al usuario de que solo dispone de un
procesador sin embargo distribuye y planifica los trabajos en distintos procesadores,
interconectándolos entre sí.




Daniel Merchán López. 2013
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
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 los
sistemas 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, previamente
comercializado por Apple para la computadora Lisa en 1983. La primera versión se
llamaba 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 el
controlador de la impresora, necesarios para interactuar con el System. Hasta 1987
Apple lanza al mercado nuevas versiones con mejoras como el agregado Mountain
scene, About box, Clean Up Command y actualizaciones del finder y el System. También
se corrigen algunos errores de versiones anteriores.




Daniel Merchán López. 2013
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
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 IBM
desarrolló un computador personal basado en disco duro, el PC TX. Éste tenía soporte
para disco duro y ofrecía directorios jerárquicos. Esta versión permitía que los
directorios pudiesen tener tanto subdirectorios como archivos. En cuanto a las
capacidades que se le añadieron estaban algunas de tipo UNIX, como el
redireccionamiento de E/S (capacidad de cambiar la identidad de la entrada o la salida
de una aplicación) y la impresión subordinada (background). Las nuevas versiones del
DOS, MS-DOS 3.0 y MS-DOS 5.0, trataban de competir con Macintosh, cuyo sistema
operativo 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 de
Apple. Esta GUI estaba muy limitada debido a los recursos legales de Apple, que no
permitía imitaciones de sus interfaces de usuario. Por ejemplo, las ventanas sólo
podían disponerse en mosaico sobre la pantalla; esto es, nunca podían solaparse u
ocultarse unas a otras. Tampoco disponía de la papelera de reciclaje debido a que
Apple creía que ellos tenían la patente de este paradigma o concepto aunque ambas
limitaciones fueron eliminadas cuando el recurso de Apple fue rechazado en los
tribunales. Por otro lado, los programas incluidos en la primera versión eran
aplicaciones "de juguete" con poco atractivo para los usuarios profesionales. En 1987
salió 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 una
versión de MULTICS para minicomputadoras. La primera versión de UNIX estaba
escrita en el lenguaje ensamblador de la PDP-11/20. Contaba con un programa para


Daniel Merchán López. 2013
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
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 en
sus futuras versiones. La primera versión incorporó el editor de pantalla vi y la
biblioteca de manejo de pantalla curses de la Universidad de Berkeley. La versión 2
introdujo protección de archivos durante cortes de potencia, bloqueo de archivos y
registros para uso exclusivo por un programa, característica de control de trabajos y
administración ampliada del sistema. En 1987, AT&T introdujo la versión 3.0 que
incluía un enfoque de redes simple y consistente.

 Una de las características más importantes de UNIX es que puede funcionar en
multitud de computadores, desde los ordenadores personales hasta los
supercomputadores. Por ello es considerado como un auténtico sistema operativo
estándar. Su mayor uso es en estaciones de trabajo para usuario CAD y CAM de Sun
Microsystems o Silicon Graphics entre otras. Es un sistema operativo de
multiprogramación, multiusuario y multiprocesamiento, pudiéndose utilizar también
en tiempo real. El problema de este sistema operativo es que resulta más difícil de
aprender y de usar que los MS-Windows y Mac.

 Desde un punto de vista técnico UNIX es considerado como un conjunto de familias
de sistemas operativos que comparten ciertos criterios de diseño e interoperabilidad.

 En 1983 Richard Stallman fundó el proyecto GNU, con el fin de crear sistemas
operativos 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, para
posibilitar 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 los
90, el C. Tiene su origen en los laboratorios Bell utilizado por primera vez para escribir

Daniel Merchán López. 2013
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
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 Barbara
Liskov en 1974. Otro lenguaje importante es el Modula diseñado por Nuklaus Wirth en
1977. 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ía
proyectar un lenguaje individual para usarlo en sistemas en tiempo real. Su gestación
se extiende desde 1975 hasta 1980. Para desarrollar ADA se realizaron una serie de
documentos (Strawman, Woodeman, Tinman, Ironman, Steelman, Pebbleman y
Stoneman) en los que se especificaban los requisitos, lo que era necesario porque el
Departamento de Defensa disponía de multitud de lenguajes y no podía transportar
fá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 varios
contratos y el resultado de la competencia fue estudiado con detenimiento. De todas
las propuestas presentadas se eligieron cuatro y, de estas, se eligió el diseño de Jean
Ichbiah, francés, en 1979. El nombre de ADA es en honor a Ada Lovelace, colaboradora
de 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 un
está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. Ada
es un lenguaje más grande y complejo y entre las principales innovaciones se
encuentra la construcción package, que es el mecanismo principal de ocultamiento y
modularidad. Este mecanismo se distingue entre su parte visible o interfaz con sus
usuarios y la parte oculta o body. Tiene más facilidades para la programación genérica
que PASCAL pues tanto los módulos package como los procedimientos pueden estar


Daniel Merchán López. 2013
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
Historia del software en computación aplicado a la informática educativa.   113


que generó una librería de clases con las que resultaba sencillo definir clases y
subclases con protección de la representación de los objetos y la incorporación de
funciones de construcción y destrucción de los mismos. C con clases permitía objetos
no apuntados por punteros. La razón principal de añadir clases a C fue la de tratar de
mejorar 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 con
otros lenguajes y sistemas y así llamar desde C++ programas escritos en otros
lenguajes y viceversa. La primera versión de C++ añadía sobre C con clases la
posibilidad de funciones virtuales y de operaciones sobrecargadas definidas por el
programador. Una función virtual es una operación cuyo tipo se define en una clase
pero no se implementa en ella, sino que difiere su implementación a las subclases de
esa clase. Las funciones virtuales ya existían en las clases abstractas de Smalltalk
mientras que la sobrecarga ya estaba presente en Ada. En las versiones posteriores se
añadieron las clases abstractas, los miembros estáticos y la herencia múltiple. En 1990
se inició la estandarización por ANSI (American National Standards Institute) e ISO
(Organización Internacional de Normalización) y su autor incluyó dos nuevas
características más: las plantillas y el tratamiento de excepciones.

 En esta Era también surge otro tipo de programación que no mencionada hasta
ahora, la programación lógica. Pertenece a los lenguajes llamados declarativos, es
decir, aquel tipo de lenguajes en los que los programadores expresan las propiedades
que han de estar satisfechas por el cómputo, pero no el orden exacto en que han de
realizarse las acciones dentro del ordenador. En estos lenguajes el compilador decide
el orden de ejecución. Otra novedad de estos lenguajes es que no incluyen las
instrucciones if, while, repeat y los puntos y coma de los lenguajes imperativos para
controlar la secuencia de operaciones. La repetición de cómputos se suele realizar
mediante recursividad.

 Un programa lógico consta de un conjunto de fórmulas lógicas que expresan
propiedades satisfechas por un cierto problema. Normalmente estas fórmulas
pertenecen a un subconjunto de la lógica de predicados de primer orden conocido
como 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 expresa

Daniel Merchán López. 2013
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
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 cuanto
a rendimiento; las bases de datos relacionales no podían igualar el rendimiento de las
bases de datos de red y las bases de datos jerárquicas existentes, pero en los primeros
años ochenta éstas bases de datos llegaron a ser competitivas. En las bases de datos
jerárquicas y de red los programadores trataban muchos detalles de la
implementación de bajo nivel y codificaban sus consultas de forma experimental
aparte de que debían tener presente el
rendimiento durante el diseño de los programas,
lo que suponía un gran esfuerzo. En cambio en las
bases de datos relacionales, la gran mayoría de
estas tareas de bajo nivel las realiza de manera
automática el sistema de base de datos, lo que
permite al programador centrarse en el nivel
lógico. En 1978 el comité ANSI comienza a
certificar y estandarizar la gestión de datos. En
1979 es el comité ISO el que inicia su proyecto de
base de datos. En 1982 el comité ANSI divide el
proyecto de bases de datos en dos: NDL (lenguaje
de bases de datos en red) y SQL; en 1983 toma esa
misma 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 Relational
Software System, lo que actualmente se conoce como Oracle Corporation,
desarrollando así un sistema de gestión de bases de datos relacional con el mismo
nombre que dicha compañía.

 El prototipo de System R completamente funcional condujo al primer producto de
bases de datos relacionales de IBM: SQL/DS. El SQL contiene tablas, consultas,
actualizaciones y mantenimiento del sistema. Es un lenguaje de consultas o lenguaje
declarativo de acceso a bases de datos relacionales que permite efectuar consultas con
el fin de recuperar información de interés de una base de datos y hacer cambios sobre
la base de datos de forma sencilla; además de analizar grandes cantidades de
información y permitir especificar diversos tipos de operaciones frente a la misma
informació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 de
técnicas para el proceso eficiente de de las consultas declarativas. Informix, Sybase y el
proyecto Ingres dieron nacimiento al Postgres que consiste en agregar más



Daniel Merchán López. 2013
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

2
22
2
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Practicadesoftwareyhardware
PracticadesoftwareyhardwarePracticadesoftwareyhardware
Practicadesoftwareyhardware
 
Sistemas operativos buena
Sistemas operativos  buenaSistemas operativos  buena
Sistemas operativos buena
 
Evolución y clasificación de los sistemas operativos
Evolución y clasificación de los sistemas operativosEvolución y clasificación de los sistemas operativos
Evolución y clasificación de los sistemas operativos
 
Los sistemas operativos
Los sistemas operativosLos sistemas operativos
Los sistemas operativos
 
Evolucion de los sistemas operativos
Evolucion de los sistemas operativos Evolucion de los sistemas operativos
Evolucion de los sistemas operativos
 
Portafolio Dionisio 1
Portafolio Dionisio 1Portafolio Dionisio 1
Portafolio Dionisio 1
 
Satware
SatwareSatware
Satware
 
Historia y evolucion del sistema operativo
Historia y evolucion del sistema operativoHistoria y evolucion del sistema operativo
Historia y evolucion del sistema operativo
 
Tema 3 software operativo y de desarrollo
Tema 3 software operativo y de desarrolloTema 3 software operativo y de desarrollo
Tema 3 software operativo y de desarrollo
 
Trabajo
TrabajoTrabajo
Trabajo
 
Sistemas
SistemasSistemas
Sistemas
 
Pc 1
Pc 1Pc 1
Pc 1
 
Clasificacion de los sistemas operativos
Clasificacion de los sistemas operativosClasificacion de los sistemas operativos
Clasificacion de los sistemas operativos
 
Guia 2
Guia 2Guia 2
Guia 2
 
Unidad 1 Sistemas Operativos
Unidad 1 Sistemas OperativosUnidad 1 Sistemas Operativos
Unidad 1 Sistemas Operativos
 
dispositivos operativomoviles
dispositivos  operativomovilesdispositivos  operativomoviles
dispositivos operativomoviles
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Practicadesoftwareyhardware (1)
Practicadesoftwareyhardware (1)Practicadesoftwareyhardware (1)
Practicadesoftwareyhardware (1)
 

Andere mochten auch

12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticosDaniel Merchan
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietarioDaniel Merchan
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticosDaniel Merchan
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánicaDaniel Merchan
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 

Andere mochten auch (10)

11. quinta era
11. quinta era11. quinta era
11. quinta era
 
9. tercera era
9. tercera era9. tercera era
9. tercera era
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticos
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietario
 
12. virus y antivirus informáticos
12. virus y antivirus informáticos12. virus y antivirus informáticos
12. virus y antivirus informáticos
 
10. cuarta era
10. cuarta era10. cuarta era
10. cuarta era
 
11. quinta era
11. quinta era11. quinta era
11. quinta era
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánica
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 

Ähnlich wie Historia del software educativo

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativoslizleal16
 
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS. EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS. SofiaMartinez157
 
2 practica computacion
2 practica computacion2 practica computacion
2 practica computacionAndres Alvarez
 
2 practica computacion
2 practica computacion2 practica computacion
2 practica computacionPepe Reyes
 
Mejia david sistemas operativos
Mejia david sistemas operativosMejia david sistemas operativos
Mejia david sistemas operativosDavid Mejia
 
Sistema operativo
Sistema operativo Sistema operativo
Sistema operativo 251412
 
Precentacion De Redes
Precentacion De RedesPrecentacion De Redes
Precentacion De Redescrisandy
 
Tipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidadTipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidadlilichaparra
 
Tipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidadTipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidadlilichaparra
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosyoalireyna
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosemmayoali
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativoMoises Jsb
 

Ähnlich wie Historia del software educativo (20)

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Erika Paola Nope Reyes Grado.8-1
Erika Paola Nope Reyes Grado.8-1Erika Paola Nope Reyes Grado.8-1
Erika Paola Nope Reyes Grado.8-1
 
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS. EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS.
EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS.
 
Linea del tiempo
Linea del tiempoLinea del tiempo
Linea del tiempo
 
2 practica computacion
2 practica computacion2 practica computacion
2 practica computacion
 
2 practica computacion
2 practica computacion2 practica computacion
2 practica computacion
 
Actividad 8 Sistemas Operativos
Actividad 8 Sistemas OperativosActividad 8 Sistemas Operativos
Actividad 8 Sistemas Operativos
 
Mejia david sistemas operativos
Mejia david sistemas operativosMejia david sistemas operativos
Mejia david sistemas operativos
 
Sistema operativo
Sistema operativo Sistema operativo
Sistema operativo
 
Precentacion De Redes
Precentacion De RedesPrecentacion De Redes
Precentacion De Redes
 
Tipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidadTipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidad
 
Tipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidadTipos de sistemas operativos liliana trinidad
Tipos de sistemas operativos liliana trinidad
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Bordone
BordoneBordone
Bordone
 
Computo en accion
Computo en accionComputo en accion
Computo en accion
 
Producto 6
Producto 6Producto 6
Producto 6
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 

Mehr von Daniel Merchan

6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietarioDaniel Merchan
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánicaDaniel Merchan
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcularDaniel Merchan
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcularDaniel Merchan
 
2. el cálculo a través de la historia
2. el cálculo a través de la historia2. el cálculo a través de la historia
2. el cálculo a través de la historiaDaniel Merchan
 
El cálculo a través de la historia
El cálculo a través de la historiaEl cálculo a través de la historia
El cálculo a través de la historiaDaniel Merchan
 
La noción de información
La noción de informaciónLa noción de información
La noción de informaciónDaniel Merchan
 
La noción de información
La noción de información La noción de información
La noción de información Daniel Merchan
 

Mehr von Daniel Merchan (16)

8. segunda era
8. segunda era8. segunda era
8. segunda era
 
7. primera era
7. primera era7. primera era
7. primera era
 
9. tercera era
9. tercera era9. tercera era
9. tercera era
 
8. segunda era
8. segunda era8. segunda era
8. segunda era
 
7. primera era
7. primera era7. primera era
7. primera era
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
6. software libre y software propietario
6. software libre y software propietario6. software libre y software propietario
6. software libre y software propietario
 
5. tipos de software
5. tipos de software5. tipos de software
5. tipos de software
 
Modo de utilizar
Modo de utilizarModo de utilizar
Modo de utilizar
 
4. la etapa electromecánica
4. la etapa electromecánica4. la etapa electromecánica
4. la etapa electromecánica
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcular
 
3. las máquinas de calcular
3. las máquinas de calcular3. las máquinas de calcular
3. las máquinas de calcular
 
2. el cálculo a través de la historia
2. el cálculo a través de la historia2. el cálculo a través de la historia
2. el cálculo a través de la historia
 
El cálculo a través de la historia
El cálculo a través de la historiaEl cálculo a través de la historia
El cálculo a través de la historia
 
La noción de información
La noción de informaciónLa noción de información
La noción de información
 
La noción de información
La noción de información La noción de información
La noción de información
 

Historia del software educativo

  • 1. Historia del software en computación aplicado a la informática educativa. 103 cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware que se hubieran adquirido. Estas actividades se llamaron colectivamente mantenimiento del software. El esfuerzo gastado en el mantenimiento del software comenzó a absorber recursos en una medida alarmante. Para salir de la crisis algunos investigadores como C. A. R. Hoare y N. Wirth, se apartaron 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ía adecuada para la concepción de programas se impuso un periodo de reflexión antes de hacerlos. El problema era que las metodologías estaban aún por hacer. Para salir de la crisis necesitaban lenguajes más simples cuyas construcciones fueran completamente comprendidas, y sistemas de tipos más exigentes que eliminaran la mayor cantidad de errores posibles durante la compilación. 3.6.4. Cuarta era (1971-1987). Con el desarrollo de los circuitos integrados a gran escala (LSI), chips que contienen miles de transistores en un cm2 de silicio, nació la era de la computación personal. El chip microprocesador permitía que cada usuario tuviese su propia computadora. Las computadoras personales empleadas por universidades, empresas e instalaciones del gobierno se denominan estaciones de trabajo, sin embargo no son nada más que computadoras personales grandes conectadas mediante una red. El aumento de la disponibilidad de la potencia de cómputo interactiva influyó a la hora de realizar software para los computadores personales. Un gran porcentaje de este software estaba destinado a usuarios que no sabían nada de computación y no iban a aprender, 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, de multiprocesamiento simétrico o SMP (Symetric Multiprocessing) y sistemas operativos distribuidos. Los sistemas operativos de multiprocesamiento simétrico (Fig. 58) se ejecutan en computadores con múltiples procesadores, cada uno de ellos realiza las mismas funciones y comparten la misma memoria principal y facilidades de E/S e interconectados por un bus u otro sistemas de conexión. Los sistemas operativos SMP dan la apariencia al usuario de que solo dispone de un procesador 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 los sistemas 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, previamente comercializado por Apple para la computadora Lisa en 1983. La primera versión se llamaba 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 el controlador de la impresora, necesarios para interactuar con el System. Hasta 1987 Apple lanza al mercado nuevas versiones con mejoras como el agregado Mountain scene, About box, Clean Up Command y actualizaciones del finder y el System. También se 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 IBM desarrolló un computador personal basado en disco duro, el PC TX. Éste tenía soporte para disco duro y ofrecía directorios jerárquicos. Esta versión permitía que los directorios pudiesen tener tanto subdirectorios como archivos. En cuanto a las capacidades que se le añadieron estaban algunas de tipo UNIX, como el redireccionamiento de E/S (capacidad de cambiar la identidad de la entrada o la salida de una aplicación) y la impresión subordinada (background). Las nuevas versiones del DOS, MS-DOS 3.0 y MS-DOS 5.0, trataban de competir con Macintosh, cuyo sistema operativo 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 de Apple. Esta GUI estaba muy limitada debido a los recursos legales de Apple, que no permitía imitaciones de sus interfaces de usuario. Por ejemplo, las ventanas sólo podían disponerse en mosaico sobre la pantalla; esto es, nunca podían solaparse u ocultarse unas a otras. Tampoco disponía de la papelera de reciclaje debido a que Apple creía que ellos tenían la patente de este paradigma o concepto aunque ambas limitaciones fueron eliminadas cuando el recurso de Apple fue rechazado en los tribunales. Por otro lado, los programas incluidos en la primera versión eran aplicaciones "de juguete" con poco atractivo para los usuarios profesionales. En 1987 salió 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 una versión de MULTICS para minicomputadoras. La primera versión de UNIX estaba escrita en el lenguaje ensamblador de la PDP-11/20. Contaba con un programa para Daniel 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 en sus futuras versiones. La primera versión incorporó el editor de pantalla vi y la biblioteca de manejo de pantalla curses de la Universidad de Berkeley. La versión 2 introdujo protección de archivos durante cortes de potencia, bloqueo de archivos y registros para uso exclusivo por un programa, característica de control de trabajos y administración ampliada del sistema. En 1987, AT&T introdujo la versión 3.0 que incluía un enfoque de redes simple y consistente. Una de las características más importantes de UNIX es que puede funcionar en multitud de computadores, desde los ordenadores personales hasta los supercomputadores. Por ello es considerado como un auténtico sistema operativo estándar. Su mayor uso es en estaciones de trabajo para usuario CAD y CAM de Sun Microsystems o Silicon Graphics entre otras. Es un sistema operativo de multiprogramación, multiusuario y multiprocesamiento, pudiéndose utilizar también en tiempo real. El problema de este sistema operativo es que resulta más difícil de aprender y de usar que los MS-Windows y Mac. Desde un punto de vista técnico UNIX es considerado como un conjunto de familias de sistemas operativos que comparten ciertos criterios de diseño e interoperabilidad. En 1983 Richard Stallman fundó el proyecto GNU, con el fin de crear sistemas operativos 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, para posibilitar 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 los 90, el C. Tiene su origen en los laboratorios Bell utilizado por primera vez para escribir Daniel 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 Barbara Liskov en 1974. Otro lenguaje importante es el Modula diseñado por Nuklaus Wirth en 1977. 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ía proyectar un lenguaje individual para usarlo en sistemas en tiempo real. Su gestación se extiende desde 1975 hasta 1980. Para desarrollar ADA se realizaron una serie de documentos (Strawman, Woodeman, Tinman, Ironman, Steelman, Pebbleman y Stoneman) en los que se especificaban los requisitos, lo que era necesario porque el Departamento de Defensa disponía de multitud de lenguajes y no podía transportar fá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 varios contratos y el resultado de la competencia fue estudiado con detenimiento. De todas las propuestas presentadas se eligieron cuatro y, de estas, se eligió el diseño de Jean Ichbiah, francés, en 1979. El nombre de ADA es en honor a Ada Lovelace, colaboradora de 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 un está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. Ada es un lenguaje más grande y complejo y entre las principales innovaciones se encuentra la construcción package, que es el mecanismo principal de ocultamiento y modularidad. Este mecanismo se distingue entre su parte visible o interfaz con sus usuarios y la parte oculta o body. Tiene más facilidades para la programación genérica que PASCAL pues tanto los módulos package como los procedimientos pueden estar Daniel 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. 113 que generó una librería de clases con las que resultaba sencillo definir clases y subclases con protección de la representación de los objetos y la incorporación de funciones de construcción y destrucción de los mismos. C con clases permitía objetos no apuntados por punteros. La razón principal de añadir clases a C fue la de tratar de mejorar 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 con otros lenguajes y sistemas y así llamar desde C++ programas escritos en otros lenguajes y viceversa. La primera versión de C++ añadía sobre C con clases la posibilidad de funciones virtuales y de operaciones sobrecargadas definidas por el programador. Una función virtual es una operación cuyo tipo se define en una clase pero no se implementa en ella, sino que difiere su implementación a las subclases de esa clase. Las funciones virtuales ya existían en las clases abstractas de Smalltalk mientras que la sobrecarga ya estaba presente en Ada. En las versiones posteriores se añadieron las clases abstractas, los miembros estáticos y la herencia múltiple. En 1990 se inició la estandarización por ANSI (American National Standards Institute) e ISO (Organización Internacional de Normalización) y su autor incluyó dos nuevas características más: las plantillas y el tratamiento de excepciones. En esta Era también surge otro tipo de programación que no mencionada hasta ahora, la programación lógica. Pertenece a los lenguajes llamados declarativos, es decir, aquel tipo de lenguajes en los que los programadores expresan las propiedades que han de estar satisfechas por el cómputo, pero no el orden exacto en que han de realizarse las acciones dentro del ordenador. En estos lenguajes el compilador decide el orden de ejecución. Otra novedad de estos lenguajes es que no incluyen las instrucciones if, while, repeat y los puntos y coma de los lenguajes imperativos para controlar la secuencia de operaciones. La repetición de cómputos se suele realizar mediante recursividad. Un programa lógico consta de un conjunto de fórmulas lógicas que expresan propiedades satisfechas por un cierto problema. Normalmente estas fórmulas pertenecen a un subconjunto de la lógica de predicados de primer orden conocido como 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 expresa Daniel 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 cuanto a rendimiento; las bases de datos relacionales no podían igualar el rendimiento de las bases de datos de red y las bases de datos jerárquicas existentes, pero en los primeros años ochenta éstas bases de datos llegaron a ser competitivas. En las bases de datos jerárquicas y de red los programadores trataban muchos detalles de la implementación de bajo nivel y codificaban sus consultas de forma experimental aparte de que debían tener presente el rendimiento durante el diseño de los programas, lo que suponía un gran esfuerzo. En cambio en las bases de datos relacionales, la gran mayoría de estas tareas de bajo nivel las realiza de manera automática el sistema de base de datos, lo que permite al programador centrarse en el nivel lógico. En 1978 el comité ANSI comienza a certificar y estandarizar la gestión de datos. En 1979 es el comité ISO el que inicia su proyecto de base de datos. En 1982 el comité ANSI divide el proyecto de bases de datos en dos: NDL (lenguaje de bases de datos en red) y SQL; en 1983 toma esa misma 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 Relational Software System, lo que actualmente se conoce como Oracle Corporation, desarrollando así un sistema de gestión de bases de datos relacional con el mismo nombre que dicha compañía. El prototipo de System R completamente funcional condujo al primer producto de bases de datos relacionales de IBM: SQL/DS. El SQL contiene tablas, consultas, actualizaciones y mantenimiento del sistema. Es un lenguaje de consultas o lenguaje declarativo de acceso a bases de datos relacionales que permite efectuar consultas con el fin de recuperar información de interés de una base de datos y hacer cambios sobre la base de datos de forma sencilla; además de analizar grandes cantidades de información y permitir especificar diversos tipos de operaciones frente a la misma informació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 de técnicas para el proceso eficiente de de las consultas declarativas. Informix, Sybase y el proyecto Ingres dieron nacimiento al Postgres que consiste en agregar más Daniel 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