Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Язык программирования - система обозначений для описания данных (информации) и программ (алгоритмов) их обработки на цифровой вычислительной машине. Программы для первых вычислительных машин составлялись на простейшем из языков программирования - машинном языке. Конечно, простейшим он был не для программистов, которые писали программы, а для машины.

Машины, как правило, работают в двоичной системе счисления, и программы на машинном языке записывают при помощи только двух символов: нуля и единицы. Правда, программисты сразу придумали себе облегчение - писали программы не в двоичной, а в восьмеричной системе счисления, а перевод из восьмеричной в двоичную очень прост - каждая восьмеричная цифра заменяется на три двоичные. Например, . В машину программа вводилась все равно в двоичном виде и благодаря этому могла непосредственно восприниматься и выполняться аппаратурой машины.

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

Например, команда сложения для ЭВМ БЭСМ-2 выглядит так: 01 0070 0071 0072.

Первые две цифры 01 - это код операции сложения. По такой команде машина складывала число, хранящееся в ячейке памяти с номером 0070, с числом из ячейки с номером 0071. Результат записывался в ячейку с номером 0072. Номера ячеек в команде могут совпадать. Если перед выполнением команды 01 0073 0074 0073 в ячейку 0074 записать число 1, то число в ячейке 0073 увеличится на единицу, а после выполнения команды 01 0075 0075 0075 число в ячейке 0075 увеличится вдвое.

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

Язык программирования задается тремя компонентами: алфавитом, синтаксисом и семантикой.

Алфавит - это набор различимых символов: букв, цифр, специальных знаков и т.п.

Например, алфавит машинного языка состоит из двух символов: 0 и 1, а если программа записана в восьмеричной системе счисления, то из восьми символов: 0, 1, 2, 3, 4, 5, 6 и 7.

Алфавит одного из популярных языков программирования - ФОРТРАНа (ФОРТРАН - сокращение от ФОРмульный ТРАНслятор, т.е. формульный переводчик) содержит такие символы:

двадцать шесть прописных (заглавных) букв латинского алфавита: А, В, С, ..., Z;

десять арабских цифр: 0, 1, 2, …, 9 (цифра 0 обычно перечеркивается, чтобы отличить ее от буквы О);

специальные знаки: « » (пробел), «=» (для операции присваивания), «+» (для операции сложения), «-» (для операции вычитания), «*» (для операции умножения), «**» (для операции возведения в степень) «/» (для операции деления), «(» и «)» (для изменения порядка проведения вычислений, для записи функций и др.), «,» (используется как разделительный знак при перечислениях), «.» (для отделения целой части числа от дробной вместо более привычной десятичной запятой), «'» (апостроф используется при печати текстов), «» (служебный знак для обозначения денежной единицы, иногда заменяется на знак доллара «$» или на ромб «»).

Синтаксис в языке программирования - это совокупность правил образования конструкций языка из символов, определенных алфавитом. Например, правило образования одной из конструкций языка ФОРТРАН - идентификатора, или просто имени, заключается в следующем: идентификатор - это последовательность от одной до шести букв или цифр, обязательно начинающаяся с буквы.

Примеры идентификаторов:

А         А 12345          ALFA

1          1067890          INDEX

Семантикой в языке программирования называют совокупность правил истолкования конструкций языка, образованных в соответствии с синтаксисом.

Например, правила истолкования идентификатора переменной в ФОРТРАНе состоят в следующем:

идентификатор определяет место в памяти машины, выделенное для хранения текущего значения переменной;

первая буква идентификатора указывает, какого вида информация хранится в определяемом месте: если идентификатор начинается с одной из букв I, J, К, L, М или N, то переменная может принимать только целочисленные значения.

Большинство из языков программирования, разработанных к настоящему времени, являются последовательными. Программы, написанные на них, представляют собой последовательность приказов (инструкций, операторов). Эти операторы последовательно один за другим обрабатываются на машине при помощи так называемых трансляторов. Как правило, транслятор - это довольно большая программа на машинном языке, которая заменяет каждый оператор языка программирования соответствующей ему группой машинных команд.

В результате выполнения оператора присваивания языка ФОРТРАН переменная, записанная в левой части оператора (до знака «=»), получит значение, вычисленное по правилу, записанному в правой части (после знака «=»). Например, оператор

означает, что переменная  должна принять то же самое значение, что и переменная , а оператор

обеспечивает вычисление одного из решений квадратного уравнения  по известной формуле

.

Идентификатор SQRT (от английского square roof - «квадратный корень») указывает машине, что из значения выражения в скобках

нужно извлечь квадратный корень.

Различают языки программирования низкого и высокого уровня. Языки низкого уровня существенно зависят от организации и принципов работы конкретной ЭВМ, поэтому они называются машинно-зависимыми, или машинно-ориентированными языками. К ним относятся автокоды, ассемблеры, а также машинные языки. В отличие от машинного, автокоды и ассемблеры допускают использование условных (мнемонических) обозначений, которые с помощью трансляторов переводятся в команды данной ЭВМ.

Языки высокого уровня, или машинно-независимые языки практически никак не связаны с устройством конкретной ЭВМ. Программы, написанные на таких языках, имеют наглядный, близкий к математическому языку вид, дают возможность использовать выражения, символические имена для переменных и функций.

К языкам высокого уровня относятся БЕЙСИК, ФОРТРАН, ПЛ/1, АЛГОЛ, ПАСКАЛЬ, АДА, КОБОЛ, ЛИСП и др.

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

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

 



<< ПредыдущаяОглавлениеСледующая >>