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

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

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

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

Добавлен: 30.06.2023

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

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

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

ВВЕДЕНИЕ

В последние годы неузнаваемо изменилась вычислительная техника: от первых ЭВМ на радиолампах, затем – на транзисторах, машин на интегральных схемах, до современных машин ЭВМ на одном кристалле кремния 6х6 мм, схема которых эквивалентна сотням тысяч радиодеталей. Сегодня в авангард выходят многопроцессорные системы и мобильные устройства.

Бум развития приходится на конец ХХ века и его продолжение наблюдается и в ХХI, сегодня компьютеры проникли во все сферы нашей жизни. Эта ситуация способствовала сильнейшему развитию языков программирования, развитию алгоритмики и таких новых направлений как: моделирование, инжиниринг, теория алгоритмов, искусственный интеллект и ряд других направлений. Достижения в этих областях науки неоспоримы – компьютеры готовят еду, управляют транспортом, летают самостоятельно в космос и на другие планеты. А все это базируется на основах программирования, алгоритмических конструкциях: следование, ветвление, циклы и базово наборе структур.

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

Естественно, понятия, которые будут рассмотрены в работе, описаны в различных источниках и исследования носят не сколько научный, сколько учебный характер. Основной задачей является обзорный анализ ЯВУ (языки высокого уровня) и иллюстрирование выявленных особенностей примерами.

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

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

Задачи курсовой работы:

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

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

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

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

Описания алгоритмов на языке программирования называют программами.

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

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

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

машинные языки (машинные коды);

ассемблеры;

языки высокого уровня[3].

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


Одними из первых кто широко начал использовать такой подход стала компания Sun с предложенным ей языком Java и виртуальной машиной для поддержки кроссплатформенности[21]. Позже эта идея была подхвачена компанией MicroSoft.

Кроме типа трансляции кода языки отличаются направленностью и предназначением. Есть универсальные языки, которые позволяют писать различные программы, но есть и достаточно специализированные имеющие очень узкую направленность и оптимизированные для конкретных задач. Так среди ЯВУ выделяют: функциональные, математические и языки для моделирования, языки для построения запросов и работы с БД, графические библиотеки (дают дополнительные возможности используются совместно с другими языками программирования), скриптовые языки, логическое программирование и реализация интеллектуальных экспертных систем и многие другие.

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

Для отбора рассматриваемых языков проанализируем спрос и популярность ЯВУ на рынке труда и уже из предложенного набора выберем несколько языков для краткого рассмотрения.

2 Обзор языков по востребованности и популярности

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

IEEE Spectrum ‑ один из ведущих научных и инженерных журналов в мире представил рейтинг, составленный по 12 различным метрикам из 10 разных источников, в частности в качестве источников использовались следующие ресурсы: Google Search, Google Trends, Twitter, GitHub, Stack Overflow, Reddit, Hacker News, CareerBuilder, Dice, IEEE Xplore Digital Library. В рейтинге Вы можете увидеть две колонки: левая представляет 2016 год, правая — 2015[24]. По этим диаграммам можно отследить статистику и динамику изменения популярности языков программирования за последний год.

В вершине списка мы можем видеть: Java, C, C++, Python, C#. Эти языки остаются на вершине с неизменными позициями, хотя C в последжнее время приблизился к Java и их позиции практически уровнялись. Огромный рывок произвел язык R ‑ являющийся удобным для анализа и визуализации больших данных, который занимает шестую строчку


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

Рисунок 1 – Рейтинг языков программирования по версии IEEE за последние два года[24]

На рис. 2 представлен сводный рейтинг по исследованиям IEEE с учетом комплексного набора характеристик и собственных наблюдений разработчиков рейтинга.

Рисунок 2 – общий рейтинг языков программирования по версии IEEE

Рассмотрим еще один рейтинг, представленный на сайте Habr.ru.

В опросе приняло участие 6181 человек, которые являются пользователями и посетителями ресурса. Этот рейтинг показывает следующее:

Java по-прежнему самый распространенный язык программирования; разрыв между Java и C# - увеличивается.

JavaScript вошел в тройку лидеров, вытеснив из нее PHP.

Возобновился рост использования Scala.

Соотношение Objective-C/Swift все еще 80/20.

Основные языки разработки в 2016

Рисунок 3– опрос пользователей ресурса

А вот и динамика за последние 6 лет:

Рисунок 4 – Динамика популярности языков программирования за последние 6 лет

Интересно отметить, что рейтинг вспомогательного инструментария возглавляет язык JavaScript. Это отражено на следующей диаграмме.

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

В этом рейтинге все достаточно закономерно и стабильно в последние несколько лет. Небольшой рост можно отметить только у C++, возможно, это связано с ростом hardware-проектов.

Стоит также отметить, что лидером опроса по поводу первого языка и длительности опыта работы с языком возглавили языки Delphi и 1C. При этом 1С и Delphi в общем рейтинге популярности и востребованности занимают далеко не первые позиции. И их присутствие в 20-ке обосновано в основном поддержкой ранее разработанных проектов, нежели чем реализацией новых.

3 Краткая характеристика выбранных языков


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

В последние насколько лет в топе постоянно присутствуют языки С++ и С#. Первые позиции занимают языки типа PHP или JavaScript. Ввиду того, что языки имеют абсолютно различную направленность они очень трудно сравнимы. Сложность их сравнения лежит уже в самом ядре этих языков: С++ ‑ является компилятором, C# ‑ компилятор, но с наличием виртуальной машины и промежуточного кода, PHP – интерпретатор с выполнением кода на стороне сервера, JavaScript – интерпретатор с выполнением кода на стороне клиента (код выполняется браузером). Делать какую либо сравнительную характеристику этих языков не имеет смысла и с точки зрения их различной направленности. С другой стороны обзор был бы достаточно не полным если не упомянуть Web-ориентированных инструментов и языков предназначенных для реализации активной составляющей сайтов и веб-ресурсов. Исходя из этого – далее приведем только некоторую общую характеристику этих популярных языков.

3.1 Язык С++ и среда C++Builder

Одним из наиболее распространенных на сегодня объектно-ориентированных языков программирования является C++. Язык C++ позволяет получить код, сравнимый по быстродействию с кодом на Ассемблере [1].

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

Вышеописанным требованиям отвечает среда Borland C++Builder и встроенный язык программирования С++.

Рисунок 6 – Внешний вид среды разработки после запуска

Основные преимущества среды и языка:

- Объектно-ориентированный язык программирования C + + Builder позволяет удобно абстрагировать объект проектирования, его отдельные элементы, и организовать классы общего назначения, введение защищенных и открытых членов класса, эффективно моделируют проектирования сложных систем управления и работу реальных объектов с использованием наглядного мониторинга базы информации;

- В языке C + + Builder представлены удобные средства для работы как на высоком уровне, так и на среднем и низком в то время, как другие современные языки предпочитают одном направлении.