Файл: Классификация языков программирования. Критерии выбора среды и языка программирования.pdf

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

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

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

Добавлен: 27.04.2023

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

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

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

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

Рассмотрим четыре основных вида среды разработки: JDK (Java Development Kit), Блэкбокс, MS Visual Studio, Eclipse и дадим их краткую характеристику:

  • BlackBox – легкая, комфортная для обучения;
  • JDK – легкая, многоплатформенная, хорошо распространенная;
  • Eclipse – многоплатформенная, многоязыковая, перспективная;
  • Microsoft Visual Studio – сложная, многоязыковая, широко распространенная [2].

Сюда же можно было отнести и достаточно распространенную систему Delphi, однако она и так широко известна.  MS Visual Studio с языком C# начинает применяться в учебном процессе, вытесняя языки C и С++. Система BlackBox не очень распространена, но содержит множество технологических новаций, дающих ей большое преимущество среди более распространенных систем.

Среда JDK отличается простой моделью разработки, отсутствием собственной IDE. В ней применяется любой текстовый редактор и имеются два основных исполняемых файла: компилятор javac.exe и исполнитель оттранслированных классов java.exe. Все исходные файлы имеют расширение java, оттранслированные - class. На уровне языка определяются иерархии пакетов, каждый из которых содержит один либо несколько классов. Естественным образом иерархия пакетов при трансляции отражается в файловую структуру. При трансляции файла с объявленным пакетом package s1.p1 формируется подкаталог s1, затем в нем - подкаталог p1, в который размещаются файлы с кодами классов. Каждому классу соответствует один файл, имя которого совпадает с именем класса [3].

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

Комплекс классов одного либо нескольких пакетов могут собираться и храниться в одном архиве, файлов с расширением jar. Такие файлы можно считать компонентами среды (подсистемами). Пути к этим подсистемам указываются в качестве параметров при компиляции и запуске программ. Несколько приложений могут использовать общие подсистемы, тогда для запуска компилятора и программ лучше применять bat-файлы, где указывается различный набор подсистем [5].


На базе JDK работают более развитые платформы, например, IDEA, NetBeans, Eclipse. В ходе совершенствования к среде постоянно добавлялись новые компоненты и сейчас среда имеет версию 1.6.

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

Блэкбокс (BlackBox Component Builder) представляет собой бесплатную и открытую систему для языка программирования Компонентный Паскаль [3], являющаяся вариантом языка Оберон и имеющая следующий ряд свойств:

  • Высокая быстродейственность (быстро компилирует даже на i386);
  • Простота (описание языка занимает всего около 30 страниц);
  • Хорошая компактность (занимает 20 MB на диске в максимальной конфигурации)
  • Несмотря на вышеперечисленное, обладает высокой мощностью (в том числе за счет лучшей в промышленности поддержки технологий компонентно-ориентированного программирования);
  • бесплатная для некоммерческого использования (с конца 2004 г. система доступна с открытыми исходными кодами) [4].

BlackBox  содержит очень простую модель операционной среды. В языке отсутствует вложенность модулей и классов и, следовательно, упрощается архитектурная модель. В отличие от языка Java, один модуль транслируется в один файл. Содержится два вида компонентов — модули и подсистемы. В случае успешной компиляции модуля создаются символьный и кодовый файлы, автоматически размещающиеся в подкаталогах Sym и Code соответственно. При этом эти каталоги размещаются в подкаталоге Блэкбоксе с названием подсистемы. Имя подсистемы является префиксом имени модуля. Исходные файлы хранятся в подкаталоге Mod. Символьный файл содержит всю информацию о внешних связях модуля по экспорту - импорту. Кодовый файл представляет собой двоичный файл с машинными командами и загружается в память для непосредственного выполнения при первом вызове какой-либо процедуры из этого модуля [5].

В связи с тем, что Блэкбокс разработан на языке Компонентный Паскаль, любой скомпилированный модуль является частью системы, в том плане, что как файл с машинным кодом, так и соответствующий символьный файл мгновенно становятся доступными для и импорта из других модулей, вызова процедур из меню и т.д. По этой причине приложение может иметь такой же интерфейс, как и сама среда, представленный обычным многоуровневым меню и возможностью назначения горячих клавиш. Меню хранится в файле Menus.odc и является доступным для редактирования при помощи функций модуля Text, кроме того, по команде меню может обновляться. Подсистемы из основного каталога могут быть использованы совместно, что значительно упрощает развертывание новой подсистемы в разработанном приложении [3].


