80    Historia del software en computación aplicado a la informática educativa.     realiza cualquier acción con el softwa...
Historia del software en computación aplicado a la informática educativa.   81 Debido a este entorno, el diseño era un pro...
82    Historia del software en computación aplicado a la informática educativa.      En esta generación, los computadores ...
Historia del software en computación aplicado a la informática educativa.   83 En 1952, Grace Hopper (Fig.48), desarrolló ...
84    Historia del software en computación aplicado a la informática educativa.      Se desarrollaron otras ayudas en la p...
Upcoming SlideShare
Loading in …5
×

7. primera era

251 views
166 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
251
On SlideShare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

7. primera era

  1. 1. 80 Historia del software en computación aplicado a la informática educativa. realiza cualquier acción con el software que no esté permitida se produciría una piratería de software. Estas licencias llegan hasta el punto de regular el número de copias que pueden ser instaladas e incluso los fines concretos para los cuales puede ser utilizado. La mayoría de estas licencias limitan fuertemente la responsabilidad derivada de fallos en el programa. Normalmente, los fabricantes de programas sometidos a este tipo de licencias ofrecen servicios de soporte técnico y actualizaciones durante el tiempo de vida del producto. Algunos ejemplos de este tipo de licencias son las llamadas CLUFs (Contrato de Licencia para Usuario Final) o EULAs (End User License Agreement) por sus siglas en Inglés. El software de dominio público, es decir, que no dispone de licencia, puede ser utilizado, copiado, modificado y redistribuido con o sin fines de lucro. 3.6. Eras del software. Hasta ahora hemos visto que hay diferentes tipos de software. En este punto veremos cómo ha ido cambiando su importancia y utilidad desde el inicio de la computación. Podemos decir que el software ha evolucionado a través de eras o generaciones que coinciden aproximadamente con las décadas. Por ahora hay cinco eras o generaciones que explicaremos a continuación. 3.6.1. Primera Era (1945-55).[7][37][32][19][11][9] Como ya se ha dicho en la introducción de la evolución del software durante los primeros años de la aparición de las computadoras, el software se contemplaba como un añadido. Desde entonces hasta ahora, el software se ha desarrollado tremendamente. El software se desarrollaba sin ninguna planificación anterior y con un alto coste monetario, ya que el coste de los programadores asociados a un centro de computación superaba el coste del ordenador, en una escala creciente, pues la tecnología iba bajando de precio, y con ello descendían los precios de los ordenadores. El software se realizaba virtualmente y a menudo los planes no salían como ellos querían. Los programadores intentaban hacer bien todas las operaciones pero esto requería mucho esfuerzo, aunque a menudo les salían con éxito. Los problemas que debían resolver eran técnicos y se centraban principalmente en expresar algoritmos conocidos en algún lenguaje de programación. El software era realizado por una sola persona, lo escribía, lo ejecutaba y lo depuraba. Daniel Merchán López. 2013
  2. 2. Historia del software en computación aplicado a la informática educativa. 81 Debido a este entorno, el diseño era un proceso implícito, realizado en la mente dealguien, y la documentación normalmente no existía. Los vendedores exagerabantanto sus prestaciones, en la peor tradición comercial engañosa, que resultaroncontraproducentes y generaron un amplio escepticismo hacia estos sistemas. Podemos decir que en esta generación el hardware era de propósito general mientrasque el software se diseñaba a medida para cada aplicación y tenía una distribuciónrelativamente pequeña. Los computadores de la primera generación no disponían de sistema operativo, elprogramador interactuaba directamente con el hardware del computador. Laintroducción y control de la ejecución de programas se hacía manualmente y uno auno. Para interactuar con estas máquinas se disponía de una consola compuesta porconmutadores, indicadores luminosos, un dispositivo de entrada (por ejemplo unlector de tarjetas) y una impresora. Los programas, que estaban hechos en códigomáquina, se cargaban desde el dispositivo de entrada. Cuando se producía algún error,éste se indicaba a través de los indicadores luminosos. Así el programador podíadeterminar la causa del error examinando los registros y la memoria principal. Cuandoel programa se ejecutaba correctamente proporcionaba los resultados a través de laimpresora. Como hemos dicho anteriormente el programa era ejecutado uno a uno ymanualmente. Esto lo hacía un solo programador que era el que en ese momentoaccedía a la máquina. Uno de los principales problemas era que en ésta generación elcomputador estaba la mayor parte del tiempo desocupado pues tardaba muchotiempo en realizar las transferencias de datos con los periféricos de entrada/salida. Eltiempo de cada programador era anotado en una hoja de reservas; cada operadorreservaba el tiempo que él creía que tardaría en terminar la tarea. Para empezar aoperar el programador debía insertar su tablero de conmutación en la computadora ycuando terminaba antes de la hora prevista dejaba el computador desocupado. Lamayoría de las operaciones consistían en cálculos numéricos directos, como laproducción de tablas de senos y cosenos. Otro gran problema era el tiempo de preparación de los programas también, llamadotrabajo. Para cada uno se cargaba un compilador y se guardaba en la memoria, salvabael programa compilado y por último cargaba y montaba el programa objeto junto conlas funciones comunes. Aparte de toda esta tarea, que se realizaba a mano y porcualquier error debía volver al inicio del proceso, el programador debía tener cuidadocon los tubos de vacío, era fácil que alguno fallara y tuvieran que realizar todas lasoperaciones más de una vez. Esto implicaba una pérdida considerable de tiempo. Estemodo de operación lo podemos denominar proceso en serie puesto que refleja elhecho de que los usuarios accedían al computador en serie.Daniel Merchán López. 2013
  3. 3. 82 Historia del software en computación aplicado a la informática educativa. En esta generación, los computadores se programaban en lenguaje máquina, estando por tanto, cada instrucción constituida por una secuencia de números, con los consiguientes inconvenientes en cuanto a legibilidad, falta de versatilidad, dependencia del computador, etc. Es de destacar el concepto de subrutina. La subrutina ya estaba presente en esta primera etapa, y con ellas los programadores no tenían que reprogramar módulos comunes a un mismo programa, o lo que es lo mismo disponían de subrutinas abiertas. El programa "Hola mundo" escrito en código binario (Utilizo el código ASCII extendido de 8 bits) sería: 0100 1000 = H 0110 1111 = o 0110 1100 = l 0110 0001 = a 0010 0000 = espacio() 0110 1101 = m 0111 0101 = u 0110 1110 = n 0110 0100 = d 0110 1111 = o Hola = 0100 1000 - 0110 1111 - 0110 1100 - 0110 0001 Espacio () = 0010 0000 mundo = 0110 1101 - 0111 0101 - 0110 1110 - 0110 0100 - 0110 1111 A comienzos de 1950 se idean los primeros lenguajes simbólicos, con los que las operaciones se pueden representar por nemónicos. Un nemónico es un dato simbólico que identifica a un comando generalmente numérico (binario, octal, hexadecimal) de una forma más sencilla que su numeración original, lo cual facilita radicalmente la memorización de este comando para el programador. La rutina había mejorado un poco con la introducción de las tarjetas perforadas. Ahora era posible escribir programas en tarjetas e introducirlas para ser leídas, en lugar de usar tableros de conmutación; por lo demás, el procedimiento era el mismo. Daniel Merchán López. 2013
  4. 4. Historia del software en computación aplicado a la informática educativa. 83 En 1952, Grace Hopper (Fig.48), desarrolló un sistema deprogramación automática conun primer compilador: A-0, delque más adelante salieronnuevas versiones como, A-1 yA-2, siendo ésta última la queen 1953 se puso a disposiciónde los clientes del UNIVAC I.Para Hopper este compiladorera solamente una rutina queproduce un programaespecífico para un problemaparticular, o lo que es lomismo, este compilador servíapara copiar unas determinadassubrutinas en el lugarapropiado del nuevo programarealizado. Fig. 48. Grace Hopper con el UNIVAC 1. En 1953 Nathan Rochester diseñó el primer lenguaje ensamblador e implementó elprograma correspondiente que traducía instrucciones simbólicas en instruccionesmáquina. Con los lenguajes ensambladores se cometían menos errores y el consumode tiempo de la programación era menor que en los lenguajes de primera generaciónutilizados por los primeros computadores, liberando a los programadores de trabajoscomo recordar códigos numéricos o cálculo de direcciones. Un lenguaje ensambladorconocido de la época fue el SOAP utilizado para el computador IBM 650. Este sería el programa "Hola Mundo" escrito en lenguaje ensamblado x86 paraGNU/Linux:section .data msg db "¡Hola Mundo!", 0Ah len equ $ - msg section .text global _start _start: mov eax, 04h mov ebx, 01h mov ecx, msg mov edx, len int 80h mov eax, 01h mov ebx, 00h int 80hDaniel Merchán López. 2013
  5. 5. 84 Historia del software en computación aplicado a la informática educativa. Se desarrollaron otras ayudas en la programación como generadores de programas (Short Code, Speedcoding, Sort-Merge Generator, Autocode) y los primeros esbozos de compiladores (serie A de Remington Rank). El Short Code era de John Mauchly, éste operaba originariamente en un BINAC como lenguaje interpretado. Las rutinas correspondientes a los símbolos se encontraban en memoria y eran invocadas por el sistema. El UNIVAC heredó este sistema. Los programas escritos en este lenguaje interpretado eran unas 50 veces más lentos que el mismo programa en el lenguaje máquina. Por su parte, el Sort-Merge Generator era una aplicación desarrollada para el UNIVAC, que producía el programa en código máquina para ordenar y mezclar ficheros que contenían las operaciones de entrada y salida, aunque antes había que especificar los ficheros con los que iba a operar. Laning y Zieler desarrollaron un programa para traducir ecuaciones matemáticas para el Whirlwind I de Jay Forrester en el MIT (una máquina que se terminó de construir en el año 1951), y construyeron el primer compilador que no tuvo un nombre específico. En enero de 1954, el MIT distribuyó copias de este compilador a unos pocos usuarios del Whirlwind. Fig. 49. Computador Whirlwind para el que desarrollaron el programa de traducir ecuaciones. Estos primeros sistemas también llamados sistemas de programación automática (automatic programming systems), se limitaban a proporcionar códigos de operación mnemotécnicos y direcciones simbólicas, o a obtener subrutinas de una biblioteca de rutinas e insertar el código previa sustitución de las direcciones de los operandos. Algunos sistemas permitían la interpretación de operaciones de coma flotante y de indexación (indexing). De todas maneras, con excepción del compilador A-2 y el sistema algebraico de Laning y Zierler, hasta el año 1954 ni siquiera los sistemas más potentes proporcionaban más que una maquina sintética con un código diferente al de la máquina real. Daniel Merchán López. 2013

×