El IBM Automatic Sequence Controlled Calculator (ASCC), más conocido como Harvard Mark I o Mark I, fue el primer ordenador electromecánico, construido en IBM y trasladado a Harvard en 1944. Tenía 760.000 ruedas y 800 kilómetros de cable y se basaba en la máquina analítica de Charles Babbage.
El computador empleaba señales electromagnéticas para mover las partes mecánicas. Esta máquina era lenta (tomaba de 3 a 5 segundos por cálculo) e inflexible (la secuencia de cálculos no se podía cambiar); pero ejecutaba operaciones matemáticas básicas y cálculos complejos de ecuaciones sobre el movimiento parabólico.
Funcionaba con relés, se programaba con interruptores y leía los datos de cintas de papel perforado.
El concepto original se presentó a IBM por Howard Aiken en noviembre de 1937.[1] Después de un estudio de factibilidad realizado por los ingenieros de IBM, el presidente de la compañía, Thomas Watson, aprobó personalmente el proyecto y su financiación en febrero de 1939.
Howard Aiken había empezado a buscar una empresa para diseñar y construir su calculadora a principios de 1937. Después de dos intentos rechazados, se le mostró un aparato que el hijo de Charles Babbage había donado a la Universidad de Harvard 70 años antes. Esto le llevó a estudiar a Babbage y a añadir referencias de la máquina analítica a su propuesta; la máquina resultante "llevó principios de la Máquina Analítica de Babbage casi a plena efectividad, al tiempo que añadió nuevas características importantes.[2]"
El ASCC fue desarrollado y construido por IBM en su planta de Endicott y enviado a la Universidad Harvard en febrero de 1944. Comenzó a hacer cálculos de la Oficina de la Marina de EE. UU. en mayo y fue presentado oficialmente a la universidad el 7 de agosto de 1944, donde obtuvo un gran éxito.[2]
Mark I era una máquina de grandes dimensiones, medía unos 15,5 metros de largo, unos 2,40 metros de alto y unos 60 centímetros de ancho y pesaba aproximadamente unas cinco toneladas. Disponía de unas cubiertas de cristal que permitían que se visualizara toda la maquinaria de su interior.
La Mark I recibía sus secuencias de instrucciones (programas) y sus datos a través de lectoras de cinta perforada de papel y los números se transferían de un registro a otro por medio de señales eléctricas. El cableado interno de la Mark I tenía una longitud de más de 800 kilómetros, con más de tres millones de conexiones. Los resultados producidos se imprimían usando máquinas de escribir eléctricas o perforadoras de tarjetas.
Aunque tenía componentes electromecánicos era una máquina automática eléctrica. Era capaz de realizar 5 operaciones aritméticas (suma, resta, multiplicación, división y referencia a resultados anteriores). Su interior estaba compuesto por 750 000 piezas de diferentes variedades (ruedas rotatorias para los registros, relevadores...).
Estaba compuesta de más de 1400 interruptores rotatorios de diez posiciones en el frente de la máquina para visualizar los valores de los registros constantes que se le introducían. Además de los registros constantes la máquina contenía 72 registros mecánicos. Cada uno de los registros mecánicos era capaz de almacenar 23 dígitos, los dígitos que se usaban para el signo era un 0 para signo positivo y un 9 para el signo negativo.
La posición de la coma decimal estaba fija durante la solución de un problema, pero podía ajustarse previamente de manera que estuviera entre dos dígitos cualquiera. La máquina contaba también con mecanismos que permitían efectuar cálculos de doble precisión (46 decimales), mediante la unión de dos registros, en una forma análoga a la máquina analítica de Babbage.
La Mark I se programaba recibiendo sus secuencias de instrucciones a través de una cinta de papel, en la cual iban perforadas las instrucciones y números que se transferían de un registro a otro por medio de señales eléctricas.
Cuando la máquina estaba en funcionamiento el ruido que producía era similar al que haría una habitación llena de personas mecanografiando de forma sincronizada. El tiempo mínimo de transferencia de un número de un registro a otro y en realizar cada una de sus operaciones básicas (resta, suma, multiplicación y división) era de 0,3 segundos. Aunque la división y la multiplicación eran más lentas.
La capacidad de modificación de la secuencia de instrucciones con base en los resultados producidos durante el proceso de cálculo era pequeño. La máquina podía escoger de varios algoritmos para la ejecución de cierto cálculo. Sin embargo, para cambiar de una secuencia de instrucciones a otra era costoso, ya que la máquina se tenía que detener y que los operarios cambiaran la cinta de control. Por tanto, se considera que la Mark I no tiene realmente saltos incondicionales. Aunque, posteriormente se le agregó lo que fue llamado Mecanismo Subsidiario de Secuencia (era capaz de definir hasta 10 subrutinas, cada una de las cuales podía tener un máximo de 22 instrucciones), que estaba compuesto de tres tablones de conexiones que se acompañaban de tres lectoras de cinta de papel. Y se pudo afirmar que la Mark I, podía transferir el control entre cualquiera de las lectoras, dependiendo del contenido de los registros.