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

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

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

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

Добавлен: 30.03.2023

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

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

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

Рисунок 12 - Доля рынка языков программирования высокого уровня

3. Си (С) [20][45] – изначально был разработан для создания операционной системы и создания системного программного обеспечения. Язык С (читается как СИ) - сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам.

4. Си++ (С++) [20][46] - объектно-ориентированное расширение языка С. Сочетает достоинства объектно-ориентированного подхода и простоты языка С.

5. Delphi [7][47] - объектно-ориентированное расширение языка Паскаль. Достоинства: простой интерфейс для разработки, легкое взаимодействие с базами данных, поддержка разработки приложений для корпоративных сетей и сети Интернет.

6. Лисп (Lisp) - функциональный язык программирования. Работает со структурами данных в виде списка - организует эффективную обработку текстовой информации.

9. Пролог [4][48] - логический язык программирования высокого уровня. Пролог разработан специально для работы с базами данных знаний, основанных на фактах и правилах.

Существуют еще и специализированные языки программирования для Интернета:

1. HTML - язык гипертекстовой разметки. HTML прост и содержит элементарные команды организации ссылок, добавления рисунков и таблиц, форматирования текста, задания шрифтов и цветов.

2. PERL – язык для эффективной обработки больших текстовых файлов, работы с текстовыми отчетами и управления задачами.

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

1. Различают различные поколения языков программирования, которые связаны с развитием науки и техники определенных лет.

2. Языки программирования высокого уровня классифицируются по следующим характеристикам:

  • по степени ориентации на возможности ЭВМ
  • по типу решаемых задач
  • по степени ориентации на класс задач
  • по степени детализации алгоритма
  • по способу получения результата
  • по возможности создания новых типов данных и операций

3. Приведена краткая характеристика известных языков программирования высокого уровня


ГЛАВА 3. ОСОБЕННОСТИ СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

3.1. Объектно-ориентированная парадигма программирования

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

Появление первых компьютеров [6][49] ознаменовало новый этап в развитии компьютерных технологий. Казалось, что достаточно разработать последовательность элементарных действий, каждая из которых может быть преобразована в понятные компьютерные команды, и любая вычислительная задача будет решена. Эта идея долгое время доминировала над процессом разработки программного обеспечения.

Эта методология была основана на идее процедурного программирования [19][50]. Отправной точкой в этой методологии было понятие алгоритма. Алгоритм [5][51] - это способ решения вычислительных и других задач, описывающий последовательность действий, которые компьютер должен выполнять для достижения желаемой цели (рис. 13).

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

Рисунок 13– Процедурное программирование [6][52]

Дальнейшее увеличение количества программных систем способствовало новому взгляду на процесс разработки программного обеспечения и написанию кода, который стал известен как методология структурированного программирования [19][53] (Рисунок 14 14).

Рисунок 14 – Структурное программирование [19][54]

Во второй половине 1980-х годов появилась новая методология программирования, которая смогла решить все сложные проблемы (увеличение объемов кода, постоянное изменение требований клиентов, повышение надежности программного обеспечения). Он стал называться методологией объектно-ориентированного программирования (ООП) [11][55].


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

Семантика (смысл программы с точки зрения ее производительности) и прагматика (смысл программы с точки зрения ее членов) [3].

Простота модели по отношению к реальному объекту, позволяет сделать ее формальной. Это упрощает разработку и реализацию программы на компьютере. [3][57]

Рисунок 15– Объектно-ориентированное программирование

Объектно-ориентированный подход [17][58] к программированию имеет следующие достоинства по отношению к разрабатываемому программному обеспечению:

  • Снижение сложности разработки;
  • повышение надежности продукта;
  • изоляция изменений;
  • повторное использование кода

3.2. Классы и объекты

Класс [15][59] - это программный элемент, который описывает абстрактный тип данных и его частичную или полную реализацию. Наряду с концепцией «объект», класс является ключевым понятием в ООП.

