УДК 004.432
Киржаев Д.А. студент
направление подготовки Программная инженерия ФГБОУ ВО «Поволжский государственный университет
телекоммуникаций и информатики»
Россия, г. Самара Рогачева Ю.И. студент
направление подготовки Программная инженерия ФГБОУ ВО «Поволжский государственный университет
телекоммуникаций и информатики»
Россия, г. Самара
АНАЛИЗ И СРАВНЕНИЕ ХАРАКТЕРИСТИК СИ-ПОДОБНЫХ
ЯЗЫКОВ
Аннотация: В современном программировании языки высоко уровня занимают важное место. Каждый язык рассчитан на различные задачи и имеет свои особенности. Из-за особенностей написания синтаксиса, реализации конструкций, набора определенных инструментов каждый язык имеет свою собственную индивидуальность, в следствии чего имеет свои положительные и отрицательные стороны, которые были рассмотрены в данной статье.
Ключевые слова: высокоуровневые языки программирования, Си-подобные языки программирования, парадигмы языков.
Kirzhaev D.A. student
of the direction of preparation Software Engineering FSBEIof HE ""Volga State University of telecommunications and informatics "
Russia, Samara Rogacheva Ju.I. student
of the direction of preparation Software Engineering FSBEI of HE ""Volga State University of telecommunications and informatics"
Russia, Samara
ANALYSIS AND COMPARISON OF C-LANGUAGES
Abstract: In modern programming, high-level languages occupy an important place. Each language is designed for different tasks and has its own characteristics. Due to the peculiarities of writing syntax, implementation of constructs, and a set of specific tools, each language has its own individuality, as a result of which it has its positive and negative sides, which were considered in this article.
Key words: high-level programming languages, C- languages of programming, language paradigms.
Языки программирования делятся на две ключевые категории: высокого и низкого уровня. Языки высокого уровня дают возможность представления задачи в наглядном, простом для восприятия виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа. Вследствие того программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора.
Каждый месяц языки программирования поддаются оценке популярности среди относительно всех существующих, составляется индекс TIOBE (TIOBE programming community index) — индекс, образующийся на основе подсчёта результатов поисковых запросов, содержащих название языка. На момент июля 2020 года Си-подобные языки занимают лидирующие места. Теснит их только язык Python, занимающий 3 место и не имеющий отношение к этому семейству.
В настоящий момент язык Java считается одним из наиболее известных языков программирования. Java подразумевался как универсальный язык программирования, который возможно использовать в различных целях. В процессе своего развития, язык превратился из просто универсального языка в целую платформу и экосистему, которая связывает разнообразные технологии.
Ключевой особенностью языка Java является то, что его код сначала транслируется в специальный байт-код, а затем этот байт-код выполняется виртуальной машиной JVM. Подобная архитектура обеспечивает кроссплатформенность и аппаратную переносимость программ.
Еще одной ключевой особенностью Java является то, что она поддерживает автоматическую сборку мусора, т.е. периодическое освобождение памяти от ранее использовавшихся объектов, как в С++.
Определенным недостатком данного языка является его платное коммерческое использование. Вторым по значимости идет низкая производительность из-за компиляции, абстракции с помощью виртуальной машины и работы сборщика мусора. Также минусом является отсутствие нативного дизайна. Когда дело доходит до пользовательского интерфейса на ПК, Java-инструмента для создания нативного дизайна нет.
Язык программирования Си — универсальный язык программирования, который сочетает возможности языков программирования высокого и низкого уровней.
Си предоставляет возможность программисту реализовывать прямой доступ к ячейкам памяти и регистрам компьютера. Для этого необходимо иметь знания особенностей функционирования ЭВМ. Эта особенность имеет схожесть с языком низкого уровня — ассемблером, однако Си является значительно более мощным инструментом для решения нелегких задач и построения сложных программных систем. Си имеет свойство кроссплатформенности, но в некоторых случаях требуется внести определенные модификации.
У данного языка встречаются следующие особенности: язык не утрачивает свою надобность спустя долгое время; имеет высокую производительность; Несложная структура языка.
Язык Си имеет как особенности, так и недостатки. Например, высокий порог вхождения (относительно мало обучающей литературы). Также язык не используется в современной веб-разработке (создание сайтов, сервисов и.т.д) и имеет малую популярность среди молодежи.
Си++ — компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования.
Из особенностей можно выделить: возможность разработки проектов для самых различных платформ и систем; возможность работы на низком уровне с адресами, памятью, портами; возможность реализации обобщенных алгоритмов для разных типов данных, их специализация, и вычисления на этапе компиляции, используя шаблоны.
Особенности данного языка наталкивают на следующие недостатки: нарушение безопасности типов; плохая поддержка модульности; недостаток информации о типах при компиляции; примитивный предпроцессор; трудная отладка кода связанная с метапрограммированием; псевдофункциональное программирование.
При заполнении таблицы сравнения языков, проверяя наличии парадигм, ниже учтены только фактические данные, при том, что наличие возможности не обязательно является преимуществом языка, а отсутствие — недостатком.
Таблица 1
Условные обозначения для таблиц ниже
+ Указанная возможность присутствует
- Указанная возможность отсутствует
+/- Возможность поддерживается не полностью
-/+ Возможность поддерживается очень ограниченно
Парадигма программирования - это совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию). Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.
Существующие парадигмы зачастую пересекаются друг с другом в деталях (например, модульное и объектно-ориентированное программирование).
Таблица 2
Возможность C C++ Java Python
Императивная + + + +
Объектно-ориентированная -/+ + + +
Функциональная +/- -/+ -/+ +
Рефлексивная - -/+ -/+ +
Обобщённое программирование + -/+ + +
Логическая - - - -
Использованные источники:
1) TIOBE Index for June 2020. [Электронный ресурс] / 2020 - Режим доступа: https://www.tiobe.com/tiobe-index/, свободный - Загл. с экрана
2) Языки программирования. [Электронный ресурс] / 2020 - Режим доступа: http://www.gpntb.ru/wm/book/4/Doc4.HTML, свободный - Загл. с экрана
3) Сравнение языков программирования. [Электронный ресурс] / 2020 -Режим доступа: https: //ru.wikipedia.org/wiki/ сравнение_языков_программирования, свободный - Загл. с экрана
4) Парадигма программирования. [Электронный ресурс] / 2020 - Режим доступа: https://ru.wikipedia.org/wiki/ парадигма программирования, свободный - Загл. с экрана