Программирование в 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-е годы
Виды  ИмперативноеОбъектно-ориентированноеСтруктурноеФункциональное
Личные инструменты