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

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

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

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

Добавлен: 30.03.2023

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

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

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

Введение

С появлением компьютеров на электронных лампах в 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 Языки программирования низкого уровня

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