В 1822 году английский математик Чарльз Бэббидж начал работу над разностной машиной (механическим аппаратом, который должен был создавать таблицы логарифмов. – Прим. ред.). Он надеялся заменить ею людей, которые вычисляли астрономические, навигационные и математические таблицы и иногда допускали ошибки. Эта машина стала прообразом современного компьютера и дала начало программированию.
Редакция MC.today рассказывает, как появилось программирование и кто стоял у его истоков.
Ада Лавлейс была дочерью английского поэта Джорджа Байрона, но с детства увлекалась математикой, как ее мать Анна Изабелла Байрон. Учителями девочки были лучшие математики: Огастес де Морган, автор законов де Моргана (логические правила, которые связывают пары логических операций при помощи логического отрицания. – Прим. ред.), и Мэри Сомервилль, которая перевела «Трактат о небесной механике» Пьера Симона (книга о разделе астрономии, который применяет законы механики для изучения движения небесных тел. – Прим. ред.). От последней она узнала о Чарльзе Бэббидже. В 1833 году они познакомились и стали хорошими друзьями.
В 1840 году Чарльз Бэббидж ездил в Турин. Там по приглашению итальянских математиков он читал лекции о своей разностной машине. Луиджи Менабреа, будущий премьер-министр Италии, а тогда молодой ученый, опубликовал конспект его лекций на французском языке. Друг Бэббиджа, изобретатель Чарльз Уитстон, попросил Аду перевести конспекты на английский и добавить свои комментарии.
Разностная машина Бэббиджа. Источник
Ада переводила конспект больше года, а ее комментарии составили 52 страницы – больше, чем изначальный текст. Она увидела в машине больше, чем видел сам Беббидж. Именно она назвала ее не разностной, а аналитической и пересмотрела ее функции.
Ада Лавлейс считала: в будущем такая машина сможет не только считать алгебраические формулы, а обрабатывать любую информацию, которую в нее заложат: писать музыку, картины и так далее. В своих комментариях она писала, что аналитическая машина покажет «науке такие пути, какие нам и не снились». Она ввела понятия «ячейка» и «цикл». Еще она описала алгоритм вычисления чисел Бернулли (последовательность рациональных чисел, возведенных в одну и ту же степень. – Прим. ред.) – первую компьютерную программу в истории программирования. Но машину Бэббиджа закончили только после ее смерти, поэтому Ада Лавлейс так и не смогла испытать свой код.
Для первых ЭВМ (электронно-вычислительных машин. – Прим. ред.) нужно было писать программы на понятном для них языке – машинном коде. Тогда это выглядело как сочетание единиц и нулей.
Это было неудобно по нескольким причинам:
Вскоре начали применять язык ассемблера. Это понятие включает в себе несколько языков. Кэтлин Бут в 1947 году создала первый язык ассемблера – автокод. Дэвид Уилер в 1948 году написал другой – под EDSAC (тип ЭВМ. – Прим. ред.). Благодаря им программисты могли писать программу в удобном для человека формате: вместо двоичного кода использовали буквы или сокращенные слова, которые отражали суть команды.
EDSAC. Источник
Если машинные коды считались первым поколением языков в истории программирования, то язык ассемблера стал вторым. Но и здесь были проблемы. Например, на нем сложно выполнять большие программные комплексы. Так появилось третье поколение – языки программирования высокого уровня.
Языки программирования высокого уровня созданы для быстроты и удобства программирования – они могут коротко описать большие программы. Еще такие языки не привязаны к определенному типу ЭВМ, ведь для каждого из них разработали компилятор (программу, которая переводит текст на языке программирования в машинный код. – Прим. ред.).
Неизвестно, как бы появилось и развивалось программирование, если бы не Вторая мировая война. В 1941 году немецкий ученый Конрад Цузе создал механическо-вычислительные устройства Z1, Z2 и Z3. Последнее считают первым программируемым компьютером. Все три были уничтожены во время бомбардировок Берлина в 1944 году.
Реплика Z3. Источник
Уцелел только Z4, усовершенствованная версия Z3 – ученый заранее перевез компьютер в безопасное место. Именно для этой машины в 1948 году Цузе разработал первый язык программирования высокого уровня – Plankalkül.
Из-за войны Цузе был изолирован от научного сообщества Европы и США, поэтому его разработки долго оставались неизвестными. Он полностью их опубликовал только в 1972 году.
Этот язык программирования создали специалисты IBM под руководством Джона Бэкуса для технических и научных расчетов. Ему не нравилось писать программы на ассемблере, и он искал способ «быть ленивым».
Научное сообщество не верило, что появится новый способ программировать быстрее и проще, но восприняло Fortran хорошо. Через три года были версии языка для четырех моделей компьютеров IBM. Он стал настолько популярным, что конкуренты начали выпускать компиляторы Fortran для своих компьютеров.
Язык используется до сих пор, ведь на нем написано много библиотек (сборников подпрограмм и объектов для разработки программ. – Прим. ред.).
ALGOL разработали в 1958 году как универсальный язык. Над ним работали комитеты из Германии и США. Из-за этого между американцами и европейцами часто возникали споры.
Один из таких – «десятичная буря». Программисты не могли решить, какой символ использовать для разделения целой и дробной части числа. Европейцы хотели использовать запятую, а американцы – точку. Чтобы решить этот спор, разработчики решили, что описание языка будет трехуровневым – подобные мелкие вопросы выносились на второй и третий уровни. Так они сосредоточились на важных вопросах и быстро закончили разработку языка.
Язык стал популярным в научных сообществах от Великобритании до Дальнего Востока СССР.
Этот язык разработал Джон Маккарти. LISP применяли для обработки «списков». Поскольку это самый гибкий способ представить информацию в памяти компьютера, язык был очень популярным. За 40 лет его существования у него появилось много диалектов.
Этот язык написали для разработки бизнес-приложений и для работы в экономической сфере. Он максимально приближен к английскому языку и понятен даже неспециалистам. Но на нем нельзя запрограммировать сложные алгебраические вычисления.
Вот как развивались ПО и языки программирования дальше. Без этих разработок мир был бы другим.
Вот как появилось программирование: Ада Лавлейс написала первую программу для аналитической машины Бэббиджа, но не смогла ее испытать. Первая работающая программа была написана на машинном коде – двоичной системе из единиц и нулей. Такой код понимала ЭВМ, но для людей он был неудобным. Позже появился язык ассемблера, когда команды нужно было вводить с помощью слов. Но и здесь функционал машин был ограничен, поэтому вскоре появились языки программирования высокого уровня. Благодаря им программирование стали широко использовать в жизни, а не только в научной среде.
Кровать — громоздкий элемент интерьера даже в просторной спальне. Но что, если помещение совсем небольшое,…
Украинские PR-агентства реализуют масштабные информационные кампании для бизнеса и придают мощный голос социальным проектам, которые…
Power BI (Business Intelligence) Microsoft – это не просто платформа для анализа данных, а ключевой…
Лас-Вегас — один из самых узнаваемых городов на планете, который ежегодно манит к себе миллионы…
Из-за широкомасштабного вторжения россии в Украине было введено военное положение и объявлена мобилизация. Военнообязанным мужчинам…
«Вижу цель – не вижу препятствий». Знакомая фраза? Часто ею руководствуются кандидаты, ищущие работу мечты.…
Подивитись коментарі
"Линус Торвальдс в 1991 году в своей комнате в общежитии Университета Хельсинки создал операционную систему ядра Linux."
Автор, ви написали щось незрозуміле і некоректне - "операційна система ядра лінукс". Лінус Торвальдс створив ЯДРО LINUX на базі якого було створено операційну систему GNU/Linux з ії різноманіттям дістрибутивів. Саме ядро.