Invest-currency.ru

Как обезопасить себя в кризис?
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Самый первый язык программирования

lktalks

«Software developers have neutralized the astounding performance of modern computer hardware by adding layer upon layer of overelaborate [software] abstractions.» Bjarne Stroustrup, Creator of C++

воскресенье, июня 24, 2007

Первый в мире язык программирования

Мне всегда казалось, что первым был Фортран, что, в частности отображено и в наверное наиболее известной диаграмме истории языков программирования. На самом деле по влиянию и известности Фортран конечно и был первым. Однако с исторической точки зрения — нет.

[Если быть совсем точным, то уж по настоящему первым языком программирования была, по всей видимости, та нотация, с помощью которой были написаны программы Чарльза Бэббиджа в знаменитой статье Ады Августы Байрон, графини Лавлейс «Sketch Of the Analytical Engine»(статья представляла собой перевод статьи итальянца Менабреа о работе разностной машины Бэббиджа и, содержала существенное дополнение, написанное самой Адой Августой). Однако это был не вполне язык программирования, да и машина, для которой он предназначался существовала только в уме гениального человека. Замечу кстати, что в 1991 году музей науки в Лондоне создал по чертежам Бэббиджа его машину и она сейчас существует в рабочем состоянии]

Итак, первый язык программирования. Это был вовсе не Фортран, а язык с удивительным названием — Plankalkül, то есть в переводе с немецкого «Исчисление планов» или «План вычислений», был разработан немецким учёным, изобретателем и конструктором Конрадом Цузе в нацистской Германии между 1942 и 1945 годами.

[Цузе также сконструировал несколько различных моделей компьютеров. Например его Z3 тоже был создан раньше знаменитых Marc I и ENIAC и являлся при этом вполне полноценной машиной. ]

Утверждается, что всех своих достижений Цузе добился абсолютно самостоятельно, не обладая сведениями ни о работах американцев и англичан, проводившихся в близкое время, и даже не зная о работах Бэббиджа.

Создание языка программирования было естественным продолжением работ по созданию «железной» части компьютеров. Сам Цузе пытался с его помощью писать программу для игры в шахматы. Работы над языком были закончены около 1946 года, однако развития язык не получил и даже написанное руководство увидело свет только в 1972 году. Из-за этого язык оказался неизвестным и существенного влияния на дальнейшее развитие индустрии не оказал (в сравнении например с тем же Фортраном).

Тем не менее Plankalkül несомненно был первым в мире языком программирования высокого уровня. Основные концепции языка включают:

  • Наличие подпрограмм (и это в 1940-х годах. )
  • Наличие операции присваивания (=>)
  • Циклы
  • Условный оператор (if)
  • Возможность манипуляций с массивами
  • Возможность манипуляций со списками

При создании языка Цузе собрал множество проблем, которые были поставлены инженерами и учёными. Для демонстрации того, что язык действительно способен решать эти проблемы было написано огромное количество примеров программ (в частности около 60 страниц примеров для программы играющей в шахматы).

Одной из проблем языка был чрезвычайно сложный и очень непривычный современному программисту синтаксис. Вот пример присваивания A[5] = A[4]+1 на языке Plankalkül:

Здесь V — это строка для индексов, S — строка для задания типов данных, 1.n — обозначает целое число размером n бит.

Plankalkül не оказал существенного влияния на другие языки. Но тем не менее историческое первенство — за ним.

Самый первый язык программирования

Мы расскажем вам краткую историю с чего все начиналось и как зарождалось программирование. Также мы расскажем про самые первые языки программирования.

Изначально программирование имело крайне примитивный вид и практически не имело отличий от упорядоченного бинарного кода с формализованным подходом. По сути, при зарождении сферы отличий языка программирования от компьютерного кода было немного. Очевидных и естественных удобств для программиста не существовало, он обязан был обладать знаниями числовых кодов для каждой команды машины. Даже распределение памяти для выполнения команд ложилось на специалиста.

