Добавлен: 23.04.2023
Просмотров: 487
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. История возникновения ЭВМ и программирования
1.1 Понятие и сущность термина программирование
1.2 Предпосылки возникновения ЭВМ и алгоритмов для управления
1.3 Становление программирования в России как научной дисциплины
Глава 2. Русские программисты, внесшие вклад в историю развития программирования
Первые разработки ЭВМ в СССР, использование машинных кодов
2.3 Мировое признание деятельности А.И. Китова
Глава 3. Развитие российской индустрии программирования
3.1 Языки программирования, созданные в России
3.2 Выдающиеся лица в области программирования в РФ
3.3 Идеологические проблемы кибернетики и математической логики в СССР
Профильная научная деятельность в области программирования в СССР началась в 1950 году. Она была инициирована Л. А. Люстерником, который организовал специальный семинар по программированию на кафедре приближенных вычислений ИТМ. Работа продолжалась параллельно с разработкой машины БЭСМ и завершилась написанием одной из первых в мире монографий, посвященных программированию. Книга была частью бухгалтерского описания машины БЭСМ, опубликованной в нескольких томах в 1952 году. Эта книга вырастила все первое поколение советских программистов.[8]
Создание первых ЭВМ в СССР было расценено как очень важное научно-техническое событие. Лебедев был избран в 1953 году в качестве члена Академии наук по специальности «информатика», а в СССР ему была присуждена высшая правительственная награда «Герой социалистического труда» с вручением Золотой звезды и орденом Ленина. Академия наук и Министерство высшего образования также осуществили ряд организационных мер, направленных на формирование и укрепление команд, связанных с производством и использованием новых компьютерных технологий.
Работы по прикладной математике в МИАН были сосредоточены под руководством М. В. Келдыша на кафедре прикладной математики (ОПМ), которая впоследствии стала отдельным институтом прикладной математики. В составе кафедры в 1953 году был организован первый в СССР отдел программирования.
Годом ранее в МГУ был реорганизован факультет вычислительной математики, предназначенный для обучения прикладных математиков, подготовленный к работе с компьютерами. Заведующий кафедрой стал академик С. Л. Соболев.
Выпускники этого факультета в 1953 и 1954 годах создали первое поколение специалистов, которые с самого начала своей карьеры знали себя как профессиональных программистов.
В 1955 году был создан Вычислительный центр Академии наук СССР для проведения научных работ в области машинной математики и предоставления открытых вычислительных услуг другим организациям Академии наук. Его директором был А.А. Дородницын, также избранный в 1953 году в качестве полноправного члена АН СССР.
В 1952 году начал работу в области программирования в отделе приближенных расчетов Ленинградского филиала МИАН (ЛОМИ), который возглавлял Л.В. Канторович, ранее известный своими работами по функциональному анализу и новаторскими исследованиями в области линейного программирования.
После переезда С. Лебедева в Москву директор Института математики Академии наук СССР профессор Б. В. Гнеденко привлек в институт команду разработчиков МЭСМ, из которой сформировалась вычислительная лаборатория. Несколько лет спустя эту лабораторию возглавил В. М. Глушков, который защитил докторскую диссертацию по теоретической алгебре. Помимо математики у него также было электротехническое образование. В своей проницательной презентации области компьютерных технологий дали благоприятную возможность для реализации каждого из этих знаний. На базе вычислительной лаборатории в конце 50-х годов был создан Вычислительный центр Академии наук Украины, который впоследствии стал знаменитым Институтом кибернетики Академии наук Украины.
А. А. Ляпунов начал свою работу на кафедре программирования ОПМ. Особенностью его научного стиля была широкая естественнонаучная культура, интерес к выявлению общих закономерностей и широких аналогий и редкий дар проповеди.
Именно А. А. Ляпунову принадлежит заслуга формирования в СССР взглядов на программирование как научную дисциплину.[10]
Проанализировав имеющуюся информацию об истории возникновения языков программирования, стоит отметить тот факт, что с древнейших времен известны многочисленные попытки создать устройства, позволяющие оперативно получать ответ с помощью вычислений. Особенно примечательным в истории развития программирования в России является становление программирования как научной дисциплины: на это потребовались десятилетия и «лучшие умы» СССР.
Глава 2. Русские программисты, внесшие вклад в историю развития программирования
Первые разработки ЭВМ в СССР, использование машинных кодов
Развитие программирования в СССР в довоенный период соответствовало мировым тенденциям в области электронно-вычислительных машин. Первые шаги в данном направлении были сделаны С. А. Лебедевым еще в 40-ые годы ХХ века. В 1933 году П.С. Ждановым и С.А. Лебедевым была написана первая в мире монография, посвященная устойчивости параллельной работы электрических систем. Уже в 1934 году под отдел автоматики ВЭИ им. Ленина запустил в работу первую в стране модель сетей переменного тока, по сути, первую аналоговую вычислительную машину.
Являясь одним из основоположников разработок ЭВМ в СССР, Лебедев, как и многие учёные, вынужден был перейти на военную деятельность с 1941 году, стал автором систем стабилизации танкового орудия и самонаведения авиационной торпеды. Вернувшись к научной деятельности, им была создана первая аналоговая вычислительная машина для решения дифференциальных уравнений. [9]
Во главе Института энергетики АН УССР в 1948-1950 годах была создана первая в СССР и Континентальной Европе Малая электронная счетная машина (МЭСМ). Среди возможностей были арифметические действия с вводимыми данными посредством перфокарт. Площадь, занимаемая МЭСМ, была весьма значительной около 60 м2. Для создания БЭСМ (Большой электронной счётной машины) Лебедев был приглашен в Москву в Институт точной механики и вычислительной техники, руководителем которого он стал в 1952 году. Данная модель являлась самой быстродействующей в Европе на конгрессе в Дармштадте, но уступила по нескольким параметрам машине от IBM. Всего им было создано 15 типов ЭВМ, включая первые разработки серии суперкомпьютеров «Эльбрус». Именно достижения С.А. Лебедева стали причиной развития программирования в СССР.
Одним из первых попыток в программировании в СССР с ПП-1, созданной для БЭСМ и СТРЕЛЫ. Молодые программисты С.С. Камынии и Э.З. Любимский исследовали реализуемость операторных схем и возможность автоматического построения соответствующих машинных программ. Это было самое начало, и то, что стало очевидным и даже тривиальным сейчас, считалось тогда проблематичным. Законченная в 1954 году программирующая программа ПП-1 являлась одним из первых в мировой практике трансляторов и имела самый высокий уровень входного языка.[9]
1950 стал годом появления программирования в СССР. Запуск МЭСМ обозначил необходимость создания управляющих программ. Одним из основоположников советского программирования стал А.П. Ершов, молодой ученый участвовал в разработке программ для БЭСМ и последующих разработок Лебедева. Монография «Программирующая программа для быстродействующей электронной счетной машины» стала первым фундаментальным научным изданием в СССР по программированию. При непосредственном участии А. П. Ершова были созданы следующие профессиональные и учебные языки программирования: Альфа, Альфа-6, Бета, Лексикон, система АИСТ, Школьница, Рапира, Русский Алгоритмический язык. Созданный легендарным советским программистом «Основы информатики и вычислительной техники» стал первым учебником по работе с ЭВМ и одновременно отправной точкой для преподавания в советских школах нового предмета.
Операторный метод А.А. Ляпунова
Группа молодых ученых, возглавляемая А.П. Ершовым, представила один из первых трансляторов (программирующую программу) — ПП для БЭСМ. Входной язык состоял из арифметических и логических операторов, напоминающих операторы выбора, используемые в наше время. Наиболее важными элементами ПП стали операторы цикла и индексные переменные. Текст программы на входном языке не разделялся на схему и спецификацию операторов, а представлял собой линейный текст без форматирования, в котором операторы отделялись «;».
В ПП Ершов применил в качестве общего правила принцип «адресной кодировки» объектов, с которыми имеют дело при трансляции. Данный вид кодировки значительно уменьшает время поиска необходимой информации и отвечает структуре оперативной памяти с произвольным доступом.
В 1952-53 годах А. А. Ляпуновым был представлен операторный метод описания программ. На практике, первый способ представления на обозримом уровне. Вместо малоэффективного для оператора ЭВМ задания программ в машинных кодах Ляпунов предложил формализованное представление высокого уровня.
Суть операторного метода заключалась в новых принципах представления алгоритмов. Особое внимание было уделено доказательству того, что традиционные языки теории алгоритмов, такие, как машины Тьюринга, продукции Поста, алгоритмы Маркова, рекурсивные функции и другие, могут быть успешно применимы для исследования природы вычислимости, но не практичны для описания алгоритма в форме, удобной для решения задач. В революционном методе реализована идея «крупноблочного» описания алгоритма, открывающая путь к новым формализациям алгоритмов. Задачу строгого описания новой методики, которая сопровождалась бы доказательством её адекватности, Алексей Андреевич поставил перед своим аспирантом А.П. Ершовым, и она была решена в его диссертации. В новом подходе был отражен вклад Ляпунова в теорию алгоритмов. Язык логических схем вырос из бытующего в то время блок-схемного описания программы. [12]
Такое описание алгоритма подразумевало деление его на части-блоки с установлением взаимосвязи между элементами. Трактовка понятия блока было расплывчатым, описать правила выделения блоков и правила их сочленения было весьма проблематично. Язык логических схем должен был целенаправленно решить задачу сочетания и описания блоков. В нём выделение частей алгоритма осуществляется по признаку функциональной нагрузки, содержащейся в определённой его части.
Так возникли понятие оператора переработки информации и понятие логического условия, которое проводит акт проверки информации, чтобы определить порядок выполнения команд. Логическая схема, описывающая алгоритм, представляет собой строку из операторов и логических условий, снабжённых стрелками перехода. Выполнение логической схемы осуществляется применением к ней единой процедуры и показывает фактическое использование всех операторов. [7]
Язык логических схем стал первым, позволившим говорить об общих приёмах и методиках программирования. В рамках операторного метода подразумевались следующие этапы перехода: от схемы счёта - к схеме программы, от схемы программы - непосредственно к самой программе. С точки зрения современного программирования этот процесс можно представить следующим образом. Сначала программируемый алгоритм описывается схемой счёта, которая состоит из фрагментов, фактически являющихся операторами циклов. Схема программы базируется на схеме счёта посредством замены операторов цикла аналогичными им сочетаниями простых операторов, затем появляются операторы и логические условия, «управляющие» счётом. Трансляция схемы программы в программу отвечает необходимости линеаризовать массивы, используемые в алгоритме.
2.3 Мировое признание деятельности А.И. Китова
Первая советская наиболее известная в определенных кругах книга по программированию, электронным компьютерам и их различным приложениям была опубликована в начале 1956 года в виде монографии А.И. Китова и называлась «Электронные цифровые машины». Особенно примечательной выступает последняя часть данной книги, которая посвящена «Неарифметическому использованию ЭВМ» - использованию компьютеров в рамках управления производства, создания алгоритма для получения ответов в экономике и т.д. Книга была переведена на достаточно большое количество иностранных языков и издана в США, Китае, Польше, Чехословакии и других странах. [4]
Спустя полгода в том же 1956 году была издана под редакцией А. И. Китова книга А. И. Китова, Н. В. Криницкого и П. Н. Комолова «Элементы программирования» (для ЭВМ). Эта фундаментальная работа в области программирования стала второй в СССР публичной монографией, посвященной актуальным вопросам программирования. В заключение эта книга провозгласила: «Широкое использование этих машин (компьютеров) поднимет на новый беспрецедентно высокий уровень производства всех видов продукции в нашей стране, значительно улучшит материальное благосостояние нашего народа и значительно усилит оборону нашей страны» [5]. Эти две книги покрывали огромный дефицит литературы по компьютерам и программированию, существовавший в СССР в эти годы.
Опубликованная в 1959 году книга «Электронные цифровые машины и программирование» А. И. Китова и Н. А. Криницкого стала первым советским официальным учебником по компьютерам и программированию, он был официально одобрен МО СССР в рамках образования студентов. Именно благодаря этому труду в области программирования многие поколения студентов университетов страны получили свое образование, которое позволило стать им профессионалами в своем виде деятельности. [5]
В этой главе, проведенной на основе публикаций, были проанализированы первые годы формирования и развития программирования в СССР, с одной стороны, как человеческой практики, с другой, как научной дисциплины. Был сделан вывод, что многие важные направления программирования развивались в СССР под сильным влиянием собственных творческих импульсов, о чем свидетельствуют приведенные выше факты.