Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

Введение

Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования.

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

Объектом исследования является программирование в России.

Предметом исследования является история возникновения и последующего развития программирования в СССР и современной России.

Целью исследования является изучение истории возникновения и последующего развития программирования в СССР и современной России.

Исходя из поставленной цели, можно выделить следующие задачи:

  • рассмотреть предпосылки возникновения программирования
  • изучить историю становления программирования в СССР
  • проанализировать развитие программирования в современной России
  • описать текущее положение программирования в России

Глава 1. Предпосылки возникновения программирования

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

В начале 19 века Чарльз Бэббидж, профессор математики Кэмбриджского университета, проводя анализ переписи населения, сформировал основы архитектуры вычислительной машины. Работая над аналитической машиной – «Машина Бэббиджа», Бэббидж сформировал основные принципы организации и работы современных ЭВМ. Через некоторое время работами Бэббиджа заинтересовалась Аде Лавлейс. Она подробно изучила статьи профессора по машине и стала первой, кто написал для неё программу.

Ада Левлейс написала первые программы для решения двух уравнений и заложила теоретические основы программирования и по праву считается первым в мире программистом и основоположником научного программирования.

Далее, в 1954 году Джордж Буль начал развивать булеву алгебру, на основе которой была основана теория релейно-контактных схем. [1]

В 1936 английский математик Аллан Тьюринг основал термин «Машина Тьюринга». Он утверждал, что абсолютно любой алгоритм может быть реализован на его машине – универсальной ЭВМ. Можно считать, что Машина Тьюринга и есть идеальная модель универсальной ЭВМ.[1]

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

С приходом цифровых программно-управляемых машин основалась новая область прикладной математики - программирование. Первоначально программы составлялись вручную на машинных языках (в машинных кодах). Программы были громоздкими, а отладка трудоемка. Для упрощения написания и отладки программ были разработаны мнемокоды, по структуре близкие к машинному языку и использующие символьную адресацию – ассемблеры. Ассемблер переводил программу, записанную в мнемокоде, на машинный язык.

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

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

Таблица 1. Поколения языков программирования

Поколения

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

Характеристика

Первое

Машинные

Ориентированы на использование в конкретной ЭВМ, сложны в освоении, требуют хорошего знания архитектуры ЭВМ

Второе

Ассемблеры, макроассемблеры

Более удобны для использования, но по-прежнему машинно-зависимы

Третье

Языки высокого уровня

Мобильные, человеко-ориентированные, проще в освоении

Четвёртое

Непроцедурные, объектно-ориентированные, языки запросов, параллельные

Ориентированы на непрофессионального пользователя и на ЭВМ с параллельной архитектурой

Пятое

Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки

Ориентированы на повышение интеллектуального уровня ЭВМ и интерфейса с языками

1.2 Машинные коды и Ассемблер

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

Внутреннее устройство ЭВМ таково, что для выполнения нужных операций, необходимо передать команду, которая состоит только из логических единиц и логических нулей. Соответственно, при составление полноценной программы для ЭВМ, её приходилось полностью писать на машинном коде, каждая команда которого состояла из кода операций и адресов операндов, выраженных в виде различных последовательностей логических единиц и логических нулей.[3]

Ниже представлен пример записи команды для процессора, которая выполняет команду «Загрузить» значение из ячейки памяти «операнд 1» в регистр общего назначения «операнд 2»:

Рисунок 1 – Пример записи команды «Загрузить»

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

Спустя некоторое время стало понятно, что процесс формирования машинного кода возможно автоматизировать. Так в 1950 году начали применять мнемонический язык – Assembly. Assembly дал возможность представить машинный код в более удобном формате для человека, а именно использовал буквенные команды, отражающие суть операции, вместо двоичного кода.[3]

Ниже представлен пример записи команды на языке Assembly для сложения двух чисел:

ADD ch,10001010b

Assembly - язык программирования низкого уровня.

Язык программирования низкого уровня ориентирован на конкретный тип процессора и учитывает его особенности. Это значит, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Появление языка Assembly значительно облегчило жизнь программистов, так как теперь они могли писать программу командами, состоящими из символов приближенных к обычному языку. Для того времени этот язык было новшеством, так как позволял писать компактные по размеру программы.[1]

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

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

