Файл: АНАЛИЗ ХАРАКТЕРИСТИК ЯЗЫКОВ ПРОГРАММИРОВАНИЯ.pdf

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

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

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

Добавлен: 15.06.2023

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

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

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

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

Класс, от которого производится наследование нового класса, называют родителем, базовым или суперклассом [17].

Пример иллюстрации принципа наследования в парадигме ООП приведен на рис.4 [19]. Класс Program является родителем для класса MyCar, который в свою очередь выступает родителем для класса MySportCar, все они могут дополнять описанные методы суперкласса Program новыми функциональными возможностями.

Рисунок 4 – Пример иллюстрации принципа наследования в парадигме ООП

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

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

В предметной области, которая касается непосредственно системного программирования, при этом, и в настоящее время активно применяется процедурная парадигма программирования. Чаще всего данная парадигма находит свое воплощение в средствах языка C или С++, которые обладают максимальной гибкостью обработки данных для микроконтроллеров и других устройств низкого архитектурного уровня.

Выводы по главе 1

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


ГЛАВА 2 СПЕЦИФИКА ФУНЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

2.1. Анализ функциональных возможностей языка C# и IDE Visual Studio

В настоящее время крайне популярен среди разработчиков программного обеспечения (ПО) набор продуктов компании Microsoft, включающих, в частности, интегрированную среду разработки (IDE) программ - Microsoft Visual Studio. В настоящее время актуальной версией является MVS 2015.

Интерфейс Visual Studio приведен на рис.5.

Рисунок 5 - Интерфейс среды Visual Studio

Предлагаемые средства разработки ПО продукты позволяют оперативно и гибко разрабатывать различные типы приложений, в частности, согласно [12]:

  • консольные приложения;
  • приложения с графическим интерфейсом, на базе использования популярной среди разработчиков десктопных решений технологии Windows Forms;
  • веб-сайты, на базе использования ASP.net.

Данные решения реализуются для всех платформ, которые поддерживаются вендором средств разработки Microsoft. К таким платформам относятся операционные системе Windows 7, 8, 10, Windows Mobile, операционная система в Xbox, а также осуществляется интеграция Microsoft Silverlight и Azure.

Структура проекта на языке C# в Visual Studio приведена на рис. 6.

Рисунок 6 - Структура проекта на языке C# в Visual Studio

IDE Visual Studio включает в себя гибкий и современный редактор исходного программного кода, интегрируя поддержку технологии IntelliSense, а также средства оперативного профилирования и рефакторинга кода. Имеющийся в среде разработки отладчик способен функционировать в качестве отладчика на уровне исходного программного кода, а также имеются возможности его использования в качестве отладчика на машинном уровне. К другим встроенным средствам и инструментам среды следует отнести интуитивно понятный редактор форм, который способствует ускорению процесса создания и конфигурирования компонентов графического интерфейса программного приложения, дизайнеры классов, объектов и схем баз данных [11].

IDE Visual Studio, также, позволяет разрабатывать и интегрировать в проект сторонние плагины и функциональные расширения, которые обеспечивают новые возможности разработки приложений на различных уровнях. В частности, широко используются плагины добавления функций использования современных систем контроля версий (Subversion, Git), интеграции новых пакетов инструментов для визуального редактирования проектирования кода на UML-языке, создания диаграмм сценариев использования, разработки алгоритмов и др.


Интегрирования среда разработки Visual Studio поставляется в различных модификациях и может включать следующие основные компоненты [12]:

а) Visual Basic .NET;

б) Visual C ++;

в) Visual C #;

г) Visual F #.

2.2. Анализ функциональных возможностей языка Java и IDE Netbeans

Java это современный и гибкий объектно-ориентированный язык программирования высокого уровня, созданный компанией Sun Microsystems в 1995. В настоящее время разработкой и продвижением этого языка занимается компания Oracle, которая купила первоначального разработчика Java еще в 2009 году.

Синтаксис Java похож на C и С#. В официальном порте языка Java разрабатываемые приложения компилируются в некий байт-код, который при инициализации выполнения интерпретируется виртуальной машиной (JVM) под конкретную платформу (Windows, Linuz, iOS и др.) [8].

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

- синтаксис языка должен быть понятным и простым, с поддержкой парадигмы ООП;

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

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

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

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

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

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


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

Java использует автоматический сборщик мусора для управления памятью в жизненном цикле использования объекта. Разработчик самостоятельно решает и выбирает условия, по которым нужно создавать и инициализировать объекты, а JVM обеспечивает освобождение памяти уже после того, как объект не используется и становится ненужным. Это происходит тогда, когда на конкретный объект не существует ни одной ссылки. Идентифицируя данный аспект сборщик мусора автоматически удаляет его из памяти, обеспечивая тем самым рациональное ее использование [15].

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

При создании корпорацией Google оперативной системы Android в качестве языка разработки был использован Java.

При этом ядро самой операционная системы было реализовано на C, но разработчиками специально был создан пакет Android SDK, который использует именно язык Java для разработки различных программных приложений под разные версии Android [6].

Существует несколько сред разработки программного обеспечения на языке Java, таких как: NetBeans, Eclipse, IntelliJ IDEA, JDeveloper, BluеJ и некоторые другие.

NetBeans IDE – представляет собой интегрированную среду разработки программных приложений, поддерживая такие языки программирования как Java, JavaScript, Groove, C, PHP, C++, Python и др. Данный продукт является разработкой компании Oracle, но проект является открытым, поэтому развитие NetBeans осуществляется сообществом разработчиков-энтузиастов (NetBeans Community) [19].

Интерфейс данной IDE приведен на рис.7.

По качеству и функциональным возможностям актуальные версии сборки NetBeans IDE под разные операционные системы ничем не уступают коммерческим IDE, таким, как IntelliJ IDEA.


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

Рисунок 7 - Интерфейс среды NetBeans

2.3. Анализ функциональных возможностей языка Delphi

Delphi – это продукт Borland International для быстрого создания приложений. Процесс создания интерфейса будущей программы напоминает забаву с игровым компьютерным конструктором. Поэтому RAD-среды еще называют визуальными средами разработки, какими мы видим рабочие и диалоговые окна программы при проектировании, такими они и будут, когда программа заработает [1].

Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic (она не является RAD-системой) или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочее, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды [3].

В первую очередь Delphi предназначен для учебных целей и оперативной разработки быстродействующих проприетарных приложений, т.к. позволяет разработчикам быстро создавать клиент-серверные приложения. Delphi генерирует компактные библиотеки (формат dll) и исполняемые файлы (формат exe), в связи с чем программные продукты, разработанные на Delphi гибко интегрируются с другими решениями. При этом, небольшие и оперативно исполняемые модули являются причиной снижения требований к архитектуре (железу) пользовательских компьютеров, что является несомненным преимуществом при эксплуатации программного приложения [6].