Для упрощения обращения с ЭВМ люди стали активно разрабатывать языки, одним из первых стал Ассемблер. Для отображения переменных стали использоваться символьные наименования. Вместо числовых операций человеку достаточно знать мнемонические имена, их запоминание в разы облегчалось. Уже на этом этапе языки программирования стали более приближёнными к понятному для человека языку.

К первооткрывателям среди языков программирования относится Фортран – это сокращённое сочетание 2 слов: Formula и Translation. Создан уже в середине 50-х. До сих пор язык используется благодаря лёгкости и простоте написания, а также развитой системе библиотек для Фортран. Чаще используется для научных и инженерных подсчётов, а также активно применяется в физичке и остальных науках, связанных с математикой.

Узконаправленные языки

Из-за увеличения сфер использования ЭВМ появились и другие языки для отдельных разработок в новых сферах:

  • экономическое направление оставалось незанятым до появления Кобол;
  • Снобол – обрабатывает алгоритмы, связанные с текстами;
  • Лисп. Работает на основании алгоритмов для отработки символов. Активно используется для формирования искусственного интеллекта.

Уже в 1968 г. был впервые запущен конкурс, в котором главным местом являлось звание лучшего языка программирования для начала карьерного пути. Данные планировалось использовать для обучения специалистов. Победу одержал Алгол-68 , но он остался малоизвестным, о популярности и речь не идёт.

Специально для участия в конкурсе был создан Паскаль, разработчиком являлся Никлаус Вирт. Язык весьма доступный, удобный и объединяет немало мощных инструментов для структурирования информации. Несмотря на изначальную разработку с целью обучения студентов, Паскаль получил широкое распространение и активно развивался. Даже сегодня он является одним из лучших и известнейших языков программирования.

Для обучения детей в школах был создан Лого, у истоков стоял Самуэль Пайперт. Достоинства – простота работы и обилие возможностей.

В школах стал преподаваться простой язык Бейсик , он легко взаимодействует с ЭВМ в качестве прямого диалога. Время никак не повлияло на эту сферу, до сих пор Бейсик является самым простым языком для начала изучения большинства распространённых направлений программирования.

Создание языка C

Развитие возможностей вычислительного оборудования привело к необходимости написания ёмких программ для управления ЭВМ. Это место по праву занял язык Си, который стал активно использоваться в 70-х годах . Явным достоинством языка является его универсальность. Он превосходит Паскаль благодаря наличию вложенных возможностей сотрудничества с разными машинными командами и подходящими частями памяти.

Си используется повсеместно в качестве инструментального языка для написания операционных платформ, трансляционных устройств, баз данных и остальных прикладных, системных задач. Си не имеет чёткой направленности, он подходит для многих задач из-за эффективности, лёгкости переноса и экономного потребления ресурсов. Чаще всего Си по скорости обработки данных сопоставим с Ассемблером, производительность программ на обоих языках будет приблизительно равной. В небольшом языке заложена немалая мощность.

Пролог и Ада

Внедрение функционального программирования неизбежно повлекло создание Пролога. Задачи языка сводились к анализу и взаимодействию с человеческими языками. Логика приложения формальна, она оптимально подходит для автоматического решения задач и теорем.

Только в 80-х годах был разработан язык Ада . Он расширяет классическое понимание и свойства языков того периода. Ада могла решать задачи в режиме реального времени и моделировать независимые решения.

Классификация

