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

ПОНЯТИЕ «ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Содержание:

ВВЕДЕНИЕ

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

Наиболее популярными и востребованными языками программирования на протяжении длительного времени стали: Фортран, Алгол, Кобол, Лисп, Паскаль, Бейсик, которые заложили основы программировании и дали толчок для развития более простых и современных языком, таких как Си, С++, JAVA и т.п.

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

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

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

Задачи, решение которых необходимо для достижения поставленной цели:

1. Охарактеризовать исторический аспект развития языков программирования.

2. Проанализировать современные тенденции развития языков программирования.

3. Ознакомится с основными языками программирования:

  1. Фортран;
  2. Алгол 60;
  3. Кобол;
  4. Лисп;
  5. Бейсик;
  6. ПЛ/1;
  7. АПЛ;
  8. СНОБОЛ-4;
  9. Паскаль;
  10. Си;
  11. С++;
  12. JAVA.

4. Рассмотреть TYPESCRIPT как одни из современных языков программирования высокого уровня.

5. Сравнить TypeScript и JavaScript. Выявить позитивные и негативные аспекты их использования.

Объект исследования – языки программирования, а предмет – особенности использования языков программирования в современном мире. Методы исследования: анализ, синтез, реферирование, сравнительный анализ.

ГЛАВА 1. ПОНЯТИЕ «ЯЗЫКИ ПРОГРАМИРОВАНИЯ»

1.1 История развития языков программирования

Язык программирования - знаковая система[1] состоящая из лексических, синтаксических, семантических правил определяющих внешний вид программы и действия, который выполнит ЭВМ (электронно-вычислительная машина) под управлением программиста. Этот язык отличается от естественных языков человека.

Первым программистом в истории примерно с 1830 года считают
А. Лавлейс. Она составила некоторое количество предписаний, для проекта аналитической машины Ч. Бэббиджа. Так же А. Лавлейс ввела основательно понятие программирования – цикл[2] (многократное выполнение одних и тех же действий). Уже тогда ученая предполагала, что машина может работать не только с цифрами, но и произвольными объектами, выраженными алгебраически в символьной форме (что сейчас называют символическими выражениями или компьютерной алгеброй). К сожалению машина Ч. Бэббиджа так и не была построена, она стала бы первым программируемым компьютером. По записям и чертежам Ч. Бэббиджа базовые части аналитической машины были реализованы в XX веке.[3]

В 1945 году немецкий инженер К. Цузе, по окончанию Второй Мировой войны, переехал из Берлина в Баварские Альпы, чтобы заняться разработкой языка для логической машины. Здесь он создал язык высокого уровня Plankalkül, что в приблизительном переводе на русский обозначает «планирующее исчисление». К. Цузе хотел создать что-то подобное современным трансляторам, но, к сожалению, послевоенные возможности и технологии не дали возможности воплотить в реальность задуманное.

Так, в первой половине ХХ в. программы вводились в память ЭВМ с пульта, перемычками или тумблерами. Кодировщики (специалисты в сфере ввода кодов в память ЭВМ) приспосабливались к переводу языка программирования в машинный код, переводя таблицы соответствия программы в код. Стоит отметить, что, как и в первой половине ХХ в., так и на сегодняшний день память ЭВМ воспринимает и хранит только двоичные представления. Примером программы[4] в машинном коде архитектуры PDP-11/СМ ЭВМ можно представить:

0110010111000001

0000000000000100

0000000000000000

Шаг вперед в мире программирования произошел, когда машине позволили выполнять подобный перевод с помощью специальной системной программы – ассемблера (от англ. assembler- сборщик частей в одно целое, сборщик программы) - транслятора, у которого объектный язык является машинным языком[5]. Процесс сборки называется ассемблированием. Также стало возможным обозначать ячейки по номерам, а символическими именами и потом ссылаться на них в программе. Данную технологию и используемый язык программирования назвали автокодом (автокод – «автоматическое кодирование в машинных кодах») или по-другому ассемблером, например:

ADD #100, R1

HALT,

где ADD – «сложить»;

HALT – «стоп».

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

Следующим «скачком» в языках программирования ученые считают появление более современных для того времени языков программирования высокого уровня (третьего поколения). Их основной особенностью являлось применение характерных для ЭВМ понятий, похожих на используемые в математике. Среди прочих популярным и одним из первых языков программирования стал Фортран. Фортран (Fortran - от англ. – «формульный транслятор) до сих пор используется в научных расчетах, хотя он не приспособлен для написания системных программ.

С появлением языков программирования высокого уровня программирование стало намного удобнее. Позже был создан язык Алгол[6] (Algol – от англ. Algorithmic — «алгоритмический» и англ. Language — «язык»). Он оказал серьезное влияние на развитие языков высокого уровня, но для практического программирования оказался не очень удобным.

Также к языкам, которые осуществили влияние на общее развитие программирования можно отнести LISP (от англ. LISt Processing language — «язык обработки списков»; современное написание - Lisp), который был разработан Дж. Маккарти в 60х гг. и применяется до сих пор в научных расчетах и программах для игр. Стоит отметить, что на сегодняшний день, один из старейших языков программирования считается COBOL (от англ. COmmon Business Oriented Language – «совместно ориентированный бизнес-язык»), который относится к языкам для обработки деловой информации

Из всего выше сказанного, можно сделать вывод, что такие языки как Фортран, Лисп, Алгол и Кобол получили широкое распространение в 60х годах. Позже были созданы более современные языки, которые охватывали больший спектр функций– АПЛ, Снобол 4 и ПЛ/1. Данные языки и сотни других имели успех определенное время, некоторые из них до сих пор используются, а некоторые считаются нецелесообразными для использования сегодня. Среди популярных языков программирования, которые долгое время занимали лидирующие позиции в использовании также можно выделить:

  • Кобол, который использовался в США для обслуживания работы государственных учреждений;
  • Фортран и ПЛ/1, которые имели популярность за счет инвестиций в их создание различных фирм;
  • Алгол и Лисп, которые служили для изучения студентами теории.[7]

В настоящее время создано более 8000 языков программирования, но лишь несколько из них массово применялись в практике.[8]

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

1.2 Современные тенденции развития языков программирования

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

Проанализировав литературные и интернет-источники можно с уверенностью сказать, что самыми популярными в настоящее время являются:

  • Java - одна из самых распространенных языков для создания приложений, программ, веб-контента, игр на Android и многое другое;
  • C, C ++ и C # - императивные языки, формирующие базу для программ на других популярных языках;
  • PHP - язык для написания скриптов к динамическим веб-сайтам и разработке приложений;
  • Python - высокоуровневый серверный язык для вебсайтов и мобильных приложений (считается одним из перспективных и самых популярных в современном мире);
  • Ruby - динамичный и простой язык для вебсайтов и приложений;
  • JavaScript (JS) - язык для написания скриптов к сайтам, мультиплатформенный и динамичный.

