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

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

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

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

Добавлен: 23.04.2023

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

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

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

Язык Perl создавался в помощь системному администратору операционной системы Unix для обработки различного рода текстов и выделения нужной информации. Развился до мощного средства работы с текстами. Есть интерпретируется языком и реализован практически на всех существующих платформах. Применяется при обработке текстов, а также для динамической генерации веб-страниц на веб-сервере [2].

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

Историю развития языков программирования можно отразить следующей классификацией.

1 поколение - 1GL (First Generation Languages):

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

2 поколение - 2GL

Конец 1950-х - начало 1960-х гг - разработан символьный ассемблер, в котором появилось понятие переменной. Это первый полноценный язык программирования. Программы применяются для создания драйверов оборудования компьютеров [2].

3 поколение - 3GL

1960-е годы - языки программирования высокого уровня. Их характеристики:

- относительная простота;

- независимость от конкретного компьютера;

- возможность использования мощных синтаксических конструкций.

В связи с проблемой переноса программ с одной машины на другую и отсутствием общей точки зрения на то, что именно считать стандартом этого языка программирования, Американский национальный институт стандартов (ANSI) и Международная организация по стандартизации (ISO) приняли стандарты для многих популярных языков программирования [2].

4 поколение - 4GL

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

5 поколение - 5GL


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

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

2.1. Основные парадигмы современного программирования

Выделяют четыре основных парадигмы программирования: процедурное, функциональное, логическое и объектно-ориентированное программирование [1].

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

Выполнение программы в функциональном программировании рассматривается как вызов некоторой функции, которая, в свою очередь, может вызвать другие функции. Наиболее известным представителем этой парадигмы является ЛИСП [1].

В основе выполнения программы в логическом программировании лежит механизм автоматического доведения теорем на основе логического вывода. Наиболее известный представитель - Пролог.

Парадигма объектно-ориентированного программирования является на сегодня наиболее популярной и стремительно развивается. Объектная программа рассматривается как совокупность параллельно существующих сущностей (объектов), которые взаимодействуют между собой. Каждый объект умеет вызывать определенные операции и характеризуется определенным поведением. Исторически первым объектной языком считается Smalltalk. Наиболее известными представителями этой парадигмы является C ++, Object Pascal, лежащий в основе системы визуального программирования Delphi, Java и другие языки.


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

Важным для дальнейшего рассмотрения есть данные рейтинга языков программирования по категориям (табл. 2.1). Отсюда ясно видно, что наибольшее практическое значение сегодня имеют объектно-ориентированные и процедурные языки программирования [2].

Таблица 2.1. Рейтинг языков программирования по категориям (2013) [2]

Категории языков программирования

Рейтинг в марте 2016

В сравнении с мартом 2015

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

58,7%

+5,3%

Процедурные

36,4%

-5,6%

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

3,6%

+0,5%

Логические

1,2%

-0,3%

Отдельно надо описать декларативно-логический язык программирования SQL.

SQL (англ. Structured query language - язык структурированных запросов) - декларативный язык программирования для взаимодействия пользователя с базами данных, применяется для формирования запросов, обновления и управления реляционными БД, создание схемы базы данных и ее модификации, системы контроля за доступом к базе данных. Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. В отличие от настоящих языков программирования (C или Pascal), SQL может формировать интерактивные запросы или, будучи встроенным в приложения, выступать в качестве инструкции для управления данными. Кроме этого, стандарт SQL содержит функции для определения изменения, проверки и защиты данных.

SQL - это диалоговый язык программирования для осуществления запроса и внесения изменений в базу данных, а также управления базами данных. Многие базы данных поддерживает SQL с расширениями стандартной языка. Ядро SQL формирует командный язык, который позволяет осуществлять поиск, вставку, обновление и удаление данных с помощью использования системы управления и административных функций. SQL также включает CLI (Call Level Interface) для доступа и управления базами данных дистанционно [2].


2.2. Объектно-ориентированные языки программирования

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

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

Каждый объект имеет процедуры и функции (то что он умеет выполнять, например, загружать файл, отображать картинку и т.д.), которые служат для работы с данными объекта. Эти процедуры и функции называются методами [1].

Существование ООП возможно благодаря трем основным парадигмам на которых базируется именно ООП [1]:

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

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

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


Самым известным и старым из ныне используемых языков ООП-программирования есть С++ [1].

Си++ (англ. C++) - компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования.

Язык программирования C ++ имеет историю, восходящую к 1979 году. Одним из языков, созданных Страуструпом, был язык под названием «Симула», который, как следует из названия, является языком, в основном предназначенным для моделирования. Язык Simula 67, являлся вариантом, с которым работал Stroustrup, рассматривается как первый язык для поддержки парадигмы объектно-ориентированного программирования. Строуступ обнаружил, что эта парадигма очень полезна для разработки программного обеспечения, однако язык Simula был слишком медленным для практического использования.

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

В 1983 году название языка было изменено с C с классами на C ++. Оператор ++ на языке C является оператором для увеличения переменной, что дает некоторое представление о том, как Страуструп рассматривал этот язык. В это время было добавлено много новых функций, наиболее заметными из которых являются виртуальные функции, перегрузка функций, ссылки на символ &, ключевое слово const и однострочные комментарии с использованием двух косых черт (что является функцией, взятой из языка BCPL ).

В 1985 году была опубликована ссылка Страуструпа на язык под названием «Язык программирования на С ++». В том же году C ++ был реализован как коммерческий продукт. Язык еще официально не стандартизован, что делает книгу очень важной ссылкой. Язык был обновлен снова в 1989 году, чтобы включить защищенные и статические члены, а также наследование из нескольких классов.

В 1998 году комитет по стандартам C ++ опубликовал первый международный стандарт для C ++ ISO / IEC 14882: 1998, который будет неофициально известен как C ++ 98. Было упомянуто, что справочное руководство Annotated C ++ оказывает большое влияние на разработку стандарта. Также была включена Библиотека стандартных шаблонов, которая начала свою концептуальную разработку в 1979 году. В 2003 году комитет ответил на многочисленные проблемы, о которых сообщалось со своим стандартом 1998 года, и соответствующим образом пересмотрел его.