Сегодня разработаны классификации языков по уровню работы, это распределение самое распространённое. Выделяют 3 основных уровня:

  1. Низкий. Сюда относятся различные машинные языки или разновидности с символическим кодирование типа Ассемблера и Автокода. За основу взяты операторы машинных команд, только разработаны с привязкой к мнемоническому коду. Операндами являются уже не точные адреса, а символьное обозначение имён. Все модели разработаны для отдельных разновидностей ПК, они являются машинно-зависимыми. В подобных языках отмечается сильная зависимость языка от внутренних особенностей системы;
  2. Высокий. Языки встречаются куда чаще, они более удобны в использовании. К ним причисляются: Алгол, С, Пролог, Паскаль, Бейсик, Фортран и другие. Перечисленные языки не имеют жёсткой зависимости от машины, ведь они основываются на возможностях системы операндов, которые подобны для классовых алгоритмов. Недостатками высокого уровня являются большая ресурсоёмкость и медленное исполнение;
  3. Сверхвысокий. Представителей языков крайне мало, только APL и Алгол-68 . Их считают сверхвысокого уровня из-за разработки сверхмощных операторов.
Читать еще:  Структурный метод программирования

Согласно другой классификации языки делятся на:

  • символьные – Пролог, Лисп и Снобол;
  • вычислительные – Паскаль, С, Алгол, Бейсик, Фортран.

Направления развития

Информатика в современном мире развивается в 3 ключевых направлениях:

  1. Процедурное появилось в период активнейшего развития компьютеров и других вычислительных устройств, с тем пор широко используется. В процедурных направлениях присутствуют выраженные описания действий, необходимых к выполнению. Для получения результата всегда проводится определённая процедура, которую составляют различные последовательности манипуляций. Процедурные языки дополнительно разделяются на:
    • Структурные. В них используется один оператор для записи цельных алгоритмом: циклов, функцию, ветвлений и остального. Более известны: Паскаль, Ада и С.
    • Операционные. Применяют несколько различных действий. Среди самых известных разновидностей: Фокал, Фортран и Бейсик.
  2. Непроцедурные. Языки программирования имеют декларативную структуру, появление которой приходится на 70-е года. Активнее всего начали развиваться в 80-х годах после появления проекта формирования 5 поколения ЭВМ. Основная задача – создание возможностей для построения высокоинтеллектуальных машин. Они также разделяются на:
    • Функциональные. Программа выполняет исчисление определённой функции, которая берёт за основу другие относительно простые алгоритмы и более простые задачи. В основе функционального направления используется основной элемент – рекурсия. Она подразумевает расчёт значений функции с помощью задействования её в других элементах. В языке отсутствуют циклы и методика присваивания значений.
    • Логические. Программа вовсе не требует описание действий, её основу составляют соотношения данных и их значения. Только после расчёта можно получать ответы на вопросы. После перебирания известных параметров выводится ответ. В программе отсутствует метод или порядок обнаружения ответа, он неявным образом устанавливается языком. Ярким представителем является Пролог. Из направления полностью устранено алгоритмическое мышление, только статические отношения между объектами, а вся динамика сокрыта от разработчика и сводится к перебору данных.
  3. Объектно-ориентированные языки, все они являются разновидностью высокого уровня программирования. Подобные языки не нуждаются в описании чёткой последовательности манипуляций для получения результата задачи, но отдельные компоненты процедурного направления присутствуют. Пользователям значительно проще работать с такими языками, так как они обладают доступным и богатым интерфейсом. Лучшим примером подобного направления с визуальным общением является Object Pascal.

Существуют языки для написания сценариев, известными являются Rexx, Tcl, Perl и Python, а также языки оболочек систем Unix. В них разрабатывается индивидуальный стиль написания кода, который отличается от известного принципа системного уровня программирования. Они не используются для создания приложений на нижнем уровне, скорее для комбинирования различных компонентов из разных языков, из которых составляется набор отдельных функций.

Активнее всего стали развиваться по мере распространения интернета, от чего стали широко применяться языки сценариев. Для создания сценариев чаще всего применяется Perl, а для Web-части пользуется популярностью JavaScript.

Самый первый язык программирования

Мы расскажем вам краткую историю с чего все начиналось и как зарождалось программирование. Также мы расскажем про самые первые языки программирования.