Рассмотрим подробнее C # (си-шарп). С # - объектно-ориентированный язык программирования для платформы .NET (Microsoft .NET). Синтаксис языка разработан под влиянием других языков, таких как Java, Objective-C, C ++, Visual Basic и Delphi. Язык имеет строгую типизацию, поддерживает полиморфизм и комментарии в формате XML, атрибуты, имеет обработчик событий и исключений. Переняв многое от своих предшественников - языков С ++, Delphi, модули и Smalltalk - С #, опираясь на практику их использования, исключает некоторые модели, которые зарекомендовали себя как проблематичные при разработке программных систем, например, множественное наследование классов (в отличие от C ++).

Разработку языка программирования C # начали в декабре 1998 г. Проект получил кодовое название COOL (C-style Object Oriented Language). Первая версия была анонсирована в июне 2000 г., вместе с платформой .NET, тогда же и была выпущена первая общедоступная бета-версия языка. С # 1.0 официально вышел вместе с Microsoft Visual Studio .NET в феврале 2002 г.[9].

Первая версия языка очень напоминала язык Java 1.4 по своим возможностям, несколько их расширяя. Так в C # были свойства, которые в коде выглядят как поля объекта, индексаторы, подобные свойств, но которые принимали параметр как индекс массива, события, делегаты, циклы foreach, структуры, автоматическое преобразование встроенных типов в объекты при необходимости, встроенные средства взаимодействия с неуправляемым кодом и тому подобное.

Время шло, за ним шел прогресс и развитие информационных технологий и языков программирования. На сегодняшний день C # имеет большое количество встроенных возможностей[10]:

  • создание интерфейсов с помощью Windows Forms и WPF (Windows Presentation Foundation);
  • упрощенные операторы;
  • встроенная библиотека для написания SQL-запросов (ключевые слова select, from, where);
  • инициализация объекта вместе с его свойствами;
  • автоматическое определение типов локальных переменных;
  • динамическая типизация объектов;
  • асинхронные методы;
  • препроцессорные директивы;
  • фильтры исключений и др.

Параллельно с C # особого внимания заслуживают интегрированная среда разработки Visual Studio и Python.

Выводы по Главе 1

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

1. А. Лавлейс – основательница языка программирования, которая заложила основания всей концепции языка программирования как отдельного и самодостаточного языка. Среди основных языков программирования первой половины ХХ в. Можно выделить следующие:

  1. Plankalkül – как один из первых языков, который стал основополагающим для развития языка программирования в целом;
  2. Аssembler - транслятор, у которого объектный язык является машинным языком;
  3. Fortran - применение характерных для ЭВМ понятий, похожих на используемые в математике;
  4. Algol -оказал серьезное влияние на развитие языков высокого уровня, но для практического программирования оказался не очень удобным;
  5. LISP - применяется до сих пор в научных расчетах и программах для игр;
  6. Кобол - который использовался в США для обслуживания работы государственных учреждений;
  7. Фортран и ПЛ/1 - имели популярность за счет инвестиций в их создание различных фирм;
  8. Алгол и Лисп - служили для изучения студентами теории.

В современном программировании самыми популярными в настоящее время являются:

  • Java - одна из самых распространенных языков для создания приложений, программ, веб-контента, игр на Android и многое другое;
  • C, C ++ и C # - императивные языки, формирующие базу для программ на других популярных языках;
  • PHP - язык для написания скриптов к динамическим веб-сайтам и разработке приложений;
  • Python - высокоуровневый серверный язык для вебсайтов и мобильных приложений (считается одним из перспективных и самых популярных в современном мире);
  • Ruby - динамичный и простой язык для вебсайтов и приложений;
  • JavaScript (JS) - язык для написания скриптов к сайтам, мультиплатформенный и динамичный.

Актуальными для более глубокого исследования можно считать языки программирования Visual Studio и Python.

ГЛАВА 2. ЯЗЫКИ ПРОГРАМИРОВАНИЯ И ИХ ОБЗОР

2.1 Фортран

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

Фортран – один из первых компилируемых языков высокого уровня. Данный язык был разработан в 50х гг. ХХ в. корпорацией IBM для обеспечения эффективности выполнения программ. Данный язык массово эксплуатировался на многих ЭВМ. В течении многих лет Фортран служит стандартным языком в программировании научных расчетов, хотя и имеет некоторые недостатки (трудности программирования, большая вероятность возникновения ошибок). На базе Фортрана были созданы его дополнительные версии – Фортран II и Фортран IV.[11]

Принцип работы программы на языке Фортран состоит из главной программы и набора подпрограмм, каждая из которых компилируется независимо от остальных (модульные программы объединяются во время загрузки). Средства обращения к подпрограммам простые, передача параметров осуществляется через ссылки (пример работы Фортран см. в Прилож. 1).

Таким образом к основным арифметическим операциям Фортран можно отнести следующие:

  • возведение степени (**);
  • умножение и деление (* и /);
  • сложение и вычитание (+ и -)[12].

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

2.2. Алгол 60

Значимым событием в истории развития языков программирования стало создание языка Алгол 60 (англ. Algol от англ. Algorithmic — «алгоритмический» и англ. Language — «язык») в конце 50х и в начале 60х гг. ХХ в. Многие исследования в области языков программирования опирались на данный язык. Стоит отметить, что данный язык программирования оказал самое значимое влияние на последующее создание языков. В США язык применялся в практической деятельности местных университетов, поэтому он считается языком для программирования научных исследований.

Из-за относительной негибкости структур данных в Алголе, все же программистами отдается предпочтение другим языкам программирования. Опыт создания управляющих структур Алгола оказал влияние на развитие языка ПЛ/1 и поздних версий Фортрана, Паскаль и т.д. также, немаловажно, что язык Алгол стал идеальным для формального анализа и изучения, благодаря четкому, элегантному и относительно полному определению. В течении многих лет он служил основным языком для публикации алгоритмов на страницах научных журналов.[13]

Так же конце 60х- гг. был разработан Алгол 68. В январе Комитет, занимавшийся разработкой языка, создал язык, чрезвычайно богатый выразительными возможностями. Он же оказался чрезвычайно сложен в реализации. Первые компиляторы появились спустя годы после описания языка. При этом они охватывали лишь часть возможностей языка. Полностью соответствующий стандарту языка компилятор появился лишь десятилетие спустя. Также некоторые идеи Алгол 68 были воплощены в создании языка HTML[14].

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

