Программирование в 1900-х годах
Материал из Documentation.
История программирования в 1900-х годах — это, по сути, история о том, как с помощью коммутационной панели табуляторов Германа Холлерита определялась логика обработки данных. В эпоху отсутствия электронных компьютеров, именно эта панель являлась основным инструментом, позволявшим «программировать» электромеханическую машину для выполнения различных задач, связанных, прежде всего, с обработкой результатов переписи населения США 1900 года.
Рассмотрим компоненты табулятора, игравшие ключевую роль в процессе «программирования». Перфокарта представляла собой носитель информации, где данные кодировались в виде отверстий, расположенных в определенных позициях. Каждая позиция соответствовала конкретному атрибуту, например, полу, возрасту, месту рождения или профессии. Считывающее устройство, оснащённое множеством металлических контактов (игл), определяло наличие или отсутствие отверстия в каждой позиции перфокарты. Сигналы от этих контактов поступали на коммутационную панель (plugboard), которая и определяла дальнейшую обработку данных.
Коммутационная панель представляла собой матрицу разъёмов, расположенных на лицевой стороне табулятора. Каждый разъём соответствовал определенной позиции на перфокарте или определённому счётчику. «Программирование» заключалось в соединении этих разъёмов между собой с помощью специальных проводов, создавая электрические цепи, определяющие логику работы машины.
Представим несколько гипотетических сценариев обработки данных переписи 1900 года и соответствующие конфигурации коммутационной панели:
- Сценарий 1: Подсчёт количества мужчин в возрасте от 20 до 30 лет. Для этого необходимо было соединить контакты, соответствующие позиции «пол» (мужской) и позициям, соответствующим возрасту от 20 до 30 лет, с одним и тем же счётчиком. Таким образом, каждый раз, когда машина считывала перфокарту с отверстиями, указывающими на мужской пол и возраст в указанном диапазоне, этот счётчик увеличивался на единицу.
- Сценарий 2: Определение среднего размера семьи в штате Нью-Йорк. Для этого требовалось сначала подсчитать общее количество людей, проживающих в штате Нью-Йорк (соединив контакты, соответствующие позиции «штат» с кодом штата Нью-Йорк, со счётчиком). Затем, необходимо было подсчитать общее количество семей в штате Нью-Йорк (используя аналогичную конфигурацию). Разделив первое число на второе (операция, которую табулятор сам по себе выполнить не мог, и требовалось выполнять вручную на основании полученных результатов подсчёта), можно было получить средний размер семьи.
- Сценарий 3: Определение наиболее распространенной профессии среди иммигрантов. Для этого требовалось соединить контакты, соответствующие позиции «иммигрант» с контактами, соответствующими различным профессиям. При этом каждый счётчик соответствовал определённой профессии. После обработки всех перфокарт, оператор анализировал показания счётчиков и определял профессию, которой соответствовал самый большой счётчик.
«Программирование» табуляторов в 1900-х годах было крайне примитивным. Отсутствовали какие-либо возможности для реализации логических условий (например, «если…то…») или циклов (повторения определённой последовательности действий). Невозможно было создавать подпрограммы или использовать повторно код. Каждая задача требовала уникальной конфигурации коммутационной панели, и для сложных вычислений требовалось огромное количество ручного труда. Отладка «программ» также была непростой задачей, поскольку приходилось вручную проверять все соединения на коммутационной панели.
Операторы табуляторов играли ключевую роль в процессе обработки данных. Они должны были обладать глубоким пониманием принципов работы машины, уметь читать и интерпретировать данные на перфокартах, а также тщательно и аккуратно настраивать коммутационную панель. Обучение операторов занимало значительное время, и опытные операторы были очень востребованы.
Несмотря на свои ограничения, «программирование» табуляторов Холлерита стало важным шагом на пути к созданию современных компьютеров и языков программирования. Оно продемонстрировало возможность автоматизации обработки данных и заложило основу для будущих разработок в этой области. Коммутационная панель, по сути, была ранней формой интерфейса, позволявшей человеку взаимодействовать с машиной и определять ее поведение. Этот опыт послужил стимулом для дальнейших исследований в области создания более гибких и мощных вычислительных устройств.
История программирования | |
---|---|
XX век | 1900-е годы • 1910-е годы • 1920-е годы • 1930-е годы • 1940-е годы • 1950-е годы • 1960-е годы • 1970-е годы • 1980-е годы • 1990-е годы |
XXI век | 2000-е годы • 2010-е годы • 2020-е годы • 2030-е годы • 2040-е годы • 2050-е годы • 2060-е годы • 2070-е годы • 2080-е годы • 2090-е годы |
Виды | Императивное • Объектно-ориентированное • Структурное • Функциональное |