Начиная с середины 50-х годов, стал увеличиваться прогресс развития в области программирования. Все больше стали появляться новые языки программирования, которые выступали посредником между ЭВМ и программистами. Параллельно с этим начали создаваться языки программирования высокого уровня – эти языки программирования были машинонезависимыми, а это означало, что они могут выполняться на различных архитектурах ЭВМ.[1]

Но для каждого языка были разработаны собственные компиляторы – программа, выполняющая компиляцию.

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

1.4 Язык программирования FORTRAN

Первый язык высокого уровня был создан в период с 1954 по 1957 года группой программистов под руководством Джона Бэкуса в корпорации IBM и это стало следующим этапом развития языков программирования. Это был язык программирования FORTRAN.

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

Популярность FORTRAN способствовала тому, что производители компьютеров стали создавать компиляторы FORTRAN для своих компьютеров. К 1963 году, существовало более 40 компиляторов под различные платформы – именно поэтому FORTRAN считают первым широко используемым языком программирования.[4]

Приход FORTRAN в СССР произошел позже, чем в других странах. Как только фортран появился в СССР, все вычисления, выполняемые физиками, стали выполняться только с его использованием.

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

Глава 2. Развитие программирования в СССР

2.1 Первый компилятор

Основоположником информатики в СССР, в частности раздела автоматизации программирования, является Алексей Андреевич Ляпунов, первым предложивший рассматривать программу как последовательность чередующихся этапов, на которых выполняется некая обработка данных. Этап Ляпунов предложил назвать оператором, а схемой счета – совокупность операторов и логических условий. Схема и совокупность спецификаций каждого оператора – это программа. Взгляд на программу в таком ключе стал революционным и сразу лег в основу первых компиляторов.[5]

Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур.

Первыми программами, принадлежащими системному программному обеспечению, были трансляторы – ассемблеры и автокоды на Западе, программирующие программы (ПП) в СССР.

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

Типы операторов соответствовали подавляющему большинству решаемых тогда задач, а именно — вычислительным задачам. Выделялись арифметические операторы Аi, ведущие вычисление по формулам, логические операторы Рi, осуществляющие управление счетом, операторы переадресации Fi, позволяющие переходить к следующему значению индекса (и обратные им операторы восстановления), все же неарифметические вычисления объединялись в так называемые нестандартные операторы Hi, для которых спецификацией был их машинный код. Специального подъязыка описания данных, зачатки которого появились в более поздних ФОРТРАНе и Алголе, не существовало.

Программирующая программа ПП-1 являлась одним из первых в мировой практике трансляторов и, по-видимому, имела самый высокий уровень входного языка.

Программирующая программа ПП-2, была создана в 1955 году для ЭВМ Стрела-1, основывалась на ПП-1 как прототипе. В ПП-2 были усовершенствованы алгоритмы трансляции и было уделено заметное внимание оптимизации программ – экономии выражений, оптимальному сочетанию переадресации и восстановления (иначе говоря, наилучшей реализации вычисления индексных выражений), оптимальному отведению памяти для так называемых рабочих ячеек.[5]

Рисунок 2 – Принцип взаимодействия узлов ЭВМ Стрела-1

ПП для БЭСМ(большая электронно-счётная машина) развивала входной язык программирующих программ. Она объединяла схему и спецификацию операторов в одном тексте, был введен первый структурный оператор – оператор цикла.[6]

ПП-2 послужила идейной основой двух проектов – ПП для Стрелы-4 и ПП для Стрелы-7. Первая из них представляла собой зачаток настоящей системы программирования: она имела собственный транслятор, а также содержала систему сборки модулей и некоторые средства отладки. Транслятор получал такие фрагменты объектной программы, которые потом назовут модулями, а система сборки создавала программу из оттранслированных модулей и библиотечных программ.[5]

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

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

В конце 50-x прошлого столетия развивался и подход к автоматизации программирования с помощью стандартных библиотек программ. Были разработаны – стандартная составляющая программа, которая осуществляла статическую загрузку и связывание стандартных программ из достаточно обширной библиотеки, интерпретирующая система (ИС), ИС-2 уже реализовывала некоторые функции будущих операционных систем, осуществляя динамическое связывание, подкачку и смену используемых подпрограмм, причем все это делалось с небольшими накладными расходами и весьма скромными запросами на память. Высокая эффективность ИС-2 и хорошо продуманный интерфейс с основной программой сделали неотъемлемой частью комплекта поставки ЭВМ.[10]

