Comments 78
Полностью разработана, и построена в дальнейшем была разностная машина, но компьютером в современном понимании она не являлась и исполнять программы не могла.
Тем удивительней факт, что была написана правильно работающая программа для гипотетического, не полностью разработанного вычислительного устройства.
Пытаюсь представить себе внутреннее состояние Ады, потребное для такого мысленного проектирования. Потрясающе.
Во-вторых, принципиальная логика программы ведь была правильной, за исключением этой ошибки. Полагаю, имей Ада возможность выполнять программу аппаратно, а не мысленно, она бы вероятно нашла бы ошибку.
Мастер Юань-Ма, «Книга программирования»
gcc так и компилируется — в два этапа. Сначала системным компилятором, потом он пересобирает сам себя.
https://ru.wikipedia.org/wiki/Раскрутка_компилятора
Или одно устройство могло быть на группу из, скажем, 20 человек — так что вы получали доступ на час в неделю.
Эти шаги требовали только сложения и вычитания, что означало, что для построения таблицы можно задействовать небольшую армию людей, не обладавших способностями к математике.
Зачем переводить всё так буквально? :) Заглянем в оригинал:
These small steps involved only addition and subtraction, meaning that a small army of people without any special mathematical aptitude or training could be employed to produce a table.
По идее, речь идет о небольшой группе людей.
small army [=«small» or «big»?] | WordReference Forums
P.S. Как мне кажется, словосочетание «небольшая армия» из-за своей неопределенности только сбивает с толку читателей, не владеющих английским языком.
Невероятные приключения Лавлейс и Бэббиджа: (Почти) правдивая история… — Сидни Падуа — Google Books (см. первый абзац)
Оказывается, Гаспар де Прони привлек к составлению логарифмических таблиц небольшую группу опытных математиков, которые разбивали сложные расчеты на последовательности элементарных действий, а вычислением этих действий занимались несколько десятков простых служащих, от которых требовалось только умение складывать и вычитать.
Итак, мое предположение о том, что в данном случае «небольшая армия» — это десяток человек, оказалось ошибочным.
Пес его знает, но все выпускники мехматов, с которыми я контактировал, учились совсем другому, а именно математическому моделированию в самом широком смысле. Т.е. предполагалось, что выпускники мехматов будут не считать что-то там вручную (для космоса или чего еще, неважно), а строить математические модели, по которым будут считать другие (те же компьютеры по программам, которые напишут программисты по разработанным выпускниками мехматов моделям).
В школы выпускники мехмата шли по разным причинам. Кого-то привлекали льготы для молодых преподавателей. Кто-то просто так "хорошо" учился, что по специальности работать не мог. Кто-то просто находил таким образом работу возле дома или в родном городе.
И в тех вузах, про которые я знаю, мехматян, которые нормально учились и в школу не стремились, в принципе не распределяли в школы.
Вы, похоже, пишете о выпускниках либо недавних, либо давних, но — отделения прикладной математики. Эти действительно занимались матмоделированием, а распределяли их простыми программистами по ВЦ.
Были ещё отделения механики. Народа там было мало — одна группа, и распределение (кроме тех, кого забирали в ближайшие НИИ) было почти свободным — что сам найдёшь, туда и пишут направление.
А вот именно математиков — в школы, в школы. Тем более, что у них даже предмет на педагогическую тему был, семестр или два. Так что формально они в учителя годились.
Что же касается того, зачем создавали мехматы, можно найти и в инете в разных историях, и — по рассказам старых преподов (старых ещё в 70-е годы).
Факты из жизни (от инженеров и кадровиков с заводов): в СССР постоянно требовались расчёты на производстве. Например, расчёт статических напряжений — что собранная машина не развалится под своим весом, расчёт динамических напряжений — что собранная машина не развалится при своей работе, к этому можно добавить расчёт колебаний и нагрузок в переходных режимах. Собственно, любая механическая передача имеет свой КПД, который желательно рассчитать.
Т.ж. производились расчёты напряжений в деталях с целью их облегчения — убрать материал, не несущий основных нагрузок (методы МКЭ или МГЭ).
Всем этим занимались выпускники мехматов.
А вот Вы, похоже, не знаете. Расчёты, производимые на производстве к тому, чему учат на мехмате, имеют, но очень и очень отдалённое отношение. Как сопромат к теории упругости (кстати, и то, и то на мехмате было в курсах только одной группы из десяти, группы механиков. У математиков и прикладников ничего подобного не было).
И ещё: «смог устроиться только в школу» — звучит, поверьте, смешно. Вы совсем не в курсе былых советских реалий…
Всем этим занимались выпускники мехматов
Этими расчетами занимались простые инженеры (пяти семестров «вышки» для этого было вполне достаточно)
У выпускников мехмата для этого просто не было необходимых инженерных знаний.
Поскольку у них не было работающего компьютера Altair, они проверили свой интерпретатор при помощи написанного ими эмулятора, выполнявшегося на компьютерной системе Гарварда. Эмулятор был основан только на опубликованных спецификациях процессора Intel 8080. Когда Аллен, наконец, запустил интерпретатор на реальном компьютере Altair – перед человеком, который, как они надеялись, купит их ПО – он даже не знал, заработает ли программа. Она заработала.
Вот ведь насколько в то время было развито внимание к деталям, что можно было по спецификациям сделать точный эмулятор. А сейчас выходит обновление, его тестируют на всём что можно и всё равно оно потом не работает на половине устройств. Куда мы катимся?
В своё время C128 ругали жутко за то, что они совместимость с C64 поломали… ну там, внутренние процедуры в реализации бейсика стали другими и PEEK/POKE трюки перестали работать.
Как вы думаете — каков шанс, что программа, напрямую лащающая и правящая «не глядя» файлы операционки вообще удастся продать сегодня до то, чтобы получить, 90% возвратов? А в те времена… гляньте, хотя бы, вот на эту книжечку. Или вот эту. Какие, к бесу, «разбитые окна»?
А сейчас выходит обновление, его тестируют на всём что можно и всё равно оно потом не работает на половине устройств.Но на половине-то работает.
Куда мы катимся?В рынок, детка, в рынок. С 1976го по 1995й, за почти 20 лет Apple выпустила 5 моделей Apple ][ (и ещё примерно столько же минорных вариаций), а сегодня столько же моделей за полгода выпускается каждым производителем — а количество минорных вариаций исчисляется сотнями.
Там где этого нет (XBox, PS3/PS4) — и проблем с совместимостью меньше, чем было во времена Altair'а…
Потому что все случаи несовместимости после выхода обновлений, которые «тестируют на всём что можно и всё равно оно потом не работает на половине устройств» — это либо случаи проблем с «зоопарком» устройств, на которых масса всего бывает, всего просто не протестируешь — либо с софтом… а тут тоже «старые» подходы куда как менее надёжны.
Как пример: кто из вас сегодня вообще задумывается в какой слот PCI-Express или USB подключать устройство? А в те «благословенные» времена, когда Билл Гейтс писал свой Бейсик — внимание к таким вещам было скорее нормой, чем исключением…
Никуда не катимся. Сотни людей с крайне высоким вниманием к деталям, способные написать интерпретатор под микроконтроллер и сейчас найдутся. Просто программирование стало очень массовой профессией. У нас теперь не десять программ в год, а десять миллионов. Да и количество деталей возросло.
Так вот в режиме эмуляции 65C02 — эта задержка воспроизводится в точности. А почему? А потому что иначе тайминги слетят и программы работать не будут.
А сейчас человек жалуется, что у него игрушка глючит при том, что у него «такой же комп, как у его приятеля… ну только видеокарта и CPU от AMD, вместо Intel'а и nVidia, и другого звукового чипа… а так — ну совсем такой же, в таком же прямоугольном корпусе».
P.S. А эмуляторы — да, там всё такт-в-такт приходится воспроизводить… Так как в той же PS2 (а тем несколько процессоров) очень часто никакой синхронизации нету — разработчики просто знают что векторный процессор выполняет их программу за 105 тактов, а скалярный — свою за 106… и потому данные появляются в нужном месте в нужное время…
Лавлейс была поражена разностной машиной Бэббиджа.И, согласно тому же Айзексону (в «Инноваторах»), первой оценила потенциал машины, способной работать с произвольными символьными последовательностями, а значит не только числами, но и текстами, музыкой и любыми другими данными, которые могут быть представлены в этом виде…
По этому поводу есть замечательная книга Ю.Л. Полунова "От Абака до компьютера: судьбы людей и машин".
Babbage’s Calculating Engines, Being a Collection of Papers Relating to Them; Their History, and Construction. Charles Babbage, Edited by Henry P. Babbage, первое издание 1889 (переиздана в 2010)
libgen.lc/edition.php?id=136443931
Содержит: документы Чарльза Бэббиджа, выдержки из книг и публикаций Бэббидджа, перевод описания аналитической машины с комментариями Ады Лавлейс, фрагменты чертежей аналитической машиныскан журнала с публикацией перевода Менамбреа и комментарием Лавлейс:
Scientific Memoirs, Selected from the Transactions of Foreign Academies of Science and Learned Societies and from Foreign Journals, Vol. III, 1843
Edited by Richard Taylor, F.S.A.
Publisher: Richard and John E. Taylor (London)
Art. XXIX. — Sketch of the Analytical Engine invented by Charles Babbage, Esq. By L. F. MENABREA of Turin, Officer of the Military Engineers, p. 666
archive.org/details/dli.granth.53369
(скан выложен 11.07.2020, BOMBAY BRANCH OF THE Royal Asiatic Society. Digitized with financial assistance from the Government of Maharashtra on 28 March, 2016)Картинка с диаграммой алгоритма, на которую все ссылаются:
commons.m.wikimedia.org/wiki/File:Diagram_for_the_computation_of_Bernoulli_numbers.jpg
Источник картинки (в Википедии, похоже, немного обработана):
www.sophiararebooks.com/pictures/3544a.jpg
Предположительно относится к лоту с книгой (страница недоступна):
www.sophiararebooks.com/pages/books/3544/
Но на сайте сохранились сканы еще нескольких страниц:
www.sophiararebooks.com/pictures/3544.jpg (скан первой страницы перевода)
www.sophiararebooks.com/pictures/3544b.jpg
www.sophiararebooks.com/pictures/3544c.jpg
www.sophiararebooks.com/pictures/3544d.jpg
www.sophiararebooks.com/pictures/3544e.jpg
www.sophiararebooks.com/pictures/3544f.jpg
Я перевёл программу Лавлейс на язык C
Почему не на язык Ада? :)
Когда первоначально выделенных денег не хватило, энтузиазм спонсоров поубавился, и достраивать ему было не на что.
«Первая модель [разностной машины], построенная между 1820 и 1822 гг., состояла из 6 разрядов и применяла вторые разности. В 1823 г. было начато конструирование машины с 26-значными цифрами и 6-ми разностями.
Конструирование продолжалось до 1833 г., когда правительственная субсидия работе прекратилась».
И список литературы в конце цитируемой статьи.
Думаю, что это чушь про шестерёнки.
Промахнулся местом комментария.
Посмотрел таблицу — всё-таки программа. Алгоритм написан настолько формально, насколько это можно было вообще сделать до появления современных вычислительных архитектур, до появления понятия «код операции» и др.
Как то интересно-то.
Оказывается машину придумал Менабреа, он же был первым программистом.
хорошо написано, надо кино снять
Что на самом деле делала программа Ады Лавлейс?