Изначально программирование имело крайне примитивный вид и практически не имело отличий от упорядоченного бинарного кода с формализованным подходом. По сути, при зарождении сферы отличий языка программирования от компьютерного кода было немного. Очевидных и естественных удобств для программиста не существовало, он обязан был обладать знаниями числовых кодов для каждой команды машины. Даже распределение памяти для выполнения команд ложилось на специалиста.

Для упрощения обращения с ЭВМ люди стали активно разрабатывать языки, одним из первых стал Ассемблер. Для отображения переменных стали использоваться символьные наименования. Вместо числовых операций человеку достаточно знать мнемонические имена, их запоминание в разы облегчалось. Уже на этом этапе языки программирования стали более приближёнными к понятному для человека языку.

К первооткрывателям среди языков программирования относится Фортран – это сокращённое сочетание 2 слов: Formula и Translation. Создан уже в середине 50-х. До сих пор язык используется благодаря лёгкости и простоте написания, а также развитой системе библиотек для Фортран. Чаще используется для научных и инженерных подсчётов, а также активно применяется в физичке и остальных науках, связанных с математикой.

Узконаправленные языки

Из-за увеличения сфер использования ЭВМ появились и другие языки для отдельных разработок в новых сферах:

  • экономическое направление оставалось незанятым до появления Кобол;
  • Снобол – обрабатывает алгоритмы, связанные с текстами;
  • Лисп. Работает на основании алгоритмов для отработки символов. Активно используется для формирования искусственного интеллекта.

Уже в 1968 г. был впервые запущен конкурс, в котором главным местом являлось звание лучшего языка программирования для начала карьерного пути. Данные планировалось использовать для обучения специалистов. Победу одержал Алгол-68 , но он остался малоизвестным, о популярности и речь не идёт.

Специально для участия в конкурсе был создан Паскаль, разработчиком являлся Никлаус Вирт. Язык весьма доступный, удобный и объединяет немало мощных инструментов для структурирования информации. Несмотря на изначальную разработку с целью обучения студентов, Паскаль получил широкое распространение и активно развивался. Даже сегодня он является одним из лучших и известнейших языков программирования.

Для обучения детей в школах был создан Лого, у истоков стоял Самуэль Пайперт. Достоинства – простота работы и обилие возможностей.

В школах стал преподаваться простой язык Бейсик , он легко взаимодействует с ЭВМ в качестве прямого диалога. Время никак не повлияло на эту сферу, до сих пор Бейсик является самым простым языком для начала изучения большинства распространённых направлений программирования.

Создание языка C

Развитие возможностей вычислительного оборудования привело к необходимости написания ёмких программ для управления ЭВМ. Это место по праву занял язык Си, который стал активно использоваться в 70-х годах . Явным достоинством языка является его универсальность. Он превосходит Паскаль благодаря наличию вложенных возможностей сотрудничества с разными машинными командами и подходящими частями памяти.

Си используется повсеместно в качестве инструментального языка для написания операционных платформ, трансляционных устройств, баз данных и остальных прикладных, системных задач. Си не имеет чёткой направленности, он подходит для многих задач из-за эффективности, лёгкости переноса и экономного потребления ресурсов. Чаще всего Си по скорости обработки данных сопоставим с Ассемблером, производительность программ на обоих языках будет приблизительно равной. В небольшом языке заложена немалая мощность.

Пролог и Ада

Внедрение функционального программирования неизбежно повлекло создание Пролога. Задачи языка сводились к анализу и взаимодействию с человеческими языками. Логика приложения формальна, она оптимально подходит для автоматического решения задач и теорем.

Только в 80-х годах был разработан язык Ада . Он расширяет классическое понимание и свойства языков того периода. Ада могла решать задачи в режиме реального времени и моделировать независимые решения.

Классификация