С появлением системного программирования возникла задача по созданию адекватных языков программирования. Языки программирования, которые появились к началу 60 годов – Фортран, Кобол, Алгол-60 и другие, – не учитывали этой области программистской деятельности, и алголовские системы, будучи достаточно большими программными системами, писались еще в машинных кодах вручную. Адекватные языки нужны были не только для трансляторов, но и для всей возникающей области системного программирования: начали появляться и другие языковые процессоры, и первые операционные системы, и информационные системы – все то, что потом назовут базовым программным обеспечением.[6]

2.2 Язык программирования АЛГОЛ-68

Алгол-68 – процедурный императивный высокоуровневый язык программирования, потомок языка Алгол, существенно доработанный. Разрабатывался в период 1964 – 1968 годов. Позиционировался как универсальный язык для описания произвольных алгоритмов обработки данных высокой сложности. Отличается большим объёмом, богатством возможностей, сложностью синтаксиса, а также возможностью переопределения синтаксиса и операторов – это дает гибкость в масштабировании языка, создавать собственные операции. За такие возможности, Алгол-68 называют «языком сверхвысокого уровня».[7][8]

В СССР существовали рабочие группы по разработкам на Алголе-68 (например, московские под руководством Александра Николаевича Маслова). В Ленинградском государственном университете был создан компилятор и мощная система программирования на Алголе-68 для ЭВМ, эксплуатирующаяся в течение многих лет. Тем не менее, широкого распространения язык не получил.

Рассмотрим достоинства и недостатки языка АЛГОЛ-68:

Таблица 2. Достоинства и недостатки языка АЛГОЛ-68

Достоинства

Недостатки

  • Простота масштабирования
  • Высокий уровень абстракции
  • Развитая система типов
  • Параллельные вычисления
  • Сложность синтаксиса
  • Сложность понимания существующих программ из-за высокого уровня абстракции

Ниже представлен пример программы на языке АЛГОЛ-68:

Похожее изображение

Рисунок 3 – Пример программы на языке АЛГОЛ-68

2.3 Язык программирования Рефал

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

Первая версия Рефала была создана в 1966 году Валентином Турчиным в качестве мета-языка для описания семантики других языков. Впоследствии, в результате появления достаточно эффективных реализаций на ЭВМ, он стал находить практическое использование в качестве языка программирования.

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

В середине 80-х В. Турчиным предложен язык Рефал-5, который содержит Базисный рефал в качестве подмножества. Расширения языка Рефал-5 качественно меняют стиль программирования, поэтому можно говорить о нем как о новом поколении языка.

В настоящее время основными диалектами языка являются Рефал-2 (1970-е), Рефал-5 (1985) и Рефал+ (1990), отличающиеся друг от друга деталями синтаксиса и набором дополнительных средств, расширяющих первоначальный вариант.[9]

Рассмотрим достоинства и недостатки языка Рефал:

Таблица 3. Достоинства и недостатки языка Рефал

Достоинства

Недостатки

  • Является декларативным языком
  • Имеется возможность сопоставления с образцом
  • Функции принимают только 1 аргумент
  • Автоматическое выделение и освобождение памяти
  • Нет возможности именования структур данных и определения типов
  • Программа со временем становится громоздкой из-за большого количества вспомогательных функций
  • Невозможность построения интерфейсов к другим языкам программирования
  • Функции не могут быть вложенными

Ниже представлен пример программы на языке Рефал:

Рисунок 4 – Пример программы на языке Рефал

Основные черты языка программирования Рефал:

  • простая семантика, что облегчает отладку
  • высокая модульность
  • сопоставление с образцами
  • встроенная структурируемость программ
  • имеет встроенный трассировщик-отладчик

Благодаря своей простоте, Рефал отлично подходит для начального изучения программирования. Он так же прекрасно подходит для исследований по теории программирования и преобразования.

2.4 Язык программирования Алмо

Алмо представляет собой язык системного программирования (машинно-ориентированный язык), задумывался как промежуточный язык при трансляции с других языков программирования. Для каждой аппаратной платформы достаточно было написать транслятор Алмо – и появлялась возможность работать с множеством языков программирования, которые имели обратную трансляцию в Алмо.