Немаловажно, что Алгол – первый язык с блочной структурой[16], использующий статистическую блочную структуру для определения среды ссылок. В языке так же допускается два способа передачи параметров: передача по значению и передача по имени. Алгол имеет всего 3 типа простых данных: целый (integar), вещественный (real) и логический (Boolean). Язык включает в себя достаточно широкий комплект арифметических операций. В совокупности они компилируются в равноценные операции. Структура языка допускает многоуровневую организацию внутри программы.

Крупным недостатком [17]Алгола является отсутствие положений об операционной среде, так как любая реализация языка должна сопровождаться описанием операционной среды, существенная часть языка становится зависимой от конкретной реализации. Такая зависимость усложняет взаимообмен проектами, несмотря на то, что непосредственно обмен и был одной из основных целей при разработке языка.

Оптимизация так же является важной частью многих компиляторов на Алголе, хотя из-за более сложной структуры программ оптимизировать программы, на Алголе несколько труднее, чем программы на Фортране[18]. В Приложении 2 показано основной принцип создания тела программы на языке Алгол.

2.3. Кобол

Кобол (COBOL, COmmon Business Oriented Language) – язык программирования, который с 1960 г. масштабно используется в экономических и управленческих приложениях ЭВМ. У данного языка относительно простые алгоритмы с большим объемом ввода-вывода (например, расчетно-платежная ведомость в крупной организации). В конструкции Кобол основное внимание уделяется средствам описания и структуры файлов ввода-вывода. Важной характеристикой является схожесть между собой синтаксиса его конструкций и английского языка, за счет чего большинство программ легко-читаемы. Основной задачей данного языка является его ясность и легкодоступность для любого пользователя. Стоит отметить. Что данный язык имеет самое большое количество доработок на протяжении всего его существования[19].

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

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

Стоит отметить, что за счет уникальности конструкции Кобола[20], можно разместить все изменения, связанные с переносом программы с одной версии Кобола на другую. Он сконструирован для среды пакетной обработки, поэтому только часть спецификаций раздела оборудования касается внешних файлов данных.

Само по себе программирование на Коболе достаточно длительный процесс, так как программисту приходится писать много заголовков разделов, секций и параграфов, и для каждого из этих элементов необходимо полное описание. Помимо этого, каждое ключевое слово, в какой-либо инструкции Кобола, является зарезервированным идентификатором[21], который не может использоваться программистом. Зарезервированные слова заполняют целую печатную странницу – около 300 слов. Совпадение идентификатора, выбранного программистом, с зарезервированным словом является типичной ошибкой при программировании на Коболе.

2.4 Лисп

В Массачусетском технологическом институте в 1960 г. под руководством американского информатика Дж. Маккарти командой программистов был разработан и реализован высокоуровневый язык - Лисп. Язык начал широко применятся в области искусственного интеллекта (робота, теория игр, доказательство теорем и т.д.).

Лисп имеет значительные отличия от большинства языков. Одно из них – язык позволяет выполнять структуры данных как программы и модифицировать программы как данные. Впервые разработчики смогли создать способ управления памятью – «сбор мусора»[22].

После появления Лиспа различными авторами был предложен целый ряд других алгоритмических языков ориентированных на решение задач в области искусственного интеллекта, среди которых можно отметить Пленэр, Снобол, Рефал, Пролог. Однако это не помешало Лиспу остаться наиболее популярным языком для решения таких задач. В течение почти сорокалетней истории его существования появился ряд диалектов этого языка: Common LISP, Mac LISP, Inter LISP, Standard LISP и др. Различия между ними не носят принципиального характера и, в основном, сводятся к несколько разнообразному набору встроенных функций и некоторой разницы в форме записи программ. Поэтому программист, который научился работать на одном из них, без труда сможет освоить и любой другой.

Большим преимуществом Лиспа является его функциональная направленность, то есть программирование ведется с помощью функций. Причем функция понимается как правило, сопоставляющее элементы некоторого класса, соответствующие элементам другого класса. Сам процесс сопоставления не оказывает никакого влияния на работу программы, важен только его результат - значение функции. Это позволяет относительно легко писать и отлаживать большие программные комплексы. Ясность программ, четкое разграничение их функций, отсутствие побочных эффектов при их выполнении являются обязательными требованиями к программированию таких логически сложных задач, каковы задачи искусственного интеллекта. Язык программирования Лисп предназначен в первую очередь для обработки символьной информации. Основные типы данных в Лиспе называются «атом» и «точечная пара».

2.5 Бейсик

Basic - Beginners ALL- purpouse Symbolic Instruction Code (универсальный язык символьных команд для начинающих). Для данного языка есть в наличии и компиляторы, и интерпретаторы, а по популярности язык занимал, и занимает также первое место в мире, так как данному языку просто обучиться. Бейсик был создан в 60-х гг. ХХ в. в качестве удобного и простого языка программирования.

Как и с момента появления Pascal так и с момента появления Basic под этот язык создано много различных версий. В частности Quick Basic или QBasic относится к самым лучшим средств создания программ под MS-DOS. Даже если возникают сложности при программировании приложений для Windows, например, повышаются требования для оформления таких программ или нужно учитывать графические объекты, такие как «окна», «кнопки», то на помощь придут средства визуального программирования Basic[23]. А именно Visual Basic, в процессе усвоения которого, очень пригодятся знания языка Basic, даже несмотря на то, что визуальное программирование будет совсем отличаться от структурного программирования. Системы QBasic помогут достаточно легко усвоить средства языка VBA (Visual Basic), язык используемый во многих деловых приложениях компании Microsoft для записи макрокоманд (макросов)[24].

Стоит отметить, что Бейсик относится к языкам - долгожителям, одна из первых версий данного языка была создана специально для первых ПК и отличался простотой и компактностью, так как компилятор, два в одном, и простой редактор текста и транслятор занимали только 8К памяти. Такая Бейсик - система встраивалась в память ПЗУ компьютера, и выполняла роль простой операционной системы.

2.6. ПЛ/1

В 1964 году корпорацией IBM был создан многоцелевой язык – ПЛ/1 (PL/1, Programming Language 1, с англ. – «язык программирования номер один»). В первую очередь разработчики хотели создать более мощный и функциональный язык чем Фортран, но в процессе работы решили создать абсолютно новый и независимый язык ПЛ/1. Язык нашел применение частично в системном программировании, научных и инженерных вычислениях, и т.д.[25]

