Файл: Обзор языков программирования высокого уровня (Анализ терминологии и парадигм программирования в области разработки программного обеспечения).pdf
Добавлен: 17.05.2023
Просмотров: 77
Скачиваний: 3
СОДЕРЖАНИЕ
ГЛАВА 1 ОСОБЕННОСТИ РАЗВИТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ И ИХ РАЗНОВИДНОСТИ
1.1. Обзор и классификация этапов развития языков программирования
1.2. Анализ терминологии и парадигм программирования в области разработки программного обеспечения
ГЛАВА 2 АНАЛИЗ ЯЗЫКОВ И ИНТЕГРИРОВАННЫХ СРЕДСТВ РАЗРАБОТКИ ПРОГРАММНОГО КОДА
2.1. Анализ преимуществ и специфики использования современных языков программирования
2.1.1. Особенности языка программирования Java
2.1.2. Особенности языка программирования Python
2.1.3. Особенности языка программирования JavaScript
2.2.1. Ключевые возможности и особенности среды разработки Intellij idea
2.2.2. Ключевые возможности и особенности среды разработки PyCharm
2.2.3. Ключевые возможности и особенности среды разработки WebStorm
Декларативная парадигма программирования (ПП) задает общий процесс вычислений за счет описания логики сути вычислений, не затрагивая при этом управляющую логику программного приложения.
При применении декларативного языка программирования в приложении обязательно в явном виде указывается, какими именно свойствами обязан обладать итоговый результат, однако, при этом не идентифицируется порядок его непосредственного получения. В наилучшем виде декларативная программа включает синтаксически корректную формулировку предложений, которые комплексно описывают необходимый итоговый результат [10].
При этом важным аспектом является тот факт, что порядок предложений, которые однозначно определяют конкретные свойства программы, не имеет существенного значения.
На практике, декларативная ПП реализуется на базе применения функционального или логического стилей разработки программного обеспечения.
Императивная ПП описывает процесс вычислительной обработки в виде комплекса пошаговых инструкций, изменяющих состояние данных
Данная ПП является основной (традиционной) и наиболее часто используется на практике для написания программных приложений различной степени сложности.
В рамках императивной ПП рассматривается класс ЯП, в которых программа должна явно указать метод получения итогового результата, не определяя при этом конкретных ожидаемых свойств итогового результата. Процедура получения конечного результата имеет вид четкой последовательности операций [11].
Многие из современных языков программирования предназначены для облегчения процесса решения сложных задач и упрощения этапов интеграции разработанных приложений на различных операционные платформы.
Использование различных интерпретаторов и трансляторов позволяет обеспечить связь программ, которые написаны при помощи таких языков программирования, с различными операционными системами и не требует существенной модификации исходного программного кода для любой существующей платформы [12].
Примерами таких языков являются: C++, C#, Java, JavaScript, Python, PHP, Ruby, Delphi, Лисп и др.
Статистика популярности языков программирования в настоящее время лет приведена на рис.3.
Рисунок 3 – Статистика использования языков программирования с в 2017 году
В данной главе приведены результаты анализа особенностей развития зыков программирования и их состава, осуществлен обзор и классификация этапов развития и становления языков программирования с середины прошлого века. Проведен анализ терминологии и парадигм программирования в области разработки программного обеспечения. Приведены иллюстрационные изображения для структурного визуального обобщения рассмотренных в главе понятий.
ГЛАВА 2 АНАЛИЗ ЯЗЫКОВ И ИНТЕГРИРОВАННЫХ СРЕДСТВ РАЗРАБОТКИ ПРОГРАММНОГО КОДА
2.1. Анализ преимуществ и специфики использования современных языков программирования
В данной части работы следует рассмотреть такие популярные и востребованные языки программирования, как Java, Python и JavaScript.
2.1.1. Особенности языка программирования Java
Java - это популярный высокоуровневый язык программирования, который был выпущен известной ИТ компанией Sun Microsystems еще в 1995 году. В настоящее время разработкой языка Java занимается корпорация Oracle. Синтаксис данного языка во многом похож на язык C++, на котором Java и был изначально разработан.
Разрабатываемые Java приложения компилируются в отдельный байт-код (формат .class), который при выполнении интерпретируется JVM (виртуальной машиной Java) для конкретной аппаратно-программной платформы или операционной системы.
Для обхода этого недостатка языка существуют механизмы интеграции отдельных модулей низкоуровневого управления, которые могут быть написаны на других языках (ассемблер, С++ и др.) [13].
При создании Java изначально были сформулированы такие принципы:
- синтаксис должен быть максимально простым, гибким, удобным и привычным пользователю-разработчику;
- высокая производительность и безопасность процесса разработки и реализации исполняемых приложений;
- кроссплатформенность по принципу “Once Write –Anywhere Use”;
- поддержка масштабируемости и мультизадачности посредством возможности создания параллельных процессов и потоков [19].
Структура ядра языка программирования Java приведена на рисунке 4.
Рисунок 4 – Архитектура Java окружения
Кроссплатформенность достигается путем компиляции изначального Java-кода (формат .java) в байт-код (.class), представляющего собой набор упрощенных команд. После этого разработанное приложение может быть выполнено на любой поддерживаемой платформе, т.е. на платформе, которая имеет установленную JVM, способную интерпретировать байткод в код, учитывающий специфику конкретной ОС и процессора.
Главным преимуществом использования байт-кода является портативность. Т.е. байт-код переносится на любую платформу и запускается без установки, достаточно просто наличие JVM [14].
При этом, недостатком является необходимость выделения дополнительных вычислительных ресурсов на интерпретацию, т.е. мощности процессора и оперативной памяти задействуются в большем объеме. В связи с этим некоторые считают, что Java является достаточно медленным языком разработки [15].
В Java практически все структуры данных являются объектами. Исключением являются такие примитивные типы данных, как целочисленные (int), символы (char), логический тип данных (boolean) и др. Также, в Java все объекты являются производными от самого главного объекта (Object), который является их потомком, посредством которого обеспечивается их базовое поведение и все основные свойства.
В Java возможно единичное наследование, что позволяет исключить возникновение конфликтов между различными членами класса, которые могут быть наследованы от нескольких родителей, что затрудняет их однозначную идентификацию [16].
2.1.2. Особенности языка программирования Python
Python это современный объектно-ориентированный язык с поддержкой динамической типизации, автоматического процесса управления памятью, высокоуровневых гибких структур данных (словари, кортежи, списки).
Python поддерживает создание классов, связи модулей, гибкую и удобную обработку исключительных ситуаций и многопоточные методы вычислений.
Кроме ООП данный язык структурное, функциональное и аспектно-ориентированное программирование [17].
Python позволяет определять тип переменной на этапе исполнения программы.
В связи с этим вместо присваивания переменной определенного значения более корректным является использование фразы «связывания определенного значения с конкретным именем».
Пример экосистемы языка программирования Python приведены на рисунке 5.
Рисунок 5 – Пример экосистемы языка программирования Python
В языке поддерживаются такие встроенные типы данных как: бинарный, строковый, Unicode, целочисленный с произвольно заданной степень точности, число с плавающей запятой, и ряд других. Из современных коллекций язык обладает поддержкой таких встроенных структур как: список, словарь, кортеж (модифицируемый список), множество и др. Следует отметить, что все значения, также как и в Ruby, являются объектами, причем это характерно и для функций, модулей, методов и классов.
Добавить в программный код новый тип можно путем написания нового класса или определения нового типа в специальном модуле расширения, который может быть разработан на другом языке. Система классов поддерживает полноценные механизмы множественного и единичного наследования, а также функции метапрограммирования. Возможным, также является прямое наследование от подавляющего большинства встроенных типов расширений [18].
Преимущества языка следующие.
1. Интерпретируемость и динамическая типизация.
2. Поддержка модульности и Unicode.
3. Поддержка работы с объектами в рамках концепции ООП и автоматическая «сборка мусора» (очистка памяти).
4. Интеграция с многими другими языками программирования для повышения скорости работы программных приложений.
5. Кроссплатформенность и поддержка большого количества модулей, интегрированных и сторонних.
2.1.3. Особенности языка программирования JavaScript
JavaScript (JS) представляет собой язык разработки сценариев и выполняется непосредственно в веб-браузере клиентского устройства. Программы, которые разработаны на JS называют скриптами, чаще всего такие скрипты включатся непосредственно в HTML страницу различным образом. Результаты выполнения разработанных сценариев отображается на странице браузера, посредством чего происходят различные изменения в ее структуре и содержании [19]. Схематическое блочное отображение процесса обработки исходного программного кода, разработанного на языке программирования JS приведено на рисунке 6.
Рисунок 6 – Процесс обработки исходных JS-файлов
В настоящее время существует большое количество разнообразных устройств, из которых пользователь может просматривать веб-сайты с разными разрешениями экранов. JS-скрипт может быть размещен на страницах подобного веб-сайта для обеспечения проверки разрешение конкретного экрана и автоматической подстройки ширины страницы под допустимое разрешение. Некоторые страницы могут содержать миниатюры изображений, которые могут быть открыты в полный экран путем выполнения соответствующего действия. Как правило это также обеспечивается посредством применения подобных скриптов [20].
Проблемой при этом является тот факт, что различные веб-браузеры в разных операционных системах не всегда корректно интерпретируют одну и ту же веб-страницу. Однако язык JS позволяет определить используемый обозреватель и динамически скорректировать код загружаемой страницы для ее корректного отображения. Также, существует поддержка добавления комментариев или их обновления без необходимости проведения перезагрузки всей страницы. Язык JS удобен для проверки созданный пользовательских форм на корректность заполнения без необходимости отправки данных на сервер, что существенно оптимизирует процесс разработки. Следует отметить, что данный язык полноценно способен выполнять различные математические операции, что позволяет его успешно применять для онлайн калькуляторов и конвертертов различных величин. А ряд современных фреймворков и технологий JS позволяет создавать полноценные мобильные приложения с гибким и красочным интерфейсом пользователя [21].
2.2. Анализ преимуществ и специфики использования современных интегрированных сред разработки программ
В данном разделе работы приведены результаты анализа интегрированных сред разработки для рассмотренных ранее языков программирования.
2.2.1. Ключевые возможности и особенности среды разработки Intellij idea
Система для написания кода на языке Java JetBrains IntelliJ IDEA является лидером среди аналогичных сред интегрированной разработки корпоративных и веб-приложений. Система представляет собой комплекс интегрированных средств и инструментов разработки программного кода, включающий в свой состав интеллектуальный редактор текстов с поддержкой автоматизации, средства рефакторинга кода, поддержку J2EE приложений, механизмы интеграции с средствами модульного тестирования JUnit и системами управления версиями, модуль проверки кода Code Inspection, а и компоненты визуального создания графических пользовательских интерфейсов.