Файл: Обзор языков программирования высокого уровня (Обзор Delphi.).pdf
Добавлен: 04.04.2023
Просмотров: 121
Скачиваний: 1
ВВЕДЕНИЕ
К сегодняшнему дню сформировалась очень тесная связь между языками, на которых реализуется речь, и языками, на которых производится программирование. Язык программирования в некотором роде родствен речевым языкам, так как предлагает программисту набор концептуальных инструментов, достаточный для достижения цели – программирования, также как речевые языки обладают достаточным количеством инструментов для выражения мыслей. Тем не менее, большинство языков, применяющихся в речи, относительно статичны, и развиваются спонтанно и временно, в то время как языки программирования прогрессируют сообразно течению времени и развитию технологий.
Так, неотъемлемой частью современного общества являются электронно-вычислительные машины самых различных форм и конфигураций, которые, в свою очередь, обязательно включают некоторые системы логического, аппаратного и программного обеспечения. Программное обеспечение разрабатывается и совершенствуется при помощи языков программирования, которых на сегодняшний день известно целое множество.
Появление персонального компьютера и операционных систем с пользовательским интерфейсом привело и к развитию языков программирования. Так, сегодня наиболее часто для создания новых программных продуктов используются языки программирования высокого уровня.
Для подробного изучения вопроса необходимо выполнить цель исследования – осуществить обзор языков программирования высокого уровня.
Для достижения данной цели необходимо выполнить следующие задачи:
- рассмотреть понятие языка программирования, привести его структуру;
- классифицировать языки программирования;
- осуществить обзор наиболее распространенных языков программирования высокого уровня: C++, Python и Delphi;
- подвести итоги исследования.
Объектом исследования выступают языки программирования, а предметом – особенности языков программирования высокого уровня C++, Python и Delphi.
Методологической основой исследования выступили научные труды таких отечественных исследователей проблемы, как Герман О., Павловская Т. А., Хабибуллин И. и др.
Структура работы содержит две главы, каждая из которых, в свою очередь, включает два и три параграфа соответственно. В исследование также включены такие структурные элементы, как введение, заключение и список использованных источников.
Глава 1. Языки программирования
1.1 Понятие языка программирования
Язык программирования – искусственный (формальный) язык, предназначенный для записи программ для исполнителя (например, компьютера или станка с числовым управлением). Язык программирования задается своим описанием. Описание языка программирования – это документ, специфицирующий возможности алгоритмического языка. Обычно описание содержит:
- алфавит допустимых символов и служебных (ключевых) слов;
- синтаксические правила построения из алфавита допустимых конструкций языка;
- семантику, объясняющую смысл и назначение конструкций языка[1].
Языки программирования служат для представления решения задач в такой форме, чтобы они могли быть выполнены на электронно-вычислительной машине (далее – ЭВМ).
Машинный язык, который состоит из команд процессора ЭВМ, также является языком программирования. Но алгоритмы, записанные на машинном языке, трудны для чтения даже программисту–разработчику, кроме того, работа с таким языком требует знания архитектуры конкретного компьютера, поэтому в программировании, как правило, используют языки более высокого уровня, чем машинные языки. Язык высокого уровня – это язык программирования, понятия и структура которого удобны для восприятия человеком и не зависят от конкретного компьютера, на котором будет выполняться программа[2].
Для того чтобы программу, записанную на языке программирования высокого уровня, можно было выполнить на компьютере, ее надо перевести на машинный язык. Программное средство, выполняющее эту функцию, называется транслятором.
Транслятор – это программа, которая считывает текст программы, написанной на одном языке, и транслирует (переводит) его в эквивалентный текст на другом языке (обычно на машинном языке). Трансляторы бывают двух основных видов: компиляторы и интерпретаторы.
Компилятор преобразует текст исходной программы в набор инструкций для данного типа процессора (машинный код) и далее записывает его в исполняемый файл (exe–файл), который может быть запущен на выполнение как отдельная программа[3]. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык.
Интерпретатор в результате трансляции выполняет операции, указанные в исходной программе. При этом программа остается на исходном языке и не может быть запущена на выполнение без интерпретатора.
Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Pascal, можно написать интерпретатор, а для любого интерпретируемого языка можно создать компилятор, – например, язык Бейсик, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений[4].
Некоторые языки, например Java и C#, находятся между компилируемыми и интерпретируемыми. А именно, программа компилируется не в машинный язык, а в машинно–независимый код низкого уровня, байт–код. Далее байт–код выполняется виртуальной машиной. Для выполнения байт–кода обычно используется интерпретация. Подобный подход в некотором смысле позволяет использовать плюсы как интерпретаторов, так и компиляторов.
Состав языка. Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Язык программирования содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания – выражениями, предложения – операторами. Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструкции образуются из последовательности символов, выражения – это последовательность элементарных конструкций и символов, а оператор – последовательность выражений, элементарных конструкций и символов.
Описание языка есть описание четырех названных элементов. Описание символов заключается в перечислении допустимых символов языка. Под описанием элементарных конструкций понимают правила их образования. Описание выражений – это правила образования любых выражений, имеющих смысл в данном языке. Описание операторов состоит из рассмотрения всех типов операторов, допустимых в языке. Описание каждого элемента языка задастся его синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения[5].
Символы языка – это основные неделимые знаки, в терминах которых пишутся все тексты на языке. Элементарные конструкции – это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка. Выражение в языке программирования состоит из элементарных конструкций и символов, оно задает правило вычисления некоторого значения.
Оператор задает полное описание некоторого действия, которое необходимо выполнить. Для описания сложного действия может потребоваться группа операторов. В этом случае операторы объединяются в составной оператор, или блок.
Действия, заданные операторами, выполняются над данными. Предложения языка программирования, в которых даются сведения о типах данных, называются описаниями или неисполняемыми операторами. Объединенная единым алгоритмом совокупность описаний и операторов образует программу на языке программирования[6].
Со времени создания первых программируемых машин человечество придумало уже более двух с половиной тысяч языков программирования. Количество языков программирования постоянно растет, хотя этот процесс явно замедлился. Некоторыми языками пользуется только небольшое число программистов, другие становятся известны миллионам людей. Часть из них узкоспециализированны (предназначены для решения определенного класса задач), а часть – универсальны. Профессиональные программисты иногда применяют в своей работе более десятка разных языков программирования.
1.2 Классификация языков программирования
Классификацию языков программирования можно вести по нескольким критериям: машинно–ориентированные (ассемблеры) и машинно–независимые, специализированные и универсальные.
К специализированным языкам можно отнести язык АРТ (Automatically Programmed Tools) – первый специализированный язык программирования для станков с числовым управлением. Язык был разработан группой американских специалистов в 1956–1959 гг. под руководством математика Дугласа Т. Росса. Язык СOBOL (Common Business–Oriented Language), созданный в США под руководством Грейс Мюррей Хоппер в 1959 г., ориентирован на обработку экономической информации. Математик Грейс Мюррей Хоппер (рисунок 1) возглавила проект по разработке СOBOL в чине капитана второго ранга, впоследствии она стана контр–адмиралом. Г. М. Хоппер называют «мамой и бабушкой» СOBOLа[7].
Рисунок 1 Грейс Мюррей Хоппер
К специализированным языкам можно отнести и современные языки web–программирования Perl и PHP. Языки Рапира, Е–язык (Россия), SMR (Великобритания), LOGO (США) можно отнести к языкам, предназначенным для обучения программированию.
Самыми распространенными универсальными языками программирования сегодня являются C++, Delphi, Java, Pascal, Visual Basic, Python. Рассматривая языки программирования как самостоятельный объект исследования, можно провести их классификацию по концепции построения языка.
Языки программирования можно разделить на два класса: процедурные и непроцедурные (рисунок 2)[8]. Процедурные (императивные) языки – это языки операторного типа. Описание алгоритма на этом языке имеет вид последовательности операторов. Характерным для процедурного языка является наличие оператора присваивания (Basic, Pascal, С). Программа, написанная на императивном языке, очень похожа на приказы, выражаемые повелительным наклонением в естественных языках, то есть это последовательность команд, которые должен выполнить компьютер. Программируя в императивном стиле, программист должен объяснить компьютеру, как нужно решать задачу.
Непроцедурные (декларативные) языки – это языки, при использовании которых в программе в явном виде указывается, какими свойствами должен обладать результат, но не говорится, каким способом он должен быть получен. Непроцедурные языки делятся на две группы: функциональные и логические[9].
Декларативные языки программирования – это языки программирования высокого уровня, в которых операторы представляют собой объявления или высказывания в символьной логике. Типичным примером таких языков являются языки логического программирования (языки, основанные на системе правил и фактов). Характерной особенностью декларативных языков является их декларативная семантика. Основная концепция декларативной семантики заключается в том, что смысл каждого оператора не зависит от того, как этот оператор используется в программе. Декларативная семантика намного проще семантики императивных языков, что может рассматриваться как преимущество декларативных языков над императивными[10].
Рисунок 2 Классификация языков программирования
Логические языки
В программах на языках логического программирования соответствующие действия выполняются только при наличии необходимого разрешающего условия на вывод новых фактов из данных фактов согласно заданным логическим правилам. Логическое программирование основано на математической логике (см. «Логические операции. Кванторы», «Логические выражения»).