Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Основные понятия и эволюция языков программирования).pdf
Добавлен: 30.03.2023
Просмотров: 137
Скачиваний: 1
СОДЕРЖАНИЕ
1. Понятие, сущность и классификация языков программирования
1.1 Основные понятия и эволюция языков программирования
1.2 Классификация языков программирования
1.2.1 Языки программирования низкого уровня
1.2.2 Языки программирования высокого уровня
1.2.3 Объектно-ориентированные языки
1.2.4 Декларативные языки программирования
2. Понятие, сущность и виды сред программирования
2.1 Понятие и сущность среды программирования
2.2 Виды интегрированных сред разработки
3. Критерии выбора среды и языка разработки программ
Введение
С появлением компьютеров на электронных лампах в 50-х годах XX века началось интенсивное развитие языков программирования. На текущий момент насчитывается шесть поколений языков программирования. При этом каждое из последующих поколений значительно отличается от предыдущего по качеству и функциональности. С появлением персональных компьютеров языки программирования стали частью интегрированных сред программирования (разработки).
На сегодняшний день языки программирования применяются в различных областях деятельности человека, таких как системное программирование, научные вычисления, искусственный интеллект, обработка информации, издательская деятельность, удаленная обработка данных, описание документов и т.п. Со временем некоторые языки программирования развивались и остались востребованными и на текущий момент, а другие в то же время утратили актуальность и представляют только теоретический интерес в контексте изучения эволюции языков программирования.
Цель работы – описать языки и среды программирования.
На основании поставленной цели можно сформулировать следующие задачи:
– изучить понятие, сущность, классификацию и эволюцию языков программирования;
– изучить понятие, сущность и виды сред программирования;
– описать критерии выбора среды и языка разработки программ.
Объект исследования – программирование.
Предмет исследования – языки и среды программирования.
В ходе написания курсовой работы использовались следующие литературные источники:
– учебники;
– учебно-методические пособия;
– научные журналы;
– сборники статей;
– сборники трудов по материалам конференций;
– карманные справочники;
– энциклопедические словари и др.
Публикации в сети интернет и на «желтых страницах» (газетах и т.п.) не рассматривались ввиду своей ненадежности и не достоверности данных (никто эти факты не проверяет, кто угодно может написать о чем угодно).
Из периодических изданий рассматривались только научные журналы, причем большинство их них имеют отметки ВАК (Высшая Аттестационная Комиссия) и РИНЦ (Российский индекс научного цитирования), что подтверждает авторитетность источника и признание его научным сообществом.
Наиболее достоверными и надежными источниками можно считать учебники (в том числе для вузов), так как они издаются серьезными издательствами, университетами, академией наук и тщательно проверяются.
В ходе исследования изучены труды таких российских ученых в области информатики и программирования как Р. Аблязов, Н.П. Быканов, Т.Н. Губина, А.П. Ершов, С.В. Зыков, Г.Н. Исаева, О. Калашников, Е.В. Кудрина, А.В. Матросов и др.
1. Понятие, сущность и классификация языков программирования
1.1 Основные понятия и эволюция языков программирования
Для начала рассмотрим понятие «программирование». В широком смысле программирование – это процесс составления плана действий или программ. В узком смысле – это раздел прикладной математики, который изучает методы и способы реализации алгоритма решения конкретной задачи, составление программы, ее эксплуатацию и отладку.
Программирование – процесс создания программ.
«Математический энциклопедический словарь» [29] дает следующее определение понятию «язык программирования». Это формальная знаковая система, которая служит общению человека с электронной вычислительной машиной (ЭВМ)».
В классическом учебнике «Курс программирования» Е. Жоголевой и Н. Трифоновой [10] дано следующее определение: «Алгоритмический язык – это алфавит языка (набор символов), система правил образования из этих символов конструкций, с помощью которых представляются определенные компоненты алгоритма (синтаксис языка), и система правил истолкования этих конструкций, позволяющих однозначно воспроизводить процесс переработки данных (семантика языка)».
В книге «Сравнительное изучение языков программирования» Брайана Хигмана [35] дано следующее толкования данному понятию: «Назначение языка программирования состоит в передаче и хранении упорядоченных последовательностей инструкций или алгоритмов».
Современное определение понятия «язык программирования» или «алгоритмический язык» – это набор правил, которые определят, какие последовательности символов составляют программу и какие вычисления описывает программа, т.е. синтаксические и семантические правила.
Следовательно, язык программирования – это формализованный язык для написания программ.
Все языки программирования являются искусственными, так как в них семантика и синтаксис строго определены [15].
Дадим определения еще нескольким понятиям, связанным с программированием.
Алгоритм – точный набор инструкций, которые необходимо выполнить для решения поставленной задачи за конечное число итераций (шагов).
Команда – элементарное предписание, предусматривающее выполнение какого-либо действия [5].
Операторы – действия, предписываемые командой.
Программа – данные, их описание и алгоритм, записанный на языке программирования.
Изучим историю развития языков программирования.
Основные события в истории развития языков программирования представлены в Приложении 1.
На основании данных событий в истории развития языков программирования можно выделить следующие этапы [18]:
1 этап (1940 – 1950 гг.) – машинные коды, непосредственно воспринимаемые машиной. Составление программ для первых ЭВМ – малопроизводительный и утомительный процесс с большим количеством ошибок.
2 этап (1950 – 1960 гг.) – символические ассемблеры – условные мнемонические обозначения-автокоды. Программа, составленная на ассемблере, переводится на машинный язык с помощью специальной программы, тоже называемой ассемблером.
3 этап (1960 – 1970 гг.) – процедурно-ориентированные, объектно-ориентированные языки программирования высокого уровня.
4 этап (1970 – 1980 гг.) – языки систем управления базами данных.
5 этап (1995 – 1999 гг.) – языки, приближенные к человеческой логике и применимые в интернете.
6 этап (с 2000 г.) – виток функционального программирования. Новые языки и появление полноценного объектно-ориентированного программирования заставили разработчиков вернуться к императивному программированию. Но в XXI веке все изменилось. Этому способствовали маломощные машины – смартфоны. Высокие требования при скромной производительности вынуждают мыслить функциями, а не привязываться к данным [18].
Основные виды языков программирования представлены в таблице 1.
Таблица 1
Основные виды языков программирования
Язык |
Сфера применения |
Описание |
Ада |
В обороне |
Высокого уровня |
Ассемблер |
Работы, требующие детального контроля за аппаратным обеспечением, быстрого исполнения и программ малого размера |
Быстрый и эффективный, но требующий определенных усилий и навыков |
Бейсик |
В образовании, бизнесе, дома |
Прост в изучении |
С |
Системное программирование, универсальное программирование |
Быстрый и эффективный, широко используется как универсальный язык |
С ++ |
В объектно-ориентированном программировании |
Основан на языке С |
Кобол |
Программирование в бизнесе |
Жестко ориентирован на коммерческие задачи, прост в изучении, но очень много операторов |
Форт |
Управление приложениями |
Использует инверсную польскую запись |
Фортран |
Научная работа и вычисления |
Основан на математических формулах |
Лисп |
Искусственный интеллект |
Язык символов с репутацией трудно изучаемого |
Модула-2 |
Системное программирование и программирование в режиме реального времени, универсальное программирование |
Высоко структурирован, предназначен заменить Паскаль для приложений «реального мира» |
Оберон |
Универсальное программирование |
Небольшой компактный язык, соединяющий в себе многие черты Паскаля и Модула-2 |
Паскаль |
Универсальный язык |
Высоко структурирован |
Пролог |
Искусственный интеллект |
Символьно-логическая система программирования, предназначенная для решения теорем, но использующаяся для решения задач с искусственным интеллектом |
Источник: [17]
1.2 Классификация языков программирования
В настоящее время сложилось довольно много классификаций языков программирования. Приведем самые известные из них.
1. Классификация по поддерживаемым методологиям;
Появилась примерно в 80-х годах XX века. Основные группы языков программирования согласно этой классификации:
а) языки императивного программирования;
Императивная программа похожа на приказы (англ. imperative – приказ), выражаемые повелительным наклонением на естественном языке, т.е. представляет собой последовательность команд, которые должен выполнить компьютер [4].
– языки структурного императивного программирования (языки структурного программирования);
– языки императивного параллельного программирования (языки параллельного программирования).
б) языки объектно-ориентированного программирования;
Это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых – экземпляр определенного класса, а классы образуют иерархию наследования [15].
в) языки функционального программирования;
Функциональное программирование – парадигма программирования, при которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних.
г) языки логического программирования;
Логическое программирование – парадигма программирования, которая основана на автоматическом доказательстве теорем, принципах логического вывода информации на основе заданных фактов и правил вывода.
д) языки программирования в ограничениях.
Это парадигма программирования, в которой отношения между переменными указаны в форме ограничений.
2. Классификация по принадлежности к семействам;
Основная задача классификации языков по принадлежности к семействам – проследить их родственные взаимосвязи (построить генеалогическое дерево) с целью выяснения влияния друг на друга и на характеристики и свойства языков. Это довольно нечеткая классификация, выделим несколько основных семейств [15]:
– семейство уникальных языков;
– семейство универсальных языков;
– семейство языков параллельного программирования;
– Pascal-семейство;
– C-семейство;
– Ada-семейство;
– Simula-семейство;
– Prolog-семейство;
– Lisp-семейство.
3. Классификация по ориентации на предметные области;
Язык программирования может быть специализированным под некоторую предметную область [4].
Выделим несколько таких предметных областей:
– языки конфигурирования;
– языки описания виртуальной реальности;
– языки описания аппаратуры;
– языки создания графиков;
– языки программирования агентов;
– языки скриптов;
– языки разметки;
– языки форматирования текстов;
– промежуточные языки программирования.
4. Классификация по степени абстракции от аппаратуры (машины);
Выделим три группы языков [12]:
а) языки низкого уровня;
Имеют простые машиноподобные команды и осуществляют прямой доступ к памяти (например, ассемблер для любой архитектуры).
б) языки высокого уровня;
Предоставляют возможность определять сложные структуры данных, при этом доступ к памяти осуществляется через операции. Примеры: Ada, Pascal, С [8].
в) языки сверхвысокого уровня.
Команды исполняются на абстрактной машине, доступ к памяти скрыт. Примеры: SETL, Prolog, Miranda, APL.
5. Классификации по истории языков программирования.
Это так называемая классификация «по поколениям». В этом плане довольно уместен подход Дж. Вэгнера, который выделяет четыре поколения языков программирования.
К первому (1954 – 1958 гг.) он относит Fortran I, Flowmatic, Algol-58, IPL-V, предоставившие пользователям возможность работы с математическими формулами [9].
Второе поколение (1959 – 1961 гг.) у Вэгнера составляют Fortran II, Algol-60, COBOL, LISP.
В третьем поколении (1962 – 1970 гг.) присутствуют PL/1 (Fortran + Algol + COBOL), Pascal (развитие Algol-60), Algol-68 (преемник ALGOL-60), Simula.
К четвертому поколению (1970 – 1980 гг.) Вэгнер относит множество языков программирования, из которых лишь немногие доказали свою жизнеспособность.
6. Классификация языков программирования по категориям связана с методами, которые используются при написании программ (рисунок 1).
Рисунок 1 – Классификация языков программирования по категориям
Рассмотрим их подробнее.
1.2.1 Языки программирования низкого уровня
Программирование на первых компьютерах происходило с помощью двоичного машинного кода. Такое программирование тяжелое и трудоемкое. Для упрощения этого процесса и разрабатывались языки программирования низкого уровня, они позволяли задавать машинные команды в понятном для пользователя виде. Чтобы преобразовать их в двоичный код создавались трансляторы.