Сегодня разработаны классификации языков по уровню работы, это распределение самое распространённое. Выделяют 3 основных уровня:

  1. Низкий. Сюда относятся различные машинные языки или разновидности с символическим кодирование типа Ассемблера и Автокода. За основу взяты операторы машинных команд, только разработаны с привязкой к мнемоническому коду. Операндами являются уже не точные адреса, а символьное обозначение имён. Все модели разработаны для отдельных разновидностей ПК, они являются машинно-зависимыми. В подобных языках отмечается сильная зависимость языка от внутренних особенностей системы;
  2. Высокий. Языки встречаются куда чаще, они более удобны в использовании. К ним причисляются: Алгол, С, Пролог, Паскаль, Бейсик, Фортран и другие. Перечисленные языки не имеют жёсткой зависимости от машины, ведь они основываются на возможностях системы операндов, которые подобны для классовых алгоритмов. Недостатками высокого уровня являются большая ресурсоёмкость и медленное исполнение;
  3. Сверхвысокий. Представителей языков крайне мало, только APL и Алгол-68 . Их считают сверхвысокого уровня из-за разработки сверхмощных операторов.

Согласно другой классификации языки делятся на:

  • символьные – Пролог, Лисп и Снобол;
  • вычислительные – Паскаль, С, Алгол, Бейсик, Фортран.

Направления развития

Информатика в современном мире развивается в 3 ключевых направлениях:

  1. Процедурное появилось в период активнейшего развития компьютеров и других вычислительных устройств, с тем пор широко используется. В процедурных направлениях присутствуют выраженные описания действий, необходимых к выполнению. Для получения результата всегда проводится определённая процедура, которую составляют различные последовательности манипуляций. Процедурные языки дополнительно разделяются на:
    • Структурные. В них используется один оператор для записи цельных алгоритмом: циклов, функцию, ветвлений и остального. Более известны: Паскаль, Ада и С.
    • Операционные. Применяют несколько различных действий. Среди самых известных разновидностей: Фокал, Фортран и Бейсик.
  2. Непроцедурные. Языки программирования имеют декларативную структуру, появление которой приходится на 70-е года. Активнее всего начали развиваться в 80-х годах после появления проекта формирования 5 поколения ЭВМ. Основная задача – создание возможностей для построения высокоинтеллектуальных машин. Они также разделяются на:
    • Функциональные. Программа выполняет исчисление определённой функции, которая берёт за основу другие относительно простые алгоритмы и более простые задачи. В основе функционального направления используется основной элемент – рекурсия. Она подразумевает расчёт значений функции с помощью задействования её в других элементах. В языке отсутствуют циклы и методика присваивания значений.
    • Логические. Программа вовсе не требует описание действий, её основу составляют соотношения данных и их значения. Только после расчёта можно получать ответы на вопросы. После перебирания известных параметров выводится ответ. В программе отсутствует метод или порядок обнаружения ответа, он неявным образом устанавливается языком. Ярким представителем является Пролог. Из направления полностью устранено алгоритмическое мышление, только статические отношения между объектами, а вся динамика сокрыта от разработчика и сводится к перебору данных.
  3. Объектно-ориентированные языки, все они являются разновидностью высокого уровня программирования. Подобные языки не нуждаются в описании чёткой последовательности манипуляций для получения результата задачи, но отдельные компоненты процедурного направления присутствуют. Пользователям значительно проще работать с такими языками, так как они обладают доступным и богатым интерфейсом. Лучшим примером подобного направления с визуальным общением является Object Pascal.
Читать еще:  Из чего состоит алфавит языка паскаль

Существуют языки для написания сценариев, известными являются Rexx, Tcl, Perl и Python, а также языки оболочек систем Unix. В них разрабатывается индивидуальный стиль написания кода, который отличается от известного принципа системного уровня программирования. Они не используются для создания приложений на нижнем уровне, скорее для комбинирования различных компонентов из разных языков, из которых составляется набор отдельных функций.

