Programación informática en la era de las tarjetas perforadas


Desde la invención de los lenguajes de programación informática hasta mediados de la década de 1970, la mayoría de los programadores informáticos creaban, editaban y almacenaban sus programas línea por línea en tarjetas perforadas.
Tarjetas cortadas
Una tarjeta perforada es un medio flexible de escritura única que codifica datos, normalmente de 80 caracteres. Los grupos o "mazos" de tarjetas forman programas y colecciones de datos. El término se suele utilizar indistintamente con el de "tarjeta perforada", con la diferencia de que una tarjeta sin uso es una "tarjeta perforada", pero una vez que la información se codificaba perforando agujeros en la tarjeta, ahora era una "tarjeta perforada". Para simplificar, en este artículo se utilizará el término "tarjeta perforada" para referirse a cualquiera de las dos.
A menudo, los programadores escribían primero sus programas en formularios especiales llamados hojas de codificación, teniendo cuidado de distinguir el dígito cero de la letra O, el dígito uno de la letra I, el ocho de la B, el dos de la Z, y así sucesivamente, utilizando convenciones locales como el "cero con barra". Luego, estos formularios eran tomados por los operadores de las máquinas perforadoras, quienes, utilizando una máquina perforadora como la IBM 026 (más tarde IBM 029), perforaban la pila. A menudo, otro operador de la máquina perforadora tomaba esa pila y volvía a perforar a partir de las hojas de codificación, pero utilizando un "verificador" como la IBM 059 que verificaba que la perforación original no tuviera errores.
Por lo general, un error tipográfico obligaba a volver a perforar una tarjeta entera. La edición de los programas se facilitaba reorganizando las tarjetas y eliminando o reemplazando las líneas que habían cambiado; los programas se respaldaban duplicando la baraja o escribiéndolos en cinta magnética.
En organizaciones más pequeñas, los programadores pueden realizar sus propios perforaciones y, en todos los casos, suelen tener acceso a una máquina perforadora para realizar pequeños cambios en una baraja.
Medio ambiente de trabajo
La descripción que se incluye a continuación describe una tienda que solo vende IBM (una "tienda" es la jerga de los programadores para referirse a un sitio de programación), pero las tiendas que utilizan mainframes (o minicomputadoras) de otras marcas tendrían equipos similares, aunque debido al costo o la disponibilidad podrían tener equipos de diferentes fabricantes; por ejemplo, una tienda NCR, ICL, Hewlett-Packard (HP) o Control Data tendría computadoras, impresoras, etc. NCR, ICL, HP o Control Data, pero tendría perforadoras IBM 029. El enorme tamaño y la presencia industrial de IBM a menudo hicieron que muchos de sus convenios fueran adoptados por otros proveedores, por lo que el ejemplo que se incluye a continuación es bastante similar al de la mayoría de los lugares, incluso en tiendas que no venden IBM.
Una instalación informática típica de una empresa o universidad tendría una serie de salas, con una sala grande, con acceso restringido y con aire acondicionado para la computadora (similar a la sala de servidores actual) y una sala adyacente más pequeña y tranquila para enviar trabajos. Cerca habría una sala llena de máquinas perforadoras para uso de los programadores. Se podría instalar una máquina de contabilidad IBM 407 para permitir que los programas recién creados o editados se enumeren (se impriman en papel continuo) para su corrección. Se podría proporcionar una IBM 519 para reproducir los mazos de programas para realizar copias de seguridad o para perforar números secuenciales en las columnas 73 a 80.
En estas instalaciones de mainframe, conocidas como "tiendas cerradas", los programadores enviaban las tarjetas de programa, a menudo seguidas de tarjetas de datos para que las leyera el programa, a una persona que trabajaba detrás de un mostrador en la sala de computadoras. Durante las horas pico, era común hacer cola para enviar una tarjeta. Para resolver ese problema, el lector de tarjetas podía reinstalarse (o instalarse inicialmente) fuera de la sala de computadoras para permitir que los programadores enviaran trabajos "por su cuenta".
Muchas instalaciones informáticas utilizaban tarjetas con las esquinas opuestas cortadas (a veces sin corte de esquina) como "separadores de trabajos", de modo que un operador pudiera apilar varias barajas de trabajos en el lector de tarjetas al mismo tiempo y poder separarlas rápidamente de forma manual cuando las retiraba del apilador. Estas tarjetas (por ejemplo, una tarjeta JCL "JOB" para iniciar un nuevo trabajo) solían estar perforadas en grandes cantidades con antelación. Esto era especialmente útil cuando el ordenador principal no leía las tarjetas directamente, sino que leía sus imágenes de una cinta magnética que se preparaba fuera de línea mediante ordenadores más pequeños, como el IBM 1401. Después de leer las tarjetas, el operador del ordenador devolvía la baraja de tarjetas, normalmente a uno de los huecos de un conjunto de etiquetas alfabéticas, según la inicial del apellido del programador. Como los programas se ejecutaban en modo de procesamiento por lotes, podía pasar un tiempo considerable hasta que se produjera una copia impresa o perforada y se colocara en esos mismos cubículos; sin embargo, en un sistema poco utilizado, era posible realizar modificaciones y volver a ejecutar un programa en menos de una hora.
Los programadores dedicados podían quedarse despiertos hasta bien pasada la medianoche para conseguir unos cuantos resultados rápidos. El uso de este costoso equipo solía cargarse a la cuenta del usuario. Una computadora central podía costar millones de dólares y el uso se medía en segundos por tarea.
Las computadoras más pequeñas, como la IBM 1620 y la 1130, y las minicomputadoras como la PDP-11 eran menos costosas y a menudo funcionaban como un "taller abierto", donde los programadores tenían uso exclusivo de la computadora durante un bloque de tiempo. Por lo general, había una máquina perforadora cerca para realizar correcciones rápidas, aunque muchas de estas máquinas más pequeñas funcionaban con cinta perforada.
Identificación y secuencia

