Выбрать главу

Например, команда сложения для ЭВМ БЭСМ-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, то переменная может принимать только целочисленные значения.

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

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

X = Y

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

X1 = (-B + SQRT(B**2 - 4.*A*C))/(2.*A)

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

.

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

(B**2+4.*A*C)

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

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

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

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

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

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

Ц-Я: ЗАДАЧИ

Задача 8. Доля блондинов среди голубоглазых больше, чем их доля среди всего населения. Верно ли, что доля голубоглазых среди блондинов больше, чем их доля среди всего населения?

Задача 9. Из книги выпали страницы. Первая страница имеет номер 387, а номер последней состоит из тех же цифр, но записанных в другом порядке. Сколько страниц выпало из книги?

Задача 10. Имеется несколько кувшинов, среди которых есть два кувшина разной формы, а также два кувшина разного цвета. Докажите, что среди них найдутся два кувшина одновременно и разной формы и разного цвета.