Файл: История развития программирования в России (Общие теоретическо-исторические особенности развития программирования, как прикладной дисциплины).pdf
Добавлен: 28.03.2023
Просмотров: 490
Скачиваний: 2
СОДЕРЖАНИЕ
1.1 Понятие и сущность программирования
1.2 Появление технологии программирования и основные этапы развитие в мире
Глава 2. Исторические особенности развития и становления программирования в России
2.1 Периодизация формирования культуры программирования в России
2.3 Специфика исторического развития отечественного рынка программирования
Глава 3. Современный этап развития отечественного рынка программирования
3.1 Состояние рынка программирования России в контексте мирового рынка программирования
3.2 Проблемы и перспективы дальнейшего развития программирования
Введение
Технология программирования и рынок программирования является сравнительно новыми явлениями в рамках управления различными процессами человеческой жизни и деятельности, однако эта сфера успела укорениться в жизни практически каждого жителя мира, включая россиян. На сегодняшний день более 80 % россиян так или иначе ежедневно контактируют с продуктами программирования и результатами работы программистов.
Сегодня рынок программирования является одним из наиболее активно развивающихся институтов и наиболее перспективных сфер деятельности человека будущего. Для понимания того, как области программирования менее чем 100 лет удалось так прочно укрепиться во всех сферах жизни и деятельности россиян целесообразно рассмотреть данный вопрос через историческую призму развития и становления сферы.
Цель работы заключается в исследовании особенностей исторического развития дисциплины программирования на территории России.
Для достижения поставленной цели в ходе работы необходимо выполнить такие задачи, как:
- рассмотреть понятие и сущность программирования;
- изучить вопрос появление технологии программирования и основные этапы развития в мире;
- ознакомиться с периодизацией формирования культуры программирования в России;
- проанализировать специфику исторического развития отечественного рынка программирования;
- оценить состояние рынка программирования России в контексте мирового рынка программирования;
- выделить проблемы и перспективы дальнейшего развития программирования.
Предметом работы является история развития программирования в России.
Объектом работы является рынок программирования России.
Методическую базу работы составили методы теоретического анализа, индукции и дедукции, сравнительного анализа, графические методы.
Информационную базу работы составили научные труды отечественных и зарубежных исследователей исторических аспектов развития программирования, в том числе и в России, а именно В.А. Волкова, А.А. Детков, В.А. Бонченкова, П.С. Жихалов, С.Ю. Гусева, Н.М. Захарова, Е.В. Кислицын, М.С. Лунева, М.П. Вакорин, И.А. Сологуб, А.А. Тюгашев, А. Терехов и другие.
Структура работы состоит из введения, трёх глав, заключения и списка использованных источников.
Глава 1. Общие теоретическо-исторические особенности развития программирования, как прикладной дисциплины
1.1 Понятие и сущность программирования
На разных исторических этапах развития программирования определение понятий «программирование» и «компьютерная программа» менялись.
В обобщённом виде программирование представляет собой процесс разработки и создания продукта автоматизации того или иного процесса, управляемого через компьютеризированную программу. Однако, такое определение программирования сформировалось довольно не сразу, а так же не является единственным в современной научной специализированной литературе.
Наиболее классическая точка зрения заключается в том, что программирование представляет собой процесс описания вычисления; начиная с ранних языков, таких как Fortran и Basic, были разработаны усовершенствованные языки, в которых избегались сложные конструкции GOTO и поддерживался метод структурированного программирования сверху вниз. Методы «сверху-вниз», безусловно, повысили безопасность программ, но никогда не давали четкого описания того, как следует разбивать вычисления на более мелкие проблемы.
Трактовка концепции программирования в более современных работах исследователей данного вопроса, заключается в том, что программирование представляет собой определяющую функцию [8, с. 8].
Основной объект процесса программирования, программа, представляет собой цепь функций, каждая из которых строит объект-посредник между входом и выходом, а акт программирования становится вопросом постепенного расширения библиотеки функций. В современной отечественной и зарубежной научной литературе очерчен ряд версий касательно определения функционального программирования, как центрального элемента дисциплины.
В работах исследователей данной области последних лет программирование представлено как определение и трактовка объектов, которое объединяет два предыдущих представления: разбиение вычислений для получения алгоритма и представление промежуточных объектов.
Программа определяет взаимосвязи между объектами, и один новый стиль программирования постепенно обогащает не только неструктурированную библиотеку функций, но и общий комплекс объектов с четко определенными связями [9, c. 10].
Программирование описывает операции и процессы вычисления. Исторически сложилось так, что это первый путь, так как он наиболее близок к программированию, как инструменту: вычисление – это последовательность изменений состояния. Поэтому каждое возможное изменение состояния описывается командой (изменение значения слова памяти), а вычисление – серией инструкций. Так работают машинные языки. На самом деле речь идет не об одном вычислении, а о наборе вычислений, которые, как правило, бесконечны и которые, тем не менее, должны быть описаны конечным образом [7, c. 231].
Ещё одним широко распространённым определением программирования, является трактовка данной категории, как определения и обработки объектов. Однако такая трактовка программирования имеет существенный недостаток.
Подчеркивая дробление вычислений или определение функций и отношений, можно забыть, что вычисления, как и функции, имеют дело с объектами: объектами, упомянутыми в спецификации задачи; объектами, обрабатываемыми машиной или, на чуть более высоком уровне, непосредственно доступными в языке программирования.
Вторыми могут быть числа, строки, массивы, файлы; первые клиенты, части, графики, многогранники, логические формулы и т.д.
Программирование – это также трансформация действий от последнего к первому, иными словами, технология последовательного представления объектов посредством использования набора определённых команд [10].
Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения. Как любая другая технология, технология программирования представляет собой набор технологических инструкций, включающих:
- указание последовательности выполнения технологических операций;
- перечисление условий, при которых выполняется та или иная операция;
- описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п. (рис. 1).
Рис. 1. Структура технологической операции программирования [11]
Таким образом, программирование имеет два аспекта: разбиение вычислений для получения алгоритма и представление объектов. Один из способов решения этой двойственности - общепринятый для начинающих - состоит в том, чтобы сконцентрироваться в первую очередь на представлении объектов, так как это приводит их к более привычной ситуации: к решению проблемы, связанной с объектами языка.
На самом деле этот метод индуцируется большинством языков, а Lisp больше, чем любой другой, поскольку типы обрабатываемых объектов особенно бедны: есть только один, списки, а точнее, деревья; правда, оттуда можно описать все другие типы, но это не обязательно легко.
Чтобы разобраться в существующих технологиях программирования и определить основные тенденции их развития, целесообразно рассматривать эти технологии в историческом контексте, выделяя основные этапы развития программирования, как науки, что представлено в следующем параграфе данной работы.
1.2 Появление технологии программирования и основные этапы развитие в мире
Первые языки программирования предшествовали современному компьютеру. Сначала языками были коды. В течение девяти месяцев в 1842-1843 годах Ада Лавлейс переводила мемуары итальянского математика Луиджи Менабреа о новейшей предложенной машине Чарльза Бэббиджа - Аналитическом двигателе. К статье она приложила набор примечаний, в которых подробно описывался метод вычисления чисел Бернулли с помощью двигателя, признанный некоторыми историками первой в мире компьютерной программой. Но некоторые биографы спорят о степени ее первоначального вклада по сравнению с вкладом ее мужа.
Жаккаровый станок, изобретенный в 1801 году, использовал отверстия в перфорированных картах, чтобы изобразить движения швейного станка, чтобы автоматически генерировать декоративные узоры.
Герман Холлерит понял, что он может кодировать информацию на перфокартах, когда увидел, что проводники поезда будут кодировать внешний вид держателей билетов на железнодорожных билетах, используя положение перфорированных отверстий на билетах. Затем Холлерит приступил к кодированию данных переписи населения 1890 года на перфокартах.
Первые компьютерные коды были специализированы для этих приложений. В первые десятилетия двадцатого века численные вычисления основывались на десятичных числах. В конце концов, стало понятно, что логика может быть представлена как числами, так и словами. Например, Церковь Алонзо смогла выразить лямбда-вычисления формульным способом. Машина Тьюринга представляла собой абстрактное изображение работы ленточной маркировочной машины, например, используемой в телефонных компаниях.
Однако, в отличие от лямбда-расчета, код Тьюринга не служит хорошей основой для языков более высокого уровня - его основное применение заключается в строгом анализе сложности алгоритма. Как и многие "первые" в истории, первый современный язык программирования трудно идентифицировать. С самого начала ограничения аппаратного обеспечения определяли язык. Ударные карточки допускали 80 колонок, но некоторые из колонок приходилось использовать для сортировки номера на каждой карточке. Фортран включал некоторые ключевые слова, которые совпадали с английскими словами, такие как «IF», «GOTO» (перейти к) и «CONTINUE». Использование магнитного барабана для запоминания означает, что компьютерные программы также должны чередоваться с вращениями барабана [8, c. 26].
Таким образом, программы были более зависимы от аппаратного обеспечения, чем сегодня. Для некоторых ответ на этот вопрос зависит от того, сколько энергии и удобочитаемости требуется для получения статуса «языка программирования». Жаккард ткацкий станок и дифференциальный движок Чарльза Бэббиджа имели простые, крайне ограниченные языки для описания действий, которые эти машины должны выполнять. Можно даже рассматривать дырки в свитке пианино как ограниченный язык, хотя и не предназначенный для употребления человеком.
В 1940-х годах были созданы первые узнаваемо современные электронно-вычислительные машины. Ограниченная скорость и объем памяти заставили программистов писать ассемблерные программы с ручной настройкой. Вскоре выяснилось, что программирование на языке ассемблера требует больших интеллектуальных усилий и подвержено ошибкам. В 1948 году Конрад Цузе опубликовал статью о своем языке программирования Plankalkül. Однако он не был реализован в его время, и его оригинальные вклады были изолированы от других разработок.
К некоторым важным языкам, которые были разработаны в этот период, относятся:
- 1943 - Plankalkül (Конрад Цузе);
- 1943 - система кодирования ENIAC;
- 1949 - C-10.
В 1950-х годах были разработаны первые три современных языка программирования, потомки которых до сих пор широко используются:
- FORTRAN (1955), «FORmula TRANslator», изобретенный Джоном Бэккусом и др.;
- LISP, «LISt Processor», изобретенный Джоном Маккарти и др.;
- COBOL, «COmmon Business Oriented Language», созданный Комитетом по коротким дистанциям под сильным влиянием Грейс Хоппер (Grace Hopper).
Другой важной вехой в конце 1950-х годов стала публикация комитетом американских и европейских ученых в области вычислительной техники «нового языка для алгоритмов» – доклада «ALGOL 60 Report» («ALGOrithmic Language»). В этом докладе были обобщены многие идеи, распространенные в то время, и представлены две ключевые языковые инновации: