Файл: Используемые концепции, понятия и определения.pdf

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

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

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

Добавлен: 25.04.2023

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

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

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

Агент, в отличие от объекта, принимает на себя обязательства или, отказывается от выполнения заданной работы, например из-за занятости другой задачей [18].

Типы агентов в АОП приведены в таблице 1.

Таблица 1 – Типы агентов в АОП

Характеристики

Тип агента

Простой

(Cмыш-ленный (smart)

Интеллек­-

туальный

(intelligent)

Действитель­но (truly) интел-лектуаль­ный

Автономное выполнение

+

+

+

Взаимодействие с другими агентами и/или пользовате­лями

+

+

+

+

Слежение за окружением

+

+

+

+

Способность использовать абстракции

+

+

+

Способность использовать предметные знания

+

+

Возможность адаптивного

поведения для достижения целей

+

+

Обучение из окружения

+

+

Толерантность к ошибкам и/или неверным входным сигналам

+

Re3

al -time-исполнен не

+

Естественно-языковое

взаимодействие

+

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

Две базовые характеристики агента – целенаправленность и автономность отличать его от других объектов (подпрограмм, модулей и процедур).

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


Если он обладает знаниями о среде, собственных целях и вариантах их достижения, то агента называют когнитивным. В связи с этим может быть проведена граница между агентами [4].

Модель поведения агента в общем виде приведена на рисунке 2.

Рисунок 2 – Модель поведения агента в общем виде

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

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

ГЛАВА 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].