Файл: «Современные языки программирования»( Поколения языков программирования).pdf
Добавлен: 18.06.2023
Просмотров: 215
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ СОВРЕМЕННЫХ ЯЗЫКОВ И СИСТЕМ ПРОГРАММИРОВАНИЯ
1.1 Определение и назначение языков и систем программирования
1.2 Классификация и история развития языков программирования
1.3 Поколения языков программирования
ГЛАВА 2 ХАРАКТЕРИСТИКА СОВРЕМЕННЫХ ЯЗЫКОВ И СИСТЕМ ПРОГРАММИРОВАНИЯ
2.1 Современные языки программирования
2.2 Современные системы программирования
ВВЕДЕНИЕ
С момента создания первых программируемых устройств человечество придумало уже более восьми с половиной тысяч языков программирования. Каждый год количество языков программирования растет. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты иногда применяют в своей работе более десятка разнообразных языков программирования.
Всем вышесказанным обусловлена актуальность темы данной работы, в которой предполагается провести изучение основных понятий, связанных с программированием и тем инструментарием, который используется для разработки программ.
Целью работы является изучение классификации языков программирования, их эволюции и структур систем программирования с целью выявления основных характеристик и тенденций развития современных языков и систем программирования.
Для достижения поставленной цели были выделены следующие задачи:
- дать определение и назначение языков и систем программирования;
- изучить классификацию и историю развития языков программирования;
- рассмотреть поколения языков программирования;
- изучить современные языки программирования;
- дать характеристику современным системам программирования.
Объект исследования – языки программирования.
Предмет исследования – современные языки программирования.
Структура работы состоит из введения, основной части, заключения и списка литературы.
Теоретической и методологической базой данной работы послужили труды российских и зарубежных авторов в области программирования, материалы периодических изданий и сети Интернет.
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ СОВРЕМЕННЫХ ЯЗЫКОВ И СИСТЕМ ПРОГРАММИРОВАНИЯ
1.1 Определение и назначение языков и систем программирования
В процессе своей работы компьютер производит выполнение инструкций различных программ, т.е. набора определённых команд следующих в определённом порядке. Машинная команда, доступная для восприятия и выполнения компьютером, записана в виде двоичного кода, т.е. состоит из нулей и единиц, указывает, какое именно действие должен выполнить центральный процессор. Следовательно, для того чтобы задать компьютеру последовательность действий, необходимых для выполнения, требуется задать последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из сотен и тысяч команд и их написание очень сложный процесс. Программисту требуется знать и помнить комбинацию нулей и единиц двоичного кода каждой программы, а также двоичные коды адресов данных, используемых при её выполнении. Значительно проще для программиста создавать программу на языке близком к естественному человеческому языку, а затем переводить полученный программный код в машинные команды. Перевод текста программы, записанной на языке близком к естественному человеческому языку, производится с помощью специальных программ-трансляторов. При этом перевод программного текста в исполнимый код, записанный на машинном языке, производится по определенным правилам путем сопоставления и дальнейшей замены команды языка программирования на соответствующую ей команду или серию команд на машинном языке.
Таким образом, любой язык программирования – это формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (компьютера).
Язык программирования определяет набор правил, используемых при составлении компьютерной программы. Каждый язык программирования имеет алфавит, словарный запас, свою грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита. Синтаксис языка программирования устанавливает жесткие правила, которым должна удовлетворять запись кода.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных. Другими словами можно сказать, что семантика - совокупность правил, определяющих смысл синтаксически корректных конструкций языка, его содержание. Семантику языка программирования закладывают в его компилятор. Таким образом, синтаксически корректная программа, написанная на языке программирования, после преобразования ее в последовательность машинных команд обеспечит выполнение ЭВМ требуемых операций.
Язык программирования позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах. Алгоритмические конструкции в языке программирования записываются с помощью соответствующих операторов. Информация, подаваемая на вход программе, называется данными.
Языки программирования являются ядром систем программирования.
Система программирования – это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования представляют разработчикам сервисные возможности, необходимые для разработки прикладных и системных программ.
В общем состав систем программирования представляют:
- трансляторы с языков высокого уровня;
- специализированные средства, предназначенные для редактирования, компоновки и загрузки программ;
- макроассемблеры (машинно-ориентированные языки);
- средства отладки программ.
В состав современных систем программирования входят:
- Текстовый редактор (меню Edit), осуществляет функции записи и редактирования исходного текста программы;
- Загрузчик программ (меню File – Open …), позволяет выбирать из директории нужный текстовый файл программы;
- «Запускатель» программ (меню Run);
- Компилятор (меню Compile), предназначен для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и логических ошибок;
- Отладчик (меню Debug), выполняет сервисные функции по отладке и тестированию программы;
- Диспетчер файлов (меню File), предоставляет возможность выполнения операций с файлами: сохранение, поиск, уничтожение и т.д.
Помимо перечисленных традиционных сервисов систем программирования многие системы программирования включают в себя:
- Search – поиск и замена фрагментов в тексте;
- Tools – набор инструментальных программных средств;
- Options – установка опций интегрированной среды;
- Window – работа с окнами.
Современные системы программирования (среды программирования) являются по своей функциональности интегрированными средами разработки IDE - integrated development environment. Самая первая среда разработки была создана для работы с языком программирования Basic.
Различают два класса систем программирования:
- системы программирования общего назначения;
- языково-ориентированные системы (среды) программирования.
Системы программирования
Системы программирования общего назначения
Языково-ориентированные системы программирования
Интерпретирующие и компилирующие системы программирования
Синтаксически-управляемые системы программирования
Рис. 1 Классификация систем программирования
Системы программирования общего назначения содержат набор программных инструментов, поддерживающих разработку программ на разных языках программирования.
Языково-ориентированная система программирования предназначена для поддержки разработки программы на каком-либо одном языке программирования, и знания об этом языке существенно использовались при построении такой системы. Вследствие этого в такой среде могут быть доступны достаточно мощные возможности, учитывающие специфику данного языка. Такие системы программирования разделяются на два подкласса:
- Интерпретирующие и компилирующие системы;
- Синтаксически-управляемые системы программирования.
Интерпретирующие и компилирующие системы программирования имеют встроенный текстовый редактор и обеспечивают трансляцию (интерпретацию или компиляцию) программы, записанной в редакторе, на данном языке программирования.
Синтаксически-управляемая система программирования уже на этапе написания текста программы использует знание синтаксиса языка программирования, на который она ориентирована. В такой системе вместо обычного текстового редактора используется синтаксически-управляемый редактор, позволяющий пользователю использовать различные шаблоны синтаксических конструкций. Результатом применения такого редактора разрабатываемая программа по окончании написания всегда является синтаксически правильной.
1.2 Классификация и история развития языков программирования
Первые языки программирования были очень примитивными и мало чем отличались от формализованных упорядоченных последовательностей единиц и нулей, понятных компьютеру. Такие языки программирования называют «машинными». Использование таких языков было крайне неудобно с точки зрения программиста, так как он должен был знать числовые коды всех машинных команд, должен был сам распределять память под команды программы и данные.
Для того чтобы облегчить общение человека с ЭВМ были созданы машинно-ориентированные языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (символьные) обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд.
Следующим этапом развития языков программирования стали языки программирования высокого уровня. Эти языки являются универсальными (на них можно создавать любые прикладные программы) и алгоритмически полными, имеют более широкий спектр типов данных и операций, поддерживают технологии (парадигмы) программирования. Язык программирования высокого уровня - это язык программирования, понятия и структура которого удобны для восприятия человеком и не зависят от конкретного компьютера, на котором будет выполняться программа.
Принципиальными отличиями языков программирования высокого от языков низкого уровня являются:
- использование переменных;
- возможность записи сложных выражений;
- расширяемость типов данных за счет конструирования новых типов из базовых;
- расширяемость набора операций за счет подключения библиотек подпрограмм;
- слабая зависимость от типа ЭВМ.
Одновременно с развитием универсальных языков программирования высокого уровня стали развиваться:
-
- проблемно-ориентированные языки программирования, которые решали экономические задачи (COBOL), задачи реального времени (Modula-2, Ada), символьной обработки (Snobol), моделирования (GPSS, Simula, SmallTalk), численно-аналитические задачи (Analitic) и другие.
- языки сверхвысокого уровня (непроцедурные), при использовании которых программист задает отношения между объектами в программе, например систему линейных уравнений, и определяет, что нужно найти, но не задает, как получить результат.
На языке высокого уровня программист задает процедуру (алгоритм) получения результата по известным исходным данным, поэтому они называются процедурными языками программирования. Языки сверхвысокого уровня называются непроцедурными т.к. сама процедура поиска решения встроена в язык (в его интерпретатор). Такие языки используются, например, для решения задач искусственного интеллекта (Lisp, Prolog). К непроцедурным языкам относят и языки запросов систем управления базами данных (QBE, SQL).
Таким образом, в ходе развития языков программирования появилось очень большое количество языков программирования. Существуют различные классификации языков программирования.
Наиболее распространенной классификацией языков программирования является разделение языков программирования на языки программирования низкого и высокого уровня.
Языки программирования
Низкого уровня
(машинно-зависимые)
Высокого уровня (машинно-независимые)
Машинные языки
Языки символического кодирования
Императивные (как делать?)
Декларативные
(что делать?)
Процедурные
на основе подпрограмм
Объектно-ориентированные
Традиционные
основаны на классах
Прототипные
используется объект-прототип
Функциональные
Логические
Рис. 2 Традиционная классификация языков программирования
Другой широко распространенной классификацией языков программирования предполагается разделение языков программирования на процедурные, непроцедурные и объектно-ориентированные.