Были созданы реализации языка для основных отечественных машин того времени (М-20, БЭСМ-6, Минск 2, Урал 11) и трансляторы с Алгола-60 и ФОРТРАНа в Алмо, причем все трансляторы также были написаны на Алмо.

Язык Алмо имел в своей основе некоторую абстрактную машину, отражавшую особенность существовавшего тогда класса машин, и в этом отношении Алмо-подход предвосхищал появившиеся позже Р-код, М-код и прочие подобные подходы. Машинная ориентированность явно прослеживалась в языке – регистровые объекты, постфиксная запись выражений, оперирование с битами машинных слов и т.д.[10]

Рассмотрим достоинства и недостатки языка Алмо:

Таблица 4. Достоинства и недостатки языка Алмо

Достоинства

Недостатки

  • Универсальность использования
  • Быстродействие

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

История создания языков программирования в СССР не исчерпывается перечисленными. Много интересных разработок на сегодняшний день можно считать «мёртвыми». Эти языки уходили вместе с техникой, в которой они «жили».

Ниже представлен перечень трансляторов, которые были разработаны в СССР:

  • Ada
  • Algol-60
  • Algol-68
  • CLU
  • Forth
  • Fortran
  • Lisp
  • Modula-2
  • PL/I
  • SETL
  • Simula-67
  • Snobol-4

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

Глава 3. История программирования в современной России

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

Начиная с 1991 года и до текущего момента, в России нет значительного развития в программировании, так как происходит использование программных средств, произведенных за рубежом.

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

3.1 Встроенный язык программирования «1С: Предприятие»

Встроенный язык программирования «1С: Предприятие» – язык программирования высокого уровня, основанный в 1996 году, который используется в семействе программ «1С: Предприятие». Интерпретация текста программного модуля в байт-код выполняется в момент обращения к этому модулю в процессе работы, таким образом обычно интерпретируется только часть текстов программных модулей.[11]

Встроенный язык программирования визуально схож с Java Script, Pascal, но более всего он подобен по своему синтаксису языку Visual Basic.

Ниже представлен пример кода «1С: Предприятие»:

Рисунок 5 – Пример программы на встроенном языке программирования 1С

Платформой «1С: Предприятие» предоставляется фиксированный набор базовых классов, ориентированных на решение типовых задач прикладной области[11]:

  • константа
  • справочник
  • документ
  • журнал документов
  • перечисление
  • отчёт
  • обработка
  • план счетов

На основании базовых классов средствами визуального конфигурирования можно создавать любое количество порождённых классов. Допускается только одноявная ступень наследования классов. Как правило, объекты порождённых классов представляют собой записи или наборы записей в базе данных. Такие классы образуют «Дерево метаданных». В терминах встроенного языка программирования 1С такие классы называются объектами метаданных.

Наиболее значимые особенности встроенного языка программирования «1С: Предприятие»:

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

Области применения языка программирования «1С: Предприятие»:

  • расчет зарплаты и управление персоналом
  • финансовый анализ, планирование, бюджетирование
  • построение аналитической отчетности
  • автоматизация организационной деятельности

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

На базе языка 1С разработано более 1 000 прикладных решений программных продуктов, которые используются более чем в 1 500 000 организаций различных видов деятельности. Помимо этого, существует более 600 центров по обучению и сертификации специалистов, где происходит изучение языка 1С.

3.2 Язык программирования Kotlin

Kotlin представляет собой статически типизированный язык программирования, работающий поверх JVM(виртуальная машина Java) и разрабатываемый компанией JetBrains. Также компилируется в JavaScript, и в исполняемый код ряда платформ через инфраструктуру LLVM(ранее Low Level Virtual Machine) — проект программной инфраструктуры для создания компиляторов и сопутствующих им утилит Язык назван в честь острова Котлин в Финском заливе, на котором расположен город Кронштадт.[12][13]

Основная цель языка Kotlin – предоставить более компактную и более производительную альтернативу Java.

Язык разрабатывается с 2010 года. Авторы ставили целью создать язык более лаконичный и типобезопасный, чем Java, и более простой, чем Scala. Следствием упрощения по сравнению со Scala стали также более быстрая компиляция и лучшая поддержка языка в IDE(интегрированная среда разработки). Язык полностью совместим с Java, что позволяет java-разработчикам постепенно перейти к его использованию; в частности, в Android язык встраивается с помощью Gradle(система автоматической сборки), что позволяет для существующего Android-приложения внедрять новые функции на Kotlin без переписывания приложения целиком.[13]

