Добавлен: 25.04.2023
Просмотров: 81
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. КЛЮЧЕВЫЕ АСПЕКТЫ ВЫСОКОУРОВНЕВЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
1.1. Используемые концепции, понятия и определения
1.2. Ключевые парадигмы разработки в языках высокого уровня
ГЛАВА 2. АНАЛИЗ ПОПУЛЯРНЫХ НА ПРАКТИКЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
2.1. Преимущества и особенности языка Python
2.2. Преимущества и особенности языка С++
2.3. Преимущества и особенности языка С#
2.4. Преимущества и особенности языка Java
ГЛАВА 3. ОПИСАНИЕ ОСОБЕННОСТЕЙ РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОМОЩЬЮ ЯЗЫКА PYTHON
3.1. Описание разрабатываемого проекта приложения
3.2. Описание интерфейсной составляющей программного приложения
Агент, в отличие от объекта, принимает на себя обязательства или, отказывается от выполнения заданной работы, например из-за занятости другой задачей [18].
Типы агентов в АОП приведены в таблице 1.
Таблица 1 – Типы агентов в АОП
Характеристики |
Тип агента |
|||
Простой |
(Cмыш-ленный (smart) |
Интеллек- туальный (intelligent) |
Действительно (truly) интел-лектуальный |
|
Автономное выполнение |
+ |
+ |
+ |
|
Взаимодействие с другими агентами и/или пользователями |
+ |
+ |
+ |
+ |
Слежение за окружением |
+ |
+ |
+ |
+ |
Способность использовать абстракции |
+ |
+ |
+ |
|
Способность использовать предметные знания |
+ |
+ |
||
Возможность адаптивного поведения для достижения целей |
+ |
+ |
||
Обучение из окружения |
+ |
+ |
||
Толерантность к ошибкам и/или неверным входным сигналам |
+ |
|||
Re3 al -time-исполнен не |
+ |
|||
Естественно-языковое взаимодействие |
+ |
Агент также может выполнять действия: подавление, порождение и замена других агентов, активизация функций и сценария деятельности, запоминание активного состояния других агентов и др. Т.е. агент, будучи «активным объектом», формирующим свое поведение, находится на более высоком уровне сложности в сравнении с традиционными объектами в ООП.
Две базовые характеристики агента – целенаправленность и автономность отличать его от других объектов (подпрограмм, модулей и процедур).
Наличие целесообразности поведения агента требует, чтобы он обладал свойством реактивности.
Если он обладает знаниями о среде, собственных целях и вариантах их достижения, то агента называют когнитивным. В связи с этим может быть проведена граница между агентами [4].
Модель поведения агента в общем виде приведена на рисунке 2.
Рисунок 2 – Модель поведения агента в общем виде
В данном разделе был проведен анализ ключевых аспектов современных языков программирования высокого уровня. Освещены основные концепции, понятия и определения, описаны наиболее активно развивающиеся парадигмы разработки программного обеспечения – объектно-ориентированный и агентно-ориентированный подходы. Приведены основные элементы ООП и модель поведения агента.
ГЛАВА 2. АНАЛИЗ ПОПУЛЯРНЫХ НА ПРАКТИКЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
2.1. Преимущества и особенности языка Python
Python это современный объектно-ориентированный язык с поддержкой динамической типизации, автоматического процесса управления памятью, высокоуровневых гибких структур данных (словари, кортежи, списки). Все объекты в Python подразделяются на атомарные и ссылочные. К первым относятся int, long, complex.
При присвоении подобного рода объектов происходит копирование их значений, а в ссылочных объектах осуществляется копирование лишь указателя на объект, поэтому обе переменные после выполнения операции присваивания используют одинаковое значение.
Python поддерживает создание классов, связи модулей, гибкую и удобную обработку исключительных ситуаций и многопоточные методы вычислений. Кроме ООП данный язык структурное, функциональное и аспектно-ориентированное программирование.
Python позволяет определять тип переменной на этапе исполнения программы. В связи с этим вместо присваивания переменной определенного значения более корректным является использование фразы «связывания определенного значения с конкретным именем». В языке поддерживаются такие встроенные типы данных как: бинарный, строковый, Unicode, целочисленный с произвольно заданной степень точности, число с плавающей запятой, и ряд других [7].
Из современных коллекций язык обладает поддержкой таких встроенных структур как: список, словарь, кортеж (модифицируемый список), множество и др. Следует отметить, что все значения, также как и в Ruby, являются объектами, причем это характерно и для функций, модулей, методов и классов.
Основной реализацией языка является интерпретатор CPython, который поддерживает значительное число актуальных операционных платформ. Данный инструмент распространяется под свободной лицензией, это обеспечивает его применение без ограничений в любых, даже пропиетарных, приложениях. Разработаны версии интерпретаторов для JVM, MSIL и ряда других.
Добавить в программный код новый тип можно путем написания нового класса или определения нового типа в специальном модуле расширения, который может быть разработан на другом языке. Система классов поддерживает полноценные механизмы множественного и единичного наследования, а также функции метапрограммирования. Возможным, также является прямое наследование от подавляющего большинства встроенных типов расширений.
Строки и кортежи, относящиеся к встроенным коллекциям, являются не изменяемыми, а словари и списки – переменными, их можно модифицировать динамически. Поэтому кортежи в данном языке работают существенно быстрее чем списки [10].
Преимущества языка следующие.
1. Интерпретируемость. Это позволяет существенно упростить и облегчить отладку программ, однако при этом теряется скорость выполнения приложения.
2. Динамическая типизация. Это повышает общую скорость разработки кода.
3. Гибкая поддержка модульности. Разработанный модуль может быть легко интегрирован в код произвольных приложений.
4. Наличие возможности разработки кода по парадигме ООП. Планирование структуры приложения становиться проще и удобнее.
5. Автоматическая «сборка мусора», т.е. освобождение разработчика от необходимости слежения за утечками памяти.
6. Поддержка большого количества модулей, интегрированных и сторонних. В ряде распространенных случаев для разработки программы достаточно просто найти готовые модули и должным образом их связать между собой. Это позволяет разработчику сосредоточить внимание на более высоком уровне разработки и проектирования, работая с готовыми элементами.
7. Кроссплатформенность. Это позволяет запускать программное приложения, написанное на языке Python, на практически любой операционной системе, где установлен интерпретатор языка нужной версии и сборки [16].
2.2. Преимущества и особенности языка С++
С++ в настоящее время считается одним из наиболее сложных и функциональных языков, которые применяются при разработке программных приложений в сфере коммерции. В последние годы степень востребованности языка несколько изменилась, по причине того, что стал активно развиваться язык Java, поэтому некоторые программисты перешли с С++ на Jаvа [1]. Эти языки имеют много общего, поэтому зная один из них досконально для разработчика не составит большого друга оперативно перейти на другой язык.
Отличия C++ от C:
- объектно-ориентированное программирование через классы. C++ предоставляет— абстракцию, инкапсуляцию, наследование и полиморфизм;
- обобщенное программирование через шаблоны функций и классов;
- стандартная библиотека C++ состоит из стандартной библиотеки C и библиотеки шаблонов, которая предоставляет широкий набор контейнеров и алгоритмов;
- вспомогательные типы данных;
- обработка исключений;
- виртуальные функции;
- пространства имён;
- встраиваемые функции;
- перегрузка операторов;
- перегрузка имён функций;
- ссылки и операторы управления памятью [2].
В языке фактически отсутствуют элементарные операций и типы данных. В частности нет типа матрица с логической операцией обращения или элемента «строка» с поддержкой операций конкатенации. В случае, когда программисту необходимо использовать такие типы данных он способен самостоятельно инициализировать их в коде. Создание проекта на С++ в Code Blocks приведено на рисунке 3.
Рисунок 3 – Создание проекта на С++ в Code Blocks
С++ - это язык программирования, который включает в себя свойства низко-уровневых и высокоуровневых языков. Данный язык программирования используется для разработки разнообразного программного обеспечения [12].
Таким образом, процесс написания кода на С++ представляет собой процесс инициализации и описания логики взаимодействия нужных типов данных и операций. Следует отметить, что грамотно реализованный пользовательский тип данных отличен от встроенного лишь способом определения, а способ использования может остаться прежним.
В целом данный язык является программным средством широкого спектра действий, начиная от системного программирования и заканчивая разработкой распределенных и масштабируемых систем и приложений.
В процессе разработки языка первоочередной приоритет был поставлен на простоту и скорость работы. В связи с этим принципиальное значение было уделено вопросу совместимости с языком С, что явилось причиной использования большей части синтаксических конструкций [2].
C++ является своеобразным «предком» таких языков программирования, как C# и Java. Базой синтаксиса С++ является синтаксис языка С, программы написанные на этих языках поддерживаются и компилируются в своих компиляторах, хотя некоторые различия все таки есть.
Программа написанная на языке С++ состоит из функций. Каждый блок программы помещается в фигурные скобки {}. Функция main() – это главный блок приложения, написанного на языке С++. В круглых скобках записываются основные параметры.
Запись int main() сообщает о возвращении целочисленного значения. Если значение не возвращено, то это означает, что программа завершилась в аварийном режиме.
Для возвращения целочисленного значения перед завершением функции записывается строка return 0 [1]
В С++ существуют следующие типы данных [14]:
- символьные;
- целочисленные знаковые;
- целочисленные без знаковые;
- с плавающей точкой;
- логический.
2.3. Преимущества и особенности языка С#
Данный язык изначально создавался с целью обеспечения компонентного программирования, поэтому в его ядро закладывались возможности повторной инициализации и интеграции разработанных программистов программных компонентов.
Преимущества языка: включает расширенную и гибкую поддержку событийно-ориентированного программирования, эффективно интегрируется с существующими продуктами от Microsoft. Главными недостатками языка является довольно сложный синтаксис и не высокая, в сравнении с С++, производительность.
Предлагаемые средства разработки ПО продукты позволяют оперативно и гибко разрабатывать различные типы приложений, в частности, согласно [8]:
- консольные приложения;
- приложения с графическим интерфейсом, на базе использования популярной среди разработчиков десктопных решений технологии Windows Forms;
- веб-сайты, на базе использования ASP.net.
Особенностями данного языка являются:
-
- язык создавался параллельно с технологией .Net, что позволило разработчикам интегрировать все необходимые механизмы обеспечение функциональных взаимосвязей фреймворка, в том числе FCL и CLR;
- это полноценный объектно-ориентированным язык, причем даже примитивные типы данных языка представлены в качестве отдельных классов;
- поддержка механизмов наследования, инкапсуляции и полиморфизма;
- разработан на базе использования C и C ++, что позволило интегрировать наиболее функциональные возможности этих высокоуровневых языков программирования;
- с помощью поддержки ряда фреймворков, выступающих в виде некой надстройки над операционной системой пользователя, разработчики C# могут использовать механизмы создания и работы с виртуальной машиной, аналогично существующим технологиям языка Java [17].