Активнее всего стали развиваться по мере распространения интернета, от чего стали широко применяться языки сценариев. Для создания сценариев чаще всего применяется Perl, а для Web-части пользуется популярностью JavaScript.

Развитие языков программирования

Первые языки программирования

В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. Такой код разрабатывался вручную на языке Ассемблер . В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN . Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры алгоритмических языков программирования.

К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. Успех разработки этого языка привел к тому, что производители других вычислительных систем стали создавать свои версии трансляторов. С целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.

Как альтернатива языку FORTRAN , первоначально ориентированному на архитектуру IBM , под руководством Питера Наура в конце 50-х годов был разработан язык ALGOL ( ALGOrithmic Language ). Основной целью, преследуемой разработчиками этого языка, была независимость от конкретной архитектуры вычислительной системы. Кроме того, создатели языка ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике.

Языки FORTRAN и ALGOL были первыми языками, ориентированными на программирование вычислений.

Язык PL/I , первые версии которого появились в начале 60-х годов, был первоначально ориентирован на IBM 360 и расширял возможности языка FORTRAN некоторыми средствами языка COBOL , разработанного в эти же годы. Несмотря на определенную популярность языка PL/I у программистов, работавших на компьютерах IBM и машинах серии ЕС, в настоящее время он представляет чисто теоретический интерес.

В конце 60-х годов под руководством Найарда и Дала был разработан язык Simula-67, использующий концепцию пользовательских типов данных. Фактически это первый язык, применяющий понятие классов.

В середине 70-х годов Вирт предложил язык Pascal , который сразу стал широко использоваться. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня, получившего название Ada – в честь Ады Лавлейс, программистки и дочери лорда Байрона. Создание языка началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal . В начале 80-х годов был разработан первый промышленный компилятор языка Ada .

Универсальный язык программирования С был разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX . Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java .

Наряду с алгоритмическими языками параллельно развивались и языки, предназначаемые для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language ), а ко вторым – языки LISP ( LISt Processing ) и Prolog. Язык LISP , разработанный в 60-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.

С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA ( Visual Basic for Application ).

В 90-х годах с распространением сети Интернет расширяется возможность распределенной обработки данных, что отражается и на развитии языков программирования. Появляются языки, ориентированные на создание серверных приложений, такие как Java , Perl и PHP , языки описания документов – HTML и XML . Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования. Акцент со спецификации самих языков программирования переносится на стандартизацию механизмов взаимодействия распределенных приложений. Появляются новые технологии – COM и CORBA , специфицирующие взаимодействие распределенных объектов.

Области применения языков программирования

В настоящее время языки программирования применяются в самых различных областях человеческой деятельности, таких как:

  • научные вычисления (языки C++, FORTRAN, Java);
  • системное программирование (языки C++, Java);
  • обработка информации (языки C++, COBOL, Java);
  • искусственный интеллект (LISP, Prolog);
  • издательская деятельность (Postscript, TeX);
  • удаленная обработка информации (Perl, PHP, Java, C++);
  • описание документов (HTML, XML).

С течением времени одни языки развивались, приобретали новые черты и остались востребованы, другие утратили свою актуальность и сегодня представляют в лучшем случае чисто теоретический интерес. В значительной степени это связано с такими факторами, как:

Кем были первые программисты?

Программист — сравнительно молодая профессия, появившаяся, по разным данным, около 70 лет назад. За это время она успела проделать огромный путь, и деятельность современных программистов мало чем напоминает труд специалистов в этой области около полувека назад. В этой статье мы расскажем, с как возникла эта профессия, и о самых известных первопроходцах в этой сфере.

1. Августа Ада Лавлейс

«Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели».

Это может оказаться сюрпризом, однако первым программистом была. женщина. Дочь знаменитого поэта-романтика Гордона Байрона появилась на свет в Лондоне, в 1815 году. Впрочем, брак лорда Байрона с матерью девочки, Анной Изабеллой Милбенк распался, когда ребенку было лишь 5 недель, и с того времени она ни разу не видела своего отца.

