Файл: «Современные языки программирования»..pdf

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

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

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

Добавлен: 18.06.2023

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

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

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

Языки программирования

Процедурные

Непроцедурные

Объектно-ориентированные

Структурные

Операционные

Функциональ­ные

Логические

Рис. 3 Классификация языков программирования (второй вариант)

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

Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века и предполагает реализацию программы без описания последовательности действий. К непроцедурному программированию относятся функциональные и логические языки.

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

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

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

Языки программирования

Степень ориентации на возможности ЭВМ

Степень

детализации алгоритма получения результата

Степень

ориентации на определенный класс задач

Возможность дополнения новыми типами данных и операциями

Машинно-зависимые

Машинно-независимые

Низкого уровня

Высокого уровня

Сверхвысокого уровня

Проблемно- ориентированные

Универсальные

Расширяемые

Нерасширяемые

Возможность управления реальными объектами и процессами

Способ получения результата

Тип решаемых задач


Систем реального времени

Систем условного времени

Процедурные

Непроцедурные

Системного программирования

Прикладного программирования

Рис. 4 Сводная схема классификации языков программирования

Реляционные

Функциональные

Логические

По типу встроенной процедуры поиска решения

1.3 Поколения языков программирования

Языки программирования по своим функциональным возможностям и времени создания принято разделять на несколько поколений (Generation Language, GL). На сегодняшний день выделяют пять поколений языков программирования. Каждое последующее поколение языков по своей функциональной мощности качественно отличается от предыдущего:

Первое поколение языков программирования (1GL): машинно-ориентированные языки программирования с ручным управлением памяти.

Второе поколение языков программирования (2GL): автокоды – языки программирования с мнемоническим представлением команд.

Третье поколение языков программирования (3GL): языки программирования общего назначения, предназначенные для разработки прикладных программ любого типа.

Четвертое поколение языков программирования (4GL): усовершенствованные языки программирования 3GL, разработанные для создания специальных прикладных программ, для управления базами данных.

Пятое поколение языков программирования (5GL): декларативные языки программирования для построения программ с использованием методов искусственного интеллекта, объектно-ориентированные и визуальные принципы программирования.

В первое поколение (1GL) входят языки, созданные в 40 - 50-х годах. Программы на языках поколения 1GL писались в машинных кодах, т. е. каждая компьютерная команда вместе с ее операндами вводилась в ЭВМ в двоичном виде, что требовало огромных усилий по набору цифровых текстов и приводило к множеству трудноуловимых ошибок. К первому поколению языков программирования также относят первый ассемблер (50-е гг.), который позволял задавать названия команд в символическом виде и указывать числа не только в двоичном, но и в десятичном или шестнадцатеричном формате, что существенно облегчало работу программистов. Языки первого поколения продолжают использоваться - программы в машинных кодах для новых микропроцессоров, для которых еще не разработаны компиляторы, поддерживающие требуемый набор команд.


Языки программирования 2GL - конец 50-х  -  начало 60-х годов - создан символический ассемблер, позволявший писать программы без привязки к конкретным адресам памяти. Было введено понятие переменной. Скорость разработки и эффективность функционирования программ резко возросли. Ассемблеры активно применяются в настоящее время, как правило, для создания программ, максимально использующих возможности аппаратуры  -  различных драйверов, модулей состыковки с нестандартным оборудованием и т.д.

Вторая половина 60-х гг. – появление языков программирования 3GL. Языки программирования 3GL - универсальные языки программирования высокого уровня, позволяющие решать задачи из любых прикладных областей. Основные качества языков программирования 3GL - качества новых языков - как относительная простота, независимость от конкретного компьютера и возможность использования мощных синтаксических конструкций.

Языки программирования 4GL не имеют единой практической или алгоритмической направленности. В рамках четвертого поколения языков программирования выделяют четыре основных направления эволюционирования языков программирования:

  1. Непроцедурное программирование – языки программирования искусственного интеллекта;
  2. Объектно-ориентированное программирование (внедрение в программирование принципов наследования, полиморфизма и инкапсуляции);
  3. Языки обработки баз данных – языки запросов;
  4. Языки параллельного программирования для создания программного обеспечения для вычислительных средств параллельной архитектуры (многомашинные, мультипроцессорные среды и др.).

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

ГЛАВА 2 ХАРАКТЕРИСТИКА СОВРЕМЕННЫХ ЯЗЫКОВ И СИСТЕМ ПРОГРАММИРОВАНИЯ

2.1 Современные языки программирования

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


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

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

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

Базовыми свойствами объектно-ориентированного программирования являются:

Инкапсуляция (Encapsulation) - механизм объединения в одном объекте данных и действий над ним.

Например, объект кнопка – ее свойства: внешний вид, координаты углов и др., события: нажатие на кнопку, перемещение курсора мыши над кнопкой.

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

Полиморфизм (Polymorphism) - свойство, которое позволяет одно и то же имя использовать для решения нескольких технически разных задач. Полиморфизм подразумевает такое определение методов в иерархии типов, при котором метод с одним именем может применяться к различным родственным объектам. В общем смысле концепцией полиморфизма является идея «один интерфейс - множество методов». Преимуществом полиморфизма является то, что он помогает снижать сложность программ, разрешая использование одного интерфейса для единого класса действий. Выбор конкретного действия в зависимости от ситуации возлагается на компилятор.


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

Формат обращения к свойствам объекта[1]*:

<имя объекта>.<свойство>:=<значение>

или

<имя объекта>.<свойство>.<подсвойство(~а)>:=<значение>

Формат обращения к методам объекта:

<имя объекта>.<метод>

2.2 Современные системы программирования

Большинство современных систем программирования относятся к классу синтаксически-управляемая система программирования, а также поддерживают технологию визуального программирования - создания программы путём манипулирования графическими объектами вместо написания её текста.

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

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

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

В качестве основных тенденций в развитии современных систем программирования следует указать внедрение в них средств разработки на основе так называемых языков четвертого поколения 4GL, а также поддержка систем быстрой разработки программного обеспечения RAD (rapid application development).