В данной системе имеется ряд технологических приемов, придающих разработке значительное удобство. Это, например, командеры, рабочий журнал, трассировщик, оригинальная отметка ошибок и др., придающие системе привлекательность для применения в обучении программированию, и для промышленного программирования [4].

Операционная среда разработки MS Visual Studio в данный момент является предпочтительным выбором большого числа разработчиков, работающих на платформе Windows. Среда дает возможность эффективного создания сложных приложений за короткий период времени. В отличие от рассмотренных выше операционных сред модель данной среды значительно богаче и содержит такие понятия как решение (solution), проект, пространство имен (namespace) и сборка (assembly). Понятие проекта содержится во многих средах, таких как Delphi. Файл проекта включает в себя перечисление исходных файлов и иных ресурсов, из которых система будет создавать приложение. Решение среды Visual Studio содержит несколько проектов, зависимых либо независимых друг от друга. Выделяется стартовый проект. Понятие сборки исходит из общеязыковой исполнительной среды CLR (Common Language Runtime), которая представляет собой наиболее революционное изобретение, с появлением которого процесс создания и выполнения приложений становится принципиально другим [7].

Компилятор преобразует файлы с исходными кодами в коды на промежуточном языке MSIL (Microsoft Intermediate Language). Одновременно с метаданными данные коды записываются в PE-файлы (Portal Executable) с расширением exe или dll, в зависимости от типа проекта. Может также быть получен модуль с расширением netmodule, не содержащий метаданных. Всего имеется 12 типов проектов. При загрузке PE-файлы «на лету» транслируются в команды реального процессора.

Каркас Framework.NET, который обеспечивает выполнение программ, не содержится в Visual Studio, а является настройкой над операционной системой. Это аналог виртуальной Java-машины [5].

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

На уровне языка C# пространства имен, как и в пакетах Java, предназначены для структурирования проекта. Пространство имен содержит один или несколько классов. В одном исходном файле может быть несколько пространств имен и одновременно одно пространство имен может быть определено в нескольких файлах, класс также может быть расположен в нескольких файлах (partial classes) [1].


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

Таблица 2. Сравнительная таблица операционных сред.

Операционная среда

Число каталогов

Число типов файлов

Блэкбокс

85

9

С++Builder

367

27

Visual Studio

3450

188

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

Экосистема Eclipse относится к консолидированным технологиям, получила широкое распространение она в 2007 году.

Система реализована на языке Java и первоначально являлась полноценной интегрированной средой для языка Java. Затем стали поддерживаться и иные языки. Первые версии были не очень удобны в том, что целевой продукт вынужденно содержал лишнюю функциональность. Начиная с третьей версии, архитектура всей системы была переработана для максимального разделения модулей и формирования взаимосвязи между ними [5]. Модули Eclipse, созданные из согласованных наборов классов, обеспечивали функциональность целых подсистем, - подсистемы помощи, обновления продукта, обучения, презентации, многоязыковой поддержки и др. При разработке приложения теперь стало возможным постепенное наращивание функциональности, подключая уже готовые бесплатные компоненты. В терминологии Eclipse данные компоненты носят названия «подключаемых модулей» или «плагинов» (Plugins). Данная технология уже является типичной для развитых операционных сред. Платформа на основе этой технологии получила название RCP (Reach Client Platform), а приложения, соответственно, RCP-приложениями [5].

Что касается графического интерфейса Eclipse, он построен с применением графической библиотеки SWT, опирающейся на графику используемой операционной системы. Существует возможность создания настраиваемых стилей, позволяющих произвольно изменять и внешний вид приложения, и поведение составляющих его элементов. Режимы работы могут быть объединены в одну панель, либо размещены в отдельных панелях, которые могут быть вызваны по необходимости кнопками [4].


Данные, используемые при создании приложения, размещаются в одном каталоге – рабочей области. Графическая среда разработки - инфраструктура для управления ресурсами рабочей области и навигации по ресурсам. Рабочая среда содержит одно или несколько окон, которые, в свою очередь, могут включать страницы. Каждая из страниц может содержать так называемые проекции, управляющие взаиморасположением редакторов и панелей для решения конкретных задач [2].

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

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

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

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

Также процессы разработки приложений, включающие модули расширений, отличаются от традиционных подходов. При запуске среды разработки формируется статический экземпляр рабочей среды, в котором создается программный код, происходит отладка и выполняются иные задачи производственного процесса. При запуске приложения на тестирование создается динамический экземпляр рабочей среды, включающий выбранные в конфигурации запуска разрабатываемые модули, и модули целевой платформы. Целевой платформой называется сборка продукта Eclipse, необходимая для развертывания разрабатываемых приложений [5].

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