На практике объектно-ориентированное программирование сводится к созданию ряда классов [15][60] (рис. 16), включая интерфейс [3][61] их реализацию последующее использование.

Рисунок 16 – Описание класса

Графическое представление ряда классов и отношений между ними называется диаграммой классов [18][62] (рис. 17).

Рисунок 17 – Диаграмма классов

Идея классов [18][63] исходила из работ связанных с исследованиями в области искусственного интеллекта. Человеческие классификации в зоологии, ботанике, химии, машинных частях несут основную идею о том, что любая вещь всегда может быть представлена как частный случай более общей концепции.

У класса определены две роли [15][64]:

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

Проектирование системы сводится к поиску абстракций данных, которые подходят для выполнения конкретной задачи. Каждая из этих абстракций должна быть реализована как класс.

Общий синтаксис описания класса предстает в следующем виде[18][66]:

[атрибуты][модификаторы]class имя_класса[:список_родителей]

{тело_класса}

Модификаторы класса могут быть:

  • abstract, sealed, необходимы для наследования,
  • private и protected - необходимы для вложенных классов.
  • public – доступны для всех.

В теле класса могут быть объявлены [3][67]:

  • конструкторы и деструкторы;
  • методы;
  • константы;
  • поля;
  • события;
  • классы (структуры, делегаты, интерфейсы, перечисления).

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

Объект [3][68] характеризуется характеристиками конкретных значений из списка всех возможных свойств данного объекта. Каждый объект, получив сообщение, обязан «отреагировать» на них определенным образом, выполнив определенные действия для сообщения.

Объекты отображаются на диаграмме объектов [15][69] (рис. 18)

Рисунок 18 – Диаграмма объектов

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

Возможные операции над объектами (рис. 19) [4][70]:

  • создание – первоначальное объявление объекта;
  • модификация – изменение объекта [4][71];
  • уничтожение – удаление объекта из памяти;
  • выбор - определения состояния объекта;
  • итерация - способность использовать содержимое объекта по частям в определенной последовательности.

Рисунок 19 - - Типы операций над объектом

3.3. Наследование и полиморфизм

Основные средства разработки классов [16][72]

Наследование. (рис. 20) Базовый класс, часто называют родителем, а производный - потомком. Механизм наследования [2][73] обеспечивает классу-потомку возможность использования полей и методов одного или нескольких родительских классов.


Рисунок 20- Иерархия классов при различных видах наследования [2][74]

Простой полиморфизм (Рисунок 21). Создавая иерархии классов можно обнаружить, что некоторые характеристики объектов, сохраняя название, изменяются, по сути [8][75]. Полиморфизм называют простым, а методы, имеющие одинаковое название - статически полиморфными методами. Объединение полиморфных методов [16][76] с одним именем для иерархии классов образует единый полиморфный метод иерархии.

Рисунок 21 - Полиморфизм

3.4. События

Каждый объект является экземпляром класса [16][77]. Класс определяет свойства и поведение его экземпляров. Методы класса определяют поведение объектов, свойств, их состояние. Все объекты имеют одинаковые методы и, следовательно, ведут себя одинаково.

Одним из самых известных способов задания поведения класса является наследование. Второй способ задания поведения класса - это механизм событий. Классы, помимо свойств и методов, могут иметь события [13][78].

Событие - это особое состояние, в котором может быть объект класса. Кнопка может быть нажата - событие сlick, документ может быть закрыт - событие сlose и т.д.

Интерфейс и многие другие программные объекты имеют стандартный набор предопределенных событий. Класс, в котором есть событие будет содержать следующие пункты: [12][79]

  • объявленное событие в классе;
  • зажигание события в соответствующее время, передача обработчику, необходимых аргументов.
  • анализ события. (рис. 22)

Рисунок 22- Взаимодействие объектов. Посылка и получение сообщения о событии

Обработчик события [12][80] - это обычная процедура с аргументами. Сообщение, посылаемое при зажигании события, является аналогом вызова процедуры. Объявление события синтаксически задает сигнатуру процедуры.

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