Файл: Обзор языков программирования высокого уровня (ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ).pdf
Добавлен: 29.02.2024
Просмотров: 31
Скачиваний: 0
Рисунок 2.1. Классификация языков программирования
Вычислительные Модели
Существуют четыре основные вычислительные модели, которые описывают большинство сегодняшних методов программирования:[11]
• императивная модель;
• аппликативная модель;
• модель, основанная на системе правил;
• объектно-ориентированная модель.
Императивные языки
Императивные, или процедурные, языки — это управляемые командами или операторно-ориентированные языки программирования. Основной концепцией является состояние машины — множество всех значений всех ячеек памяти компьютера. Программа состоит из последовательности операторов, выполнение каждого из которых влечет за собой изменение значения в одной или нескольких ячейках памяти, то есть переход машины в новое состояние. В целом синтаксис такого языка имеет вид: Оператор 1; Оператор 2;
Аппликативные языки
Другим взглядом на вычисления, производимые с помощью языка программирования, является рассмотрение функции, которую выполняет программа, а не отслеживание изменяемых состояний машины во время выполнения программы, оператор за оператором. Мы можем достичь этого, сосредоточив внимание на ожидаемом результате, а не на имеющихся в нашем распоряжении данных.[12] Другими словами, вместо того чтобы рассматривать последовательность состояний, через которые должна пройти машина для получения ответа, вопрос следует поставить по-другому: какую функцию необходимо применить к начальному состоянию машины (путем выбора начального набора переменных и комбинирования их определенным образом), чтобы получить требуемый ответ? Языки, в которых акцентирован именно этот взгляд на вычисления, называются аппликативными, или функциональными.
Языки, основанные на системе правил
Языки, основанные на системе правил, осуществляют проверку наличия необходимого разрешающего условия и в случае его обнаружения выполняют соответствующее действие. Наиболее распространенный язык, основанный на системе правил, — Prolog. Он называется также языком логического программирования, поскольку базовые разрешающие условия относятся к классу выражений логики предикатов. На рис. 2.2. языки, основанные на системе правил, схематически представлены с помощью набора фильтров, которые нужно применить к данным, находящимся в памяти. Выполнение программы на подобном языке похоже на выполнение программы, написанной на императивном языке, за исключением того, что операторы выполняются не в той последовательности, в которой они определены в программе. Разрешающие условия определяют порядок выполнения. Синтаксис таких языков выглядит следующим образом: разрешающее условие1 → действие 1 разрешающее условие 2 → действие 2 …… разрешающее условие n →действие n (Иногда правила записываются в виде действие If разрешающее условие, в котором выполняемое действие записывается слева.)[13]
Рисунок 2.2. Вычислительные модели
Объектно-ориентированное программирование
Значимость объектно-ориентированной модели постоянно возрастает. В этой модели строятся сложные объекты данных, а затем для операций над этими данными описывается ограниченный набор функций. Сложные объекты создаются как расширения более простых объектов и наследуют их свойства. На самом деле эта модель является попыткой объединить лучшие свойства других моделей. Благодаря возможности строить конкретные объекты данных объектно-ориентированная программа приобретает эффективность императивного языка. Построение классов функций, которые используют ограниченный набор объектов данных, дает нам гибкость и надежность, свойственные аппликативному языку.[14]
Языки программирования низкого уровня
Язык программирования, близкий к программированию непосредственно в машинных кодах используемого процессора. Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских). Есть два типа языков низкого уровня: язык ассемблера (assembly language) и машинный язык (machine code).
Языки программирования высокого уровня
Язык высокого уровня - язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, PHP, Бейсик, Паскаль, Си, Ада, Java и др.
ОБЗОР яЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
Именно сейчас мы переходим к самой важной части курсовой работы и начинаем обзор самых популярных языков программирования высокого уровня.
Pascal
Язык Паскаль получил свое название в честь великого французского ученого, физика-математика Блеза Паскаля, который в 1642 г. изобрел счетную машину для арифметических операций – Паскалево колесо. История создания языка Паскаль начинается с 1965 года, когда международная федерация по обработке информации IFIP предложила нескольким специалистам в области информатики принять участие в разработке нового языка программирования – приемника АЛГОЛА-60. Среди них был швейцарский ученый, работавший доцентом информатики Стенфордского университета Николаус Вирт. В конце 1968 года Вирт и сотоварищи из швейцарского федерального института технологии в Цюрихе разработали первую версию Паскаля, а спустя 2 года – 1й вариант компилятора. В 1971 году Вирт выпустил описание своего языка. Создавая Паскаль, Вирт преследовал 2 цели: во-первых, разработать язык, пригодный для обучения программированию как систематической дисциплине; во-вторых, реализация языка должна быть эффективной и надежной на существующих вычислительных машинах.[15] Одним из достоинств языка Паскаль является то, что он воплотил в себе идею структурного программирования, суть которой заключается в том, что с помощью нескольких конструкций можно выразить в принципе любые алгоритмы: линейные, ветвление, циклические конструкции. При создании и совершенствовании языка Вирт ввел много новшеств, в частности, изобрел синтаксические диаграммы, с помощью которых удобно представлять конструкции языка, первый ввел в алфавит квадратные скобки, высказал идею решения проблемы переносимости программ в виде Пи-системы, которая заключается в том, что написанная на Паскале программа транслируется в Пи-код, в машинный язык некоторой идеальной машины, а затем интерпретируется на реальных машинных языках. Он выявил и ряд недостатков: отсутствие операции возведения в степень, понятие отдельно транслируемого модуля, затрудняющее тем самым создание больших программ и др.[16] Он является популярным языком программирования и в наши дни. Именно на нем обучают студентов на первом курсе университета и в старшей школе. На его основе построено множество других языков.
Программа записывается в виде последовательности символов, к числу которых относятся латинские и русские буквы, арабские цифры, знаки препинания, знаки операции. Для обозначения исходных данных и результатов вычислений употребляются переменные, которыми могут быт* не только любые буквы — a, b, X, Y, ш, щ и т. д., но и, например, последовательности символов вида хі, х2, time, Сила, alfalQQ, аІа2 и т. д., которые состоят из букв и цифр и начинаются с буквы. Соответствующее исходное данное или результат вычисления называется значением переменной. Пока мы будем иметь дело с переменными, значениями которых являются числа.[17] Числа в программе записываются в десятичной системе, вместо запятой пишется точка: 0, —17, 0.26, 3.1415, +1.567, —0.18 и т. д. Количество цифр в числе не может быть слишком большим; граница для этого количества в паскале не оговаривается — она определяется характеристиками используемой вычислительной машины. Это относится и к количеству букв и цифр в переменной.[6] Переменные и числа — простейшие частные случаи выражения. Более сложные выражения строятся из чисел и переменных с помощью знаков операций сложения, вычитания, умножения и деления. Эти знаки суть +, —, *, /. Кроме того, в выражении могут быть использованы круглые скобки и некоторые функции. Знак операции деления / позволяет записывать в строку выражения, которые традиционно записываются с выходом из строки: в паскале пишут а/b, с /\1, (a*x + 6)/(c + d) и т.д, Знак операции умножения * нельзя опускать или заменять точкой. Допустимое для математического текста выражение 0,6 (х + 7) • (х + 2) • (х— 3) в паскале должно быть записано в виде 0.5*(х + 7)*(х + 2)*(х— 3). Знак — (минус) может употребляться и для изображения величины, противоположной данной: —х, — (а*Ь+ у) и т. д. Нельзя размещать два знака операций рядом; последовательности символов 3»—2, х \/—х2 — это не выражения, выражениями будут 3*(—2), х \/( —х2). В выражении могут быть использованы следующие функции: sin(E)— синус Е, cos{E)— косинус Е, arctan(E) — главное значение арктангенса Е, Іп(Е) — натуральный логарифм Е, ехр{Е)— показательная функция Е, т. е. ее, abs(E)— абсолютная величина (модуль) Е, т. е. |Е |, sqr(E) — квадрат (вторая степень) Ё, т. е. JE2, sqrt(E)— квадратный корень из Е, т. е. л/Е; выражение, задающее аргумент, всегда заключается в скобки. Так, например, мы пишем sqrt(sqr(b) — 4*а*с). В ходе выполнения программы вычисляются значения выражений.[18] При вычислении действуют обычные правила старшинства операций: старшие операции—■ умножение и деление, следующие по старшинству — сложение и вычитание. Из двух операций одинакового старшинства первой выполняется та, знак которой в выражении встречается раньше. Круглые скобки изменяют этот естественный порядок: значением выражения (* + </)/2 будет половина суммы значений переменных X и у, в то же время значением выражения х + у / 2 будет сумма значения х и половины значения у. Последовательность букв и цифр, начинающаяся с буквы, называется идентификатором. Из рассмотренных примеров видно, что идентификатор не обязательно представляет собой переменную: sin, cos, arctan и т. д. — это не переменные, а имена функций.[19]
Python
Высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика, читаемости кода и на разработку веб приложений. Синтаксис ядра Python минималистичен. Код в Python организовывается в функции и классы, которые могут объединяться в модули. Разработка этого языка началась в 1980-х годах голландцем Гвидо ван Россумом, но его первая версия была выпущена только в 2008 году. Свое имя - Пайтон (или Питон) - получил от названия телесериала, а не рептилии. После того, как Россум разработал язык, он выложил его в Интернет, где уже целое группа программистов присоединилось к его улучшению. Он отличается постоянным усовершенствованием и активным сообществом пользователей. Python является высокоуровневым языком с большим объемом различных функций. Особенно хорошо он справляется с веб-разработкой, анализом данных и автоматизацией процессов.
Чтобы читатель не подумал, что Python – игрушечный язык программирования, на котором можно только обучать основам программирования и дальше о нем благополучно забыть, кратко перечислю области, где он активно применяется[20]:
1. Системное программирование.
2. Разработка программ с графическим интерфейсом.
3. Разработка динамических веб-сайтов.
4. Интеграция компонентов.
5. Разработка программ для работы с базами данных.
6. Быстрое создание прототипов.
7. Разработка программ для научных вычислений.
8. Разработка игр.
Рисунок 3.1. Сферы применения языка Python
Python активно совершенствуется и в настоящее время. Часто выходят его новые версии. Официальный сайт http://python.org. Что нам потребуется для выполнения программ на языке Python? [21]
Python – это интерпретируемый язык программирования: исходный код частями преобразуется в машинный в процессе выполнения специальной программой — интерпретатором. Python характеризуется ясным синтаксисом. Читать код на этом языке программирования достаточно легко, т.к. в нем мало вспомогательных элементов, а правила языка заставляют программистов делать отступы. Понятно, что хорошо оформленный текст с малым количеством отвлекающих элементов читать и понимать легче. Python – это полный, можно сказать универсальный, язык программирования. Он поддерживает объектно-ориентированное программирование (на самом деле он и разрабатывался как объектно-ориентированный язык). Также Python распространяется свободно на основании лицензии подобной GNU General Public License.