По конструкции ПЛ/1 имеет общие элементы с Фортраном, Алголом и Коболом, но так же разработчикам удалось кардинально обновить управление в данном языке. При создании ПЛ/1 разработчики стремились, чтобы таким большим и сложным языком могли пользоваться программисты любого уровня - от новичка до профессионала. Они старались максимально сбалансировать общность, гибкость и эффективность языка, поэтому язык получился сложный, как и процесс компиляции[26].

Разработку такого многофункционального языка обширно обсуждали в мире IT сферы, но программисты до сих пор так и не пришли к единому мнению относительно целесообразности его использования. Синтаксис и написание программ ПЛ/1 очень сложны. Язык обладает обширными средствами для внешних файлов ввода-вывода. Главный упор при разработке языка сделан на арифметические операции с числовыми данными. Так же ПЛ/1 имеет полный набор встроенных функций для извлечения квадратного корня, получения абсолютного значения, максимума, минимума, выполнения тригонометрических операций и др[27].

2.7. АПЛ

АПЛ- APL (A Programming Language) – назван в виде аббревиатуры в честь одноименной книге К. Айверсона. Этот язык высокого уровня был разработан для системы записи более сжатого выражения важных алгоритмов математики. АПЛ полезен для точной формулировки алгоритмов, которые потом можно транслировать на обычные языки программирования. Он имеет два характерных отличия от других языков[28]:

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

В работе с языком из минимальных объемов данных, можно получить значительный размер вычислений, при этом затратив не большое количество времени. Наверное, поэтому у АПЛ очень быстро появились постоянные пользователи. Также АПЛ обладает некоторыми недостатками[29]: он не подходит для создания больших программ, которые будут многократно использоваться. Так же язык не подходит для экономической, управленческой области и работы по искусственному интеллекту.

В АПЛ нет понятия «главной программы»[30]. Выполнение работы происходит при помощи другой подпрограммы, либо с помощью непосредственно программиста, путем ввода и выполнения выражений.

Одним из интересных явлений АПЛ можно назвать программы-«однострочниками», которые записываются в одну строку, состоят из одного выражения, но выполняют очень сложные вычисления.

2.8. СНОБОЛ-4

СНОБОЛ-4 был разработан в лабораториях Bell Telephone в середине 60-х гг. Основная область применения – задачи, в которых необходима сложная обработка большого объема данных, так же язык нашел широкое применение в других областях.

СНОБОЛ-4 схож с языком Лисп, за счет стремления к общности и гибкости. Во время работы можно странслировать и реализовать программы, которые были построены или считаны как данные. Помимо этого, язык содержит расширяемые структуры данных, то есть ресурсы с целью внедрения новейших типов данных определяемых программистом.[31]

Язык имеет наиболее сформированные структуры данных по сравнению с другими языками, за исключением языка ПЛ/1. Образцы можно создавать и хранить в виде значений переменных или элементов массивов до тех пор, пока они не потребуются. Операции по созданию структур данных очень гибки, в любой период времени работая в программе можно создать новую переменную, массив или структуру. [32]

Основными типами данных в языке являются строки или цепочки литер, причем строки могут быть любой длинны. Структура программ на СНОБОЛ-4 типична для большинства языков программирования высокого уровня. Программа, написанная на СНОБОЛ-4, представляет собой последовательность операторов. Используются такие виды операторов: присваивания, сопоставления с образцом, замещения, передачи управления, ввода-вывода и останова. К характерной операции языка относится операция сопоставления с образцом, которая формально представляет собой процесс установления вхождения заданной строки в другую строку[33].

Программы, написанные на языке СНОБОЛ-4, транслируются в промежуточную форму, а затем исполняются с помощью интерпретатора. Язык СНОБОЛ используется при решении задач в таких важных областях, как обработка текстов, машинное моделирование, искусственный интеллект, обработка аналитических выражений, конструирование трансляторов.

Различные версии СНОБОЛа оказали влияние не только на другие языки программирования и методы их реализации, но и на системы команд ряда компьютеров, выпущенных фирмами Burroughs, General Electric, Control Data. Также необходимо указать на создание проекта вычислительной машины для работы с очень большими текстовыми базами данных, в которой посредством соответствующих структур реализуются операции языка СНОБОЛ. Кроме всего прочего, реализация СНОБОЛа оказала влияние на разработку эффективных алгоритмов манипулирования строками переменной длины в памяти ЭВМ[34].

2.9. Паскаль

Язык Паскаль утвержден в качестве стандартного в 1979 г. и является наиболее усовершенствованным по сравнению с такими языками программирования, как АЛГОЛ, ФОРТРАН, БЕЙСИК, ПЛ/1 и другие.

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

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

Алфавит стандартного языка Паскаль содержит следующие символы:

  • 26 больших и малых букв латинского алфавита;
  • арабские цифры;
  • 32 буквы славянского алфавита;
  • специальные символа.[36]

Программа на языке Паскаль состоит из заголовка, раздела описания, раздела операторов. Заголовок содержит служебное слово PROGRAM, имя программы в скобках заканчивает заголовок символом «;». Раздел описания используется для представления всех встречающихся в программе данных и их характеристик. После каждого описания ставится символ «,». Раздел операторов заключается в операторные лапки BEGIN ... END после ставится точка. В этом разделе записывается последовательность операторов, которые выполняются. Программа записывается в свободной форме[37].

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

Таким образом, можно сделать вывод, что язык программирования Паскаль имеет все средства для удобного и эффективного создания программ, которые выполняют разнообразные по значению задачи. Она удобна в использовании, и может легко использоваться в работе[38].

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

2.10. Си

Культовый язык программирования Си (англ. С) который был создан случайно, стал основой для создания таких языков как: С++, С#, Java и др.

Два молодых программиста Д. Ритчи и К. Томпсон, работавшие в американской корпорации AT&T, в свое свободное время любили поиграть в компьютерную игру, которую они самостоятельно написали и запускали на главном сервере компании. Позже они захотели перенести ее на другой компьютер, который не имел операционной системы. Они решили писать операционную систему под названием Unix (Un-multiplexed Information and Computing Servise). Им пришлось под предлогом «для работы» просить у начальства более новый компьютер PDP-11, так как старая модель тормозила процесс разработки. В итоге они смогли переписать операционную систему на новое оборудование на ассемблере, поэтому они решили переписать ее на язык высокого уровня. По итогу совместный интерес двух талантливых профессионалов создал два шедевра в IT сфере язык высокого уровня – Си - первую операционную систему написанную не на ассемблере – Unix. Так же вся эта история дала положительную огласку для мини-компьютера PDP-11.

Си отличается своим минимализмом и дает возможность создавать быстрые, при этом «маленькие» по объему программы. При работе с этим языком программистам нужно быть крайне аккуратными, так как из-за большого количества возможностей, можно допустить ошибки.[39]

2.11. С++

Язык программирования C ++ является наиболее распространенным инструментом разработки программных средств как системного, так и прикладного характера. Историю его появления связывают с сотрудником американской фирмы Bell Labs Д. Ритчи, хотя его детищу - языку C предшествовали разработки и других системных программистов (М. Ричардс - система BCPL, К. Томпсон - речь B). Толчком к появлению различных программных средств, которые облегчают жизнь системных программистов, стали работы по созданию операционной системы Unix в 1969 году[40].

В процессе этой работы пригодился набор макрокоманд на языке ассемблера, который упрощал программирования многочисленных процедур. Этот набор и был положен в основу языка C, которая удачно сочетала специфику машинных команд с элементами языка высокого уровня. В 1973 году Д. Ритчи и К. Томпсон переписали ядро операционной системы Unix на язык C (до этого все программы были написаны на ассемблере).

Следующий вклад в развитие мощности и универсальности языка C в 1983 году внес сотрудник все той же Bell Labs Б. Страуструп. Предложенные им расширение привели к появлению версии C ++ (первоначальное название - C с классами). Эти нововведения позволили пользователям конструировать собственные типы данных, включать в язык новые операции над данными, агрегировать данные с обрабатывающими их функциями-методами, наследовать и переопределять методы в порождаемых классах[41].

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

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

К простым типам данных языка относят:

  • char – символьный;
  • int - целое число;
  • float - с плавающей точкой;
  • double - двойной точности;
  • bool - логический тип.[42]

Для формирования других типов данных используют простые типы и так называемые спецификаторы. Типы данных созданы на базе простых типов с использованием спецификаторов называют сложенными типами данных. В С ++ определены четыре спецификатора типов данных:

  • short – короткий;
  • long – длинный;
  • signed – знаковый;
  • unsigned – беззнаковый.

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

По месту объявления переменных в языке Си++ можно разделить на три класса: локальные, глобальные и формальные параметры функции. Локальные переменные объявляются внутри функции и доступны только в ней. Формальные параметры функции описываются в списке параметров функции.

Ввод-вывод данных в языке С ++ осуществляется или с помощью функций ввода-вывода в стиле С или с использованием библиотеки классов С ++. Преимущество объектов С ++ в том, что они просты в использовании, особенно если ввода-вывода достаточно просто. Функции ввода-вывода, унаследованные от C, более громоздкие, но подходят для задач с форматированным выводом данных[43].

2.12. Java

JAVA - это объектно-ориентированный язык программирования, разработанный Дж. Ослингом и запущенный в 1995 г. в качестве одного из ключевых компонентов платформы JAVA Sun Microsystems.

Синтаксис языка взят в большинстве из языка программирования С ++ и С, но все же JAVA имеет более простую объективную модель и более низкий уровень объектов. JAVA - приложения обычно транслируются в байт-код (длина каждого кода операции - один байт), который может быть обработан любой виртуальной машиной JAVA (Java Virtual Mashine. JVM) независимо от компьютерной архитектуры.

Стоит отметить, что первоначально реализация ссылок на компиляторы JAVA, виртуальных машин и библиотек классов, была представлена компанией Sun в 1995 г. В мае 1997 г. вместе с JAVA Communitz Process Sun разработала технологию JAVA согласно GNU General Public License. Другие компании также искали альтернативы технологии, предложенной Sun как GNU Compiler для JAVA и GNU Classpath.[44]

Разрабатывая язык, специалисты руководствовались пятью задачами, которые были преобразованы в следующие принципы:

простота в использовании, объектная ориентированность и легкость изучения;

  • надежность и безопасность;
  • независимость от архитектуры;
  • возможность интерпретации;
  • интерактивность и динамичность.

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

Возможность JAVA выполнять свой код на любой из поддерживаемых платформ достигается за счет того, что ее программы транслируются в промежуточное представление, которое называется байт кодом. Байт-код может интерпретироваться в любой системе, в которой присутствует среда выполнения JAVA[45].

Значительное количество ранних систем, в которой вводилась возможность независимости от платформы, сталкивалась с недостатком заключенному в снижении производительности.

Байт-код легко переводится непосредственно в родные машинные коды, независимо от того, что в JAVA используется интерпретатор[46], при котором достигается очень высокая производительность. Инструкции java bytecode похожи с инструкциями машинного кода, но предназначены для виртуальной машины и созданы специально для аппаратного владельца.

Конечные пользователи применяют обычно Java Runtime Environment (JRE - конфигурация виртуальной машины, необходимая для выполнения Java приложений), установленную, как правило, на собственном компьютере для приложений Java или в веб-браузере для Java апплетов[47].

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

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

Выводы по Главе 2

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

ГЛАВА 3. НАИБОЛЕЕ ГИБКИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ В СОВРЕМЕННОМ МИРЕ

3.1. TYPESCRIPT как одни из современных языков программирования высокого уровня

Как всем известно, каждый из веб-разработчиков должен в совершенстве знать HTML и JavaScript. Без этих языков, включая и CSS, невозможно создать полноценный, современный веб-ресурс. Конечно, современные веб-приложения создаются с использованием серверных технологий, таких как NodeJS или ASP.NET и др. За последние годы, невозможно не заметить роста популярности интерпретированного языка программирования JavaScript на мировом рынке. [48]Этот язык, будучи созданным для решения вопроса манипулирования элементами веб-страницы, сейчас используется почти повсюду, от десктопных приложений, как например, Windows 8,10 до смартфонов, которые работают на таких операционных системах, как Android или iOS.

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

В данной работе, рассмотрен язык, который называется TypeScript, который было создан в Microsoft под руководством А. Хейлсберг, который создал такие языки как C #, Delphi и т.д . TypeScript решает основные проблемы JavaScript, как, например, использование статичных типов, что значительно упрощает дебагинг кода и его тестирование. Специалисты с Google используют TypeScript как основной язык своего нового Фреймворка Angular2.

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

Каждый файл TypeScript имеет расширение «.ts», компилятор TypeScript проходит по каждому такому файлу и компилирует его в аналогичный файл с JavaScript кодом, таким образом, в проекте достаточно будет ссылаться на JavaScript файлы. Однако, TypeScript предоставляет и возможность настройки компилятора, используя специальный файл «tsconfig.json»[50].

Данный файл является коренным в проекте для TypeScript. В нем можно добавить файлы или папки с файлами для компиляции, и, аналогично, исключить файлы папки из процесса компиляции, изменить кодировку для компилированного файла и т.д. (Все опции доступны на официальном сайте языка TypeScript). Компилятор во время работы при неправильном сопоставлении типов не будет останавливать компиляцию, как, например, в C ++, Java, а лишь выдаст предупреждение о несопоставимости типов, поскольку это разрешено на языке JavaScript, где число может с легкостью быть переведено в термины и прочее, используя специальные методы для типов значения и объектов.

3.2. Сравнение TypeScript и JavaScript

В данном разделе приведены основные возможности языка TypeScript, которые невозможно использовать в JavaScript.

1. Использование статических типов

В отличие от JavaScript, в TypeScript разработчик должен писать тип переменной вместе с ее объявлением. TypeScript поддерживает основные типы, которые доступны и в JavaScript - number, string, boolean, null, object, undefined, symbol, promise и другие. Однако, в TypeScript разработчик может создать еще и enum (перечисление), void, any (тип параметра не определен во время компиляции), tuple (кортеж - нечто вроде массива, может иметь значение различных типов, однако данные типы необходимо описать, то есть кортеж - не то же, что и массив в JavaScript)[51].

Пример создания переменной в TypeScript:

let myVar: string = "Hello";

2. TypeScript позволяет создавать интерфейсы

Интерфейс - это контракт, который может принимать функция и реализует определенный класс, для того, чтобы код не зависел от конкретной реализации. Интерфейсы используются в таком популярном паттерне как «dependency injection[52]». Однако, в TypeScript интерфейсы используются в основном для передачи комплексных типов - объектов в определенную функцию, причем функция может возвращать объект, реализующий данный интерфейс (под реализацией имеется в виду то, что у объекта есть те параметры, описанные в интерфейсе, то есть их может быть и больше, однако проверяются только необходимые), то есть интерфейсы используются для проверки типов, которые передаются в функцию и используются компилятором.

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

Пример интерфейса в TypeScript:

interface Named {

name: string;

(а: string, b: string): string;

surname ?: string;

}

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

3. TypeScript позволяет создавать классы

Так, с выходом EcmaScript 6 в JavaScript также возможно использование классов, однако в TypeScript классы имеют большее значение и имеют больше функций. Во-первых, классы в TypeScript могут реализовывать интерфейсы, то есть, их можно передавать в функции, как и объекты, реализующие данный интерфейс. Во-вторых, в TypeScript классы имеют модификаторы доступа - public, private, protected, чего нет в JavaScript. В-третьих, в TypeScript можно создать абстрактный класс.

Итак, TypeScript на данный момент является более приспособленной для создания ООП кода. Конечно, в TypeScript, как и в JavaScript есть подражания, статические методы, конструкторы и свойства (getters, setters).

Простейший пример класса:

class Person {

private _name: string;

constructor (name: string) {

this._name = name;

}

public sayName (): string {

return this._name;

}

};

В данном классе есть только конструктор, частное поле типа, строка и публичный метод.

4. Поскольку TypeScript имеет статическую типизацию то в нем доступно приведения типов, благодаря специальным конструкциям.

В версии 1.5 разработчикам рекомендуется использовать специальный оператор «as»[53], и используется для приведения одного типа к другому.

5. В TypeScript можно создавать generic-типы и функции - аналог шаблонов в С ++.

Конечно, в простом JavaScript данный функционал не нужен, поскольку функцией можно передать параметр любого типа, однако сопровождать такой код очень трудно. В TypeScript можно вместо таких типов использовать и специальный тип «any»[54], но он имеет совсем другое значение. Как и в шаблонах С ++, generic тип используется для создания классов и методов, которые могут принимать параметры различных типов. Данный функционал является очень важным в любом языке со статической типизацией, пример generic типа:

function genFunc <T> (arg: T): T {

return arg;

}

let output = genFunc <number> (5);

В данном примере было создано простую generic-фунцию, что принимает параметр и возвращает его обратно. В переменную output будет записано число 5 и тип этой переменной - также число. Однако, мы могли использовать любой другой тип - интерфейс Named, string или класс Person[55].

6. Для функций в TypeScript зарезервировано специальный тип, то есть функция в TypeScript - это не объект, как в обычном JavaScript, причем мы не сможем присвоить параметру одного типа функции другого, если в них не одинаковое количество параметров и тип, а также тип возвращаемого значения, однако есть и исключения, которые более подробно описаны на официальном сайте языка TypeScript.

7. TypeScript поддерживает асинхронные методы, используя зарезервированные слова «async» и «await»[56]. Для этого метод должен возвращать специальный тип – «promise», который доступен в JavaScript[57]. Благодаря асинхронности, программисту не нужно писать код со многими связанными методами «then», «success, «error». достаточно обрамить метод специальным словом «async», а код, вызывающий данный метод должен только использовать специальное слово «await». Результатом будет возвращение данных с «promise».

8. Поскольку TypeScript имеет статическую типизацию, в то же время, большинство Фреймворков написаны на чистом JavaScript, то есть нужно каким-то образом переводить чистый JavaScript код в код TypeScript, или просто описывать основные типы, используемые той или иной функцией в коде Фреймворка. Конечно, в Microsoft предусмотрели это, поэтому в TypeScript доступны специальные так называемые «declaration» файлы, то есть файлы с объявлением всех типов и функций, классов, которые есть в JavaScript файлах Фреймворка. Разработчик может сам писать такие файлы, для необходимой библиотеки, или пользоваться уже написанными. Данные файлы имеют расширение «d.ts».

Чтобы ссылаться на код в другом файле TypeScript используется синтаксис с тремя флешами[58] [3], например:

/// <reference path = "" />

Для параметра «path» нужно задать только путь размещение файла в файловой системе. Благодаря этому компилятор сможет проверить, что функция, в которую разработчик передает параметры или использует описанные типы, которые он принимает, то есть, таким образом обеспечивается правильность написания кода при компиляции.

Выводы по Главе 3

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

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

ЗАКЛЮЧЕНИЕ

В данном исследовании были рассмотрены одни из самых популярных языков программирования ХХв., которые используются программистами до сих пор. Среди таких языков можно выделить следующие: Фортран, Алгол 60, Кобол, Лисп, Бейсик, ПЛ/1, АПЛ, СНОБОЛ-4, Паскаль, Си, С++, Java.

Также были рассмотрены в сравнительном анализе два самых гибких языка программирования высокого уровня – JavaScript и TypeScript. В данном исследовании мы пришли к заключению, что язык JavaScript является одним из самых популярных и гибких среди языков программирования высокого уровня, который используется почти везде, то использование TypeScript значительно упростит разработку приложений, повышая производительность программиста, уменьшит количество времени на разработку и дебагинг кода, улучшит тестирования кода и его структуризации.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Акулов Л. Г. Информатика и программирование: основы программирования на языке Паскаль: учеб.-метод. пособие / Л. Г. Акулов, В. Ю. Наумов, О. А. Авдеюк. - Волгоград: ВолгГТУ, 2017. 266 с.
  2. Албахари Джозеф., Албахари Бен // C # 4.0 Pocket Reference // O'Reilly Media 2010
  3. Васильев А. Н. Программирование на Java для начинающих. - Москва: Э, 2017. 702 с.
  4. Виссер Джуст. Разработка обслуживаемых программ на языке Java : десять рекомендаций по оформлению современного кода : [пер. с англ.] / Джуст Виссер. - Москва : ДМК Пресс, 2017. - 181 с.

Дешко, Игорь Петрович (1959-).

  1. Документация языка TypeScript - Режим доступа: https://www.typescriptlang.org/docs/tutorial.html
  2. Захарова Т.Б. Организация современной информационной образовательной среды : методическое пособие. - Москва : Прометей, 2016. 278 с.
  3. Камкин А.С. Введение в формальные методы верификации программ: учебное пособие; Московский государственный университет имени М. В. Ломоносова, Факультет вычислительной математики и кибернетики. - Москва : МАКС Пресс, 2018. - 268 с.

Кауфман В.Ш. Языки программирования. Концепции и принципы – МГУ им. М.В. Ломоносова, Методический материал, М., 1986. С. 12.

  1. Лысенко В.А. Системное проектирование информационных систем с веб-интерфейсом : монография / В. А. Лысенко, М. И. Корзина, И. В. Бачурин ; Министерство образования и науки Российской Федерации, Федеральное государственное автономное образовательное учреждение высшего образования "Северный (Арктический) федеральный университет имени М. В. Ломоносова". - Архангельск : САФУ, 2016. - 128 с.
  2. Макарова Н. В. Основы программирования. Учебник с практикумом: учебник / Н. В. Макарова, Ю. Н. Нилова, С. В. Зеленина, Е. В. Лебедева. - Москва: КНОРУС, 2017. 450 с
  3. Наумов В. Ю. Информатика и программирование: основы программирования на языке С++ / В. Ю. Наумов. - Волгоград: ВолгГТУ, 2017. 246 с.
  4. Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-е изд. СПб.: Питер, 2017. 153 с.
  5. Пратт Т. Языки программирования и реализация. М., 1979. С. 33.

Системная и программная инженерия : учебное пособие / И. П. Дешко, К. Г. Кряженков, В. Я. Цветков. - Москва : МАКС Пресс, 2018. - 79 с.

  1. Смертин А. Н. Организация интерпретатора динамического языка символьной обработки СНОБОЛ-4 : диссертация ... кандидата физико-математических наук : 05.13..11. - Ленинград, 1985. 140 с.

Стефан Кочан Программирование на языке С. 3-е изд., М., 2006. 496 с.

Тюгашев А.А. Основы программирования. Часть I., СПб., 2016. – 160 с.

  1. Хисматов Р.Г., Сафин Р.Г., Тунцев Д.В., Тимербаев Н.Ф.. Современные компьютерные технологии [Электронный ресурс] : Р. Г. Хисматов [и др.] ; М-во образования и науки России, Федеральное гос. бюджетное образовательное учреждение высш. проф. образования "Казанский нац. исследовательский технологический ун-т". – Казань, Изд-во КНИТУ, 2014. 84 с.
  2. Dan Maharry. TypeScript Revealed / Maharry D. - Apress, 2013. 81 р
  3. TypeScript. The Definitive Guide - Режим доступа: https://basarat.gitbooks.io/typescript/content/docs/getting-started.html

ПРИЛОЖЕНИЕ 1. ПРИМЕР РАБОТЫ ФОРТРАН

Пример реализации программного кода:

D:\Алина Работы\Настя Ребёнок\img-S9m7td.png

Источник: Камкин А.С. Введение в формальные методы верификации программ: учебное пособие; Московский государственный университет имени М. В. Ломоносова, Факультет вычислительной математики и кибернетики. - Москва : МАКС Пресс, 2018. - 268 с.

ПРИЛОЖЕНИЕ 2. ПРИМЕР РАБОТЫ АЛГОЛ

C:\Users\admin\Pictures\Screenshots\Снимок экрана (116).png