Читать еще:  Общий вид задач линейного программирования

Ада провела свое детство в окружении многочисленных гувернанток, получив прекрасное разностороннее образование, больше всего ее интересовала математика и иные точные науки. В свои 12 лет девочка создавала чертежи оригинального летательного аппарата, работающего при помощи парового двигателя!»

В 1824 году Ада впервые познакомилась с математиком Чарльзом Бэббиджем, и эта встреча стала для нее знаковой. Ученый продемонстрировал Лавлейс модель своей разностной машины, сконструированной для автоматического подсчета логарифмов и тригонометрических функций, инструкции для которой предлагалось вводить при помощи перфокарт.

Лавлейс очень заинтересовалась проектом Бэббиджа, потратив немалое время на его изучение. Вскоре исследователь стал ее другом и наставником в области математической науки, и их сотрудничество было плодотворным и продолжалось на протяжении многих лет.

Хотя разностная машина ввиду ряда причин (сложности с технической реализацией, ограниченность бюджета) так и не была создана, этот проект вдохновил Чарльза на создание своего следующего проекта – аналитической машины. По сути, этот аппарат считается прародителем первого компьютера, хотят работающий прототип этой машины был создан спустя значительное время после смерти ученого.

По приглашению итальянских математиков, исследователь прочитал курс лекций о своем устройстве в Турине.

На основе этих материалов Луиджи Менабреа в 1842 году опубликовал статью об аналитической машине на французском языке.

Чарльз попросил Аду сделать ее перевод на английский, и она с вдохновением взялась за работу, сочтя это большой честью.

Однако Лавлейс не только перевела научный текст, но и расширила ее многочисленными емкими комментариями, включавшими в себя размышления по поводу особенностей конструкции устройства. В результате статья увеличилась в размерах более чем в три раза!

Особенно интересно, что в своих примечаниях Лавлейс описывала разработку плана операций для аналитической машины (программный алгоритм). Именно он считается первой программой, созданной непосредственно для компьютера. И несмотря на то, что она так и не была применена на практике, именно эту женщину называют первым программистом.

Далеко опередив свое время, Ада предположила, что вычислительная машина способна справиться с задачами, которые не под силу человеку.

Заметки Лавлейс легли в основу современного программирования. Ада ввела понятие цикла, определив его как набор команд, повторяющийся более одного раза. Такое нововведение позволило значительно сократить объем программного алгоритма. Без такой оптимизации применение машины было бы затруднительным, поскольку передача команд осуществлялась с использованием перфокарт, имеющих ограниченный размер.

По имени этой потрясающей девушки получил свое название язык программирования АДА, использующийся в военных силах США и НАСА. Помимо этого, в США в ее честь названы два маленьких городка и колледж.

2. Морис Уилкс

«Я точно помню тот самый момент, когда я понял, что большая часть моей жизни теперь будет состоять в поиске ошибок в моих собственных программах».

Этот известный ученый появился на свет в 1913 году в Великобритании. Исследователь прошел обучение в Кембриджском университете, выбрав специальность радиофизика. После завершения учебы, он стал помощником профессора в математической лаборатории.

После окончания Второй мировой войны (ученый принимал участие в боевых действиях) Уилкс возглавил лабораторию и занимал этот пост на протяжении многих лет.

В 1946 году в руки исследователя попал доклад известного математика Джона фон Неймана о создании ЭВМ под названием EDVAC, стартовавшем в США.

Уилкса очень заинтересовали идеи, касающиеся записи и хранения программного кода в памяти электронных устройств. Вдохновленный докладом своего коллеги, Уилкс записывается на цикл лекций, посвященный теории и методам конструирования электронных цифровых компьютеров, в Электротехнической школе Мура. Позднее он скажет, что эти лекции стали одним из решающих событий в его жизни.

