Анализ и сравнение характеристик си-подобных языков

Автор: Киржаев Д.А., Рогачева Ю.И.

Журнал: Экономика и социум @ekonomika-socium

Рубрика: Информационные и коммуникативные технологии

Статья в выпуске: 7 (74), 2020 года.

Бесплатный доступ

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

Высокоуровневые языки программирования, си-подобные языки программирования, парадигмы языков

Короткий адрес: https://sciup.org/140252835

IDR: 140252835

Текст научной статьи Анализ и сравнение характеристик си-подобных языков

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

Каждый месяц языки программирования поддаются оценке популярности среди относительно всех существующих, составляется индекс TIOBE (TIOBE programming community index) — индекс, образующийся на основе подсчёта результатов поисковых запросов, содержащих название языка. На момент июля 2020 года Си-подобные языки занимают лидирующие места. Теснит их только язык Python, занимающий 3 место и не имеющий отношение к этому семейству.

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

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

Еще одной ключевой особенностью Java является то, что она поддерживает автоматическую сборку мусора, т.е. периодическое освобождение памяти от ранее использовавшихся объектов, как в С++.

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

Язык программирования Си — универсальный язык программирования, который сочетает возможности языков программирования высокого и низкого уровней.

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

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

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

Си++ — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования.

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

Особенности данного языка наталкивают на следующие недостатки: нарушение безопасности типов; плохая поддержка модульности; недостаток информации о типах при компиляции; примитивный предпроцессор; трудная отладка кода связанная с метапрограммированием; псевдофункциональное программирование.

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

Условные обозначения для таблиц ниже

Таблица 1

+

Указанная возможность присутствует

Указанная возможность отсутствует

+/-

Возможность поддерживается не полностью

-/+

Возможность поддерживается очень ограниченно

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

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

Таблица 2

Возможность

C

C++

Java

Python

Императивная

+

+

+

+

Объектно-ориентированная

-/+

+

+

+

Функциональная

+/-

-/+

-/+

+

Рефлексивная

-

-/+

-/+

+

Обобщённое программирование

+

-/+

+

+

Логическая

-

-

-

-

Список литературы Анализ и сравнение характеристик си-подобных языков

  • TIOBE Index for June 2020. [Электронный ресурс] / 2020 - Режим доступа: https://www.tiobe.com/tiobe-index/, свободный - Загл. с экрана
  • Языки программирования. [Электронный ресурс] / 2020 - Режим доступа: http://www.gpntb.ru/win/book/4/Doc4.HTML, свободный - Загл. с экрана
  • Сравнение языков программирования. [Электронный ресурс] / 2020 - Режим доступа: https://ru.wikipedia.org/wiki/ сравнение_языков_программирования, свободный - Загл. с экрана
  • Парадигма программирования. [Электронный ресурс] / 2020 - Режим доступа: https://ru.wikipedia.org/wiki/ парадигма_программирования, свободный - Загл. с экрана
Статья научная