Синтаксис языка использует элементы из Паскаля, TypeScript, Haxe, PL/SQL, F#, Go и Scala, C++, Java, C#, Rust и D. Программы на Kotlin также поддерживают perl- и shell-стиль интерполяции строк (переменные, включённые в строку, заменяются на их содержимое). Также поддерживается вывод типов.

Ниже представлен пример кода на языке Kotlin:

Рисунок 6 – Пример программы на языке программирования Kotlin

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

  • разработка серверных приложений(back-end)
  • разработка приложений под Android платформу

Данный язык программирования набирает свою популярность, об этом и говорит тот факт, что в 2019 году, компания Google выбрала Kotlin, как приоритетный язык для разработки на Android. Помимо этого, следует также отметить и технические преимущества языка: Kotlin поддерживает объектно-ориентированный, так и функциональный стиль программирования; язык подходит для создания back-end части приложения; поддерживает автоматический вывод типов, что гарантирует корректность и производительность.

3.3 Язык программирования Parser

Объектно-ориентированный скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере с поддержкой CGI.

Parser начал создаваться в Студии Лебедева в 1997 году под лицензией, сходной с GNU GPL(лицензия на свободное программное обеспечение).

Parser представляет собой технологию для самостоятельного создания сайтов, которая включает в себя работу с формами, XML, базами данных и cookies.

Если вникнуть в структуру языка Parser, то можно увидеть, что он является надстройкой поверх уже известного языка программирования PHP – это заметно по синтаксису языка.

Ниже представлен фрагмент кода на языке Parser:

Рисунок 7 - Пример программы на объектно-ориентированном языке Parser

Язык Parser уже успешно был применен в работе для таких компаний, как Альфа-Банк, аэропорт Пулково, банк «Возрождение» и многих других.

3.4 Язык программирования ДРАКОН

ДРАКОН – расшифровывается, как «Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность».

ДРАКОН был создан совместными усилиями Российского космического агентства и Российской академии наук и тщательно отработан на практике в ряде космических проектов, таких как «Фрегат» и «Протон-М» - в разгонных блоках космических аппаратов.[12]

Язык представляет собой алгоритмический язык программирования и моделирования (ДРАКОН-схема). Он был создан для планируемого программного обеспечения, которое должно управляет космическим кораблём. Но ДРАКОН получил также распространение за пределами аэрокосмической отрасли, например в медицине и многих других сферах, где необходимо точно описать, как осуществить какую-либо процедуру.[14]

Особенностью работы с языком ДРАКОН является то, что сложный алгоритм в нем превращается в простую картинку, созданную в виде блок-схемы. Это обеспечивает легкое понимание того, что делает созданная программа.

Рисунок 8 ­– Пример ДРАКОН-схемы

Для того чтобы язык смог иметь широкое применение, возникла необходимость в разработке дополнительных модулей для интеграции с другими языками программирования. Для решения этой задачи были разработаны языки-гибриды на основе ДРАКОН[15]:

  • ДРАКОН-С
  • ДРАКОН-Delphi
  • ДРАКОН-1С
  • ДРАКОН-AS

Ниже представлен пример того, как выглядит один и тот же программный код, написанный на языке С и на гибридной модели ДРАКОН-С:

Картинки по запросу язык ДРАКОН

Рисунок 9 – Пример представления языка C на гибридной модели ДРАКОН-С

Недостатки языка ДРАКОН:

  1. дороговизна разработки программного кода
  2. недостаточно информации о самом языке, так как он изначально был секретным по причине использования военными службами
  3. при разработке больших модулей ДРАКОН-схема становится очень громоздкой, что усложняет понимание программы
  4. программирование на ДРАКОН не похоже ни на какой-то другой язык программирования
  5. малое количество специалистов, которые разбираются в данном языке программирования

3.5 Язык программирования Jancy

Язык программирования Jancy разработан компанией Tibbo с российскими корнями и московским представительством. Это компилируемый язык, и в тоже время сценарный по назначению.

Разработчики Jancy хотели иметь продукт, который включал бы в себя указатели на структуры и имел безопасную адресную арифметику. Ничего подобного на тот момент не существовало, и разработчики решили создать свой собственный продукт со своими требованиями – язык Jancy.