Muchos de los primeros lenguajes de programación, incluidos FORTRAN, COBOL y los diversos lenguajes ensambladores de IBM, utilizaban sólo las primeras 72 columnas de una tarjeta, una tradición que se remonta al lector de tarjetas IBM 711 utilizado en la serie IBM 704/709/7090/7094 (especialmente el IBM 704, la primera computadora producida en masa con hardware aritmético de punto flotante), que sólo podía leer 72 de las 80 columnas en una sola pasada.
Los compiladores ignoraban las columnas 73 a 80 y podían utilizarse para la identificación o como número de secuencia, de modo que si se caía la baraja de cartas, se podía restaurar el orden correcto utilizando un clasificador de cartas. Según el lenguaje de programación, las declaraciones de salida de depuración podían activarse rápidamente y "comentarse" utilizando cartas con dichas declaraciones perforadas con el carácter de comentario (p. ej., "C" en Fortran) en la columna 80 de la carta; al girar la carta de un extremo a otro, la "C" se colocaba en la columna principal, lo que transformaba el contenido de la carta ahora al revés en un comentario mientras que la carta física permanecía en su lugar en la baraja.
(Una técnica alternativa, imperfecta pero comúnmente empleada para mantener el orden correcto de las cartas era dibujar una o más rayas diagonales a lo largo del borde superior de todas las cartas de una baraja).
En años posteriores, a medida que los datos de las tarjetas perforadas se convertían en archivos de cinta magnética, los números de secuencia se utilizaban a menudo como una columna en una matriz como un valor de índice que se puede correlacionar con secuencias de tiempo, como en las ciencias naturales, donde los datos de las tarjetas se relacionaban con la salida periódica de un dispositivo de medición, como los registradores de nivel de agua para ríos y arroyos en hidrología, o las temperaturas en meteorología. Bóvedas enteras llenas de mazos de tarjetas podían reducirse a estantes mucho más pequeños de cintas de nueve pistas.
Véase también
- Historial del equipo de registro
Notas de pie de página
- ^ Una instalación de computadora conocida como una "tienda cerrada" no debe confundirse con el significado habitual de una tienda cerrada, un sitio de trabajo que requiere ser miembro de un sindicato. La mayoría de los programadores fueron asalariados y no sindicalizados.
Referencias
- ^ da Cruz, Frank (diciembre 2019). "IBM Punch Cards". Columbia University Computing History. Universidad de Columbia.
Enlaces externos
- Fisk, Dale (2005). "Programación con tarjetas encuadradas: memorias del programador de aprender la artesanía en 1973" (PDF). Retrieved 2008-11.: Artículo sobre la cultura de programación que se desarrolló alrededor del uso de la tarjeta perforada, siguiendo la experiencia de Fisk de "aprender la artesanía" de personas a su alrededor.
- da Cruz, Frank (julio 2001). "The Columbia University Self Service Input/Output Area". Columbia University Computing History.
- Organick, E. I. (1966). A Fortran IV Primer. Addison-Wesley.
- "IBM Punched Card Data Processing Principles (1961)". computercollector.com.
Galería
- Una caja de tarjetas perforadas con varias cubiertas del programa.
- Una cubierta de cartas que contiene un programa.
- Un remo de formas de codificación de Fortran.
- Tarjeta formateada para el lenguaje de montaje IBM 1620.
- Las cartas a veces se meten en el lector, requiriendo que una o más sean repetidas.
- Lista de un gran programa informático en papel de forma continua, encuadernado en un carpeta de impresión.
- Tarjeta de tambor IBM keypunch utilizada para programar pestañas y saltos
- Un punzón de reproducción IBM 519 con panel de control de plugboard abierto (estaría cerrado durante la operación).
- Lector de tarjetas de alta velocidad IBM 1402 y punzone utilizado en instalaciones más grandes y normalmente dirigido por un operador
- IBM 1442 lector de tarjetas de velocidad media y golpe utilizado en muchas computadoras más pequeñas como el IBM 1130