Файл: Основы алгоритмизации и программирования: классификация языков программирования. Критерии выбора среды и языка разработки программ.pdf
Добавлен: 23.04.2023
Просмотров: 258
Скачиваний: 1
СОДЕРЖАНИЕ
1. ИСТОРИЯ РАЗВИТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
2. ОСНОВНЫЕ СОВРЕМЕННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
2.1. Основные парадигмы современного программирования
2.2. Объектно-ориентированные языки программирования
2.3. Процедурные языки программирования
3. КРИТЕРИИ ВЫБОРА СРЕДЫ И ЯЗЫКА РАЗРАБОТКИ ПРОГРАММ
3.1. Рейтинг TIOBE для языков программирования
3.2. Критерии выбора языка программирования для разработки комплекса программных решений
Язык 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 года, и соответствующим образом пересмотрел его.