К возможностям языка можно отнести:

  • безопасные указатели
  • встроенный генератор лексеров
  • интеграция с C++ кодом
  • адресная арифметика
  • множественное наследование
  • локальная память потоков

Данный язык программирования хорошо подойдет для разработчиков, которым необходим:

  • высокий уровень совместимости с языком программирования C++
  • удобные средства для IO-программирования
  • удобные средства для UI-программирования

Синтаксис языка программирования Jancy очень схож на синтаксис языка C++ и Java, поэтому разработчикам, которые программируют, например, на Java, будет просто прочитать код на Jancy без каких-либо тренингов. Более того, разработчики могут вставить свой код на C/C++/Java в компилятор Jancy и им нужно будет произвести минимальные модификации для того, чтобы его запустить.[16]

Ниже представлен фрагмент кода на языке Jancy:

Рисунок 10 – Пример программы на языке программирования Jancy

Однако стоит отметить, что данный язык программирования не является гиперпопулярным и используется лишь в малом количестве проектов. Самым крупным проектом, который использует Jancy, является IO Ninja – программируемый эмулятор терминала.

Заключение

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

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

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

Список использованных источников

  1. История вычислительной техники : учеб. пособие / И. А. Казакова. – Пенза : Изд-во ПГУ, 2011. – 232 с.
  2. Фон Нейман [Электронный ресурс] // История компьютера. URL : http://chernykh.net/content/view/48/102/ (дата обращения 14.12.2019)
  3. История создания языка программирования Assembler [Электронный ресурс] // Школа программистов. URL : https://web.informatics.ru/works/17-18/web_online/barabanov_n_v/language_assembler.html (дата обращения 17.12.2019)
  4. Фортран [Электронный ресурс] // История компьютера. URL : http://chernykh.net/content/view/206/218/ (дата обращения 17.12.2019)
  5. Первый компилятор [Электронный ресурс] // OSP – Гид по технологиям цифровой трансформации. URL : https://www.osp.ru/os/2013/07/13037356/ (дата обращения 17.12.2019)
  6. История языков программирования: 1960-е [Электронный ресурс] // GeekBrains. URL : https://geekbrains.ru/posts/language_history_part2 (дата обращения 25.12.2019)
  7. Алгол 68 и его влияние на программирование в СССР и России [Электронный ресурс] // СПбГУ. URL : https://www.math.spbu.ru/user/ant/all_articles/104_Terekhov_SORUCOM.pdf (дата обращения 27.12.2019)
  8. Из истории создания компилятора с Алгол 68 [Электронный ресурс] // Виртуальный Компьютерный Музей. URL : http://www.computer-museum.ru/histsoft/algol68.htm (дата обращения 27.12.2019)
  9. Cборник трудов по функциональному языку программирования Рефал, том II // Под редакцией А. П. Немытых. — Переславль-Залесский: Издательство «СБОРНИК», 2015, 156 с.
  10. Разработка языков программирования и компиляторов в СССР [Электронный ресурс] // HABR. URL : https://habr.com/ru/company/ua-hosting/blog/273665/ (дата обращения 27.12.2019)
  11. Встроенный язык [Электронный ресурс] // 1С:Предприятие. URL : https://v8.1c.ru/platforma/vstroennyy-yazyk/ (дата обращения 04.01.2020)
  12. Российский IT-сектор [Электронный ресурс] // РУКСПЕРТ. URL : https://ruxpert.ru/Российский_IT-сектор (дата обращения 05.01.2020)
  13. Язык программирования Kotlin [Электронный ресурс] // OSP – Гид по технологиям цифровой трансформации. URL : https://www.osp.ru/os/2011/09/13011550/ (дата обращения 05.01.2020)
  14. Язык программирования ДРАКОН [Электронный ресурс] // URL : http://bourabai.ru/einf/dragon.htm (дата обращения 05.01.2020)
  15. Паронджанов В. Д. Учебное пособие по языку ДРАКОН для вузов. — М.: ДМК Пресс, 2012. — 520 с.
  16. Jancy Language Manual [Электронный ресурс] // Tibbo Technology. URL : https://vovkos.github.io/jancy/language/index.html (дата обращения 26.01.2020)