Вернувшись домой, исследователь приступает к созданию своей собственной машины. По сути, этот проект был копией машины фон Ноймана, однако Морис Уилкс внес ряд существенных изменений в его программную часть.

Для сокращения объема двоичного кода, использующегося при создании программ, он разработал первую в мире мнемоническую систему обозначения компьютерных команд, получившую название ассемблер. Так, действие вычитания кодировалось латинской S, передача информации в память – буквой T и т.д.

Еще одним нововведением была библиотека подпрограмм. В то время ученые вынуждены были записывать часто использующиеся программы в блокнот, чтобы не создавать их каждый раз заново. Однако, в соответствии с тем, как размещались эти алгоритмы в памяти устройства, код каждый раз видоизменялся, что делало его применение неудобным и отнимало много времени.

Морис оптимизировал этот процесс, создав единую библиотеку подпрограмм и алгоритм, автоматически размещающий их в памяти компьютера, активировавшийся короткой командой.

Позднее Морис со своей командой приступил к разработке следующей версии машины – EDVAC-2. Здесь ему удалось реализовать принцип микропрограммирования. Иными словами, он создал программу, которая осуществляет функцию управлению компьютером за счет команд, написанных в виде машинного кода.

Соответственно, разработка управляющей системы из конструирования непосредственно аппаратной части компьютера превращалось в задачу создания программного обеспечения. Кроме того, этот принцип позволял вносить изменения в работу компьютера, не создавая с нуля техническое оборудование.

3. Конрад Цузе

Изобретатель родился в столице Германии в 1910 году . Примечательно, что еще будучи школьником, Конрад создал действующую модель аппарата, разменивающего деньги.

Цузе выучился на инженера в Высшей технической школе и позднее устроился на работу в авиакомпанию. Очень скоро он столкнулся с необходимостью производить огромное количество однообразных скучных расчетов для проектирования самолетов. Решив подойти к этому творчески, молодой инженер задался целью сконструировать вычислительный прибор, используя вместо мастерской дом своих родителей.

В его планы входило создание ряда устройств, задуманных как вспомогательный инструмент для работы инженеров и проектировщиков. Первый прототип этого компьютера (V-1) был полностью автоматическим и располагался на площади размером 4 м2.

Во время войны он находился в составе действующей армии, однако сумел убедить свое командование в пользе своих разработок и вскоре был отправлен в авиационный исследовательский институт в Берлине для проведения исследований.

Разработки Цузе – это история научной работы и открытий одиночки: в военное время у него не было никакого доступа к исследованиям своих коллег, равно как и возможностей для сотрудничества. Ввиду недостатка финанфирования, исследователь был вынужден перейти от конструирования приборов к теоретической работе.

Ученый изобрел первый язык программирования высокого уровня, названный Планкалкюль. Он задумывался как система управления для одной из его машин (V-4), однако мог успешно применяться для схожих с ним устройств.

Инженер считал, что в основе языка должна лежать система числовых и символьных обозначений, основанная на принципах логики, иными словами – набор поэтапных шагов в решении задачи.

Цузе подчеркивал, что его язык подходит для реализации самых разных задач, в том числе математических операций и сортировки чисел.

Увлекшись шахматами, инженер также разработал множество фрагментов кода, позволяющих машине оценивать шахматные позиции.

Изобретатель никогда не надеялся, что его язык будет применен на практике. Он всегда говорил о том, что Планкалкюль возник как плод теоретических изысканий, безотносительно того, возникнут ли в ближайшее время устройства, которые позволят его реализовать.

Рабочая версия этого языка впервые была создана в Свободном университете Берлина только в 2000 году.

Научные труды ученого были изданы в полном объеме лишь в 1972 году. Кто знает, как мог повлиять Планкалкюль на развитие программирования, если бы исследователи в этой области смогли познакомиться с работами инженера намного раньше?

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector