Файл: Классификация языков программирования высокого уровня (Языки низкого и высокого уровня).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 134

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рис. 2 - Структурные связи Swift

Swift сочетает в себе понятность именованных параметров и мощь динамической объектной модели Objective-C, а также открывает доступ к уже существующим интерфейсам прикладного программирования для различных операционных систем [7].

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

Кроме того, скорость реализации некоторых алгоритмов на Swift в 3,9 раза выше, чем на Python, и лаконичней, ввиду того, что в языке максимально искоренён такой недостаток как многословность, присущая Objective-C [1].

Если рассмотреть программные продукты ведущих корпораций - разработчиков современного программного обеспечения, то интересен для исследования обучаемыми язык программирования высокого уровня «Go» от корпорации Google (рис.3).

Рис. 3-Связи языка Go

Go -компилируемый, многопоточный язык программирования. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались авторы, стоявшие у истоков создания языка C и операционной системы UNIX: Роберт Гризмер, Роб Пайк и Кен Томпсон [4].

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

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

Как показывает анализ родственных связей, язык программирования высокого уровня «Go» опирается на мощный фундамент языков С и С++, а также поддержку компании Google, одной из самых крупных ИТ-компаний на сегодняшний день.


Веб-программирование - тот раздел программирования, к которому студенты испытывают огромный интерес, поэтому стоит обратить внимание на современные ЯП ВУ Dart и TypeScript, как альтернативу уже широко известному языку программирования JavaScript.

Dart - действительно новый язык и при его разработке были учтены следующие аспекты, которые так или иначе мешали его «родственникам» (рис. 4).

Рис. 4 - Генеалогические связи языка Dart

Во-первых, этот язык структурированный, и в то же время ориентирован на разработку веб-программ.

Во-вторых, он приемник уже существующих языков JavaScript, Go - которые популярны среди разработчиков программного кода, и переход к Dart и обучение ему, естественно, упрощается. Как и в JavaScript, в Dart используется синтаксис похожий на язык C. Но различие в том, что JavaScript основывается на прототипах, тогда как объекты в Dart определяются при помощи классов и интерфейсов(как в C++ или Java). Также Dart позволяет дополнительно задать переменные со статическими типами.

Как показывает короткий промежуток существования этого языка, он становится столь же привычным, динамичным и гибким языком, как и JavaScript, а написанные на нём коды - быстрее и легче в выполнении. Кроме того, созданные на этом языке программы - высокопроизводительны и успешно работают на вычислительных устройствах широкого класса: от смартфонов до серверов. Очень важен для любого ЯП ВУ стандарт, и 4 июля 2014Ассоциацией стандартизации информационных и коммуникационных технологий была одобрена первая редакция стандарта языка [5].

Кроме компании Google, компания Microsoft представила свой аналог JavaScript - TypeScript (рис. 5).

Рис. 5 - Связи языка TypeScript

TypeScript - язык программирования, как уже было отмечено выше, может позиционироваться как средство разработки веб- приложений, расширяющее возможности JavaScript. Разработчиком языка TypeScript является Андерс Хейлсберг, создавший ранее Tur- boPascal, Delphi и C#.

Язык работает в любом браузере, поддерживается в таких популярных средах визуального программирования, как Microsoft Visual Studio, и совместим с некоторыми JavaScript-библиотеками, среди которых jQuery. Язык TypeScript является обратно совместимым с JavaScript (может легко компилироваться в этот язык) [2].

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


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

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

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

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

Прикладная наука развивается в эпоху межсетевых отношений и больших хранилищ данных[8-12]. Современные студенты, пользователи (и, возможно, будущие разработчики) интернет-сервисов и веб- технологий, баз данных и баз знаний, банков данных, должны уметь выбирать правильные и эффективные инструменты решения прикладных задач, мыслить категориями современных языков программирования.

Глава 3 Классификация и характеристика современных языков программирования

3.1 Языки программирования. Классификация языков программирования

Функционирование ЭВМ осуществляется на основе принципа программного

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

реализующих алгоритм решения задачи, вводится в память ЭВМ, после чего

начинается ее автоматическое выполнение с первой команды. После каждой

выполненной команды машина автоматически переходит к выполнению

следующей команды, и так до тех пор, пока не встретится команда,


предписывающая закончить вычисления.

Структура команды ЭВМ в простейшем случае включает в себя две части:

операционную и адресную. Операционная часть содержит код операции

(сложить, вычесть, ...). Адресная часть содержит адреса ячеек памяти; в них

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

В зависимости от числа адресов, указанных в команде,

различают одно-, двух-, трехадресные команды.

Физические принципы работы электронных устройств ЭВМ таковы, что

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

т.е. машинный код. На начальной стадии развития ЭВМ человеку было

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

машинных кодах. Каждая команда состояла из кода операций и адресов

операндов, выраженных в виде различных сочетаний единиц и нулей.

Как показала в дальнейшем практика общения с компьютером, такой язык

громоздок и неудобен. При пользовании им легко допустить ошибку, записав не

в той последовательности 1 или 0. Программу очень трудно контролировать.

Кроме того, при программировании в машинных кодах надо хорошо знать

внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в

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

много времени, труда, повышенного внимания.

Это привело к необходимости найти такое средство, которое позволит более

просто наладить общение человека и компьютера. И такое средство было

найдено: различные символические языки и соответствующие им трансляторы

(системы программирования).

Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.

Для автоматизации программирования разрабатывался для каждой ЭВМ свой

автокод (или Ассемблер). Этот язык в полной мере повторяет набор команд

машинного языка и появился лишь для упрощения программирования на

машинном коде.

Пример программы на Ассемблере

Дальнейшее развитие языковых средств шло по пути создания машинно-

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

ЭВМ с предусмотренной возможностью переноса на более совершенную

архитектуру.

В мире насчитывается несколько сотен символических языков

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


классифицированы по различным признакам.

Если в качестве признака классификации взять синтаксис образования

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

следующие классы:

  • машинные языки (computer language) – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
  • машинно-ориентированные языки (computer-oriented language) – языки программирования, которые отражают структуру конкретного типа компьютера (Ассемблеры);
  • алгоритмические языки (algorithmic language) – не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
  • процедурно-ориентированные языки (procedure-oriented language) – языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
  • проблемно-ориентированные языки (universal programming language) – языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
  • интегрированные системы программирования.

Если в качестве признака классификации взять принадлежность к одному из

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

которых соответствует своя собственная модель вычислений, то языки

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

  • процедурные;
  • функциональные;
  • логические;
  • объектно-ориентированные.

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

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

Одним из важнейших квалификационных признаков процедурных языков

является их уровень, характеризующий степень близости языка

программирования и машинного языка. За начало отсчета уровней

принимается

машинный язык, уровень которого равен нулю. Язык человека рассматриваетя

как язык наивысшего уровня.

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

Двоичный язык – в настоящее время программистами не применяется.

Шестнадцатеричный язык – упрощение за счет представления четырех

двоичных цифр одной шестнадцатеричной. Используется в качестве дополнения

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