Источник: Камкин А.С. Введение в формальные методы верификации программ: учебное пособие; Московский государственный университет имени М. В. Ломоносова, Факультет вычислительной математики и кибернетики. - Москва : МАКС Пресс, 2018. - 268 с.

  1. Кауфман В.Ш. Языки программирования. Концепции и принципы – МГУ им. М.В. Ломоносова, Методический материал, М., 1986. С. 12.

  2. Стефан Кочан Программирование на языке С. 3-е изд., М., 2006 С. 62.

  3. Системная и программная инженерия : учебное пособие / И. П. Дешко, К. Г. Кряженков, В. Я. Цветков. - Москва : МАКС Пресс, 2018. – С. 6

  4. Тюгашев А.А. Основы программирования. Часть I., СПб., 2016. С. 19.

  5. Пратт Т. Языки программирования и реализация. М., 1979. С. 33.

  6. Тюгашев А.А. Основы программирования. Часть I., СПб., 2016. С. 21.

  7. Пратт Т. Языки программирования и реализация. М., 1979. С. 17.

  8. Тюгашев А.А. Основы программирования. Часть I., СПб., 2016. С. 21.

  9. Хисматов Р.Г., Сафин Р.Г., Тунцев Д.В., Тимербаев Н.Ф. Современные компьютерные технологии [Электронный ресурс] : Р. Г. Хисматов [и др.] ; М-во образования и науки России, Федеральное гос. бюджетное образовательное учреждение высш. проф. образования "Казанский нац. исследовательский технологический ун-т". – Казань, Изд-во КНИТУ, 2014. С.74

  10. Албахари Джозеф., Албахари Бен // C # 4.0 Pocket Reference // O'Reilly Media 2010

  11. Пратт Т. Языки программирования и реализация. М., 1979. С. 343.

  12. Там же, С. 351.

  13. Пратт Т. Языки программирования и реализация. М., 1979. С. 370.

  14. Р.Г. Хисматов, Р.Г. Сафин, Д.В. Тунцев, Н.Ф. Тимербаев. Современные компьютерные технологии [Электронный ресурс] : Р. Г. Хисматов [и др.] ; М-во образования и науки России, Федеральное гос. бюджетное образовательное учреждение высш. проф. образования "Казанский нац. исследовательский технологический ун-т". – Казань, Изд-во КНИТУ, 2014. 84 с.

  15. Камкин А.С. Введение в формальные методы верификации программ: учебное пособие; Московский государственный университет имени М. В. Ломоносова, Факультет вычислительной математики и кибернетики. - Москва : МАКС Пресс, 2018. – С. 52

  16. Пратт Т. Языки программирования и реализация. М., 1979. С. 372.

  17. Там же, С. 385.

  18. Пратт Т. Языки программирования и реализация. М., 1979. С. 388.

  19. Там же, С. 391.

  20. Пратт Т. Языки программирования и реализация. М., 1979. С. 414.

  21. Идентификатор (имя) – строка символов, используемая для идентификации некоторой сущности в программе и начинается с буквы; зарезервированное – ключевое слово, такие слова помогают транслятору обнаружить синтаксические ошибки (Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-е изд. СПб. : Питер, 2017. 153 с.; 157 с.)

  22. Пратт Т. Языки программирования и реализация. М., 1979. С. 453.

  23. Макарова Н. В. Основы программирования. Учебник с практикумом: учебник / Н. В. Макарова, Ю. Н. Нилова, С. В. Зеленина, Е. В. Лебедева. - Москва: КНОРУС, 2017. С. 26.

  24. Там же, С. 25-26.

  25. Захарова Т.Б. Организация современной информационной образовательной среды : методическое пособие. - Москва : Прометей, 2016. С. 56

  26. Пратт Т. Языки программирования и реализация. М., 1979. С. 421.

  27. Там же, С. 433.

  28. Пратт Т. Языки программирования и реализация. М., 1979. С. 517.

  29. Там же, С. 518.

  30. Там же, С. 519.

  31. Пратт Т. Языки программирования и реализация. М., 1979. С. 483.

  32. Там же, С. 484.

  33. Смертин А. Н. Организация интерпретатора динамического языка символьной обработки СНОБОЛ-4 : диссертация ... кандидата физико-математических наук : 05.13..11. - Ленинград, 1985. 140 с.

  34. Смертин А. Н. Организация интерпретатора динамического языка символьной обработки СНОБОЛ-4 : диссертация ... кандидата физико-математических наук : 05.13..11. - Ленинград, 1985. 140 с.

  35. Акулов Л. Г. Информатика и программирование: основы программирования на языке Паскаль: учеб.-метод. пособие / Л. Г. Акулов, В. Ю. Наумов, О. А. Авдеюк. - Волгоград: ВолгГТУ, 2017. 266 с.

  36. Захарова Т.Б. Организация современной информационной образовательной среды : методическое пособие. - Москва : Прометей, 2016. С. 59

  37. Акулов Л. Г. Информатика и программирование: основы программирования на языке Паскаль: учеб.-метод. пособие / Л. Г. Акулов, В. Ю. Наумов, О. А. Авдеюк. - Волгоград: ВолгГТУ, 2017. С. 74

  38. Там же, С. 152

  39. Тюгашев А.А. Основы программирования. Часть I., СПб., 2016. С. 74-78

  40. Наумов В. Ю. Информатика и программирование: основы программирования на языке С++ / В. Ю. Наумов. - Волгоград: ВолгГТУ, 2017. С. 60

  41. Там же, С. 68

  42. Лысенко В.А. Системное проектирование информационных систем с веб-интерфейсом : монография / В. А. Лысенко, М. И. Корзина, И. В. Бачурин ; Министерство образования и науки Российской Федерации, Федеральное государственное автономное образовательное учреждение высшего образования "Северный (Арктический) федеральный университет имени М. В. Ломоносова". - Архангельск : САФУ, 2016. – С. 64

  43. Васильев А. Н. Программирование на Java для начинающих. - Москва: Э, 2017. 702 с.

  44. Виссер Джуст. Разработка обслуживаемых программ на языке Java : десять рекомендаций по оформлению современного кода : [пер. с англ.] / Джуст Виссер. - Москва : ДМК Пресс, 2017. – С. 7

  45. Васильев А. Н. Программирование на Java для начинающих. - Москва: Э, 2017. С. 110

  46. Виссер Джуст. Разработка обслуживаемых программ на языке Java : десять рекомендаций по оформлению современного кода : [пер. с англ.] / Джуст Виссер. - Москва : ДМК Пресс, 2017. – С. 49

  47. Там же, С. 115

  48. Лысенко В.А. Системное проектирование информационных систем с веб-интерфейсом : монография / В. А. Лысенко, М. И. Корзина, И. В. Бачурин ; Министерство образования и науки Российской Федерации, Федеральное государственное автономное образовательное учреждение высшего образования "Северный (Арктический) федеральный университет имени М. В. Ломоносова". - Архангельск : САФУ, 2016. – С. 112.

  49. Васильев А. Н. Программирование на Java для начинающих. - Москва: Э, 2017. С. 166

  50. Лысенко В.А. Системное проектирование информационных систем с веб-интерфейсом : монография / В. А. Лысенко, М. И. Корзина, И. В. Бачурин ; Министерство образования и науки Российской Федерации, Федеральное государственное автономное образовательное учреждение высшего образования "Северный (Арктический) федеральный университет имени М. В. Ломоносова". - Архангельск : САФУ, 2016. – С. 113-114.

  51. Документация языка TypeScript - Режим доступа: https://www.typescriptlang.org/docs/tutorial.html

  52. Лысенко В.А. Системное проектирование информационных систем с веб-интерфейсом : монография / В. А. Лысенко, М. И. Корзина, И. В. Бачурин ; Министерство образования и науки Российской Федерации, Федеральное государственное автономное образовательное учреждение высшего образования "Северный (Арктический) федеральный университет имени М. В. Ломоносова". - Архангельск : САФУ, 2016. – С. 42.

  53. Документация языка TypeScript - Режим доступа: https://www.typescriptlang.org/docs/tutorial.html

  54. TypeScript. The Definitive Guide - Режим доступа: https://basarat.gitbooks.io/typescript/content/docs/getting-started.html

  55. Там же

  56. Документация языка TypeScript - Режим доступа: https://www.typescriptlang.org/docs/tutorial.html

  57. Там же

  58. Dan Maharry. TypeScript Revealed / Maharry D. — Apress, 2013. — 81 р.