Кратко
- В отчёте Coding for A.R.C. 1947 года Andrew D. Booth и Kathleen H. V. Britten поместили символический рабочий слой между математическим планом и двадцатибитными командами. Это ранняя веха в истории ассемблерных языков, но не основание без оговорок называть одного человека автором первого ассемблера.
- Перевод символов в допустимые коды операций, адреса и последовательности снижал риск ошибок и подтверждал соответствие архитектуре. Он не подтверждал уместность алгоритма, качество исходных данных и достоверность результата.
У команды не было понятия о намерении
Двадцать бит команды ARC делились на три поля. Восемь задавали ячейку памяти, семь — последовательность, пять — операцию. Если число попадало не в то поле, машина не восстанавливала смысл по контексту. Она выполняла другую команду.
Booth и Britten разделили подготовку программы на этапы. Сначала формулировалась математическая задача, затем строилась схема управления. После этого распределялась память и составлялся подробный список команд. Короткие обозначения связывались таблицей с числовыми кодами операций.
Такой порядок позволял обсуждать метод до подсчёта адресов и проверять цикл до упаковки каждого бита. Однако в конце любой символ обязан был уложиться в набор операций и устройство памяти конкретной машины. Запись делала ограничение понятным, а не отменяла его.
В предисловии указана и практическая цель совместимости. Код ARC совпадал с кодом проектируемой электронной машины. Уже подготовленную задачу можно было перенести, а опыт релейного калькулятора — использовать для корректировки следующего проекта. Перенос обеспечивался согласованной архитектурой, а не универсальностью обозначений.
История с несколькими авторами и руками
На титульном листе стоят имена Andrew D. Booth и Kathleen H. V. Britten. В тот момент Kathleen ещё не носила фамилию Booth. Признание её вклада не требует превращать совместный текст в единоличный.
Авторы прямо называют и методический источник — работу Herman Goldstine и John von Neumann. Их отчёт Institute for Advanced Study рассматривал программирование как проектирование изменяющегося управления. Хранимая программа могла переходить по ветвям, возвращаться и менять состояние, определяющее дальнейший ход. Поэтому блок-схема была инструментом планирования, а не рисунком после завершения кода.
ARC строился тоже не одним человеком. В истории Birkbeck на фотографии декабря 1946 года названы Kathleen Britten, Xenia Sweeting и Andrew Booth. В позднем интервью Andrew вспоминал, что Kathleen вместе с другой женщиной выполнила почти всю разводку серии машин. Это свидетельство участника, а не полный учёт труда, но оно показывает техническую работу, которую легенда об одиночке обычно скрывает.
Книга Kathleen Booth 1958 года о программировании автоматического цифрового вычислителя подтверждает продолжительность её практики. Документированная работа весомее, чем спорный титул первенства.
Ранняя символика и действующий ассемблер
Под «языком ассемблера» могут понимать удобные символы, дисциплину кодирования или программу, автоматически выполняющую перевод. Для этих утверждений нужны разные исторические свидетельства.
Отчёт 1947 года фиксирует раннюю сокращённую запись и полный путь до подробного машинного кода. Initial Orders для EDSAC 1949 года относятся к другой ступени. Материалы Cambridge объясняют, что буквы напрямую обозначали пятибитные коды операций, а Computer History Museum приписывает David Wheeler монтажный ассемблер.
Этим достижениям не обязательно бороться за одно первое место. Одно показывает отделение человеческого рассуждения от двоичной упаковки. Другое — перевод, встроенный в эксплуатацию машины с хранимой программой. Различие слоёв точнее описывает происхождение программных инструментов.
Что именно доказывает успешный перевод
Если символическая программа преобразована без ошибки, её операции известны, адреса помещаются в поля, а полученные слова можно загрузить. Для длинного расчёта, подготовленного вручную, это были важные гарантии.
Но корректная команда сравнения может содержать неверный порог. Итерация может устойчиво сходиться в неподходящей модели. Данные могут занять нужный адрес и при этом быть устаревшими или смещёнными. Машина одинаково точно усиливает хорошее и плохое рассуждение.
Современные компиляторы и системы развёртывания сохраняют ту же границу. Успешная сборка подтверждает определённое преобразование, а успешное развёртывание — наблюдаемое платформой состояние. Они не заверяют автоматически справедливость политики, безопасность зависимости или репрезентативность данных.
Цепочка ответственности должна оставаться раздельной. Люди выбирают метод и допущения; запись выражает процедуру; перевод связывает её с исполняемой формой; машина создаёт наблюдаемый результат; люди снова решают, отвечает ли он исходному вопросу.
Абстракция распределяет власть
Тот, кто контролирует обычный вход в машину, влияет на определение допустимой команды и видимость ошибок. В ARC таблица открыто показывала набор операций, ширину адреса, переходы управления и работу памяти.
Управляемая абстракция сообщает, что именно преобразует, где заканчиваются её проверки и как увидеть результат. Непрозрачная абстракция выдаёт отсутствие ошибки за широкое доказательство и передаёт владельцу переводчика право толковать намерение.
Вклад Kathleen Booth не нуждается в безусловном слове «первая». Точнее его выражает дисциплина, которую она помогла сформулировать: сделать управление машиной читаемым, сохранить точное соответствие и не принимать допустимую запись за правильное суждение.
Источники
- Andrew D. Booth и Kathleen H. V. Britten, Coding for A.R.C.
- Каталожная запись Institute for Advanced Study
- Herman Goldstine и John von Neumann, Planning and Coding of Problems for an Electronic Computing Instrument
- Birkbeck, 50 Years of Computing
- Computer History Museum, устная история Andrew Booth
- University of Cambridge, EDSAC Initial Orders and Squares Program
- University of Cambridge, пояснения к коду команд EDSAC
- MacTutor, книги Andrew и Kathleen Booth
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
